Skip to content

Commit 0b9e087

Browse files
committed
fix(pm): H9 classifies the Restart-when: value instead of testing its spelling
`hasFireableRestartWhen` asked whether some value did not begin with `manual`, so every shape but that one word read as fireable — including two measured live on one lane on one day: a value naming tracked repo paths (a file trigger, which is `Restart-touch:`'s key, and the unlock sweep fires only the `closed` form), and a value that is prose naming no issue, no tracked path and no runnable command (a `manual` in disguise, waiting on an actor nothing schedules). `classifyRestartWhen(value, isTracked)` sorts a value into six classes — manual / closed-ref / issue-ref / command / tracked-path / prose — and fireability is now membership in the three fireable ones. The two new unfireable classes produce H9 rows carrying their own remedy sentence. Report-only, and the boundary is exact: same `H9` code, same `state` band, no new exit code, no refusal, no state change; a completed sweep still exits 0. The class H9's header reserves for a ruling (an unreachable well-formed `closed` target) stays clean, and the ruling spelling the header advertises is classified before the two unfireable classes so it reads exactly as before. The tracked-file oracle now reads once BEFORE the sweep and the same reading answers for both H9's classifier and H17's trigger-file index, so no second tracker exists to drift from it. `isTracked` defaults to recognising nothing, which collapses tracked-path into prose — same verdict, a less specific row. Self-test 3559 -> 3606 cases, both directions per class, with the three live specimens pinned as literal strings. Claude-Session: https://claude.ai/code/session_01YKEjmbYNvYWJvWGSWx26zK Co-authored-by: Claude <noreply@anthropic.com>
1 parent 82cb69f commit 0b9e087

1 file changed

Lines changed: 311 additions & 26 deletions

File tree

0 commit comments

Comments
 (0)