Package-ready report¶
Before opening a PR or handing off to /age, cook produces a package-ready report.
Cross-cutting house style and citation form: shared/formatting.md. This file owns the package-report shape; formatting.md owns the voice rules and the footnote primitive.
Output shape¶
## Cook Report โ <slug>
### Contract
- Behaviour: <one line>
- Non-goals: <list or "none">
- Quality gates: <commands>
### Files changed
- <path>: <one-line reason>
### Tests
- <command>: <pass | fail | skipped with reason>
### Risks
- <bullet โ known unknown, deferred decision, or anything you'd want a reviewer to look at>
### Self-eval
- [x] Cut wrote failing tests before production changes.
- [x] Cook made tests pass without speculative behaviour.
- [x] Taste-test passed.
- [x] Quality gates pass.
- [x] All changed files are intentional.
### Next step
- /press <slug> โ harden tests and check coverage
- /age <slug> โ review the diff
- /cure <slug> โ apply selected age findings (after /age)
Honesty rules¶
- Never claim green on partial work. If a test is skipped, list the command and the reason.
- Never hide a failed gate. If lint failed and you didn't fix it, the report says so and recommends a follow-up.
- Never claim "ready for /age" if any taste-test lens returned
reviseand you didn't address it. That's the cardinal sin.
Stop conditions¶
Cook stops (does not produce a "ready" report) when: - A spec decision was missing and the user has not answered. - Tests cannot be made to fail for the expected reason. - The two-round taste-test cap was hit and findings remain. - A quality gate fails and the fix is outside the cooked contract.
In each case, the report says "blocked" with the precise reason.