phase-contractlisted
Install: claude install-skill gtrabanco/agentic-workflow
# Phase Contract (internal)
The one authoritative owner of phase shape for this workflow. Planners lint
every phase they emit against the eight rules below; `execute-phase` re-checks
the same rules before any edit. Nothing else may define what a valid phase is.
## When to use
- `plan-feature-scaffold` — lint every phase of a feature plan before emission.
- `plan-fix` — lint every phase of a fix SPEC before commit.
- `execute-phase` — phase-lint pre-flight guard before editing a phase.
- Templates store the contract version + fingerprint + lint result, never the
eight rules (they point here).
## The eight phase-lint rules
Every implementation phase must pass all 8 boxes before it is emitted (planner
skills) or executed (`execute-phase` pre-flight). Fail-closed: any unticked box
blocks emission/execution until the phase is re-cut or split.
1. **Title names ONE deliverable** — FAIL if it joins nouns with `+`, `,`, `&`,
`and`/`y`, or `/`. Sole authorized exception: the templates' literal closing
title `Hardening & PR` (`docs/features/_TEMPLATE/SPEC.md`,
`docs/fix/_TEMPLATE/SPEC.md`) is kept verbatim — its `&` is a *normalization
separator*, not a deliverable joiner, and its title-deliverable normalizes to
`hardening-pr`. Any other `&`-joined title still FAILs.
2. **One declared layer** — each phase declares exactly one of the fixed enum
`schema/db | domain | api | ui | config/infra | docs | hardening | close-out`;
FAIL if any task's target file belong