Development record
A spec's Footprint packages line is reserved exactly as written. An entry carrying a note or prose therefore becomes a footprint path with that text in it. A build of spc-2610111627213138 would reserve internal/core/memnote (new). A build of spc-2610120941441282 would reserve internal/surface/cli (the pre-push hook's fixture tests), and its parenthetical containing a comma would split into the two entries scripts/cloud/connectors/claude (new and the host connector). Overlap compares paths segment by segment, and claim.ValidFootprintPath accepts spaces. So such an entry shares no path with the package it means, and the build does not hold that package against another build. Several open specs carry such entries, among them spc-2609221011151661, spc-2610111627213138 and spc-2610120941441282.
A spec's Footprint packages line is reserved exactly as written. An entry carrying a note or prose therefore becomes a footprint path with that text in it. A build of spc-2610111627213138 would reserve internal/core/memnote (new). A build of spc-2610120941441282 would reserve internal/surface/cli (the pre-push hook's fixture tests), and its parenthetical containing a comma would split into the two entries scripts/cloud/connectors/claude (new and the host connector). Overlap compares paths segment by segment, and claim.ValidFootprintPath accepts spaces. So such an entry shares no path with the package it means, and the build does not hold that package against another build. Several open specs carry such entries, among them spc-2609221011151661, spc-2610111627213138 and spc-2610120941441282.
Frontmatter
| id | iss-2610241549334990 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610241549334990-a-spec-s-footprint-packages-line-is.md
open on GitHub ↗ · commit history ↗
mentions4
- dcn-26102905183769042026-10-29 — Spec footprint entries (iss-2610241549334990): the comma split that respects parentheses lives in spec.ReadFootprint, the one parser every reader shares, so the readiness score's package count stops counting half a note as a package; the leading-path read and the prose refusal live in the build's specPackages. Grounds: one split rule for every reader, and the score's 100-divided-by-packages part was miscounting the same entries. An entry with whitespace is kept when it names something in the working tree (a real path with a space), checked only for a path that stays inside the tree. A prose entry excludes its intent from build next at the footprint check instead of aborting the pick, which mirrors how a spec with no footprint is excluded. The remedy's 'leading path' is read as the entry up to its trailing parenthetical, not its first word, since the remedy's own refusal clause presumes whitespace can remain. An entry is first read as written, and kept whole when that names something in the tree, so `docs/Archive (2019)` is not cut back to a different path; and a trailing parenthetical counts as a note only when a space sets it off, so a route-group path such as `app/(marketing)` stays whole (review finding). Of the three open specs whose entries were prose, two are rewritten with their paths alone in the same change; spc-2609221011151661 is left to the lane rewriting its line, and a build of it is refused, naming the entry, until that lands.
- spc-2609221011151661abcd-s-typed-judgements-can-run-through-a-decision-adapter
- spc-2610111627213138memory-recall
- spc-2610120941441282a-person-hands-an-item-from-their