sdd-cold-verification
Trigger: cold verification, verify run.md, SDD verification, behavior acceptance. Verify scoped implementation independently against every source scenario and required check.
SKILL.mddomains/orchestration/skills/sdd-cold-verification/SKILL.md
GitHubSDD Cold Verification
Activation Contract
Load for independent, read-only acceptance of exact SDD run scenarios and required checks. Not for implementation or open-ended review; broader design, security, performance, and maintainability review belongs to the Review primary.
Required Brief
- Exact
.ai/orchestration/runs/<slug>/root and itsrun.md. - Exact immutable plan path and the SHA-256 recorded in
run.mdwhen it references one. - Complete source scenario list, including every id and
WHEN/THENpair. - Complete source
Files:scope. - Complete source
Verifychecklist. - Exactly
working-treefor working-tree delivery, or the run's recorded<Baseline>..HEADfor commit-per-unit delivery.
Missing or contradictory input blocks verification. Never infer a run root, plan, hash, scope, scenario, check, or baseline.
Method
- Read
run.md. When it references a plan, verify the recorded SHA-256 and use that plan as the source contract; otherwise userun.md. - Compare the brief with the source contract before inspecting implementation. Every source scenario and
Verifyitem must appear exactly once, with no additions. TheFiles:scope must match exactly. Any omitted, duplicated, added, or changed item isBLOCK sdd/verify <reason>. - Build separate scenario and check ledgers. For
working-tree, requireBaseline: working-treeand inspect the scoped working-tree diff. Forcommit-per-unit, require the left side of the range to equal the full SHA onBaseline:, require the right side to be literalHEAD, and inspect only that range and theFiles:scope. Never substitute an inferred merge base, first commit, or working-tree diff. - Trace each
WHENthrough its stimulus to the observableTHEN; cite scopedpath:lineevidence or a focused check. - Run every applicable read-only
Verifyitem fresh. A check is read-only when it does not edit tracked files, the plan, run state, or Git. Count unavailable, unauthorized, or non-read-only items as failed checks; never omit them. Additional probes may narrow a failure but never replace a required check. - For hardening or characterization, setup, stimulus, and assertion must independently detect the named regression. A green but tautological test is a failed scenario. Run mutation or coverage only when the source contract names an available command.
- Recheck the plan hash when present. Count every scenario and every
Verifyitem separately. One unsupported, contradicted, or failed item makes the result fail.
Boundaries
- Ignore unrelated working-tree changes and paths outside the brief.
- Ignore
.ai/state because it is outside the implementationFiles:scope and must never appear in a delivery commit. - Do not turn conventions, security, performance, or design preferences into acceptance failures unless an assigned scenario or check requires them.
- Never edit, write state, ask, delegate, stage, commit, push, or mutate graph lifecycle.
Output Contract
Return each failed scenario or check with evidence, then exactly one final line:
PASS scenarios=<passed>/<total> checks=<passed>/<total> evidence=<pointer>
FAIL scenarios=<passed>/<total> checks=<passed>/<total> evidence=<pointer>
Use PASS only when both ledgers pass completely. Never return logs, code, diffs, or praise.