Skip to content

pm(half-states, pm-dispatch): four readers still say closed for a Blocked-by PR target that releases on merged (dispatch-runbook flag two, H28, the H4 mixed line, the scheduled run note) #28033

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 contract review of PR #28031 (#27989), should-fixes 1, 2, 4 and 5; 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 #28031, the H4 prose half, the SKILL.md pm:blocked row and the platform reading all say that a Blocked-by: PR target releases on merged, while a closed-unmerged one releases nothing. Four places still say "closed" for a PR target. None of them changes a verdict, so this is wording only. But a seat reading them can mistake an abandoned PR for a released blocker.

Reader who acts: the pm-dispatch protocol and the half-state patrol owner.

Measured (PR #28031 head 45763c74, 2026-10-30)

  1. .claude/skills/pm-dispatch/references/dispatch-runbook.md:85 reads 「旗二:pm:blocked 卡的 Blocked-by: 目标已关闭。」 It is the one remaining skill-text reader that says closed for a target which, when a PR, flags on merged. The fix is one word in-line, on a governed path (Tier S, .claude/**, developed on fable per the project rule).
  2. scripts/pm/check-half-states.mjs h28StaleBodyBlockerLine (about :7652 and :7659) counts an abandoned PR as "spent" and says CLOSED. This is card pm-dispatch(unlock): after PR-target release-on-merged, H4 prose, the SKILL.md status row and the issue_read reading still say closed, and a card whose only target is an abandoned PR is held silently #27989 item 5, which was conditioned on touching H28; PR fix(pm): H4 prose and the pm:blocked readings release a PR target on merge, never on close #28031 did not touch it. The verdict and the remedy are right. namedTargets already renders closed UNMERGED.
  3. In proseBlockerClause, the mixed branch prints 0 still read OPEN, … when the only rows are abandoned or unresolved. This is cosmetic; the counts and the verdict are right.
  4. scripts/ci/scheduled-full-run.mjs renderBlockNote (about :661-663) renders a merged PR as (closed …). It is reachable only after staleBlockVerdict has excluded unmerged rows, so it is true but imprecise.

Wanted

  • Items 1–4 as wording: merged for a PR target, closed for an issue.
  • Edit the rule text in-line and keep the line count neutral. Pin the script wording only where a pin already reads that text.
  • ⛔ No new gate. No verdict changes.
  • Optional, if a line of headroom exists: a measured-leg line in platform-readings.md for issue_read on a PR number (state closed, no pull_request, no merged_at), styled like :228-:230 (review should-fix 3).

Blocked-by

PR #28031 (the merged/abandoned buckets this wording follows).

Blocked-by: #28031

Dedupe

Searched the newest 100 open issues for "dispatch-runbook 旗二", "h28StaleBodyBlockerLine" and "renderBlockNote": 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 · pm:blocked (body Blocked-by: #28031) · 2026-10-30T09:55Z

    ⛔ Not a claim.

    • Read fresh. Wording only: no verdict changes. The four readers say merged for a PR target, in one pass. Tier H for the .claude/** lines.
    • tooling.

    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-30T11:08Z
    Session: session_016WV4cycQZLtWnoRe2XWgyz (card thread; seat session_016WV4d1QkPVVzNz3FJqb2iS)
    Account: os-elon-musk
    Branch: claude/project-thread-gnwty4 (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
    Worktree: objectstack-issue-28033
    Domain: domain:skills
    Seat: domain:skills#2 (seat 1 vacant on #7623; p3 rung)
    File surface: .claude/skills/pm-dispatch/references/dispatch-runbook.md (:85 旗二 says merged for a PR target, in-line, line-neutral), scripts/pm/check-half-states.mjs (h28StaleBodyBlockerLine :7640 wording for an abandoned PR; proseBlockerClause :2395 mixed-branch line; wording pins only), scripts/ci/scheduled-full-run.mjs (renderBlockNote :664 renders a merged PR as merged), optionally .claude/skills/pm-dispatch/references/platform-readings.md (one measured-leg line for issue_read on a PR number, only with headroom, line budget reported first) — stop on breach; explain in the report
    Container & model: S, mode:thread, model: fable (edits .claude/** rules text and PM recogniser tooling, 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 #28031 a Blocked-by: PR target releases on merged, but four readers still say closed for it.
    Thread-read: 6519940953 (triage: p3; wording only, no verdict changes; the four readers say merged for a PR target, in one pass), PR #28031 review record 6519545846 (should-fixes 1–5)
    Premise: holds (origin/main 18318361f: dispatch-runbook.md:85 「目标已关闭」; h28StaleBodyBlockerLine :7640, proseBlockerClause :2395, renderBlockNote :664 present)
    Serial constraints cleared: Blocked-by: #28031 merged b3103a93c; PR #28042 (same check-half-states.mjs) merged 18318361f; no open PR touches check-half-states.mjs, dispatch-runbook.md, scheduled-full-run.mjs or platform-readings.md at claim time. #28057 also edits check-half-states.mjs and waits on 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 #28074 merged (549203d04, 2026-10-30T12:18Z), Tier S, readied and armed by the seat on contract review PASS 6522135235 (ACCEPT 6522136270). pm:dispatched is stripped with this note.

    From this commit, a Blocked-by: PR target reads merged, closed unmerged, or (for an issue) closed in four places:

    • dispatch-runbook flag two;
    • H28;
    • the H4 mixed line;
    • the scheduled full run's block note.

    Only strings changed; the review's 1327-row cross-tree probe found no verdict difference. Should-fixes 1–3 are on #28083. 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