Skip to content

docs(qa): a verification re-run files no qa-run record; sweeps still file one per run - #24302

Merged
objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-24173-verification-rerun-docs
Oct 18, 2026
Merged

objectstack-fleet[bot] merged 1 commit into
mainfrom
claude/issue-24173-verification-rerun-docs

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #24173
Clause-②: no

Docs-only follow-up to maintainer ruling C on #24127 (ruling record 6230593290, the maintainer's choice verbatim: 「C 有问题才开卡 (Recommended)」). The checklist-test skill half merged as b0fe9fad47 (#24172). Three domain:devx documents that the skill tells its runner to read first still said that every completed run files a qa-run issue. A runner that obeyed them would file the record the ruling says not to file.

What changes (three record-filing sentences, nothing else in those files)

File Before After
docs/qa/platform-checklist/RUNNER.md (Run records, first paragraph) 「Every completed run — pass or fail alike — files one GitHub issue …」 Every completed sweep run (a release candidate, an area or all run, or a maintainer-named target) files one qa-run issue. A verification re-run files none: a run whose trigger is the same PR's ledger edit of that item. Its per-item verdict table goes in the PR body, and the item's history row carries the PR as its ref. A partial / blocked gap goes in the PR body and in fixtures.knownGaps. A product-defect fail is still extracted as its own card, pointing at the PR. A stale clause is fixed in the same diff. The sentence points at .claude/skills/checklist-test/SKILL.md §5, 「验证重测」.
docs/qa/platform-checklist/runs/README.md L11–12 「every completed run files one qa-run GitHub issue」 Every completed sweep run (same three kinds) files one. A verification re-run files none: its evidence is the PR body and the item's history row, and a partial / blocked gap also goes in fixtures.knownGaps. It defers to RUNNER.md, Run records, for the full exception. The list lead-in becomes "A sweep's record:".
docs/qa/platform-checklist/README.md (How a release sweep works) 「every run files one qa-run GitHub issue」 「every sweep run files one」, plus one sentence after it: a verification re-run (triggered by the same PR's ledger edit of that item) files no record, and its evidence is the PR body and the item's history row (RUNNER.md, Run records).

Unchanged, per the card's boundary: RUNNER.md's title grammar (「The record title」), its label discipline (qa-run and nothing else) and its extraction obligation section. No gate is added.

Agreement with the merged skill text (acceptance 1)

Each clause of the skill's paragraph at origin/main d537a318b3 (.claude/skills/checklist-test/SKILL.md L223–225, §5), set against RUNNER.md's new sentence:

Skill clause RUNNER.md
由同一 PR 对该项的清单编辑(§3)引发,⛔ 不立 qa-run 记录 "A verification re-run files none — a run whose trigger is the same PR's ledger edit of that item"
逐项判定表进 PR 正文 "Its per-item verdict table goes in the PR body"
该项 history 行的 ref 指向该 PR "the item's history row carries the PR as its ref"
partial/blocked 的缺口进 PR 正文与 fixtures.knownGaps "a partial or blocked gap goes in the PR body and the item's fixtures.knownGaps"
产品缺陷 fail 照常抽卡、溯源指向该 PR "a product-defect fail is still extracted as its own card, pointing at the PR"
条款过期在同一 diff 修 "a stale clause is fixed in the same diff"
§4: 整轮运行(发版候选、区或 all、维护者点名目标)恰好立一张 "Every completed sweep run (a release candidate, an area or all run, or a maintainer-named target) … files one GitHub issue"

Premise re-check (on origin/main d537a318b3, with controls)

  • RUNNER.md 「pass or fail alike」 → 1 hit (L460). Control 「The record title」 → 1 hit.
  • runs/README.md 「every completed run files one」 → 1 hit (L11). Control qa-run → 2 hits.
  • README.md 「every run files」 → 1 hit (L466). Control history → 7 hits.
  • The last commit to touch the three files is c40506aac (docs(qa): RUNNER.md reads the connector self-URL from /meta/connector and states the scheduled-work switch #24156). Nothing is newer: history was deepened 60 commits past the shallow boundary to read this.
  • Line-number references into these files elsewhere in the tree: none found (git grep for RUNNER.md: / #L forms). Pins quoting the three old sentences outside these files: none found (git grep exit 1; control qa-run hits in scripts/qa/qa-rollup.mjs).

Gates (local, all run at head 27ab96524, exit captured before any pipe)

The list is derived by node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack from the actual diff: 13 families, plus the watchdog that the card's acceptance names.

  • node scripts/check-ci-filter-parity.mjs: exit 0
  • node scripts/check-closing-keyword-parity.mjs: exit 0. --self-test: exit 0
  • node scripts/check-comment-mask-corpus.mjs: exit 0 (9472 files, 0 disagree)
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions: exit 0
    • The first attempt exited 3 (prerequisite not met: lint/formula not built). That is not a measurement. Built under the shared lock (turbo run build --filter=@objectstack/formula --filter=@objectstack/lint, 4/4 cached), then re-ran.
  • pnpm check:cross-package-test-inputs: exit 0
  • pnpm check:doc-authoring: exit 0
  • pnpm check:driver-memory-census: exit 0
  • pnpm check:gitlink-declared: exit 0
  • pnpm check:nul-bytes: exit 0. A separate control-byte scan of the three files found none.
  • pnpm check:platform-checklist: exit 0 (16 areas, 327 items; traps 19 documented, 19 in use)
  • pnpm check:refd-timer-probe: exit 0
  • pnpm check:watch-hint-literal: exit 0
  • node scripts/check-platform-checklist-watchdog.mjs: exit 0
  • dispatch-gates --ran reconciliation: "13 derived, 13 run, 0 NOT-MEASURED, 0 UNRUN". All 13 carry an exit code, so the zero is derived from them. The watchdog is recorded as outside the derivation.

No tests or ablation: this is a docs-only diff with no tested behaviour. Families that CI alone runs are read from this PR's check-runs.

Changeset

skip-changeset, measured. docs/qa/** sits at the repo root. The root package.json is private: true, and no package manifest references platform-checklist. Control: git grep '"files"' over packages/*/package.json hits 74 manifests. Nothing in this diff ships in any published tarball.

Acceptance notes

  • Ruling item 1's letter reads "files no qa-run record when every clause passes" and then covers partial / blocked and the two kinds of fail one by one. The merged skill states the no-record rule for every verification re-run, with the product-defect fail going to a card that points at the PR. These docs follow the merged skill text, as acceptance 1 requires.
  • README.md and runs/README.md defer to RUNNER.md for the full exception instead of restating all of it. RUNNER.md points at the skill's 「验证重测」 paragraph.

Generated by Claude Code

…file one per run

RUNNER.md, README.md and runs/README.md still said every completed run
files a qa-run issue. Maintainer ruling C (record 6230593290) exempts a
verification re-run, a run whose trigger is the same PR's ledger edit of
that item: no record, its per-item table in the PR body, the item's
history row naming the PR, a partial/blocked gap also in
fixtures.knownGaps. Each of the three record-filing sentences now scopes
the one-record rule to sweep runs (release candidate, area or all run,
maintainer-named target) and states the exception, in agreement with the
checklist-test skill's verification re-run paragraph (section 5).

Title grammar, label discipline and extraction obligation unchanged.

Claude-Session: https://claude.ai/code/session_01VwoC2RxFfgzY2eXuC7Xo6g
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 18, 2026
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Oct 18, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 · ACCEPT: PR #24302 at 27ab965249 (#24173)

domain:devx seat 1 (#6023) · sunhaolin · session_01VwoC2RxFfgzY2eXuC7Xo6g · review of record, written 2026-10-18T10:05Z

Checked against GitHub and origin/main, not against the report.

Checklist:

  • Shape: draft, base main. The first line is Fixes #24173, then a line-initial Clause-②: no. A scan of the whole body finds no other closing keyword next to an issue number ([Decision] checklist-test files one open qa-run issue per re-run: 40 of 42 open qa-run issues are re-runs that verified ledger edits. Keep, one record per batch, or file only on a problem? #24127, docs(checklist-test): a verification re-run files no qa-run record; sweeps still file one per run #24172 and docs(qa): RUNNER.md reads the connector self-URL from /meta/connector and states the scheduled-work switch #24156 appear in prose only).
  • Scope: 3 files, +20 / −7, exactly claim 6248328513's surface (docs/qa/platform-checklist/{RUNNER.md,README.md,runs/README.md}). No content/docs/releases/ change. check-governed-merges --pr 24302: NOT governed, 27 changed lines.
  • Changeset: skip-changeset is on the PR. docs/qa/** ships in no package, and the root package.json is private. No .changeset/*.md is touched.
  • Review route: none of the contract-review faces is touched (no spec, no governed text, no Clause-②: yes), so the review is CI plus this seat's reading. No second agent.
  • Sentences checked against the merged skill (.claude/skills/checklist-test/SKILL.md on origin/main d537a318b3, §4 and the §5 「验证重测」 paragraph):
    • RUNNER.md, Run records: "Every completed sweep run (a release candidate, an area or all run, or a maintainer-named target) … files one GitHub issue" matches §4's 「整轮运行(发版候选、区或 all、维护者点名目标)…恰好立一张」. "A verification re-run files none — a run whose trigger is the same PR's ledger edit of that item", the PR-body table, the history row's ref, the partial/blocked gap in fixtures.knownGaps, the product-defect fail extracted with provenance to the PR, and the stale clause fixed in the same diff: each matches a clause of §5, one for one.
    • runs/README.md: the lead-in is narrowed to sweep runs, and the exception defers to RUNNER.md. Consistent with the above.
    • README.md, release sweep: "every sweep run files", and one added sentence pointing at RUNNER.md, Run records. Consistent with the above.
    • The card's boundary holds: the title grammar, the qa-run-only label discipline and the extraction-obligation section are untouched.
  • Ruling C (6230593290), items 1–2: the docs say what the ruling letter says, as the skill states it.
  • Gates at head 27ab965249, read at this write: 23 success, 11 skipped, 0 red. 6 still in progress: Lint · repo & tooling gates, Lint · docs & code guards, Lint · CI, release & engine gates, Type Check · consumer gates, Type Check · source gates, Test Core (1/6). The dev's 13-family local union plus the watchdog all exit 0, at the same head. Landing waits on every check reading green.

Accepted deviations: none. The dev noted that it deepened the shared shallow history (additive); no effect on the tree.

Out of scope: none reported, none found.

Landing: once every check on this head is green, pr_ready + automerge_enable through the relay. The card closes on the merge via Fixes #24173.


Generated by Claude Code

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

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants