Governed Delivery
Use one lifecycle. Do not skip a gate because implementation already exists.
- Read
AGENTS.md, the operating manual, feature state, current plan, and active session state. Preserve pre-existing dirty files.
- Run
amber next --objective "<objective>" --target <repo>. Treat the route suggestion as deterministic advice, not authorization.
- Ensure the feature and vertical-slice plan exist. Run
amber gate --plan <plan>; use --confirm only after explicit user approval.
- Start or continue one governed session. For an Action-equivalent write such as
session start, first inspect the approvalRequired response, then re-run with --confirm only after the required approval. Bind the chosen route explicitly when ambiguity remains.
- Implement only the confirmed slice. Mutating project commands still require the route's approval and isolation rules; this skill never supplies a bypass.
- Record real verification with
session verify --execute --confirm when policy permits. A claim-only verification is not equivalent evidence.
- Run
session complete-check, resolve required approval gates with session approve, then complete the session only when evidence passes.
- Run plan review and gate again, prepare
handoff, and use accept only after review findings are closed.
- When durable knowledge emerged, nominate it through the memory pipeline (
memory request, memory ingest) and let a human memory approve + memory book it into MEMORY.md. Never write MEMORY.md directly and never pass --yes on the agent side.
Evidence order: confirmed plan, route/session identity, changed-file scope, command exit evidence, ledger/timeline records, review findings, approval decision, handoff/acceptance record.
On failure, stop at the failing stage. Keep the session resumable, record the real negative evidence, update the plan Resume Checkpoint, and do not mark later stages complete. Corrupt or missing governance state is a blocker, never an empty state.
1---2name: amber-delivery3description: Govern a change from objective and plan through session evidence, approval, handoff, and acceptance.4---56# Governed Delivery78Use one lifecycle. Do not skip a gate because implementation already exists.9101. Read `AGENTS.md`, the operating manual, feature state, current plan, and active session state. Preserve pre-existing dirty files.112. Run `amber next --objective "<objective>" --target <repo>`. Treat the route suggestion as deterministic advice, not authorization.123. Ensure the feature and vertical-slice plan exist. Run `amber gate --plan <plan>`; use `--confirm` only after explicit user approval.134. Start or continue one governed session. For an Action-equivalent write such as `session start`, first inspect the `approvalRequired` response, then re-run with `--confirm` only after the required approval. Bind the chosen route explicitly when ambiguity remains.145. Implement only the confirmed slice. Mutating project commands still require the route's approval and isolation rules; this skill never supplies a bypass.156. Record real verification with `session verify --execute --confirm` when policy permits. A claim-only verification is not equivalent evidence.167. Run `session complete-check`, resolve required approval gates with `session approve`, then complete the session only when evidence passes.178. Run plan review and gate again, prepare `handoff`, and use `accept` only after review findings are closed.189. When durable knowledge emerged, nominate it through the memory pipeline (`memory request`, `memory ingest`) and let a human `memory approve` + `memory book` it into MEMORY.md. Never write MEMORY.md directly and never pass `--yes` on the agent side.1920Evidence order: confirmed plan, route/session identity, changed-file scope, command exit evidence, ledger/timeline records, review findings, approval decision, handoff/acceptance record.2122On failure, stop at the failing stage. Keep the session resumable, record the real negative evidence, update the plan Resume Checkpoint, and do not mark later stages complete. Corrupt or missing governance state is a blocker, never an empty state.