certify-locallisted
Install: claude install-skill lukasrepublic/agentic-foundry
# /foundry:certify-local `<release>`
The release train's first certification step (CONSTITUTION.md §V `factory` mode: spec → plan →
build → integrate → **certify locally** → operator acceptance → staging). One deploy, one real
run of every atom's already-merged E2E journeys, the runner's own output as the evidence — no
new evidence format, no re-judged verdict.
## When to trigger
- "certify `<release>` locally", "/foundry:certify-local `<release>`", after a release's atoms
are all merged and before recording operator acceptance (`/foundry:release accept`, see
`skills/release/SKILL.md`'s tail).
- NEVER as a substitute for the operator's own test pass — this is the machine-derived evidence
that pass exists to consult, not the sign-off itself (see the Anti-patterns section below).
## Procedure
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/skills/certify-local/certify_local.py" <release-id> \
[--project-dir <dir>] [--plugin-root <dir>] [--boot-wait <seconds>] [--timeout <seconds>] [--json]
```
1. **Resolve the release manifest** (`scripts/foundry_release.py`'s `load_release` — the SAME
loader `/foundry:release` drives). An unknown/malformed `<release-id>` is a hard error, no
emission.
2. **Collect every atom's `journeys[]` tags** (`context/feat-spec-template.md`'s Journeys
section — the AC-tagged E2E-suite source) and union them into ONE `--grep` regex. **REFUSE**
("no journey suite") if no atom in the release declares any tag — nothing to certify.
3. **Resolve