Plan frontmatter parsing lets plan-overlap clear two plans that collide #232
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
external-review
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
security
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence-archived#232
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?
Two defects in plan frontmatter parsing, both reproduced by execution against the
current tree. Filed 2026-08-08, archived unread in
.planning/CAPTURE.md,re-verified 2026-08-22.
Both undermine
plan-overlap's ability to prove file-list independence before aparallel dispatch, which is the check that decides whether two plans can run in
separate worktrees without colliding.
1. Frontmatter issues leak across keys
readFrontmatterList(lib/planning-files.mjs:2098-2101) returns thewhole-document
issuesarray fromparseFrontmatterregardless of which key thecaller asked for. Observed:
parsePlanFileson a document whosegoal:scalar isbacktick-wrapped returns a
backtick-wrapped-valueissue on thefiles:read,where nothing is wrong with the file list at all.
2. Markdown decoration other than a boundary backtick is not caught
parsePlanFiles('files:\n - **src/shared.rs**\n')returns{"files":["**src/shared.rs**"],"issues":[]}. The link form[src/shared.rs](src/shared.rs)is likewise clean.plan-overlapcomparesexact strings, so a decorated path in one plan will not match a sibling plan's
plain
src/shared.rs, and two plans that DO collide are cleared to run inparallel.
The existing
backtick-wrapped-valuedetection only fires on a boundarybacktick, so it catches the narrowest case and misses the rest.