Extended verification including tests AND spec compliance - runs tests, validates spec compliance, checks for drift, blocks completion on failures
Runs tests, validates 100% spec compliance, checks for drift, and blocks completion on failures.
/plugin marketplace add rhuss/cc-superpowers-sdd/plugin install sdd@sdd-plugin-developmentThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Verify implementation is complete by running tests AND validating spec compliance.
Key Additions from Standard Verification:
sdd:implement workflowExecute all tests:
# Run full test suite
npm test # or pytest, go test, etc.
Check results:
If tests fail:
Load spec:
cat specs/features/[feature-name].md
Check each requirement:
Functional Requirement 1: [From spec]
✓ / ✗ Implemented
✓ / ✗ Tested
✓ / ✗ Matches spec behavior
Functional Requirement 2: [From spec]
...
Verify:
Calculate compliance:
Spec Compliance: X/X requirements = XX%
If compliance < 100%:
sdd:evolve to reconcileCompare:
Common drift sources:
If drift detected:
sdd:evolve to reconcileFrom spec, check each criterion:
Success Criteria (from spec):
- [ ] Criterion 1: [Description]
Status: ✓ Met / ✗ Not met
Evidence: [How verified]
- [ ] Criterion 2: [Description]
...
All criteria must be met.
If any criterion not met:
Report structure:
# Verification Report: [Feature Name]
**Date:** YYYY-MM-DD
**Spec:** specs/features/[feature].md
## Test Results
**Status:** ✅ PASS / ❌ FAIL
[Test output]
**Summary:**
- Total: X tests
- Passed: X
- Failed: X
- Coverage: XX%
## Spec Compliance
**Status:** ✅ COMPLIANT / ❌ NON-COMPLIANT
**Compliance Score:** XX%
### Requirements Status
- Functional: X/X (XX%)
- Error Cases: X/X (XX%)
- Edge Cases: X/X (XX%)
- Non-Functional: X/X (XX%)
### Deviations
[List any deviations found]
## Spec Drift Check
**Status:** ✅ NO DRIFT / ⚠️ DRIFT DETECTED
[Details if drift found]
## Success Criteria
**Status:** ✅ ALL MET / ❌ INCOMPLETE
- [✓] Criterion 1
- [✓] Criterion 2
...
## Overall Status
✅ **VERIFIED - Ready for completion**
OR
❌ **NOT VERIFIED - Issues must be resolved**
**Blocking Issues:**
- [Issue 1]
- [Issue 2]
**Next Steps:**
[What needs to be done]
All conditions must be true:
If ALL true:
If ANY false:
Use TodoWrite to track:
You: Running verification before completion...
Step 1: Running tests...
$ npm test
✅ All tests passing (24/24)
✅ Coverage: 95%
Step 2: Validating spec compliance...
Reading spec: specs/features/user-profile-api.md
Checking requirements:
✓ Functional Requirement 1: PUT endpoint - Implemented & tested
✓ Functional Requirement 2: Validation - Implemented & tested
✓ Functional Requirement 3: Auth - Implemented & tested
✓ Functional Requirement 4: Authorization - Implemented & tested
✓ Functional Requirement 5: Response format - Implemented & tested
✓ Functional Requirement 6: Partial updates - Implemented & tested
✓ Error Case 1: Missing JWT - Handled & tested
✓ Error Case 2: User not found - Handled & tested
✓ Error Case 3: Validation failure - Handled & tested
✓ Error Case 4: Authorization failure - Handled & tested
✓ Edge Case 1: Empty update - Handled & tested
✓ Edge Case 2: Invalid avatar URL - Handled & tested
✓ Edge Case 3: Special characters in name - Handled & tested
Spec Compliance: 13/13 = 100% ✅
Step 3: Checking for spec drift...
Comparing spec to implementation...
No drift detected ✅
Step 4: Verifying success criteria...
From spec:
✓ Authenticated users can update their profile
✓ Validation errors return 422 with clear messages
✓ Users cannot update other users' profiles
✓ All edge cases handled gracefully
All criteria met ✅
=== VERIFICATION REPORT ===
✅ Tests: PASS (24/24)
✅ Spec Compliance: 100%
✅ Spec Drift: None
✅ Success Criteria: All met
**OVERALL: ✅ VERIFIED**
Implementation is complete and verified. Ready for commit/merge.
You: Running verification before completion...
Step 1: Running tests...
$ npm test
❌ Tests FAILED (22/24 passing, 2 failing)
Failures:
1. "Should handle database connection errors"
Error: Connection retry not implemented
2. "Should return 503 when database unavailable"
Error: Returns 500 instead of 503
**BLOCKING: Tests must pass before proceeding**
Step 2: Validating spec compliance...
Reading spec: specs/features/user-profile-api.md
Checking requirements:
[checks requirements...]
❌ Non-Functional Requirement 1: Database retry logic
Status: Not implemented
Spec says: "3 retry attempts with exponential backoff"
Code does: Single attempt, no retry
Spec Compliance: 12/13 = 92% ❌
Step 3: Checking success criteria...
From spec:
✓ Authenticated users can update their profile
✓ Validation errors return 422
✗ Handles database failures gracefully (missing retry logic)
✓ Users cannot update other users' profiles
=== VERIFICATION REPORT ===
❌ Tests: FAIL (2 failures)
❌ Spec Compliance: 92% (missing retry logic)
❌ Success Criteria: 3/4 met
**OVERALL: ❌ NOT VERIFIED**
**Blocking Issues:**
1. Database retry logic not implemented (from spec)
2. Tests failing for error handling
3. Returns wrong HTTP status (500 vs 503)
**Next Steps:**
1. Implement database retry logic per spec
2. Fix HTTP status code
3. Re-run verification
**DO NOT PROCEED until all issues resolved.**
✅ Tests: 24/24 passing
❌ Spec Compliance: 85%
❌ BLOCKED
Issue: Tests don't cover all spec requirements
Action: Add tests for uncovered requirements, re-verify
❌ Tests: 20/24 passing
✅ Spec Compliance: 100%
❌ BLOCKED
Issue: Implementation exists but has bugs
Action: Fix bugs, ensure tests pass, re-verify
✅ Tests: 24/24 passing
✅ Spec Compliance: 100%
⚠️ Spec Drift: Spec updated after implementation
❌ BLOCKED
Issue: Spec changed, code doesn't reflect changes
Action: Update code or revert spec, re-verify
This skill enforces quality gates:
No exceptions. No shortcuts.
These gates exist to prevent:
Verification is not optional.
Verification failures are information.
Fix issues, don't rationalize past them.
Evidence before assertions. Always.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.