Commit bc2bf01
pm-dispatch: make
* pm-dispatch: make `check-clause2-carriers` C4 read the live contract-review verdict dialect
C4 (the independence carrier) discriminated a verdict comment with
`VERDICT_MARKER` alone -- measured on the 2026-09-01 board, where a verdict
opened a fenced `VERDICT: PASS` block. Every verdict on the 2026-09-09 board is
written the other way: a `## Contract review` heading, the head as a code span,
`**Verdict: PASS WITH FINDINGS**` in bold. All four live specimens read `null`,
so C4 had no live population and `--pair` exit 0 said nothing about
independence for any pair reviewed in the current dialect.
Three halves, all measured offline against the live comment rows:
1. Recognition: `isVerdictComment` accepts EITHER the fenced marker OR H51's
heading plus `contractReviewHeadMatch` against the pair's head -- both
IMPORTED from `check-half-states.mjs`, the same two facts C6 already reuses,
so the two rows cannot disagree about what a verdict looks like. No regex for
the verdict WORD in either dialect.
2. Threads: C4 judges the card thread always and the PR thread when `gather`
already holds it (COMPLETED pairs). Measured 2026-09-10: all four live
verdicts sit on the PR thread and none of the three delivering cards carries
a `## Contract review` heading at all, so a card-only C4 stays silent however
good its discriminator is. A pending pair's PR-thread verdict is a declared
limit, not a bought read.
3. Value decoration: the key regexes tolerate `**Implemented-by:**` -- the
colon inside the bold -- but the value readers admitted a leading `**` only
with no space after it, so `- **Implemented-by:** `+backticked token read as
unreadable. Decoration is now stripped symmetrically; words are not, so
`branch `+token and prose values stay refused.
`Reviewed-by:` still admits a session only (2026-09-02 reading a, unchanged).
The live prose values therefore read `malformed`, which is the true reading of a
verdict written without its reviewer's session; the remedy is on the writing
side, and `references/contract-review.md` :35-:37 now name it -- the seat that
renders or ADOPTS the verdict writes its own session, and an adoption record
already carries one.
Self-test: C4 battery 52 -> 89 cases (390 -> 396 total), fixtures taken from the
live bodies, one per dialect. The C6 reference record's `Implemented-by:` value
is corrected to put its token first after the colon: written `branch `+token it
reads `malformed` the moment C4 can see the dialect, which is a real carrier
defect and belongs on the defective specimen, never on the reference one.
Claude-Session: https://claude.ai/code/session_01YKEjmbYNvYWJvWGSWx26zK
Co-authored-by: Claude <noreply@anthropic.com>
* pm-dispatch: keep the contract-review tier's model id out of C4's fixtures
`dispatch-gates --self-test` holds the tier constant's VALUE to exactly one
spelling under `.claude/skills/pm-dispatch` + `scripts/pm` -- the maintainer's
own rule, 「needs:fable-review 这个标签不好,下次模型升级怎么办」. The C4
fixtures added for the 2026-09-09 dialect quoted the model id out of the live
bodies (five sites), which reds that case.
The fixtures carry the SHAPE, not the id: a `Reviewed-by:` value that is prose
with no session token is what the reader is being pinned on, and the model name
is decoration. Importing the constant was tried and rejected -- it makes
`check:pm-clause2-carriers` name a path while its own marker declares
no-path-population, which reds a different case in the same self-test.
Claude-Session: https://claude.ai/code/session_01YKEjmbYNvYWJvWGSWx26zK
Co-authored-by: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>check-clause2-carriers C4 recognise the live contract-review verdict dialect, and name the session a reviewer writes (#17368)1 parent 76c9fab commit bc2bf01
2 files changed
Lines changed: 323 additions & 35 deletions
File tree
- .claude/skills/pm-dispatch/references
- scripts/pm
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
0 commit comments