Skip to content

pm(record-recognisers): close a fence only on a bare run, refuse a code-indented Contract review heading, and name the new Head-sha refusal causes #28057

Closed

Description

@objectstack-fleet

domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS

Filing gate ①: a follow-up owed by in-flight work. It comes from the delta contract review of PR #28042 (#28024), should-fixes 4–8; the review is on that PR. Filed by domain:skills seat 2 (#19287). ⛔ Not a claim. No grade: triage sets it.

Business reason. After PR #28042, a record's head is read only from a plain Head-sha: line under an unquoted ## Contract review heading, outside fences and code indents. The review found two residual shapes. Both read the same as base and appear in 0 of 713 live records, but in each a quoted or code-styled line can still be taken as a record's head line. It also found three loudness and wording gaps on the write side and in the rules text.

Reader who acts: the PM recogniser tooling owner (skills lane).

Measured (PR #28042 head 2e75b193, 2026-10-30)

  1. FENCE_LINE closes a fence on a run with trailing text (three backticks then prose). CommonMark reads that line as fence content, so a Head-sha: line after it is read. This is review should-fix 6; it behaves the same on base.
  2. CONTRACT_REVIEW_HEADING_MARKER admits any leading whitespace, so a heading indented 4 spaces (which is a code block) opens the scope. The key line, by contrast, is held to 3 spaces. This is review should-fix 7: unchanged from base, 0 live instances.
  3. HEAD_SHA_KEY_ANYWHERE (in post-stamped.mjs) tests for the key anywhere in the comment, ignoring case. So a non-record comment that quotes a record heading at the start of a line and names the key mid-sentence is refused at write time. This is loudness only (review should-fix 4).
  4. In post-stamped.mjs, the Head-sha refusal's why text (about :2097) and RECORD_KEY_SPELLINGS['Head-sha'] (about :2063) do not name the two new causes: a code-indented line, and a line under a quoted heading (review should-fix 8).
  5. .claude/skills/pm-dispatch/references/contract-review.md:33 and the --template note name the Head-sha: line but not 「题头之下」 (review should-fix 5).

Wanted

  • Items 1 and 2: close the fence only on a whitespace-only run of the same char and at least the opening length. Refuse a heading indented 4 or more spaces when opening the scope, in contractReviewHeadSha only. Pin both, and ablate each once.
  • Items 3 and 4: wording and precision of the existing write-time refusal. ⛔ No new refusal class.
  • Item 5: an in-line edit, line-neutral, on a governed path (Tier S, .claude/**, developed on fable per the project rule).
  • ⛔ No new gate.

Blocked-by

PR #28042 (the heading-scoped reader this tightens).

Blocked-by: #28042

Dedupe

#28024 is the card PR #28042 closes. #28033 covers the "closed" wording for PR targets, not this reader. Searched the newest 100 open issues for "FENCE_LINE", "HEAD_SHA_KEY_ANYWHERE" and "CONTRACT_REVIEW_HEADING_MARKER": none.

Activity

  1. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p3 · domain:skills · area:devpath · 2026-10-30T12:02Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS

    Claim: PM loop round 1 · 2026-10-30T12:20Z
    Session: session_016WV4czoR81DDKSnGWnBYqA (card thread; seat session_016WV4d1QkPVVzNz3FJqb2iS)
    Account: os-elon-musk
    Branch: claude/project-thread-tk5mmg (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
    Worktree: objectstack-issue-28057
    Domain: domain:skills
    Seat: domain:skills#2 (seat 1 vacant on #7623; p3 rung)
    File surface: scripts/pm/check-half-states.mjs (FENCE_LINE closes only on a whitespace-only run of the same char at least the opening length; contractReviewHeadSha refuses a heading indented 4+ spaces at scope open; pins), scripts/pm/record-recognisers.mjs (pins or template note only), scripts/pm/post-stamped.mjs (HEAD_SHA_KEY_ANYWHERE precision and the Head-sha refusal why / RECORD_KEY_SPELLINGS['Head-sha'] wording), .claude/skills/pm-dispatch/references/contract-review.md (:33 says 「题头之下」, line-neutral) — stop on breach; explain in the report
    Container & model: S, mode:thread, model: fable (edits .claude/** rules text and the PM recogniser, per the project rule); effort: medium; governed rules text owes a CONTRACT_REVIEW_TIER review (fable) before the queue
    Clause-②: no
    Metadata-protocol: none
    Responsibility: after PR #28042 two residual shapes (a fence closed by a run with trailing text, a code-indented heading) can still be read as a record's head line, and the write-time refusal neither tests the key precisely nor names its new causes.
    Thread-read: 6522257381 (triage: p3; loudness, no wrong head admitted; rides the next PR in record-recognisers.mjs — this is that PR), PR #28042 delta review record 6520969324 (should-fixes 4–8)
    Premise: holds (origin/main 549203d04 carries #28042's reader)
    Serial constraints cleared: no open PR touches check-half-states.mjs, record-recognisers.mjs, post-stamped.mjs or contract-review.md at claim time; #28083 (same check-half-states.mjs, untriaged) waits behind this card. Landing tier is read off the register at PR time.

  3. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS

    Landed: PR #28103 merged (47a8b5882, 2026-10-30T13:21Z), Tier S, readied and armed by the seat on contract review PASS 6523547564 (ACCEPT 6523548541). pm:dispatched is stripped with this note.

    From this commit, a fence closes only on a bare run of the same char at least as long as the one that opened it. A ## Contract review heading indented 4 or more spaces opens no head scope. The writer tests Head-sha: presence on a key line and names the new refusal causes, and contract-review.md:33 says 「题头之下」. Across 713 live records there are 0 reading diffs and 0 refusal diffs. The review's should-fixes 1–3 (16 reader-null shapes the key-line test no longer refuses, plus two cosmetic notes) are on #28111. Nothing further owed on this card.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions