ci: strict verify gate + verify SSOT script - #109
Closed
catomean wants to merge 1 commit into
Closed
Conversation
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>
Collaborator
Author
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 strictnpm run verify— a missing/renamed gate script now fails loudly.(b) No single
verifySSOT / no docs. Added a"verify"npm script and anAGENTS.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: replacedbuild:ci+ three--if-presentsteps withnpm 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.verifychain runs each real script in order and correctly failed loudly on an unformatted file before I fixed it — confirming strictness.next buildcompiles successfully; a full localverifycan't finish the build's type-check phase only because this sandbox blocksfonts.googleapis.com. CI has network and builds green.deploy.ymlYAML validated.🤖 Generated with Claude Code