Skip to content

ci: add Solidity+Scorecard reusables, harden PR template, bump prettier#13

Merged
bryanfawcett merged 4 commits into
mainfrom
claude/sleepy-albattani-k0t0ee
Jun 14, 2026
Merged

ci: add Solidity+Scorecard reusables, harden PR template, bump prettier#13
bryanfawcett merged 4 commits into
mainfrom
claude/sleepy-albattani-k0t0ee

Conversation

@bryanfawcett

Copy link
Copy Markdown
Contributor

Summary

Six enterprise-hygiene improvements to the org governing repo, closing gaps identified against the NA-03 Engineering Working Agreement and current supply-chain security best practices:

  • New: reusable-ci-solidity.yml — Foundry CI for Solidity smart contracts
  • New: reusable-openssf-scorecard.yml — OpenSSF Scorecard supply-chain analysis
  • Updated: PR template gains a NA-03 merge-blocker checklist section
  • Updated: reusable-lint.yml prettier default bumped 3.3.3 → 3.5.3
  • Updated: ORG_SETTINGS.md — two new actions added to the allow-list
  • Updated: README.md — new workflows added to the inventory table

Detail

1. reusable-ci-solidity.yml (new)

Covers the Solidity / Foundry stack called out in NA-03 §6.1 which had no CI reusable. Four jobs:

Job Tool Gate
forge fmt Foundry formatter Format compliance
forge build Forge compiler Clean build with --sizes
forge test Forge test runner All tests pass (-vvv)
forge coverage LCOV coverage ≥60% line coverage (NA-03 §6.3)

Change-detection via dorny/paths-filter so the matrix is a no-op on non-Solidity pushes.

Supply-chain note: foundry-rs/foundry-toolchain refs are currently tag-pinned with TODO(supply-chain) comments. These need converting to 40-char SHA pins per NA-03 §7.1.1 before merging. Dependabot will propose a SHA-pinning PR on the next weekly run once the allow-list entry lands.

2. reusable-openssf-scorecard.yml (new)

OpenSSF Scorecard checks (branch protection, dependency pinning, CI/CD, SAST, signed releases, token permissions, vulnerability reporting, and more). Results are uploaded as SARIF to the GitHub Security tab via the already-SHA-pinned github/codeql-action/upload-sarif.

Input publish-results defaults to false (safe for private repos; set true for public repos to get a public score badge).

Supply-chain note: ossf/scorecard-action and actions/upload-artifact are tag-pinned with TODO(supply-chain) comments — same resolution path as above.

3. PR template — NA-03 merge-blocker checklist

The existing checklist covered process (commits, DCO, signing) but had no org-specific content gates. The new "NA-03 merge blockers" section surfaces the Quick Reference from NA-03 §§ 3–7 directly in every PR, including an escape hatch ("N/A — skip remaining boxes") for PRs that don't touch any gated areas. Checks cover:

  • Secret hygiene
  • Prohibited dependencies (MongoDB, Flutter, Couchbase, D1, 10B MXT cap)
  • Schema.org compliance
  • Locked-count integrity
  • Frontier defaults (post-quantum / local-first / edge-native)
  • GitHub Actions SHA pinning

4. Prettier version bump (3.3.3 → 3.5.3)

The default in reusable-lint.yml was last set in June 2024. Bumped to 3.5.3. Repos that override the version via the prettier-version input are unaffected.

5–6. ORG_SETTINGS.md + README

ossf/scorecard-action@* and foundry-rs/foundry-toolchain@* added to the org Actions allow-list (required before consuming repos can call the new reusables). Both new workflows added to the README inventory table.

Test plan

  • CI lint passes on this PR (actionlint, JSON validity, prettier, markdownlint, yamllint)
  • Verify foundry-rs/foundry-toolchain and ossf/scorecard-action tag refs are converted to SHA pins before merge (or confirm Dependabot PR is queued)
  • After merge, enable both new reusables in a Solidity repo and a public repo to confirm end-to-end wiring

https://claude.ai/code/session_01Y1W2Bh83JFe3iK5K8U7dSz


Generated by Claude Code

claude added 2 commits June 14, 2026 01:10
Six enterprise-hygiene improvements applied to the org governing repo:

