Completion Verifier Skill
Completion verifier is the Verify-stage assembler. It gathers fresh evidence, runs or requests the required checks, writes structured verification evidence when available, and returns a stable output shape. It does not own completion authority policy.
Owner Map
Use these owners instead of duplicating their rules in this prompt:
| Area |
Owner |
| Runtime completion authority |
scripts/runtime-state.mjs and scripts/lib/runtime-state-store.mjs |
| Verification planes and summary projections |
scripts/verification-plane.mjs and scripts/lib/verification-plane.mjs |
| Active verification contract |
schemas/verification.contract.yaml |
| Verification profile guidance |
docs/public/guidelines/verification-contract.md |
| Workflow evidence closeout |
docs/public/guidelines/verification-workflow-evidence.md |
| Product acceptance policy |
docs/public/guidelines/product-acceptance-gate.md |
| Agent operating policy evidence |
docs/public/guidelines/agent-operating-policy.md, schemas/agent-operation.contract.yaml |
Inputs
analysisContext.*
context.md
analysisContext.artifacts.sprintContractPath
analysisContext.artifacts.qaReportPath
analysisContext.artifacts.handoffPath
analysisContext.artifacts.scorecardPath
analysisContext.artifacts.requirementsTraceabilityPath
analysisContext.artifacts.scenarioMatrixPath
analysisContext.artifacts.uatChecklistPath
analysisContext.artifacts.verificationContractPath
analysisContext.artifacts.workflowEvidencePath
- Fresh verifier verdict artifacts and current-run command outputs
Non-Negotiables
- Do not treat chat output,
phase-status.yaml, verifier JSON, QA_REPORT.md, SCORECARD.md, HANDOFF.md, taskLocalCompletion, wholePlanAuthority, or compactStatus.latestVerificationEvidence as accepted completion authority.
- Accepted clean finish requires runtime-state DB authority from
scripts/runtime-state.mjs assess-completion when that authority is available.
taskLocalCompletion is profile-scoped evidence completeness only.
wholePlanAuthority is evidence eligibility only; accepted completion still requires a runtime-state DB decision.
profileRequiredPlanes and --required-planes-json are summary scope controls only and must not weaken completionAuthorityRequiredPlanes.
- Preserve output keys:
completionStatus, gateDecision, workflowEvidence, evidenceProvenance, and qaReport.
- If workflow evidence warnings, missing required checks, stale evidence, missing identity, worsened evals, unresolved blockers, missing score, missing traceability, or required frontend/setup gaps exist, do not return
gateDecision: pass.
Flow
- Resolve the active verification contract from
schemas/verification.contract.yaml or the provided contract artifact.
- Determine the applicable profile and required checks from the contract,
TEST_GUIDE.md, project docs, or fallback detection.
- Run executable checks that are in scope and record command/provenance for every completion-relevant claim.
- When verification plane evidence is available, record it through
scripts/verification-plane.mjs record-summary --json.
- When plan artifacts contain
specTestObligations, run scripts/spec-test-obligations.mjs validate --json and pass its JSON to record-summary with --spec-test-obligations-json. Use --strict-seam when validating new behavior-changing obligations that opt into highest public seam enforcement.
- Read score, traceability, scenario, UAT, workflow evidence, agent operating policy evidence, and QA report state using
docs/public/guidelines/verification-workflow-evidence.md.
- Run or request
scripts/runtime-state.mjs assess-completion --json for whole-plan completion authority when available.
- Return the output shape below. Degrade to
failed or pass_with_warning instead of inferring a clean pass.
Output Shape
completionStatus:
testEnvironment: true | false
contractDetected: true | false
contractApplicable: true | false
verificationMode: contract | workspace | fallback
verificationState: passed | failed | indeterminate
evidenceFresh: true | false
requiredChecks:
declared: []
executed: []
missing: []
score:
detected: true | false
source: verifier_artifact | scorecard | none
current: 0
target: 100
unmetChecklistItems: 0
blockingDefects: 0
verdict: done | retry | blocked | missing
traceability:
uncoveredRequirements: []
scenariosMissingEvidence: []
uatReady: true | false
uatComplete: true | false
specTestObligations:
status: pass | fail | missing | not_applicable
missing: []
blockers: []
taskLocalCompletion:
status: complete | blocked | missing
wholePlanAuthority:
status: evidence_eligible | blocked | missing
acceptedCompletionRequired: true
gateDecision: pass | failed | pass_with_warning
workflowEvidence:
detected: true | false
selectedHarnessComponents: []
skippedHarnessComponents: []
warnings: []
evidenceProvenance:
- source: ""
artifact: ""
fresh: true | false
qaReport:
path: ""
updated: true | false
reviewFindingDecisions: []
Passing Rule
gateDecision: pass is allowed only when all applicable checks are fresh, required checks are complete, required specTestObligations validator output exists and has no blocking findings, workflow evidence has no blocking warnings, score verdict is done, linked acceptance criteria are passing or explicitly not_applicable, critical scenarios have fresh evidence, UAT is ready for user-facing finish claims, and accepted runtime-state completion authority is present when required.
Failure And Handoff
When the gate cannot pass:
- Record the concrete blocker or missing evidence.
- Update
QA_REPORT.md if a path is available.
- Keep
uat_ready separate from uat_complete.
- Return retry or handoff guidance without success-by-implication language.
- If a review reject or eval regression should block resumed closeout, record it with the runtime-state owner.
1---2name: completion-verifier3description: Run required checks and decide whether implementation has enough evidence to be treated as complete.4---56# Completion Verifier Skill78Completion verifier is the Verify-stage assembler. It gathers fresh evidence, runs or requests the required checks, writes structured verification evidence when available, and returns a stable output shape. It does not own completion authority policy.910## Owner Map1112Use these owners instead of duplicating their rules in this prompt:1314| Area | Owner |15|------|-------|16| Runtime completion authority | `scripts/runtime-state.mjs` and `scripts/lib/runtime-state-store.mjs` |17| Verification planes and summary projections | `scripts/verification-plane.mjs` and `scripts/lib/verification-plane.mjs` |18| Active verification contract | `schemas/verification.contract.yaml` |19| Verification profile guidance | `docs/public/guidelines/verification-contract.md` |20| Workflow evidence closeout | `docs/public/guidelines/verification-workflow-evidence.md` |21| Product acceptance policy | `docs/public/guidelines/product-acceptance-gate.md` |22| Agent operating policy evidence | `docs/public/guidelines/agent-operating-policy.md`, `schemas/agent-operation.contract.yaml` |2324## Inputs2526- `analysisContext.*`27- `context.md`28- `analysisContext.artifacts.sprintContractPath`29- `analysisContext.artifacts.qaReportPath`30- `analysisContext.artifacts.handoffPath`31- `analysisContext.artifacts.scorecardPath`32- `analysisContext.artifacts.requirementsTraceabilityPath`33- `analysisContext.artifacts.scenarioMatrixPath`34- `analysisContext.artifacts.uatChecklistPath`35- `analysisContext.artifacts.verificationContractPath`36- `analysisContext.artifacts.workflowEvidencePath`37- Fresh verifier verdict artifacts and current-run command outputs3839## Non-Negotiables4041- Do not treat chat output, `phase-status.yaml`, verifier JSON, `QA_REPORT.md`, `SCORECARD.md`, `HANDOFF.md`, `taskLocalCompletion`, `wholePlanAuthority`, or `compactStatus.latestVerificationEvidence` as accepted completion authority.42- Accepted clean finish requires runtime-state DB authority from `scripts/runtime-state.mjs assess-completion` when that authority is available.43- `taskLocalCompletion` is profile-scoped evidence completeness only.44- `wholePlanAuthority` is evidence eligibility only; accepted completion still requires a runtime-state DB decision.45- `profileRequiredPlanes` and `--required-planes-json` are summary scope controls only and must not weaken `completionAuthorityRequiredPlanes`.46- Preserve output keys: `completionStatus`, `gateDecision`, `workflowEvidence`, `evidenceProvenance`, and `qaReport`.47- If workflow evidence warnings, missing required checks, stale evidence, missing identity, worsened evals, unresolved blockers, missing score, missing traceability, or required frontend/setup gaps exist, do not return `gateDecision: pass`.4849## Flow50511. Resolve the active verification contract from `schemas/verification.contract.yaml` or the provided contract artifact.522. Determine the applicable profile and required checks from the contract, `TEST_GUIDE.md`, project docs, or fallback detection.533. Run executable checks that are in scope and record command/provenance for every completion-relevant claim.544. When verification plane evidence is available, record it through `scripts/verification-plane.mjs record-summary --json`.555. When plan artifacts contain `specTestObligations`, run `scripts/spec-test-obligations.mjs validate --json` and pass its JSON to `record-summary` with `--spec-test-obligations-json`. Use `--strict-seam` when validating new behavior-changing obligations that opt into highest public seam enforcement.566. Read score, traceability, scenario, UAT, workflow evidence, agent operating policy evidence, and QA report state using `docs/public/guidelines/verification-workflow-evidence.md`.577. Run or request `scripts/runtime-state.mjs assess-completion --json` for whole-plan completion authority when available.588. Return the output shape below. Degrade to `failed` or `pass_with_warning` instead of inferring a clean pass.5960## Output Shape6162```yaml63completionStatus:64 testEnvironment: true | false65 contractDetected: true | false66 contractApplicable: true | false67 verificationMode: contract | workspace | fallback68 verificationState: passed | failed | indeterminate69 evidenceFresh: true | false70 requiredChecks:71 declared: []72 executed: []73 missing: []74 score:75 detected: true | false76 source: verifier_artifact | scorecard | none77 current: 078 target: 10079 unmetChecklistItems: 080 blockingDefects: 081 verdict: done | retry | blocked | missing82 traceability:83 uncoveredRequirements: []84 scenariosMissingEvidence: []85 uatReady: true | false86 uatComplete: true | false87 specTestObligations:88 status: pass | fail | missing | not_applicable89 missing: []90 blockers: []91 taskLocalCompletion:92 status: complete | blocked | missing93 wholePlanAuthority:94 status: evidence_eligible | blocked | missing95 acceptedCompletionRequired: true96 gateDecision: pass | failed | pass_with_warning97workflowEvidence:98 detected: true | false99 selectedHarnessComponents: []100 skippedHarnessComponents: []101 warnings: []102evidenceProvenance:103 - source: ""104 artifact: ""105 fresh: true | false106qaReport:107 path: ""108 updated: true | false109 reviewFindingDecisions: []110```111112## Passing Rule113114`gateDecision: pass` is allowed only when all applicable checks are fresh, required checks are complete, required `specTestObligations` validator output exists and has no blocking findings, workflow evidence has no blocking warnings, score verdict is `done`, linked acceptance criteria are passing or explicitly `not_applicable`, critical scenarios have fresh evidence, UAT is ready for user-facing finish claims, and accepted runtime-state completion authority is present when required.115116## Failure And Handoff117118When the gate cannot pass:119120- Record the concrete blocker or missing evidence.121- Update `QA_REPORT.md` if a path is available.122- Keep `uat_ready` separate from `uat_complete`.123- Return retry or handoff guidance without success-by-implication language.124- If a review reject or eval regression should block resumed closeout, record it with the runtime-state owner.