Repository navigation
docs(checklist-test): a verification re-run files no qa-run record; sweeps still file one per run - #24172
Conversation
…weeps still file one per run A run whose trigger is a ledger edit the same PR makes is a verification re-run, not a fourth retest trigger: it files no `qa-run` record whatever its outcome. Its per-item table goes in the PR body and the item's `history` row names the PR; a `partial` / `blocked` gap goes in the PR body and the item's `fixtures.knownGaps`; a product-defect `fail` is extracted as today with its source line naming the PR, and a stale-clause `fail` is fixed in the same diff. Sweeps (release candidate, area or `all`, a maintainer-named target) still file one record per run. Line-neutral (238/238): paid by deleting the label bullet's drift narrative (its labels kept in the prohibition list), the title bullet's restated fraction, and the opening paragraph's restated artefact list. Claude-Session: https://claude.ai/code/session_012PxNHU3dfov2hbpg9ycZ8q Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Read 2026-10-17T13:33Z in seat by ① Derived judgmentsThe accept-set change: governed rule text in one skill, no code, three places. Each judged against the ruling's letter (6230593290 items 1–3, which adopt 6229123659 items 1–4):
Ratchet. 238 → 238 lines ( Main drift. Base Value density (a skill loaded by every checklist runner): +4 lines of rule that remove a write per verification re-run and restore the one health signal §5 defines; the deletions remove a narrative and two restatements. Right. Check-runs on ② Semver level
③ Boundary flagsDev report 6234454492:
Reviewer's own flags: none. Implemented-by: VERDICT: PASS |
维护者速读改了什么: 为什么改:你在 #24127 裁了 C「有问题才开卡」(6230593290)。此前每次验证重测都开一张记录,一天几十张,「开着的 qa-run 数」失去健康指标的意义。 风险与代价(含回滚):读 席位意见:ACCEPT。逐句对照裁决三项核过(见上方 你要做的:无。 席位核对Seat Implemented-by:
|
Fixes #24127
Clause-②: no
Ruling-ref: 6230593290 (the maintainer's 「C 有问题才开卡 (Recommended)」, adopting the director's 口径 6229123659 items 1–4). Tier S governed surface (
.claude/**): this PR stays draft until its contract-review record.What this changes
One file,
.claude/skills/checklist-test/SKILL.md, in the three places the ruling names:all, maintainer-named target). It still files exactly oneqa-runrecord per run, pass or fail alike, and it names §5's verification re-run as the one run that files none. This is ruling item 2; RUNNER.md's title grammar is unchanged.qa-runrecord. The per-item table goes in the PR body, and the item'shistoryrow (ref) names the PR. Apartial/blockedgap goes in the PR body and in the item'sfixtures.knownGaps. A product-defectfailis extracted as today, its source line naming the PR. A stale-clausefailis fixed in the same diff. This is ruling item 1 with its sub-point.qa-run数 = 未清的收口债」 is unchanged. It becomes true again by construction.No gate, label or script is added.
Reader check (ruling item 3, the card's confidence gap)
Measured at
bd4276a91withgit grep -n qa-run, reading every non-markdown hit:scripts/qa/qa-rollup.mjsfetchesGET /issues?labels=qa-run&state=all(L762) and parses the canonical TITLE only (L269) into an area x latest-verdict x staleness matrix. It has no re-run category. A verification re-run that files no record is simply absent from it. Consequence, by design of the ruling: the roll-up's per-selector latest verdict is not refreshed by a verification re-run; that evidence lives in the item'shistoryrow and the PR body.scripts/pm/check-half-states.mjsL3608H13_EXEMPT_LABELSonly exemptsqa-runfrom the domain-without-pm-state flag. It counts nothing..claude/skills/pm-dispatch/references/triage-duties.mdL16 excludesqa-runfrom the sweep..claude/skills/pm-dispatch/references/lanes/skills.mdL11 says a qa-run record is a protocol carrier, not work. It counts nothing.qa-runner, a spec/core family name, not the label.No reader counts verification re-runs. The dispatch's RUNNER.md line numbers were stale: the record and label discipline sit at L460–L461 and L555 at
bd4276a91.Line budget
.claude/skills/checklist-test/SKILL.md: 238 → 238 lines (CEILINGS 238, headroom 0). Widest table row 221 → 221 (pin 221). No CEILINGS row moved, so no ruled raise is taken.Verification (HEAD
296f877d0)Local subset, derived by
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackafter the final commit (16 families), plus the two the dispatch named. Exit codes captured before any pipe:check:doc-formula-expressionsfirst exited 3 (PREREQUISITE NOT MET:@objectstack/formulaand@objectstack/lintwere unbuilt). It was re-run afterturbo run buildfor those two packages and exited 0. The exit 3 measured nothing.check:pm-skill-ratchet: 「.claude/skills/checklist-test/SKILL.md is 238 lines (ceiling 238; headroom 0)」 and 「widest table row is 221 bytes (pin 221; headroom 0)」.--ranreconciliation: 「16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero — all 16 recorded an exit code and none of them is 3)」.skip-changeset:.claude/**publishes nothing.Acceptance notes
domain:devxtext): three docs still say every completed run files a record.docs/qa/platform-checklist/RUNNER.mdL460–L461 says "Every completed run — pass or fail alike — files one GitHub issue as its durable record".docs/qa/platform-checklist/runs/README.mdL11 says "every completed run files oneqa-runGitHub issue".docs/qa/platform-checklist/README.mdL466–L467 says "every run files oneqa-runGitHub issue as its record". Each needs the verification re-run exception.维护者速读(草稿)
checklist-test技能一个文件。整轮测试(发版候选、整区或全量、你点名的目标)仍然每轮开一张qa-run记录。为验证清单修订而做的重测(验证重测)不再开记录:逐项结果写进 PR 正文,条目的 history 行指向这个 PR;没测全的缺口写进 PR 正文和条目的 knownGaps;真缺陷照常开缺陷卡。qa-run的工具(qa-rollup、分诊排除、半态检查)都已核过,没有一个统计验证重测,所以不受影响。代价是 qa-rollup 的「最新判定」不再反映验证重测,这部分证据在条目 history 和 PR 里。文件行数不变(238/238),不加门禁、标签或脚本。回滚就是还原这一个提交。RUNNER.md 等三份 devx 文档还写着「每次运行都开记录」,已作为范围外发现上报,本 PR 不改。Generated by Claude Code