certify-staginglisted
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