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.mdanalysisContext.artifacts.sprintContractPathanalysisContext.artifacts.qaReportPathanalysisContext.artifacts.handoffPathanalysisContext.artifacts.scorecardPathanalysisContext.artifacts.requirementsTraceabilityPathanalysisContext.artifacts.scenarioMatrixPathanalysisContext.artifacts.uatChecklistPathanalysisContext.artifacts.verificationContractPathanalysisContext.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, orcompactStatus.latestVerificationEvidenceas accepted completion authority. - Accepted clean finish requires runtime-state DB authority from
scripts/runtime-state.mjs assess-completionwhen that authority is available. taskLocalCompletionis profile-scoped evidence completeness only.wholePlanAuthorityis evidence eligibility only; accepted completion still requires a runtime-state DB decision.profileRequiredPlanesand--required-planes-jsonare summary scope controls only and must not weakencompletionAuthorityRequiredPlanes.- Preserve output keys:
completionStatus,gateDecision,workflowEvidence,evidenceProvenance, andqaReport. - 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.yamlor 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, runscripts/spec-test-obligations.mjs validate --jsonand pass its JSON torecord-summarywith--spec-test-obligations-json. Use--strict-seamwhen 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 --jsonfor whole-plan completion authority when available. - Return the output shape below. Degrade to
failedorpass_with_warninginstead 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.mdif a path is available. - Keep
uat_readyseparate fromuat_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.