← ClaudeAtlas

certify-staginglisted

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.
lukasrepublic/agentic-foundry · ★ 1 · AI & Automation · score 67
Install: claude install-skill lukasrepublic/agentic-foundry
# /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-local` is green and the operator has recorded acceptance (`/foundry:release accept …` — see `skills/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 1. **Resolve the staging binding.** Read `.claude/foundry-project.json`. **REFUSE** ("no staging binding") if it has no `staging` key, or the key is present but missing `base_url`: ```json { "staging": { "base_url": "https://staging.example.com", "deploy_target": "<name matching an entry in .foundry/deploy-targets.yaml, optional>" } } ``` This is adopter-config, the same convention `self_host_code_repo`/`repos` already use in this file — Foundry ships the checklist + the shape, never a hardcoded staging URL. 2. **Resolve the release manifest** (`scripts/foundry_release.py`'s `load_release`) for its description + per-atom `journeys[]` tags — the SAME manifest `/foundry:certify-local` reads. 3. **Obs