Verify that an implementation matches the change artifacts (specs, tasks, design).
Input: Optionally specify a change name after /sdd-verify (e.g., /sdd-verify add-auth). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
Before writing, read the shared project documents for context:
- {ARTIFACT_MAIN_FOLDER}/{SHARED_SUBFOLDER}/prd.md — product requirements, user journeys, functional requirements
- {ARTIFACT_MAIN_FOLDER}/{SHARED_SUBFOLDER}/architecture.md — tech stack, architectural decisions, naming conventions
- {ARTIFACT_MAIN_FOLDER}/{SHARED_SUBFOLDER}/ux.md — UX design decisions, component inventory (if exists)
Steps
If no change name provided, prompt for selection
List directories in {ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/ (excluding archive) to get available changes. Use the AskUserQuestion tool to let the user select.
Show changes that have implementation tasks (tasks.md exists).
Mark changes with incomplete tasks as "(In Progress)".
IMPORTANT: Do NOT guess or auto-select a change. Always let the user choose.
Inspect the change directory
List files in {ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/<name>/ to see which artifacts are present (proposal.md, design.md, tasks.md, specs/).
Load all available artifacts
Read all files found in {ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/<name>/ and its subdirectories.
Verify Completeness
Task Completion:
- If tasks.md exists in contextFiles, read it
- Parse checkboxes:
- [ ] (incomplete) vs - [x] (complete)
- Count complete vs total tasks
- If incomplete tasks exist:
- Add CRITICAL issue for each incomplete task
- Recommendation: "Complete task: " or "Mark as done if already implemented"
Spec Coverage:
- If delta specs exist in
{ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/<name>/{SPECS_SUBFOLDER}/:
- Extract all requirements (marked with "### Requirement:")
- For each requirement:
- Search codebase for keywords related to the requirement
- Assess if implementation likely exists
- If requirements appear unimplemented:
- Add CRITICAL issue: "Requirement not found: "
- Recommendation: "Implement requirement X: "
Verify Correctness
Requirement Implementation Mapping:
- For each requirement from delta specs:
- Search codebase for implementation evidence
- If found, note file paths and line ranges
- Assess if implementation matches requirement intent
- If divergence detected:
- Add WARNING: "Implementation may diverge from spec: "
- Recommendation: "Review : against requirement X"
Scenario Coverage:
- For each scenario in delta specs (marked with "#### Scenario:"):
- Check if conditions are handled in code
- Check if tests exist covering the scenario
- If scenario appears uncovered:
- Add WARNING: "Scenario not covered: "
- Recommendation: "Add test or implementation for scenario: "
Verify Coherence
Design Adherence:
- If design.md exists in contextFiles:
- Extract key decisions (look for sections like "Decision:", "Approach:", "Architecture:")
- Verify implementation follows those decisions
- If contradiction detected:
- Add WARNING: "Design decision not followed: "
- Recommendation: "Update implementation or revise design.md to match reality"
- If no design.md: Skip design adherence check, note "No design.md to verify against"
Code Pattern Consistency:
- Review new code for consistency with project patterns
- Check file naming, directory structure, coding style
- If significant deviations found:
- Add SUGGESTION: "Code pattern deviation: "
- Recommendation: "Consider following project pattern: "
Generate Verification Report
Use three issue severities: CRITICAL (must fix before archive), WARNING (should fix), SUGGESTION (nice to fix).
## Verification Report: <change-name>
### Summary
| Dimension | Status |
|--------------|------------------|
| Completeness | X/Y tasks, N reqs|
| Correctness | M/N reqs covered |
| Coherence | Followed/Issues |
List issues by severity, each with a specific, actionable recommendation and file/line reference where applicable.
Final Assessment:
- If CRITICAL issues: "X critical issue(s) found. Fix before archiving."
- If only warnings: "No critical issues. Y warning(s) to consider. Ready for archive (with noted improvements)."
- If all clear: "All checks passed. Ready for archive."
Update tracker on full pass
If the Final Assessment has no CRITICAL issues (all clear or warnings only), follow the sdd-tracker skill to set the change status to verified with changelog note "Verification passed" and suggest proceeding with archiving.
If CRITICAL issues were found, do not update the tracker — the status remains unchanged.
Verification approach: Focus on objective checkboxes for completeness; use keyword search and reasonable inference for correctness (avoid false CRITICAL — prefer SUGGESTION over WARNING, WARNING over CRITICAL when uncertain); check for glaring inconsistencies in coherence, not style.
Graceful degradation: Verify only what exists — tasks only (if no specs/design), tasks + specs (if no design), or all three dimensions (full artifacts). Always note which checks were skipped.
Output format: Use markdown tables for the scorecard; file.ts:123 notation for code references; specific, actionable recommendations (no vague suggestions like "consider reviewing").
1---2name: sdd-verify3description: Compare code changes against spec requirements, validate task completion, and check design alignment before archiving a change. Use when a change has been implemented and you want to review my changes, check before merge, validate my implementation, or get a QA check before closing out. Do not use for implementing changes, creating artifacts, or archiving without prior verification.4---56Verify that an implementation matches the change artifacts (specs, tasks, design).78**Input**: Optionally specify a change name after `/sdd-verify` (e.g., `/sdd-verify add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.910Before writing, read the shared project documents for context:11- {ARTIFACT_MAIN_FOLDER}/{SHARED_SUBFOLDER}/prd.md — product requirements, user journeys, functional requirements12- {ARTIFACT_MAIN_FOLDER}/{SHARED_SUBFOLDER}/architecture.md — tech stack, architectural decisions, naming conventions13- {ARTIFACT_MAIN_FOLDER}/{SHARED_SUBFOLDER}/ux.md — UX design decisions, component inventory (if exists)1415**Steps**16171. **If no change name provided, prompt for selection**1819 List directories in `{ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/` (excluding `archive`) to get available changes. Use the **AskUserQuestion tool** to let the user select.2021 Show changes that have implementation tasks (`tasks.md` exists).22 Mark changes with incomplete tasks as "(In Progress)".2324 **IMPORTANT**: Do NOT guess or auto-select a change. Always let the user choose.25262. **Inspect the change directory**2728 List files in `{ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/<name>/` to see which artifacts are present (`proposal.md`, `design.md`, `tasks.md`, `specs/`).29303. **Load all available artifacts**3132 Read all files found in `{ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/<name>/` and its subdirectories.33344. **Verify Completeness**3536 **Task Completion**:37 - If tasks.md exists in contextFiles, read it38 - Parse checkboxes: `- [ ]` (incomplete) vs `- [x]` (complete)39 - Count complete vs total tasks40 - If incomplete tasks exist:41 - Add CRITICAL issue for each incomplete task42 - Recommendation: "Complete task: <description>" or "Mark as done if already implemented"4344 **Spec Coverage**:45 - If delta specs exist in `{ARTIFACT_MAIN_FOLDER}/{CHANGE_SUBFOLDER}/<name>/{SPECS_SUBFOLDER}/`:46 - Extract all requirements (marked with "### Requirement:")47 - For each requirement:48 - Search codebase for keywords related to the requirement49 - Assess if implementation likely exists50 - If requirements appear unimplemented:51 - Add CRITICAL issue: "Requirement not found: <requirement name>"52 - Recommendation: "Implement requirement X: <description>"53545. **Verify Correctness**5556 **Requirement Implementation Mapping**:57 - For each requirement from delta specs:58 - Search codebase for implementation evidence59 - If found, note file paths and line ranges60 - Assess if implementation matches requirement intent61 - If divergence detected:62 - Add WARNING: "Implementation may diverge from spec: <details>"63 - Recommendation: "Review <file>:<lines> against requirement X"6465 **Scenario Coverage**:66 - For each scenario in delta specs (marked with "#### Scenario:"):67 - Check if conditions are handled in code68 - Check if tests exist covering the scenario69 - If scenario appears uncovered:70 - Add WARNING: "Scenario not covered: <scenario name>"71 - Recommendation: "Add test or implementation for scenario: <description>"72736. **Verify Coherence**7475 **Design Adherence**:76 - If design.md exists in contextFiles:77 - Extract key decisions (look for sections like "Decision:", "Approach:", "Architecture:")78 - Verify implementation follows those decisions79 - If contradiction detected:80 - Add WARNING: "Design decision not followed: <decision>"81 - Recommendation: "Update implementation or revise design.md to match reality"82 - If no design.md: Skip design adherence check, note "No design.md to verify against"8384 **Code Pattern Consistency**:85 - Review new code for consistency with project patterns86 - Check file naming, directory structure, coding style87 - If significant deviations found:88 - Add SUGGESTION: "Code pattern deviation: <details>"89 - Recommendation: "Consider following project pattern: <example>"90917. **Generate Verification Report**9293 Use three issue severities: **CRITICAL** (must fix before archive), **WARNING** (should fix), **SUGGESTION** (nice to fix).9495 ```96 ## Verification Report: <change-name>9798 ### Summary99 | Dimension | Status |100 |--------------|------------------|101 | Completeness | X/Y tasks, N reqs|102 | Correctness | M/N reqs covered |103 | Coherence | Followed/Issues |104 ```105106 List issues by severity, each with a specific, actionable recommendation and file/line reference where applicable.107108 **Final Assessment**:109 - If CRITICAL issues: "X critical issue(s) found. Fix before archiving."110 - If only warnings: "No critical issues. Y warning(s) to consider. Ready for archive (with noted improvements)."111 - If all clear: "All checks passed. Ready for archive."1121138. **Update tracker on full pass**114115 If the Final Assessment has **no CRITICAL issues** (all clear or warnings only), follow the **`sdd-tracker` skill** to set the change status to `verified` with changelog note `"Verification passed"` and suggest proceeding with archiving.116117 If CRITICAL issues were found, do **not** update the tracker — the status remains unchanged.118119**Verification approach**: Focus on objective checkboxes for completeness; use keyword search and reasonable inference for correctness (avoid false CRITICAL — prefer SUGGESTION over WARNING, WARNING over CRITICAL when uncertain); check for glaring inconsistencies in coherence, not style.120121**Graceful degradation**: Verify only what exists — tasks only (if no specs/design), tasks + specs (if no design), or all three dimensions (full artifacts). Always note which checks were skipped.122123**Output format**: Use markdown tables for the scorecard; `file.ts:123` notation for code references; specific, actionable recommendations (no vague suggestions like "consider reviewing").