T-C83H-leaf-parent-readiness-exemption
Status: closed/superseded · Impact: medium · Complexity: small
The implementation-ready contract now states it governs leaves — a task with children is an organizational rollup and the contract’s sections are category errors for it. Nothing in code implements that: run ensure-ready against a parent today and it fails on Files-to-touch grounds. Make the gates skip rollups.
| Location | Role today |
|---|---|
apps/sdlc/lib/model/entities/task/implementation-ready.md | Carries the “contract governs leaves” scope statement; no code reads it. |
apps/sdlc/lib/model/entities/task/ops/ | gap-report (the deterministic composite) evaluates every task uniformly; no children check. |
apps/sdlc/skills/task-ensure-ready/SKILL.md | The gate procedure; assumes every input is a leaf. |
Proposed
Section titled “Proposed”gap-report detects a rollup (any task naming the input in
parent_key, derived via the corpus loader) and returns a distinct
rollup verdict instead of gaps. The ensure-ready skill surfaces it
with a slug-namespaced ENSURE-READY-ROLLUP: marker and exits
without mutating the file — no stamp, no downshift.
Approach
Section titled “Approach”- Add a children lookup (corpus scan on
parent_key) togap-report; emit arollup: truefield and suppress leaf-contract gap evaluation. - Branch on it in the ensure-ready skill: report, exit, mutate nothing.
- Tests: parent with one child skips; the same task with the child closed still skips (rollup-ness is structural, not status-dependent); a leaf is unaffected.
Files to touch
Section titled “Files to touch”| Location | Kind | Change |
|---|---|---|
apps/sdlc/lib/model/entities/task/ops/ | modify | Children check + rollup verdict in the gap-report composite. |
apps/sdlc/skills/task-ensure-ready/SKILL.md | modify | Rollup branch + marker. |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: ensure-ready against a task with children exits with the rollup marker and leaves frontmatter untouched.
- AC-2:
gap-report --output jsoncarries the rollup verdict distinctly fromhas_gaps. - AC-3: Leaf behavior is unchanged.
Out of scope
Section titled “Out of scope”- A rollup body contract (rollup criteria validation) — earn it when a consumer needs one.
- Orchestrator leaf-only selection — T-JOXA-task-kind-field-and-leaf-dispatch.
Dependencies
Section titled “Dependencies”- none
Discovery context
Section titled “Discovery context”- Follow-up to the implementation-ready scope amendment (PR #1123).