build-review-test-quality
Judge whether criterion-bound changed tests can pass without the behavior they claim to cover.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-14
- Stars
- ★ 7
- Forks
- 2
01 前言 Front Matter
- name
- build-review-test-quality
- phase
- build
- description
- Judge whether criterion-bound changed tests can pass without the behavior they claim to cover.
- enforcement
- gating
- disable-model-invocation
- true
02 资源文件 1
- 参考文档agents/openai.yaml43 B
03 SKILL.md 正文
Purpose
Judge the Test Quality concern for one engine-managed build_review rubric branch. This is a
judgement-only contract: the engine owns scope selection, evidence assembly, result validation,
finding identity, the stamped result envelope, and the outer gate verdict.
Input projection (v3)
Use only the supplied projection version v3. Its closed input contains:
- the lap ID, snapshot digest, and top-level
contentDigest; - the in-scope changed tests: only changed tests with a current-feature-owned, resolvable
Covers:binding introduced or updated after the review base, pointing to an approved story criterion, an active feature requirement (FR-N), or a taskDone when:check, represented as immutable content-region references; - the changed diff by reference (
changedFiles: per-file path, change kind, and hunk ranges), anchored bymergeBaseandheadSha; - the current code-valid
test_suitePASS; and - typed reverted-production preflight evidence, including its source identities, classification, scoped-run result, executed selectors, and bounded failure excerpt when applicable.
- any concrete fallback candidates in
testScope, each with its engine-established candidate ID, pinned source region, and allowed Covers obligation references. Unchanged legacy bare markers are excluded before projection; their ordinals never gain authority from the active plan. testScope.evidencerecords are identity-only references:source,region,startLine,endLine, andcontentHash. They are not embedded source content or a replacement for the engine's authority.
The session runs inside the feature worktree. The diff content is not embedded: read referenced
files and obtain any per-path diff with git diff <mergeBase>..HEAD -- <path> (or the merge-base
form with git show <mergeBase>:<path>). Those reads are part of this closed input. Do not infer
facts from a maker transcript, task-status narrative, prior review, or state outside this projection
and its referenced content.
Judge only the reviewScope delta hunks. Treat changedFiles as context only. If that review
identifies a finding outside the delta, set causeHunk to the delta hunk that causes it.
For every testScope.evidence region you inspect, re-read the file at the pinned ref for its
source side (mergeBase for base regions, headSha for head regions). The region is the raw bytes
from byteRegion.start (inclusive) to byteRegion.end (exclusive) of that output. byteRegion is in
UTF-8 bytes; region, startLine, and endLine are character positions for identity and
orientation only, and diverge from byte offsets once the file holds a non-ASCII character. The engine
computed contentHash from that same immutable commit. Do not recompute it (a read-only review
session has no hashing tool); copy it verbatim where the schema asks for it. A candidate's evidence
record is the one whose id equals its candidateId. An unreadable region, one whose pinned read
fails, is not judged: return its fallback candidate as indeterminate with a non-empty
missingEvidenceReason.
Your own read never becomes authoritative. The engine rejects a finding anchored to a contentHash
that is absent from the projected evidence and candidates.
Judgement
For each in-scope changed test, judge whether its assertion actually distinguishes the behavior its
Covers: binding names. Raise test-insensitive only when the test has a concrete,
stub-passable assertion: it could pass while the changed behavior is absent or replaced with a
stub. Keep independent tests or behaviors as separate findings.
The reverted-production preflight is evidence, never a finding by itself. Report its optional
counterfactualSensitivity judgement using this closed vocabulary:
supportsmeans either an executed in-scope example fails on the reverted tree, or the reverted production causes the intended tests to fail during collection or load.indeterminatemeans an environment failure prevents the intended tests from bearing on behavior before that can be determined — for example, the #1915 database-auth or boot failures. It is neither sensitivity support nor a finding.not-applicablemeans the counterfactual evidence does not apply to a sensitivity judgement.
A stayed-green result is not automatically a concern: read the test and cite the concrete
stub-passable assertion before finding it insensitive. An infrastructure failure is not a finding;
do not invent evidence, downgrade it to a pass, or turn it into content criticism. Tests outside the
supplied in-scope set are not this rubric's concern.
04 同仓库更多 Skills
build-review-dependency-hygiene
Judge whether a feature diff adds unnecessary, insufficiently pinned, or license-incompatible dependencies.
writing-system-tests
Use BEFORE implementing any feature that has stories in .docs/stories/ — generates failing acceptance specs from acceptance criteria as the RED phase of TDD. Generates HTTP/request-level acceptance tests for headless/API projects, end-to-end UI tests for projects with a frontend, using the project's own test framework and directory conventions.
verify-claims
Use only when an active workflow is about to rely on a nontrivial factual claim or assumption for a spec, plan, ADR, finding, or code decision. Do not invoke for casual questions, status reports, restatements, or trivially verifiable mechanics.
tdd
Use when implementing any feature or bugfix. Five-step cycle: RED → DOMAIN → GREEN → DOMAIN → COMMIT. Enforces test-first development with domain integrity review at every phase boundary.
stories
Use only within active engineer/conduct DECIDE after architecture approval, when a committed `.docs/stories` acceptance artifact is required. Do not invoke for general user-story examples, requirements discussion, or direct implementation requests.
stack-land
Use when an operator needs to land reviewed manual changes on the correct closed child of a stacked feature. Operator-invoked only: inspect ownership, propose the safe child with evidence, and require confirmation before opening the landing.