Commit 3f4bf6b
committed
fix(pm): a population declaration's reason is whole or the declaration is red
The three population markers in `scripts/pm/dispatch-gates.mjs` capture their
reason with `(\S.*)$` under the `m` flag, so the capture ends at the first
newline. A reason an author wraps across two or three comment lines was
captured as line one only, and no refusal ever asked whether it ended where the
author did: `wholeTreePopulationRefusal` checks that a reason EXISTS and that a
root walk BACKS it. The seat was handed a sentence that simply stops — and the
reason is the one thing a seat reads off that row.
The marker grammar now has one spelling (`populationMarkerPattern`), and
`populationReasonContinuation` reads, off the same text, the comment line that
continues a reason. A continued reason is refused by
`populationReasonCutRefusal`, which names the declaration, the file and the
line; the whole-tree and wide refusals delegate to it before the checks that
read the reason text, and the no-path renderer prints a cut declaration as
REFUSED rather than as the fragment it was cut down to.
Live derivation over the tree: 27 declarations, one of them cut —
`check:objectui-bump` reached the seat as "every path this file writes or
reads". Its comment is made whole on one line here, verbatim, so no refusal
lands red on main.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gqi43smmqjJ5sUrhfoPeKu1 parent 99fcb4a commit 3f4bf6b
2 files changed
Lines changed: 485 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
| 50 | + | |
57 | 51 | | |
58 | 52 | | |
59 | 53 | | |
| |||
0 commit comments