planning-files parser strictness: multi-line YAML reqs/files lists and name-less phase headings are missed #48
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence#48
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Severity: low · Area: planning-seam · surfaced in the post-v1.2.0 cross-model review sweep (bundled: two parser-strictness gaps in
planning-files.mjs, both latent — they under-read valid markdown/YAML rather than crash).1. Multi-line YAML
requirements:/files:lists read as emptycadence-core/bin/lib/planning-files.mjs:326(parsePlanRequirements) and:345(parsePlanFiles) match only an inline list:/^requirements:\s*\[(.*)\]/mand/^files:\s*\[(.*)\]/m. A plan written with a block YAML list —— has no
[...]on the heading line, so the parser returns zero. The plan then contributes no requirement coverage (weakeningaudit) and no declared files (weakening the parallel-safety overlap check), silently.2. A phase detail heading with no name is not cut
cadence-core/bin/lib/planning-files.mjs:403(cutPhaseDetail):new RegExp('^### Phase ${n}: .*$', 'm')requires a space after the colon. A heading written exactly### Phase 2:(colon, no trailing name) does not match, so on arenumber removethe section is left in the document instead of being cut.Fix direction
Accept a block YAML list form in
parsePlanRequirements/parsePlanFilesin addition to the inline[...]form; and relax thecutPhaseDetailheading match so a name-less### Phase N:heading is still recognized.