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.4context: fork5---67# Completion Verifier Skill89Completion 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.1011## Owner Map1213Use these owners instead of duplicating their rules in this prompt:1415| Area | Owner |16|------|-------|17| Runtime completion authority | `scripts/runtime-state.mjs` and `scripts/lib/runtime-state-store.mjs` |18| Verification planes and summary projections | `scripts/verification-plane.mjs` and `scripts/lib/verification-plane.mjs` |19| Active verification contract | `schemas/verification.contract.yaml` |20| Verification profile guidance | `docs/public/guidelines/verification-contract.md` |21| Workflow evidence closeout | `docs/public/guidelines/verification-workflow-evidence.md` |22| Product acceptance policy | `docs/public/guidelines/product-acceptance-gate.md` |23| Agent operating policy evidence | `docs/public/guidelines/agent-operating-policy.md`, `schemas/agent-operation.contract.yaml` |2425## Inputs2627- `analysisContext.*`28- `context.md`29- `analysisContext.artifacts.sprintContractPath`30- `analysisContext.artifacts.qaReportPath`31- `analysisContext.artifacts.handoffPath`32- `analysisContext.artifacts.scorecardPath`33- `analysisContext.artifacts.requirementsTraceabilityPath`34- `analysisContext.artifacts.scenarioMatrixPath`35- `analysisContext.artifacts.uatChecklistPath`36- `analysisContext.artifacts.verificationContractPath`37- `analysisContext.artifacts.workflowEvidencePath`38- Fresh verifier verdict artifacts and current-run command outputs3940## Non-Negotiables4142- 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.43- Accepted clean finish requires runtime-state DB authority from `scripts/runtime-state.mjs assess-completion` when that authority is available.44- `taskLocalCompletion` is profile-scoped evidence completeness only.45- `wholePlanAuthority` is evidence eligibility only; accepted completion still requires a runtime-state DB decision.46- `profileRequiredPlanes` and `--required-planes-json` are summary scope controls only and must not weaken `completionAuthorityRequiredPlanes`.47- Preserve output keys: `completionStatus`, `gateDecision`, `workflowEvidence`, `evidenceProvenance`, and `qaReport`.48- 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`.4950## Flow51521. Resolve the active verification contract from `schemas/verification.contract.yaml` or the provided contract artifact.532. Determine the applicable profile and required checks from the contract, `TEST_GUIDE.md`, project docs, or fallback detection.543. Run executable checks that are in scope and record command/provenance for every completion-relevant claim.554. When verification plane evidence is available, record it through `scripts/verification-plane.mjs record-summary --json`.565. 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.576. Read score, traceability, scenario, UAT, workflow evidence, agent operating policy evidence, and QA report state using `docs/public/guidelines/verification-workflow-evidence.md`.587. Run or request `scripts/runtime-state.mjs assess-completion --json` for whole-plan completion authority when available.598. Return the output shape below. Degrade to `failed` or `pass_with_warning` instead of inferring a clean pass.6061## Output Shape6263```yaml64completionStatus:65 testEnvironment: true | false66 contractDetected: true | false67 contractApplicable: true | false68 verificationMode: contract | workspace | fallback69 verificationState: passed | failed | indeterminate70 evidenceFresh: true | false71 requiredChecks:72 declared: []73 executed: []74 missing: []75 score:76 detected: true | false77 source: verifier_artifact | scorecard | none78 current: 079 target: 10080 unmetChecklistItems: 081 blockingDefects: 082 verdict: done | retry | blocked | missing83 traceability:84 uncoveredRequirements: []85 scenariosMissingEvidence: []86 uatReady: true | false87 uatComplete: true | false88 specTestObligations:89 status: pass | fail | missing | not_applicable90 missing: []91 blockers: []92 taskLocalCompletion:93 status: complete | blocked | missing94 wholePlanAuthority:95 status: evidence_eligible | blocked | missing96 acceptedCompletionRequired: true97 gateDecision: pass | failed | pass_with_warning98workflowEvidence:99 detected: true | false100 selectedHarnessComponents: []101 skippedHarnessComponents: []102 warnings: []103evidenceProvenance:104 - source: ""105 artifact: ""106 fresh: true | false107qaReport:108 path: ""109 updated: true | false110 reviewFindingDecisions: []111```112113## Passing Rule114115`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.116117## Failure And Handoff118119When the gate cannot pass:120121- Record the concrete blocker or missing evidence.122- Update `QA_REPORT.md` if a path is available.123- Keep `uat_ready` separate from `uat_complete`.124- Return retry or handoff guidance without success-by-implication language.125- If a review reject or eval regression should block resumed closeout, record it with the runtime-state owner.