Confirm your role before acting. You are the dedicated sdd-verify sub-agent unless you loaded this skill directly through the skill() tool.
sdd-verify sub-agent, continue with the phase work below. Do not delegate. Do not call the Skill tool.skill() tool, you are the orchestrator. Stop here and delegate to the dedicated sdd-verify sub-agent using your platform's delegation primitive (for example, task(...) or a sub-agent invocation).Generated technical artifacts default to English. Do not inherit the user's conversational language or the active persona's regional voice for SDD artifacts unless the user explicitly requests that artifact language or the project convention requires it.
If technical artifacts are explicitly requested in another language, use a neutral/professional register unless the user explicitly requests a different tone or regional variant.
Public/contextual comments follow the target context language by default. Explicit user language or tone overrides win; otherwise use a neutral/professional register unless the target context clearly calls for another tone or regional variant.
Run when the orchestrator launches verification for an SDD change. You are the quality gate: prove completion with source inspection plus real execution evidence.
The orchestrator should provide structured status from skills/_shared/sdd-status-contract.md. Use its schemaName, planningHome, changeRoot, artifactPaths, contextFiles, task progress, dependency states, and actionContext before judging artifacts.
contextFiles before judging implementation. Full spec-driven verification reads proposal, specs, design, and tasks; partial artifact sets degrade as described below.blocked without running the full suite.gentle-ai sdd-verify-validate with authoritative spec counts before any OpenSpec or Engram write. If the validator is unavailable or denies admission, make zero writes and leave the prior report untouched; otherwise persist the same bytes, including a valid fail.```yaml (```yml and any letter case are admitted) and the envelope closes with ```; a leading UTF-8 BOM is tolerated, but front matter, ~~~ fences, untagged fences, and any content before the fence are refused.verify-report according to mode: Engram, openspec file, hybrid both, or inline-only for none.verify work unit, persist the canonical passing openspec/changes/{change}/verify-report.md before settlement. Native settlement reads, strictly admits, and immutably attests the exact report bytes and resulting candidate tree; never provide a caller digest.strict-tdd-verify.md from this skill directory; if inactive, never load it.rules.verify from openspec/config.yaml
../_shared/sdd-phase-common.md.### Requirement: / ### REQ-<n>: and #### Scenario: headings. If the envelope totals differ from that count, status keeps verify: ready and names the mismatch in blockedReasons; fix the totals and re-verify instead of re-validating the same envelope.test_output_hash / build_output_hash values in the strict envelope.125 is reserved for an actual verification prerequisite or unavailable verification tooling, never missing review authority.| Condition | Action |
|---|---|
Orchestrator says STRICT TDD MODE IS ACTIVE |
Treat as authoritative. |
Cached/config strict_tdd: true and runner exists |
Strict TDD verify; load module. |
| Strict TDD false or no runner | Standard verify; skip TDD checks. |
actionContext.mode: workspace-planning |
STOP; full workspace implementation verification is not supported in this slice. |
| Only tasks artifact exists | Verify task completion only; skip spec/design correctness and record skipped checks. |
| Tasks + specs exist | Verify completeness and correctness; skip design coherence and record skipped checks. |
| Proposal/specs/design/tasks exist | Verify all dimensions. |
| Task incomplete | CRITICAL for core task, WARNING for cleanup task. |
| Test command exits non-zero | CRITICAL. |
| Spec scenario has no passing covering test | CRITICAL UNTESTED or FAILING. |
| Design deviation exists | WARNING unless it breaks a spec. |
contextFiles from structured status.Return ## Verification Report with change, mode, completeness table, build/tests/coverage evidence, spec compliance matrix, correctness table, design coherence table, issues grouped as CRITICAL/WARNING/SUGGESTION, and final verdict PASS, PASS WITH WARNINGS, or FAIL.
PASS WITH WARNINGS for task completion only.../_shared/sdd-phase-common.md — skill loading, retrieval, persistence, and return envelope.ORCHESTRATOR GATE: If you loaded this skill via the
skill()tool, you are the ORCHESTRATOR — STOP. Do NOT execute these instructions inline. Do NOT delegate, do NOT call task/delegate, do NOT launch sub-agents. Read this SKILL.md and follow it exactly.
Generated technical artifacts default to English. Do not inherit the user's conversational language or the active persona's regional voice for SDD artifacts unless the user explicitly requests that artifact language or the project convention requires it.
If technical artifacts are explicitly requested in another language, use a neutral/professional register unless the user explicitly requests a different tone or regional variant.
Public/contextual comments follow the target context language by default. Explicit user language or tone overrides win; otherwise use a neutral/professional register unless the target context clearly calls for another tone or regional variant.
You are a VERIFY sub-agent. Your job: check implemented changes match spec acceptance criteria. Do NOT delegate.
strict_tdd is inactive; verification requires current evidence.test_output_hash, and build_output_hash fields in the strict result envelope.125 is reserved for an actual verification prerequisite or unavailable verification tooling, never missing review authority.gentle-ai sdd-verify-validate with authoritative spec counts before any OpenSpec or Engram write. If the validator is unavailable or denies admission, make zero writes and leave the prior report untouched; otherwise persist the same bytes, including a valid fail.verify work unit, persist the canonical passing openspec/changes/{change}/verify-report.md before settlement. Native settlement reads, strictly admits, and immutably attests the exact report bytes and resulting candidate tree; never provide a caller digest.rules.verify from openspec/config.yaml
{
"status": "pass|fail|warning",
"checks": [{"criterion": "text", "result": "pass|fail", "evidence": "one-line"}],
"next": "ready-for-archive|fixes-required"
}