PLAN — Task-list field discipline (ID-34.4)
PLAN — Task-list field discipline (ID-34.4)
Section titled “PLAN — Task-list field discipline (ID-34.4)”Task: ID-34. This Subtask: {34.4} PLAN — decompose into implementation Subtasks. Predecessors: RESEARCH, PRODUCT, TECH.
Four implementation Subtasks {34.5}–{34.8}, sibling-only deps. The sweep ({34.8}) is the
lowest-priority, integration-sensitive piece and is gated behind an OQ-pending.md to the
parent (4 terminals share task-list.json).
Subtask records (to splice into ID-34 subtasks[])
Section titled “Subtask records (to splice into ID-34 subtasks[])”{34.5} — Author the canonical discipline doc + inventory entry
Section titled “{34.5} — Author the canonical discipline doc + inventory entry”- deps: [] · PRODUCT inv: 1, 2, 3, 4, 5, 6, 7
- ALLOWED files:
docs/reference/task-list-discipline.md(new),docs/reference/documentation-inventory.md - details: Author
docs/reference/task-list-discipline.mdpublishing the per-field table (PRODUCT §2), the canonical-ref-vs-traceability boundary (“would-it-survive-the-task” test, RESEARCH §3), and ≥3 worked examples from the live ledger (ID-28/ID-29 description drift; a goodcross_doc_linkspointer example). Cross-linktaskmaster-schema-reference.mdlib/validation/task-list-schema.ts. Register one entry indocumentation-inventory.md.
- testStrategy: Doc exists with the full per-field table + boundary rule + ≥3 examples; documentation-inventory grep finds the new entry.
{34.6} — Soft-warning extension to parseTaskListWithWarnings + test
Section titled “{34.6} — Soft-warning extension to parseTaskListWithWarnings + test”- deps: [5] · PRODUCT inv: 8, 10, 11
- ALLOWED files:
lib/validation/task-list-schema.ts,__tests__/lib/validation/task-list-discipline-warnings.test.ts(new) - details: Add a
FIELD_BUDGETSconst + per-Task/per-Subtask budget scan insideparseTaskListWithWarnings(TECH §3), emittingTaskListWarningentries that name the id, field, and measured-vs-budget chars. NO schema.max(). Warning logic stays in the function body (vendor-drift safe). Test: an over-budget fixture parses without throwing and yields the expected warnings; the existing 25-Subtask-ceiling warning still fires. - testStrategy:
bun run teston the new test green; over-budget fixture warns not throws;git diffshows no.max(added to any text field.
{34.7} — Cite the discipline doc from the 3 repo-local skills
Section titled “{34.7} — Cite the discipline doc from the 3 repo-local skills”- deps: [5] · PRODUCT inv: 9
- ALLOWED files:
.claude/skills/workflow-orchestration/SKILL.md,.claude/skills/write-product-spec/SKILL.md,.claude/skills/write-tech-spec/SKILL.md - details: Via the update-skill skill (workflow-security hook may block the first raw
.claude/skills/edit once — retry). workflow-orchestration: add a canonical-doc pointer to## Ledger field-discipline+ align budgets. write-product-spec / write-tech-spec: at## Keep the spec current, add the “rationale lives in the spec; task-list description points via cross_doc_links” rule + doc link. Excludes the globalplanning-and-task-breakdown(OQ-34-5 — uncommittable; deferred to parent). - testStrategy: grep each of the 3 SKILL.md for the discipline-doc path; all 3 match.
{34.8} — Retroactive description sweep (LOWEST priority; OQ-first)
Section titled “{34.8} — Retroactive description sweep (LOWEST priority; OQ-first)”- deps: [5, 6, 7] · PRODUCT inv: 12, 13
- ALLOWED files:
docs/reference/task-list.json(broad), plusdocs/specs/**/docs/research/**for relocated rationale targets - details: FIRST action: write/append
OQ-pending.mdto the parent requesting a sequencing slot — this is a broadtask-list.jsonedit and 4 terminals share the file. Do NOT begin the rewrite until the parent confirms sequencing. Then relocate over-budget content per PRODUCT §4 (rationale →docs/+cross_doc_linkspointer; narrative → Subtaskdetailsjournal; trimstatus_note/testStrategy). Relocate-not-delete; spot- check recoverability. Target priority order: the 10 descriptions >2500, then >1500, then status_notes >300; subtask-level cosmetic trims last/optional. - testStrategy: Post-sweep, re-run the field-length audit — targeted Tasks under budget
(or warnings reduced); each removed fact reachable via its new
cross_doc_linkstarget;parseTaskListWithWarningswarning count drops.
Sequencing & parallelism
Section titled “Sequencing & parallelism”- {34.5} first (doc is the reference everything else points at).
- {34.6} and {34.7} parallel after {34.5} (disjoint file sets: schema+test vs skill bodies).
- {34.8} last, serialised, parent-gated (shared
task-list.json).
- Shared-file contention on {34.8} — mitigated by the OQ-first gate.
- Global-skill gap (OQ-34-5) — planning-and-task-breakdown amendment deferred to parent; does not block ID-34 close or ID-35.
- Vendor-drift false-positive — mitigated by keeping the warning in the function body (TECH §3).