deploy-statuslisted
Install: claude install-skill lukasrepublic/agentic-foundry
# /foundry:deploy-status
Observe-only. Deploy = **CD** (ArgoCD App-of-Apps, GitOps from the infra
repo); Foundry does NOT own the deploy action — it observes. Production deploy is
**operator-gated under BOTH modes**; there is no autonomous prod-deploy.
## When to trigger
- "deploy status", "/foundry:deploy-status", "what's synced/healthy in `<env>`?".
- NEVER to initiate a deploy (that's the operator + CD).
## Procedure
0. **Cross-check deployed-artifact identity (STALE/NOT-ROLLED).** Before trusting
sync+health, confirm the *merged commit actually rolled*. A `workflow_run`-gated CD
pipeline **silently skips** when its upstream CI false-reds: the merged commit never
builds, gitops is never written back, the old image keeps running — and ArgoCD then reads
"Synced + Healthy" against the **stale** image. Run the identity check:
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/foundry-deploy-status.py" \
--config "$CLAUDE_PROJECT_DIR/.foundry/deploy-targets.yaml"
```
It compares each target's deployed gitops `image.tag` against the **expected** merged-commit
identity (the target repo's `main` HEAD / its build-provenance SHA) and reports:
- **`ROLLED`** — deployed identity == expected, upstream CI `success`.
- **`STALE/NOT-ROLLED`** — identity mismatch *or* the expected commit's CI was not `success`
(the gated build skipped). This is reported **independently of** sync/health, so a
Synced+Healthy stale image can never read GREEN. W