certify-staging
Skill1 starsChanged 3 months agoMITView on GitHub
Emit the staging certification checklist for a release (/foundry:certify-staging <release>, introduced in the v0.25.0 certification realignment, CONSTITUTION.md §V factory-mode tail). Fills context/staging-checklist-template.md from the release manifest + the staging binding in .claude/foundry-project.json, observes deploy state via the kept /foundry:deploy-status surface, and STOPS — promotion stays CD-owned and operator-gated. REFUSES naming the missing prerequisite when no `staging` binding exists in .claude/foundry-project.json. Trigger after certify-local + operator acceptance, before any staging→production promotion decision.
In this repository71 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- amendSkill
- auditSkill
- authorize-releaseSkill
- authorizeSkill
- certify-localSkill
- coherence-checkSkill
- command-deckSkill
- contextSkill
- cut-releaseSkill
- dashboards-as-codeSkill
- data-tier-cutoverSkill
- decommission-gateSkill
- deploy-statusSkill
- dispatchSkill
- doctorSkill
- drift-sweepSkill
- env-hygieneSkill
- extract-specSkill
- fleetSkill
- grounding-conformanceSkill
- id-applySkill
- id-architectSkill
- id-baselineSkill
- id-discoverSkill
- id-documentSkill
- id-driftSkill
- id-impactSkill
- id-implementSkill
- id-importSkill
- id-planSkill
- id-promoteSkill
- id-reviewSkill
- id-rollbackSkill
- id-simulateSkill
- id-syncSkill
- id-testSkill
- id-validateSkill
- id-verifySkill
- indexSkill
- infra-sandboxed-applySkill
- initSkill
- intakeSkill
- learn-captureSkill
- learn-distillSkill
- merge-when-greenSkill
- mode-autonomousSkill
- mode-interactiveSkill
- modeSkill
- post-upgradeSkill
- releaseSkill
- relockSkill
- report-citation-graphSkill
- reposSkill
- research-captureSkill
- research-firstSkill
- revertSkill
- sd-debugSkill
- sd-discoverSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 17
NEVER to promote staging → production.
- Very specific: line 22
Resolve the staging binding: Read .claude/foundry-project.json.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/foundry:certify-staging <release>
The release train's LAST certification step before promotion (CONSTITUTION.md §V factory mode:
… → certify locally → operator acceptance → staging). A thin procedure that emits a
checklist + an observation, then stops — it never promotes anything.
When to trigger
- "certify
<release>on staging", "/foundry:certify-staging<release>", after/foundry:certify-localis green and the operator has recorded acceptance (/foundry:release accept …— seeskills/release/SKILL.md's tail). - NEVER to promote staging → production. Promotion is CD-owned and operator-gated (see
skills/deploy-status/SKILL.md's boundary) — this skill stops at the checklist + observation.
Procedure
- Resolve the staging binding. Read
.claude/foundry-project.json. REFUSE ("no staging binding") if it has nostagingkey, or the key is present but missingbase_url:
This is adopter-config, the same convention{ "staging": { "base_url": "https://staging.example.com", "deploy_target": "<name matching an entry in .foundry/deploy-targets.yaml, optional>" } }self_host_code_repo/reposalready use in this file — Foundry ships the checklist + the shape, never a hardcoded staging URL. - Resolve the release manifest (
scripts/foundry_release.py'sload_release) for its description + per-atomjourneys[]tags — the SAME manifest/foundry:certify-localreads. - Observe deploy state via the kept, unmodified
/foundry:deploy-statussurface (skills/deploy-status/SKILL.md) against the staging target — sync + health + the deployed-artifact identity cross-check. Read-only; never trigger a deploy or sync. - Emit the checklist — copy
context/staging-checklist-template.mdand fill every placeholder from steps 1–3: the staging binding, the deploy-status observation (§1), one row per atom naming its journey tags for a staging re-run (§2), rollback readiness (§3), and a blank sign-off line (§4) for the operator to complete. - STOP. Hand the filled checklist to the operator. This skill does not re-run the journey suite against staging itself (the app's own Playwright config would need a staging project/baseURL binding Foundry does not assume or inject — see the template's §2 note), does not record an acceptance verdict on the operator's behalf, and does not promote.
Inputs / Outputs
- In:
<release-id>,.claude/foundry-project.json'sstagingbinding,.foundry/deploy-targets.yaml(for the deploy-status observation),context/staging-checklist-template.md. - Out: a filled staging checklist (the template above, no placeholders left unresolved) handed to the operator; no state is mutated (no promotion, no acceptance record, no manifest write).
Anti-patterns
- Promoting staging → production from this skill. There is no promotion verb here — CD owns it, the operator gates it. This skill's job ends at the checklist + the sign-off line the operator fills themselves.
- A vacuous checklist when there is no staging binding. Refuse, name the missing
.claude/foundry-project.jsonstagingkey, never emit a checklist with an invented URL. - Re-implementing
/foundry:deploy-status. Drive it as-is; never re-read ArgoCD/the gitops paths directly here. - Treating the emitted checklist as the sign-off. The checklist's §4 sign-off line is the
operator's own record, filled by them — same practice-not-gate posture as
/foundry:release accept(the constitution's "operator sign-off is the terminal gate" principle, context/constitution-template.md §I.5).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

