From superpowers-plus
Validates feature requirements before design or implementation. Tests each requirement for falsifiability, measurability, and independence. Detects contradictions and guides resolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/superpowers-plus:requirements-validationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Core principle:** Every requirement must be testable. Contradictions must be surfaced, not silently resolved.
Core principle: Every requirement must be testable. Contradictions must be surfaced, not silently resolved.
Wrong skill? Feature design →
debateorbrainstorming. Implementation planning →plan-and-execute. Validating code output →output-verification.
Announce at start: "I'm using the requirements-validation skill to validate these requirements."
Before running the three tests, normalize requirements into a numbered list:
R1: [requirement text], R2: [requirement text], etc.R# must be a single, atomic requirement (split compound requirements).For EACH numbered requirement, apply all three:
Question: Can you write a test that would FAIL if this requirement isn't met?
| Result | Action |
|---|---|
| Yes — concrete test exists | ✅ Requirement passes |
| No — too vague to test | ❌ Rewrite to be specific. "Improve performance" → "Response time < 200ms at p95" |
| Partially — some aspects testable | ⚠️ Split into testable and non-testable parts |
Question: Is "done" a binary state (yes/no), not a gradient?
| Result | Action |
|---|---|
| Binary — clear done/not-done | ✅ Passes |
| Gradient — "better", "improved", "enhanced" | ❌ Add a threshold. "Better error handling" → "All error paths return structured error with code, message, and recovery hint" |
Question: Does this requirement conflict with any other requirement in the set?
| Result | Action |
|---|---|
| Independent — no conflicts | ✅ Passes |
| Conflicts detected | ❌ Trigger contradiction resolution (below) |
⛔ HARD GATE: Do NOT resolve contradictions silently. The stakeholder decides.
When two requirements conflict:
PENDING (ask user) and STOP.]⛔ Never invent a decision owner. If no stakeholder has weighed in, the decision is PENDING. Do not fabricate a name or role to unblock yourself.
## Requirements Validation Report
### Passed
- R1: [requirement] — Falsifiable ✅ Measurable ✅ Independent ✅
- R2: [requirement] — Falsifiable ✅ Measurable ✅ Independent ✅
### Failed (Needs Revision)
- R3: [requirement] — Measurability ❌ (gradient language: "improve")
- Suggested revision: [specific, measurable version]
### Contradictions Found
- R4 vs R6: [description of conflict]
- Resolution options: A / B / C / D
- Decision owner: [name/role — or PENDING (ask user)]
- Chosen option: [A/B/C/D — or PENDING]
- Rationale: [1 sentence — or PENDING]
| Pattern | Example | Fix |
|---|---|---|
| Gradient language | "Improve the UX" | Add threshold: "Task completion time < 30s" |
| Compound requirements | "Fast AND flexible AND secure" | Split into 3 independent requirements |
| Implementation as requirement | "Use Redis for caching" | Restate as need: "Cache layer with <10ms reads" |
| Negative-only | "Don't break existing behavior" | State positive: "All existing tests pass" |
# Check that all requirements have acceptance criteria
grep -c "GIVEN.*WHEN.*THEN" requirements.md || echo "⚠️ Missing acceptance criteria"
# Verify testability: each requirement maps to at least one test
grep -rn "describe\|it(" test/ --include="*.ts" | wc -l
| Failure | Fix |
|---|---|
| Resolved contradictions silently without surfacing to user | Hard gate: ALL contradictions go to user with options, never resolve silently |
| Accepted vague requirements (fast, secure) as testable | Apply falsifiability test: if you cannot write a test that fails, it is not testable |
| Skipped independence test, creating hidden coupling | Check: can each requirement be implemented/verified without the others? |
| Validated requirements against assumptions instead of stated constraints | Cross-reference ONLY what the user stated, not what you inferred |
npx claudepluginhub bordenet/superpowers-plus --plugin superpowers-plusGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.