milestone-prune reads only the first physical line of a wrapped requirement bullet #179

Closed
opened 2026-08-15 22:37:02 +00:00 by john · 1 comment
Owner

Hit live at the v3.3.0, v3.4.1 and v3.5.0 closes. Both halves of the transform are wrong for the same reason, and it fires on every close because requirement bullets in this repo wrap by default.

## Active removal

It removes each - **ID**: lead line and leaves every continuation line behind. At the v3.3.0 close the section came back holding 43 lines of orphaned prose fragments with no bullet over them. At the v3.5.0 close it left this:

  diff range with `{checked, categories, matches, inconclusive}` and ALWAYS
  writes that record, match or no match. Today `risk_surface` detection is

## Shipped archival

archiveRequirements builds each archived rows parenthetical summary from that same first line, so rows land truncated mid-sentence:

| CAP-01 (A bullet /cad-capture writes is reachable by /cad-plans) | 1 | Complete | v3.3.0 |
| RSK-01 (An executable risk-check seam under `cadence-core/bin/` answers a) | 1 | Complete | v3.5.0 |

Why it matters more than a formatting nit

lib/milestone-prune.mjss own header says these surgeries were made deterministic because every hand-performed version had "a recorded failure (a close that left the tree failing its own audit)". This is that exact failure class surviving inside the seam built to replace it, and it has now been hand-repaired at three consecutive closes.

Fix

A bullet-span read - lead line plus the following indented continuation lines - in both archiveRequirements and the ## Active removal, plus a fixture whose bullets wrap. The existing fixtures evidently do not.

Hit live at the v3.3.0, v3.4.1 and v3.5.0 closes. Both halves of the transform are wrong for the same reason, and it fires on **every** close because requirement bullets in this repo wrap by default. ### `## Active` removal It removes each `- **ID**:` lead line and leaves every continuation line behind. At the v3.3.0 close the section came back holding 43 lines of orphaned prose fragments with no bullet over them. At the v3.5.0 close it left this: ``` diff range with `{checked, categories, matches, inconclusive}` and ALWAYS writes that record, match or no match. Today `risk_surface` detection is ``` ### `## Shipped` archival `archiveRequirements` builds each archived rows parenthetical summary from that same first line, so rows land truncated mid-sentence: ``` | CAP-01 (A bullet /cad-capture writes is reachable by /cad-plans) | 1 | Complete | v3.3.0 | | RSK-01 (An executable risk-check seam under `cadence-core/bin/` answers a) | 1 | Complete | v3.5.0 | ``` ### Why it matters more than a formatting nit `lib/milestone-prune.mjs`s own header says these surgeries were made deterministic because every hand-performed version had "a recorded failure (a close that left the tree failing its own audit)". This is that exact failure class surviving inside the seam built to replace it, and it has now been hand-repaired at three consecutive closes. ### Fix A bullet-span read - lead line plus the following indented continuation lines - in both `archiveRequirements` and the `## Active` removal, plus a fixture whose bullets wrap. The existing fixtures evidently do not.
john added this to the v3.5.1 milestone 2026-08-15 22:37:02 +00:00
Author
Owner

Fixed in 71ec570 (fix(2-1): read the whole bullet span in both halves of archiveRequirements); shipped in v3.5.1. lib/milestone-prune.mjs pulls the bullet's whole span rather than its lead line (D-01).

Fixed in 71ec570 (`fix(2-1): read the whole bullet span in both halves of archiveRequirements`); shipped in v3.5.1. `lib/milestone-prune.mjs` pulls the bullet's whole span rather than its lead line (D-01).
john closed this issue 2026-08-18 00:20:28 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: crenshawdev/cadence-archived#179
No description provided.