Commit dcffe20
committed
fix(pm): the carry-over arm — a merge-forward's own paths are not a hand edit
The ruled criterion reads 'every touched path is a generated artefact OR
the merge commit's own carry-over from main'. Round 1 implemented only the
first arm, so a head-to-head diff read every path main carried over as
hand-written and the exception never fired on the loop the card measured.
The second arm, machine-read on committed trees: a path this pull request
never touched at EITHER head moved only because the base moved. The PR's
own delta is read once per head (merge-base + one name-only diff), which
is the same verdict as a per-path diff comparison at four calls instead
of two per path. A run naming no base ref is UNJUDGED, never clean.
The reference text returns to its ceiling: the exception compresses to one
line, and the duplicated-and-drifted --pair exit table retires to the
checker's own header, which is the authority on that detail.
Claude-Session: https://claude.ai/code/session_01Wnstp2kTth7sGXfr8fXypc
Co-authored-by: Claude <noreply@anthropic.com>1 parent 180ce09 commit dcffe20
3 files changed
Lines changed: 150 additions & 67 deletions
File tree
- .claude/skills/pm-dispatch/references
- scripts/pm
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
| 21 | + | |
23 | 22 | | |
24 | 23 | | |
25 | 24 | | |
| |||
42 | 41 | | |
43 | 42 | | |
44 | 43 | | |
45 | | - | |
46 | 44 | | |
47 | 45 | | |
48 | 46 | | |
| |||
0 commit comments