Uh oh!
There was an error while loading. Please reload this page.
skills(checklist-test): write run close-out, supersede and re-test triggers into the skill - #9508
Merged
os-support-ai merged 2 commits intoAug 18, 2026
Conversation
…iggers into the skill (#9484) Four-way disposition for every fail, named partial gaps, the machine-greppable close-out lines, the QA-source traceability line, the supersede protocol and the three re-test triggers — all on existing carriers, zero new labels. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rn7aaamsR99FXRqLcpL99q
#9484) Review round: the close-out and traceability lines locate an item by the §0 bare id (area.item), matching the run record's per-clause table, the selector resolver and the QA-source lines already in the wild. Placeholders written without angle brackets, which the GitHub body writer strips. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rn7aaamsR99FXRqLcpL99q
hotlong
approved these changes
Aug 18, 2026
os-support-ai
marked this pull request as ready for review
August 18, 2026 06:17
os-support-ai
enabled auto-merge
August 18, 2026 06:17
Uh oh!
There was an error while loading. Please reload this page.
os-support-ai
deleted the
claude/issue-9484-checklist-test-closeout-process
branch
August 18, 2026 06:47
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#9484
Lands the run close-out and re-test process into
.claude/skills/checklist-test/SKILL.md, per the maintainer authorization quoted on the card (2026-08-18, 「同意你的落地动作」). Zero new labels — every state rides an existing carrier. ADR-class: draft PR, human merge; never flipped ready, queued or auto-merged.What landed
New section §5 收口 —— 一张
qa-run记录什么时候才算关闭, placed after §4 (the run-record filing section) and before Guardrails, written in the file's own register:fail, as a table judged on the record's own evidence: product defect (extract a standalone card — dup-check, repo where the fix lands, no pm labels, normal triage) / assertion defect (test-fix card in the repo owning the item) / stale spec (re-point card citing the ruling) / invalid pairing (ablockednote, no card). The four are stated as exhaustive: afailthat fits no cell means the judging is not finished.fail-derived assertion defect or stale spec gets its own card, while accuracy findings merely noticed during the run still park on the wave anchor per §4 / RUNNER. The divider is whether there is a red row someone owes green. Without it the two rules read as two answers to one question.partialcoverage gaps are named, never dropped — per-area pin-upgrade cards, or parked on the wave anchor.not-runis left to §4's existing completion criterion (the handover list) rather than restated.Extracted:/Parked-on:/Superseded-by:/Carried-forward:, one per line in the close-out comment, each with its field shape.QA-source:traceability on every extracted card — greppable, no label.not_plannedwithSuperseded-by:only after verdicts the new run did not re-derive are carried forward. The text says which line lands on which record (carry-forward on the new one, supersede on the old), since the protocol is unusable if that direction is left ambiguous.qa-runcount = outstanding close-out debt, same construction as the barefindingcount, with the explicit "never close records to make the number look better".Two merges rather than new rows, so the file gains no duplicate statement:
qa-runthrough close-out and closing) plus the observed drift shape —tests/tracking/bugadded to records after the fact;Durable process rules only: no wave ids, card counts or dates as rule content.
docs/qa/**is untouched — RUNNER.md owns "what to extract", this section owns "when a record is closed", and the RUNNER carve-out belongs to a different card.The item locator (review round, commit
315b57f5c)Item 2's
QA-source:line reached the card body with its placeholders stripped by the GitHub body sanitizer, so the three field names were reconstructed rather than read. Review corrected the middle field: it is the dottedarea.itembare id, not a bare item segment — the form the selector resolver already documents in §0 (platform-core.console-login), the form the run record's per-clause table locates items by, and the form the QA-source lines already in the wild use.Extracted:andCarried-forward:reuse the same locator, so all three greps hit each other.Both blocks now show placeholders without angle brackets, and §5 states why:
<plus a letter is eaten by the GitHub body writer, which would silently delete the traceability line these templates exist to produce. Placeholders are Chinese words; the real value is filled in directly.Verification — gate union re-run at the final commit,
git rev-parse --short HEAD=315b57f5cFamilies re-derived from the actual diff (
node scripts/pm/dispatch-gates.mjs, self-deriving its change set) — 4 matched, a subset of the dispatch list, nothing new; re-run in full after the review commit, not carried over from the first round:pnpm check:doc-authoring(+ self-test) — 377 files clean, no bare metadata literalspnpm --filter @objectstack/lint run check:doc-formula-expressions(+ self-test, 24 cases) — 22 record-scoped formula examples across 396 files / 1411 TS blocks clean, plus 9 spec TSDoc examples (built the@objectstack/lintdependency closure first in the fresh worktree)pnpm check:skill-frame-sync(+ self-test, 12 cases) — 4 copies structurally isomorphic, 3 axespnpm check:nul-bytes(+ self-test, 75 assertions) — 6136 text files clean, plus a direct control-byte scan of the edited filenode scripts/check-adr-merge-approval.mjs— HTTP 401 locally (no GitHub credentials in this container), expected; CI is the real readingcheck:pm-skill-ratchetdoes not cover this file — its ceilings are thepm-dispatchsurface plus.claude/agents/os-dev.md, read fromscripts/pm/check-skill-line-ratchet.mjsrather than recalled. Net +70/-1 lines.No changeset:
.claude/-only, releases nothing (skip-changeset).Generated by Claude Code