1. `.github/workflows/reusable-ci-solidity.yml` — NEW
   Foundry CI for Solidity smart contracts (NA-03 §6.1 & §10.4).
   Jobs: forge fmt, forge build, forge test, forge coverage.
   Coverage job enforces the ≥60 % line-coverage floor from NA-03 §6.3.
   Change-detection via dorny/paths-filter so the matrix skips on
   non-Solidity pushes.
   NOTE: foundry-rs/foundry-toolchain refs are tagged (not SHA-pinned)
   pending SHA lookup — marked with TODO(supply-chain) comments; a
   Dependabot PR will convert them on the next scheduled run.

2. `.github/workflows/reusable-openssf-scorecard.yml` — NEW
   OpenSSF Scorecard reusable. Publishes SARIF to the GitHub Security
   tab via codeql-action/upload-sarif (already SHA-pinned). Inputs:
   `publish-results` (default false — safe for private repos).
   NOTE: ossf/scorecard-action and actions/upload-artifact refs are
   tagged pending SHA lookup; same TODO(supply-chain) convention.

3. `.github/PULL_REQUEST_TEMPLATE.md` — UPDATED
   Added a "NA-03 merge blockers" section with seven org-specific
   checks: secret hygiene, prohibited dependencies, Schema.org
   compliance, locked-count integrity, frontier defaults (post-quantum /
   local-first / edge-native), and GitHub Actions SHA pinning. Checks
   mirror the Quick Reference in NA-03 §§ 3–7 so reviewers have a
   single authoritative checklist on every PR.

4. `.github/workflows/reusable-lint.yml` — UPDATED
   Bumped default prettier-version from 3.3.3 (June 2024) to 3.5.3.

5. `ORG_SETTINGS.md` — UPDATED
   Added ossf/scorecard-action@* and foundry-rs/foundry-toolchain@* to
   the org Actions allow-list (required before the new reusables can run
   in consuming repos).

6. `README.md` — UPDATED
   Added both new reusable workflows to the inventory table.

https://claude.ai/code/session_01Y1W2Bh83JFe3iK5K8U7dSz
MongoDB is the current hot-tier database and D1 is used for agentic
workloads — neither is prohibited in practice. The checklist now only
blocks Flutter, Couchbase, CouchDB-as-datastore, and the legacy 10B
MXT supply-cap reference.

NOTE: NA-03 §3.5 still lists both MongoDB (SSPL) and D1 as prohibited
patterns. That governance doc needs a matching amendment to stay
consistent with the current stack — tracked separately.

https://claude.ai/code/session_01Y1W2Bh83JFe3iK5K8U7dSz
@bryanfawcett bryanfawcett marked this pull request as ready for review June 14, 2026 03:32
claude added 2 commits June 14, 2026 03:34
MongoDB and Cloudflare D1 are active parts of the platform; the
previous blanket prohibitions no longer reflect reality.

Changes:
- §3.1: adds "Sanctioned operational layers" block documenting
  MongoDB as the hot-tier operational database and D1 as the
  agentic-workload relational store. Both are explicitly not
  sources of truth; the locked count of 3 sources of truth is
  unchanged. MongoDB's SSPL scope (internal only, not distributed)
  is called out.
- §3.5: removes MongoDB and D1 from the prohibited-patterns list;
  adds a removed-prohibition note cross-referencing §3.1.
- Quick Reference merge blocker updated to match.
- Version bumped 1.1 → 1.2, effective date 14 June 2026.
- Changelog entry added per §13 amendment process.

https://claude.ai/code/session_01Y1W2Bh83JFe3iK5K8U7dSz
The description cell was 162 chars — 13 chars wider than the column
established by other rows — which shifted the pipe positions and
failed both markdownlint MD060 and prettier. Shortened to 137 chars
and padded with trailing spaces to match the 149-char column width.
Also fixed the status cell from `| ✅   |` to `|   ✅   |`.

https://claude.ai/code/session_01Y1W2Bh83JFe3iK5K8U7dSz
@bryanfawcett bryanfawcett merged commit 9ded78c into main Jun 14, 2026
7 checks passed
@bryanfawcett bryanfawcett deleted the claude/sleepy-albattani-k0t0ee branch June 14, 2026 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants