nwave-ai/nwave-nw-dor-validation
Definition of Ready checklist criteria, antipattern detection patterns, UAT quality rules, and domain language enforcement for product owner review
This is a copy. The original lives at nwave-ai/nw-dor-validation.
npx skills add https://github.com/nWave-ai/nWave --skill nw-dor-validation
All items must PASS with evidence. Each FAIL blocks handoff.
Domain language (not technical), describes real user pain, testable.
Pass: "Maria wastes 30 seconds typing credentials on every visit"
Fail: "Users need authentication" | "Implement login feature"
Real name, specific role, clear context.
Pass: "Maria Santos, returning customer (2+ orders), using trusted MacBook"
Fail: "User" | "Customer" | "End user" | "Authenticated user"
Min 3 examples, real names (not user123), real values, different scenarios (happy/edge/error).
Pass: "Example 1: Maria on MacBook, 5 days since login, goes to dashboard"
Fail: "User logs in successfully" | "Test with valid credentials"
Given/When/Then format, 3-7 scenarios, real data, covers happy + edge.
Pass: "Given Maria authenticated on 'MacBook-Home' 5 days ago..."
Fail: "Test login works" | "Given a user When they login Then success"
Checkable (checkbox), traceable to UAT, outcome-focused (not implementation).
Pass: "Sessions older than 30 days require re-authentication"
Fail: "Use JWT tokens" | "System should work correctly"
Effort estimate provided, scenario count in range, single demonstrable outcome.
Pass: 2 days, 5 UAT scenarios, demoed in single session
Fail: >7 scenarios | >3 days | multiple distinct outcomes
Dependencies listed, risks identified, architectural considerations noted.
Pass: "Requires JWT token storage, GDPR cookie consent integration"
Fail: no technical notes section
Blocking deps identified, resolution status clear, escalation path.
Pass: "Depends on US-041 (completed) and Auth service API (available)"
Fail: "Needs some API - TBD"
Signal: starts with "Implement", "Add", "Create", "Build", "Develop"
Detection: ^(Implement|Add|Create|Build|Develop)\s | Fix: rewrite as user pain
Signal: user123, [email protected], foo, bar, lorem, placeholder
Detection: user[0-9]+, test@, example@, foo, bar | Fix: real names -- Maria Santos
Signal: AC describes implementation not outcome
Detection: "Use JWT", "Implement using", "Database should", "API must return"
Fix: outcome focus -- "Session persists for 30 days"
Signal: >7 scenarios | >3 days | multiple distinct outcomes | Fix: split by user outcome
Signal: no "Example" section | <3 examples | abstract examples | Fix: add 3+ with real data
Signal: "Tests to be added", "Will write tests later", "Tests TBD" | Fix: UAT first, RED first
Signal: "User", "Customer", "End user" as persona | Fix: "Maria Santos, returning customer (2+ orders)"
Signal: all success scenarios, no errors, no boundaries | Fix: add expired session, invalid device, etc.
Format: Given/When/Then with complete sentences. Fail: "Test login", "Given user When login Then success"
Real Data: real names, values, scenarios. Fail: "Given user123", "When X happens"
Coverage: min 1 happy path + 1 edge + 1 error. Range: 3-7 scenarios.
Technical Jargon: flag in user-facing sections: JWT, API, database, backend, frontend, microservice, REST, HTTP, JSON, SQL. Exception: Technical Notes section. Fix: "session token" -> "remember me"
Generic Language: flag "the system", "the application", "functionality", "feature". Fix: use specific names -- "the login page" -> "the welcome screen"
Take nwave-ai/nwave-nw-dor-validation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.