Uh oh!
There was an error while loading. Please reload this page.
docs(pm): clause-② claim declaration line + gate honesty sentence; label descriptions to GitHub's 100-char cap - #9322
Merged
Conversation
…bel descriptions ≤100 chars The clause-② enqueue gate keyed on paths only, so a content-only clause-② card walked straight through it. Per the maintainer ruling (2026-08-17, options 2+4): every claim comment now carries a mandatory English machine-criterion line Clause-②: yes/no; a yes binds the enqueue gate (contract-review tier + needs:contract-review) regardless of paths, and SKILL.md now states the path trigger covers the path limb only — the gate must never be read as complete coverage. Piggybacks (both scoped on the card): the ratchet row records the seat ruling that re-wrap never funds lines (density optimization rides only net-content-reduction PRs); ensure-pm-labels.sh descriptions are cut to GitHub's 100-char hard cap, which || true was swallowing as silent 422s (needs:contract-review, pm:on-hold, pm:epic, target:vNN all affected). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TNzEetykdh7ceZGwuAPLq
os-zhuang
marked this pull request as ready for review
August 17, 2026 16:31
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#9211
Implements the maintainer ruling recorded on the card (2026-08-17, options 2+4 accepted verbatim: 「同意」), plus the two seat scope-supplement piggybacks recorded there.
Main deliverable 1 — mandatory claim declaration line
The
/pm-dispatchclaim-comment template (.claude/skills/pm-dispatch/SKILL.md) gains a mandatory machine-criterion line, always English, exactly two spellings:Clause-②: yes/Clause-②: no. Criterion: does the card change contract accept/reject behaviour or widen the public surface, judged from the card content. Ayesbinds the enqueue gate path-independently (contract-review tier +needs:contract-review); a wrongnobecomes an auditable false statement on the record instead of a silent gap. The os-dev agent definition carries no claim template (the claim comment is written by the PM seat), so the declaration lives at the template's single home — verified against the current tree.Main deliverable 2 — honesty sentence
The enqueue-gate bullet (入队与落地) is restructured as two limbs — path limb (diff touches
packages/spec/src/**/ error-code ledger /*.zod.ts) and declaration limb (Clause-②: yes, path-independent) — and now states explicitly: the path trigger covers the path limb only; the content limb is carried by the declaration line; the gate must never be read as complete clause-② coverage.Piggyback 1 — re-wrap ruling at the ratchet clause (line-neutral)
One extension of the ratchet row in 机械守卫索引, no new line: re-wrap (merging wrapped lines) must not fund ratchet lines — the ratchet governs content volume, lines are its machine proxy, additions pay by deletion; density optimization rides only in net-content-reduction PRs. Seat ruling under maintainer delegation, recorded on the card.
Piggyback 2 —
scripts/pm/ensure-pm-labels.shdescriptions at the 100-char capGitHub hard-caps label descriptions at 100 characters;
gh label creategets HTTP 422 above it and the script's|| true(needed for idempotent reruns) swallows the failure — so an over-cap line means the label is NEVER created on a repo where it doesn't exist yet, and a rerun can never repair it (measured live onneeds:contract-review, ~145 chars). Fixed to the 97-char description matching the live label object the maintainer repaired by hand. The commissioned same-disease sweep found and fixed three more over-cap lines in the same file:pm:on-hold(107 → 97),pm:epic(132 → 83),target:$V(124 → 97 atv17). The script header now records the cap fact, and theneeds:contract-reviewcomment block gains the declaration limb so the script stays truthful about the label's trigger.Line budget (SKILL.md ceiling 682; headroom was 0)
Additions: +1 template line, +1 net line in the gate bullet (3 → 4 physical lines). Funded by content deletion, not re-wrap — every cut names where the surviving statement lives:
ls-remotebranch-discoverability rationale parenthetical (survives verbatim in AGENTS.md, Multi-agent discipline item 2, which SKILL.md defers to) and compressed the atomicity restatement to 「限流不拆原子对」 (the atomic pair is already stated in this section's own intro sentence).Result: 682/682, ratchet green, id-lint clean (no issue numbers in the added operative text). No semantic loss intended; each deleted spelling leaves the full statement at exactly one named location.
Tier derivation (clause ①, quoted verbatim from this tree)
Gates — union run at
cc3edea99(after the final commit)pnpm check:pm-skill-ratchet— PASS (SKILL.md 682 lines, ceiling 682)pnpm check:pm-skill-id-lint— PASS (9 files clean)pnpm check:skill-frame-sync— PASS;pnpm check:skill-frame-freshness— PASS (exit 0)pnpm check:doc-authoring— PASS (376 files clean)pnpm --filter @objectstack/lint run check:doc-formula-expressions— PASS (after building the lint dependency closure; the first run failed only on the fresh worktree's unbuilt@objectstack/formuladist)pnpm check:nul-bytes— PASS (6069 files scanned)bash -n scripts/pm/ensure-pm-labels.sh— PASS; all-dstrings re-measured ≤100 Unicode charsRe-derived with
node scripts/pm/dispatch-gates.mjsover the actual changed paths: the five named families above, nothing beyond the dispatch prompt's list.Landing discipline
This PR touches
.claude/skills/**— ADR-class per the skills ruling (maintainer 2026-08-11): it stays draft, is never made ready / queued / auto-merged by any AI seat, and hangs visibly for the maintainer's own merge.Generated by Claude Code