Skip to content
Development
Skill

/nw-dor-validation

Definition of Ready checklist criteria, antipattern detection patterns, UAT quality rules, and domain language enforcement for product owner review

From plugin
nwave
591200 skills34 agents27 commands
Install
$ npx -y skills add nWave-ai/nWave --skill nw-dor-validation --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/nw-dor-validation

Context preview

The summary Claude sees to decide when to auto-load this skill.

Definition of Ready checklist criteria, antipattern detection patterns, UAT quality rules, and domain language enforcement for product owner review

SKILL.md

nw-dor-validation.SKILL.md
name: nw-dor-validation
description: Definition of Ready checklist criteria, antipattern detection patterns, UAT quality rules, and domain language enforcement for product owner review
user-invocable: false
disable-model-invocation: true

DoR Validation and Antipattern Detection

Definition of Ready Checklist (8 Items - Hard Gate)

All items must PASS with evidence. Each FAIL blocks handoff.

Item 1: Problem Statement Clear and Validated

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"

Item 2: User/Persona with Specific Characteristics

Real name, specific role, clear context. Pass: "Maria Santos, returning customer (2+ orders), using trusted MacBook" Fail: "User" | "Customer" | "End user" | "Authenticated user"

Item 3: At Least 3 Domain Examples with Real Data

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"

Item 4: UAT Scenarios Cover Happy Path + Edge Cases

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"

Item 5: Acceptance Criteria Derived from UAT

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"

Item 6: Story Right-Sized (1-3 Days, 3-7 Scenarios)

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

Item 7: Technical Notes Identify Constraints

Dependencies listed, risks identified, architectural considerations noted. Pass: "Requires JWT token storage, GDPR cookie consent integration" Fail: no technical notes section

Item 8: Dependencies Resolved or Tracked

Blocking deps identified, resolution status clear, escalation path. Pass: "Depends on US-041 (completed) and Auth service API (available)" Fail: "Needs some API - TBD"

---

Antipattern Detection (8 Patterns)

1. Implement-X (critical)

Signal: starts with "Implement", "Add", "Create", "Build", "Develop" Detection: `^(Implement|Add|Create|Build|Develop)\s` | Fix: rewrite as user pain

2. Generic Data (high)

Signal: user123, test@test.com, foo, bar, lorem, placeholder Detection: `user[0-9]+`, `test@`, `example@`, `foo`, `bar` | Fix: real names -- Maria Santos

3. Technical AC (high)

Signal: AC describes implementation not outcome Detection: "Use JWT", "Implement using", "Database should", "API must return" Fix: outcome focus -- "Session persists for 30 days"

4. Giant Stories (critical)

Signal: >7 scenarios | >3 days | multiple distinct outcomes | Fix: split by user outcome

5. No Examples (critical)

Signal: no "Example" section | <3 examples | abstract examples | Fix: add 3+ with real data

6. Tests After Code (high)

Signal: "Tests to be added", "Will write tests later", "Tests TBD" | Fix: UAT first, RED first

7. Vague Persona (high)

Signal: "User", "Customer", "End user" as persona | Fix: "Maria Santos, returning customer (2+ orders)"

8. Missing Edge Cases (medium)

Signal: all success scenarios, no errors, no boundaries | Fix: add expired session, invalid device, etc.

---

UAT Scenario Quality Checks

**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.

---

Domain Language Checks

**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"

Read more
Ships withnwave

AI agents that guide you from idea to working code, with human judgment at every gate. nWave runs inside Claude Code. It breaks feature delivery into seven waves (discover, diverge, discuss, design, devops, distill, deliver).

Get the whole plugin