Skip to content

ci: strict verify gate + verify SSOT script - #109

Closed
catomean wants to merge 1 commit into
mainfrom
devops/strict-verify-gate
Closed

ci: strict verify gate + verify SSOT script#109
catomean wants to merge 1 commit into
mainfrom
devops/strict-verify-gate

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

What

Closes two DevOps gaps from the prior audit (Grade B):

(a) Silent-pass gate → strict. The CI gate used npm run <script> --if-present, which silently passes if a gate script is renamed or removed (a false green). Replaced with a single strict npm run verify — a missing/renamed gate script now fails loudly.

(b) No single verify SSOT / no docs. Added a "verify" npm script and an AGENTS.md.

Changes

  • package.json: "verify": "npm run format:check && npm run lint && npm run test && npm run build" — the one definition of "green".
  • .github/workflows/deploy.yml: replaced build:ci + three --if-present steps with npm ci + npm run verify (called verbatim, same env). No behavior change to the Vercel deploy steps.
  • AGENTS.md (new): stack, dev commands, verify, manual Supabase migrations, and the Vercel deploy path. Mirrors .claude/CLAUDE.md.

Verification

  • format:check, lint, test (227 passed / 2 skipped) all green locally.
  • verify chain runs each real script in order and correctly failed loudly on an unformatted file before I fixed it — confirming strictness.
  • next build compiles successfully; a full local verify can't finish the build's type-check phase only because this sandbox blocks fonts.googleapis.com. CI has network and builds green.
  • deploy.yml YAML validated.

🤖 Generated with Claude Code

Add a single "verify" npm script (format:check + lint + test + build) as the
one definition of "green", and wire CI to call it verbatim.

Replace the CI gate's `npm run <script> --if-present` calls (which silently
pass if a script is renamed or removed — a false green) with the strict
`npm run verify`, so a missing/renamed gate script fails loudly.

Add AGENTS.md documenting stack, dev commands, verify, manual Supabase
migrations, and the Vercel deploy path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@catomean

Copy link
Copy Markdown
Collaborator Author

Superseded by #121 — reconciled onto post-#120 main (its AGENTS.md draft carried stale Vercel/Next.js-14 facts that #121 corrects).

@catomean catomean closed this Jul 28, 2026
catomean added a commit that referenced this pull request Jul 28, 2026
* ci: strict verify gate + verify SSOT script

Reconciles PR #109's intent onto post-#120 main (self-hosted, no Vercel):
- add "verify" script (format:check && lint && test && build) — one
  definition of "green", run identically locally and in CI
- ci.yml runs `npm ci` then a single `npm run verify` step (no --if-present:
  a missing/renamed gate script fails loudly) instead of the old split steps
- add AGENTS.md, corrected to the real stack (Next.js 16 / React 19) and
  self-hosted Hetzner deploy referencing ci.yml — NOT the stale Vercel/Next14
  draft from #109 that would have re-added Vercel

Supersedes #109 (which conflicted on the workflow #120 renamed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* style: prettier --write repo to make the verify gate green

The strict verify gate surfaced pre-existing format debt that main's long-red
CI (blocked-Vercel deploy step) had masked. prettier --write is mechanical and
content-preserving — the executive-docs keep their text (incl. the separate
Vercel-in-financials follow-up), only whitespace is normalised. Also excludes
the auto-generated next-env.d.ts from prettier. Build/lint/test already pass;
this clears format:check so verify is truly green (and un-reds main on merge).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* style: reformat with the repo-pinned prettier config (printWidth 100)

Prior format commit used a prettier invocation that didn't resolve .prettierrc
(fell back to printWidth 80); the pinned config (printWidth 100) rejected it.
Re-run with the repo's own prettier so format:check matches CI exactly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant