Skip to content

Close C-71 — fixed by S1 this morning, filed Open all day - #205

Merged
Polichinel merged 1 commit into
developmentfrom
fix/close-c71-record
Aug 2, 2026
Merged

Polichinel merged 1 commit into
developmentfrom
fix/close-c71-record

Conversation

@Polichinel

Copy link
Copy Markdown
Collaborator

Housekeeping found while listing what remains open before S8.

C-71 was fixed by S1 (#182 / #193) this morning and the entry never moved. It sat under Open while eight further stories shipped — in the epic whose thesis is that a record should not outlive the thing it describes.

Verified: one logger.error(err_msg) in assert_env_declared, and test_every_entry_validator_logs_before_it_raises parametrises the ADR-008 obligation over both validators.

Why S2's guard did not catch it

By design, not by defect. It matches two declarative phrasings — closes when \tests/…`andMitigation — landed`. C-71's closing language is prose:

"It is a two-line change and the natural place to take it is S8 (#156, epic closeout)."

That is the false negative S2 deliberately accepted — "a guard that cries wolf gets deleted… false negatives are the accepted cost" — and the cost came due within hours of writing it.

The entry also pointed at #156, epic #148's closeout, which had already closed. A pointer to a finished story is how an item becomes nobody's.

Not widening the guard

No regex reliably separates "this entry describes work that is done" from prose, and a guard that guesses is one that gets deleted. The real gap is process: #182 was closed without disposing of the entry it named in the same change.

The generalisable rule — a story that names a register entry disposes of it in the same PR — goes to S9's ADR question, alongside the CIC lagging three consecutive stories. Both are the same shape: a record updated by memory rather than by the change that invalidates it.

Register: 74 concerns, 16 open, 58 resolved.

🤖 Generated with Claude Code

…l day

assert_env_declared has logged before raising since #193. The entry stayed under
Open while eight further stories shipped, in the epic whose entire thesis is that
a record should not outlive the thing it describes.

S2's guard did not catch it, and that is by design rather than by defect: it
matches two declarative phrasings, and this entry's closing language is prose —
"a two-line change; the natural place to take it is S8". That is the false
negative S2 deliberately accepted, and the cost came due within hours.

Widening the guard would be the wrong fix; no regex separates "describes work that
is done" from prose. The gap is that #182 was closed without disposing of the
entry it named in the same change. The generalisable rule — a story that names a
register entry disposes of it in the same PR — goes to S9's ADR question alongside
the CIC lagging three consecutive stories. Both are records updated by memory
rather than by the change that invalidates them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Polichinel
Polichinel merged commit 729868a into development Aug 2, 2026
4 checks passed
@Polichinel
Polichinel deleted the fix/close-c71-record branch August 2, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant