ci: defend the template repo, and stop it handing out stale action versions - #2
Merged
Conversation
…rsions dotfiles defines what "a defended branch" means for ~26 repos and had no .github/ directory at all — the source of truth for every gate was the one branch with no gate. It had also drifted: it still handed out actions/checkout@v4 and setup-node@v4 sixteen days after fleetcrown and orangecat moved to v7, so every fresh copy re-introduced the old versions. Templates bumped to v7 to match what the fleet actually runs (verified against fleetcrown and orangecat, not guessed). The new workflow checks the four things that make this repo trustworthy: - every .sh parses (install.sh is what lands on a new machine; a syntax error there surfaces at the worst possible moment) - every CI template is valid YAML (a broken template fails far from here, inside whichever repo copied it) - both templates still call `npm run verify` — the template's entire premise is that "verified" is defined once in package.json and CI calls it verbatim; if that quietly stops being true the premise is gone - no template pins actions/checkout or setup-node below v7 — the exact drift this commit is fixing, now impossible to reintroduce silently Each gate prints a positive count of what it scanned, so "0 scanned" can never again look like "0 problems" — the failure mode that let fleetcrown's design gate pass for its entire life while scanning nothing. All four verified locally before pushing: 9 shell scripts parse, both templates parse, verify SSOT present in both, no stale pins. Co-Authored-By: Claude Fable 5 <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.
dotfiles defines what "a defended branch" means for ~26 repos and had no
.github/ directory at all — the source of truth for every gate was the one
branch with no gate. It had also drifted: it still handed out
actions/checkout@v4 and setup-node@v4 sixteen days after fleetcrown and
orangecat moved to v7, so every fresh copy re-introduced the old versions.
Templates bumped to v7 to match what the fleet actually runs (verified against
fleetcrown and orangecat, not guessed).
The new workflow checks the four things that make this repo trustworthy:
there surfaces at the worst possible moment)
inside whichever repo copied it)
npm run verify— the template's entire premiseis that "verified" is defined once in package.json and CI calls it verbatim;
if that quietly stops being true the premise is gone
this commit is fixing, now impossible to reintroduce silently
Each gate prints a positive count of what it scanned, so "0 scanned" can never
again look like "0 problems" — the failure mode that let fleetcrown's design
gate pass for its entire life while scanning nothing.
All four verified locally before pushing: 9 shell scripts parse, both
templates parse, verify SSOT present in both, no stale pins.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com