Repository navigation
chore(pm-dispatch): ADR cards dispatch at the contract-review tier, effort floor xhigh - #25780
Conversation
…ffort floor xhigh MANDATORY_TIER_GLOB_ROWS gains a docs/adr/** row (CONTRACT_REVIEW_TIER, oneLineExit: false) quoting the 2026-10-25 order; the tiering clause in execution-duties.md names docs/adr/** beside the protocol-semantic surface, with an xhigh effort floor, and closes its one-line exemption. tierLines no longer hard-codes the published catalog's ruling as the reason for every oneLineExit: false glob; the self-test pins the new row. Claude-Session: https://claude.ai/code/session_01X6Y7QshYEp9SD3ruEazFRS Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Inputs read: card #25729 body and all seven comments (triage 6392235918, claim 6396126096, surface amendment 6396153804, seat-2 claim 6396193561 and yield 6396249639, os-dev-report 6396446257, re-posted claim 6396460178); PR #25780 body, file list (4 files, +33/−11) and net diff; the 58 check-runs on this head. Head unchanged at review time. PR is draft, auto-merge unarmed, labels ① Derived judgments
② Semver levelClause-②: no — correct. ③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
席位核对 · ACCEPT ·
|
…1, WIP) Brings the branch up to main abebc4e for the cutover sitting. Clean merge; main's #25789 (cli console.ts), #25757 (spec vitest.repo-tests.json) and #25780 (dispatch-gates) overlap files this PR touches and are re-checked after it. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0149BHSXfCdQywGaLdpRAtWe
Requested by Leehom · project thread
Fixes #25729
Clause-②: no
Metadata-protocol: none
What changes
The order quoted in the card body, verbatim (田騏, 2026-10-25T01:40:25Z): 「adr 这种任务都需要 fable extra,重新处理并立skills 卡片」.
MANDATORY_TIER_GLOB_ROWS(scripts/pm/dispatch-gates.data.mjs) gainsdocs/adr/**→CONTRACT_REVIEW_TIER, awhy:quoting the order, andoneLineExit: false(「都需要」 closes the one-line exit by path, the same shape as theskills/**row). The table docblock's provenance sentence and its one-line-exit paragraph name the new row.references/execution-duties.md(dispatch section, where tier and effort are chosen) now reads凡改协议语义面或 docs/adr/** 的卡一律契约复审档;后者 effort 下限 xhigh. A floor: difficulty may raise it, never lower it.docs/adr/**besideskills/**.tierLines(scripts/pm/dispatch-gates.mjs) — the refusal of the one-line exit hard-coded "(the published catalog, 2026-09-10 ruling)" as the reason for EVERYoneLineExit: falseglob, which would have printed the catalog's ruling for an ADR card. The existing line now points at the row's ownwhy, already printed on the hit line above it. The comment above it is updated to match.scripts/pm/dispatch-gates.self-test.mjs) — the pin "every entry exceptskills/**keepsoneLineExitundefined" is widened to the two barred globs; new cases: thedocs/adr/**row's shape, an ADR file mandated by that row alone,docs/NORTH-STAR.mdand adocs/adr-notes.mdprefix sibling NOT mandated, and the ADR rendering refusing the exit by name without borrowing the catalog's reason.node scripts/pm/dispatch-gates.mjs --tier docs/adr/0028-metadata-naming-and-namespace-isolation.mdnow answersModel tier — MANDATORY: … ⇢ 'docs/adr/**'with the one-line exit marked NOT available (onorigin/mainf0cf3383it answered "no path-derived mandate").Which side of the instrument freeze
references/instrument-discipline.mdfreezesdispatch-gates.mjs: no new gate, derivation line, ratchet,--tiermandated tier or constant.dispatch-gates.data.mjs, mandating the EXISTINGCONTRACT_REVIEW_TIER; no new constant, no new tier, no new printed line. Whether a new path row counts as a new "--tier强制档" under that wording is flagged for the reviewer below; the freeze also admits additions that quote the maintainer verbatim on the card, which the card body does.--tier.Line budget
references/execution-duties.md: 188 → 188 lines (ceiling 188). Both edits are in-place line rewrites, each ≤120 bytes (116 B and 110 B). Paid by deletion, not re-wrap: the line namingskills/**dropped the descriptors 「发布的」 and 「整根」 (the globskills/**already spells the whole root; the publish reason随 npx skills add 发运stays on the line and in theskills/**row'swhy).SKILL.md: untouched (319/319). The claim template'seffort: …按卡难度定slot is not edited; the floor lives where effort is chosen.Gates (local, at
76ffcc7)Derived with
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 39 commands, all run, all exit 0;--ranreconciliation:39 derived famil(ies) accounted for — 39 run, 0 NOT-MEASURED. Includespnpm check:pm-dispatch-gates(fast tier, 1917 cases pass),check:pm-skill-ratchet,check:pm-skill-id-lint,check:skill-frame-sync,check:pm-governed-merges,check:doc-authoring,check:nul-bytes.check:doc-formula-expressionsfirst answered exit 3 (prerequisite:@objectstack/lintunbuilt), re-run after building it: exit 0. Both-tier self-test result: see the report comment on the card. No changeset: the diff is.claude/**+scripts/pm/**, which publish nothing (skip-changeset).维护者速读(草稿)
docs/adr/**(写 ADR)的卡,派发时一律用最高档模型(契约复审档),effort 至少xhigh,且不再有"一行级小改可降档"的例外。派发工具--tier对 ADR 路径会直接印出"强制档"。.claude/**(受管面 Tier S),需契约复审档复核 PASS 在案后由席位落地;如认为调整派发档位规则需要您本人点头,请在此答复。Acceptance notes
MANDATORY_TIER_GLOB_ROWScount as a new "--tier强制档" underinstrument-discipline.md's freeze? The freeze admits additions that quote the maintainer verbatim on the card; whether 田騏's order is that word is triage's / the director seat's call, as the card's Boundary section says.maxstays 「凭维护者点名」 (the effort line right below clause ①); the ADR floor only raises the minimum toxhigh, it does not openmaxwithout that word.docs/adr/**owes an independent full review at CONTRACT_REVIEW_TIER before the seat's ACCEPT, not only the contract review #25765 (review depth for spec/skills/ADR) is out of scope here and remains open; re-dispatching already-merged ADR cards is out of scope.Implemented in the card thread, session
session_01X6Y7QshYEp9SD3ruEazFRS; claim 6396126096.Generated by Claude Code