nw-rigor
Selects a quality-vs-token-consumption profile (lean, standard, thorough, exhaustive, custom, inherit) and persists it globally (~/.nwave/global-config.json) or per-project (.nwave/des-config.json). Use when tuning how much rigor wave commands apply.
Best use case
nw-rigor is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Selects a quality-vs-token-consumption profile (lean, standard, thorough, exhaustive, custom, inherit) and persists it globally (~/.nwave/global-config.json) or per-project (.nwave/des-config.json). Use when tuning how much rigor wave commands apply.
Teams using nw-rigor should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/nw-rigor/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How nw-rigor Compares
| Feature / Agent | nw-rigor | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Selects a quality-vs-token-consumption profile (lean, standard, thorough, exhaustive, custom, inherit) and persists it globally (~/.nwave/global-config.json) or per-project (.nwave/des-config.json). Use when tuning how much rigor wave commands apply.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# NW-RIGOR: Quality Profile Selection
**Wave**: CROSS_WAVE | **Agent**: Main Instance (self) | **Command**: `/nw-rigor [profile]`
## Overview
Interactive command to select a quality-vs-token-consumption profile. Persists choice to either `~/.nwave/global-config.json` (global scope) or `.nwave/des-config.json` (project scope) under the `rigor` key. All wave commands read this config to adjust agent models, review policy, TDD phases, and mutation testing.
You (the main Claude instance) run this directly. No subagent delegation.
## Profile Mappings (Single Source of Truth)
| Setting | lean | standard [recommended] | thorough | exhaustive | inherit |
|--------------------|-----------------------|-----------------------------------------------------|-----------------------------------------------------|-----------------------------------------------------|-----------------------------------------------------|
| agent_model | haiku | sonnet | opus | opus | inherit |
| reviewer_model | skip | haiku | sonnet | opus | haiku |
| review_enabled | false | true | true | true | true |
| double_review | false | false | true | true | false |
| tdd_phases | [RED_UNIT, GREEN] | [PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT] | [PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT] | [PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT] | [PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT] |
| refactor_pass | false | true | true | true | true |
| mutation_enabled | false | false | false | true | false |
## Behavior Flow
### Mode Detection
- No argument -> Mode 1 (Interactive Selection)
- Argument is a preset name (lean, standard, thorough, exhaustive, inherit) -> Mode 2 (Quick Switch)
- Argument is `custom` -> Mode 3 (Custom Builder)
### Mode 1: Interactive Selection (no argument)
#### Step 1: Welcome
Read `.nwave/des-config.json`. If missing or `.nwave/` directory absent -> error: "No nWave config directory found. Run nwave install first."
If JSON is invalid -> backup as `.nwave/des-config.json.bak`, reset config to `{}`, note: "Config was corrupted. Backed up and reset."
Display current profile (from `config.rigor.profile`) or "none set" if absent.
Brief explanation: "Rigor profiles control how much quality infrastructure nWave applies per wave: agent models, review depth, TDD phases, mutation testing. Higher rigor = better guarantees, higher token cost."
#### Step 1.5: Scope Selection
Display the current project rigor (from `.nwave/des-config.json`) and current global rigor (from `~/.nwave/global-config.json`, if it exists).
Ask via AskUserQuestion:
```
Where do you want to save this configuration?
```
Options:
1. Globally (~/.nwave/global-config.json) — applies to all projects without their own rigor
2. This project only (.nwave/des-config.json) — overrides global for this project
Store the user's choice as `{scope}` and the corresponding file path as `{target_file}`:
- If global: `{target_file}` = `~/.nwave/global-config.json`
- If project: `{target_file}` = `.nwave/des-config.json`
#### Step 2: Comparison Table
Display this table:
```
+-----------+--------+----------+----------+------------+---------+
| | lean | standard | thorough | exhaustive | inherit |
+-----------+--------+----------+----------+------------+---------+
| Agent | haiku | sonnet | opus | opus | *yours* |
| Reviewer | -- | haiku | sonnet | opus | haiku |
| Review | no | yes | double | double | yes |
| TDD | R->G | 5-phase | 5-phase | 5-phase | 5-phase |
| Refactor | no | yes | yes | yes | yes |
| Mutation | no | no | no | yes | no |
+-----------+--------+----------+----------+------------+---------+
| Est. cost | lowest | moderate | higher | highest | varies |
| Est. time | fast | moderate | slower | slowest | varies |
+-----------+--------+----------+----------+------------+---------+
```
Mark "standard" as [recommended]. Below the table, note: "Or choose **custom** to configure each setting individually. Type **inherit** to use your current session model."
#### Step 3: User Selection
Ask user to select via AskUserQuestion (4 options + Other for inherit/custom):
1. standard [recommended]
2. lean
3. thorough
4. exhaustive
Note in the question text: "Type 'custom' to build your own profile, or 'inherit' to use your session model."
If user selects or types "custom" -> jump to Mode 3 (Custom Builder).
If user types "inherit" -> proceed with inherit profile to Step 4.
#### Step 4: Detail View
Show the detail view for the selected profile. Render in a code block for visual clarity.
**lean:**
```
WHAT YOU GET:
- Haiku agent (fastest, cheapest)
- RED -> GREEN TDD (skip PREPARE, RED_ACCEPTANCE, COMMIT phases)
WHAT YOU LOSE:
- No code review
- No PREPARE phase (no test fixture setup)
- No RED_ACCEPTANCE phase (no acceptance tests)
- No COMMIT phase (no refactoring pass)
- No mutation testing
WHEN TO USE:
Config changes, documentation, simple bug fixes, spikes/prototypes
ESTIMATED IMPACT:
Lowest token cost | Fastest per step
```
**standard [recommended]:**
```
WHAT YOU GET:
- Sonnet agent (balanced quality/speed)
- Full 5-phase TDD (PREPARE -> RED_ACCEPTANCE -> RED_UNIT -> GREEN -> COMMIT)
- Haiku reviewer (cost-effective review)
- Refactoring pass in COMMIT phase
WHAT'S NOT INCLUDED:
- No double review (single pass only)
- No mutation testing
- Not opus-level reasoning
WHEN TO USE:
Most development work — features, integrations, refactoring
ESTIMATED IMPACT:
Moderate token cost | Moderate time per step
```
**thorough:**
```
WHAT YOU GET:
- Opus agent (strongest reasoning)
- Sonnet reviewer (deeper review analysis)
- Double review (two independent review passes)
- Full 5-phase TDD
- Refactoring pass
WHAT IT COSTS:
Higher token cost | Slower per step
WHEN TO USE:
Critical features, security-sensitive code, public APIs, complex algorithms
```
**exhaustive:**
```
WHAT YOU GET:
- Opus agent and opus reviewer (strongest at every stage)
- Double review (two independent review passes)
- Full 5-phase TDD
- Refactoring pass
- Mutation testing (>= 80% kill rate gate)
WHAT IT COSTS:
Highest token cost | Slowest per step
WHEN TO USE:
Critical production systems, compliance-sensitive code, long-lived core modules
```
**inherit:**
```
WHAT YOU GET:
- Your session model for agents (nWave inherits, does not override)
- Haiku reviewer
- Full 5-phase TDD
- Single review pass
- Refactoring pass
WHAT THIS MEANS:
nWave respects your model choice and controls the process around it.
If your session runs opus, agents get opus. If sonnet, agents get sonnet.
WHEN TO USE:
When you have strong opinions about which model to use,
or your organization controls model selection externally.
```
#### Step 5: Confirm
Ask user to confirm via AskUserQuestion:
1. Yes, apply this profile
2. No, go back to selection (return to Step 2)
3. Cancel (exit without saving)
#### Step 6: Save to Config
1. If `{scope}` is global AND the directory `~/.nwave/` does not exist, create it with `parents=True`
2. Read `{target_file}` (handle missing file or corrupt JSON: start with `{}`)
3. Parse JSON
4. Set `config["rigor"]` to the full profile object:
```json
{
"profile": "{selected}",
"agent_model": "...",
"reviewer_model": "...",
"tdd_phases": [...],
"review_enabled": true/false,
"double_review": true/false,
"mutation_enabled": true/false,
"refactor_pass": true/false
}
```
5. Write back to `{target_file}`, preserving all other top-level keys (audit_logging_enabled, skill_tracking, update_check, etc.)
#### Step 7: Summary
Display all resolved settings:
```
Rigor profile saved: {name}
Resolved settings:
+-----------------------+---------------------------------------------------+
| agent_model | {value} |
| reviewer_model | {value} |
| tdd_phases | {value} |
| review_enabled | {value} |
| double_review | {value} |
| mutation_enabled | {value} |
| refactor_pass | {value} |
+-----------------------+---------------------------------------------------+
Config: {target_file} ({scope})
All wave commands will use these settings.
```
### Mode 2: Quick Switch (with argument)
#### Step 1: Validate Argument
If argument is not one of: lean, standard, thorough, exhaustive, custom, inherit -> error: "Unknown profile '{name}'. Available: lean, standard, thorough, exhaustive, custom, inherit"
If argument is `custom` -> redirect to Mode 3 (Custom Builder).
Read `.nwave/des-config.json`. If missing -> same error as Mode 1 Step 1.
#### Step 1.5: Scope Selection
Same as Mode 1 Step 1.5. Ask scope question, store `{scope}` and `{target_file}`.
#### Step 2: Show Diff
Display what changes from current profile to target profile:
```
Switching from {current} -> {target}:
agent_model: sonnet -> haiku
reviewer_model: haiku -> skip
review_enabled: true -> false
tdd_phases: 5-phase -> R->G
refactor_pass: true -> false
mutation_enabled: (unchanged) false
```
If downgrading (moving to a less rigorous profile), highlight what user will lose:
```
You will LOSE:
- Code review (reviewer_model: skip)
- PREPARE, RED_ACCEPTANCE, COMMIT phases
- Refactoring pass
```
If no current profile is set, show the target profile settings without diff.
#### Step 3: Confirm
Ask user to confirm via AskUserQuestion:
1. Yes, switch to {target}
2. No, keep current profile
#### Step 4: Save + Summary
Same as Mode 1 Steps 6 and 7. Uses `{target_file}` from Step 1.5.
### Mode 3: Custom Builder (`/nw-rigor custom` or selected from interactive)
Build a profile setting by setting. Each question uses AskUserQuestion with sensible defaults (standard values pre-selected). After all questions, show summary and confirm.
#### Step 1: Config Check
Same as Mode 1 Step 1 (read config, handle missing/corrupt).
#### Step 1.5: Scope Selection
Same as Mode 1 Step 1.5. Ask scope question, store `{scope}` and `{target_file}`.
#### Step 2: Agent Model
Ask via AskUserQuestion:
```
Which model should agents use? (crafter, architect, acceptance-designer)
```
Options:
1. sonnet (Recommended) — balanced quality and speed
2. haiku — fastest, lowest cost
3. opus — strongest reasoning, highest cost
4. inherit — use your current session model
#### Step 3: Reviewer Model
Ask via AskUserQuestion:
```
Which model for peer reviewers?
```
Options:
1. haiku (Recommended) — cost-effective review
2. sonnet — deeper analysis
3. opus — most thorough review
4. skip — no peer review
#### Step 4: Double Review
Ask via AskUserQuestion:
```
Run peer review twice (two independent passes)?
```
Options:
1. No (Recommended) — single review pass
2. Yes — two independent review passes (higher cost)
Only show this question if reviewer_model is not "skip". If "skip", set double_review = false automatically.
#### Step 5: TDD Phases
Ask via AskUserQuestion:
```
Which TDD phases should agents execute?
```
Options:
1. Full 5-phase (Recommended) — PREPARE, RED_ACCEPTANCE, RED_UNIT, GREEN, COMMIT
2. Minimal (RED→GREEN) — RED_UNIT and GREEN only (fastest, skips setup and refactoring)
#### Step 6: Refactoring Pass
Ask via AskUserQuestion:
```
Include a dedicated refactoring pass after implementation?
```
Options:
1. Yes (Recommended) — L1-L4 refactoring in COMMIT phase
2. No — skip refactoring pass
Only show if TDD phases is "Full 5-phase". If minimal, set refactor_pass = false automatically.
#### Step 7: Mutation Testing
Ask via AskUserQuestion:
```
Enable mutation testing (>= 80% kill rate gate)?
```
Options:
1. No (Recommended) — skip mutation testing
2. Yes — run mutmut after implementation, gate at 80% kill rate
#### Step 8: Summary + Confirm
Display the assembled profile:
```
Custom profile:
+-----------------------+---------------------------------------------------+
| agent_model | {value} |
| reviewer_model | {value} |
| double_review | {value} |
| tdd_phases | {value} |
| refactor_pass | {value} |
| mutation_enabled | {value} |
+-----------------------+---------------------------------------------------+
```
Ask to confirm via AskUserQuestion:
1. Yes, apply this custom profile
2. Start over (return to Step 2)
3. Cancel (exit without saving)
#### Step 9: Save + Summary
Same as Mode 1 Steps 6 and 7. Uses `{target_file}` from Step 1.5. Save with `"profile": "custom"`.
## Error Handling
| Error | Response |
|-------|----------|
| Missing `.nwave/` directory | "No nWave config directory found. Run nwave install first." |
| Invalid JSON in des-config.json | Backup as `.bak`, reset to `{}`, proceed with notice |
| Unknown profile name | "Unknown profile '{name}'. Available: lean, standard, thorough, exhaustive, custom, inherit" |
| inherit with undetectable session model | Fallback to sonnet with notice: "Could not detect session model. Defaulting agent_model to sonnet." |
## Success Criteria
- [ ] Current profile displayed (or "none set")
- [ ] Scope question asked (global vs project) in all 3 modes
- [ ] Comparison table shown with all 5 profiles
- [ ] User selected and confirmed a profile
- [ ] Config written to `{target_file}` (read-modify-write, other keys preserved)
- [ ] `~/.nwave/` directory auto-created with `parents=True` on first global save
- [ ] Summary of all resolved settings displayed (including scope and target file path)
## Examples
### Example 1: Interactive first-time selection
```
/nw-rigor
```
No current profile set. Shows comparison table, user picks "standard", sees detail view, confirms. Config written with full rigor block.
### Example 2: Quick switch to lean
```
/nw-rigor lean
```
Current profile is "standard". Shows diff: loses review, loses PREPARE/COMMIT phases, loses refactoring pass. Agent drops from sonnet to haiku. User confirms. Config updated.
### Example 3: Quick switch up
```
/nw-rigor thorough
```
Current profile is "standard". Shows diff: sonnet->opus agent, haiku->sonnet reviewer, double review enabled. No losses to highlight (pure upgrade). User confirms. Config updated.
### Example 4: Custom profile builder
```
/nw-rigor custom
```
Walks through 6 questions: agent model (opus), reviewer (haiku), double review (no), TDD (full 5-phase), refactoring (yes), mutation (yes). Saves as custom profile with opus agent, haiku reviewer, single review, full TDD, refactoring, and mutation testing — a combination no preset offers.
### Example 5: Invalid profile name
```
/nw-rigor turbo
```
Error: "Unknown profile 'turbo'. Available: lean, standard, thorough, exhaustive, inherit"
### Example 6: No nWave installed
```
/nw-rigor
```
No `.nwave/` directory found. Shows: "No nWave config directory found. Run nwave install first." Stops.Related Skills
nw-ux-web-patterns
Web UI design patterns for product owners. Load when designing web application interfaces, writing web-specific acceptance criteria, or evaluating responsive designs.
nw-ux-tui-patterns
Terminal UI and CLI design patterns for product owners. Load when designing command-line tools, interactive terminal applications, or writing CLI-specific acceptance criteria.
nw-ux-principles
Core UX principles for product owners. Load when evaluating interface designs, writing acceptance criteria with UX requirements, or reviewing wireframes and mockups.
nw-ux-emotional-design
Emotional design and delight patterns for product owners. Load when designing onboarding flows, empty states, first-run experiences, or evaluating the emotional quality of an interface.
nw-ux-desktop-patterns
Desktop application UI patterns for product owners. Load when designing native or cross-platform desktop applications, writing desktop-specific acceptance criteria, or evaluating panel layouts and keyboard workflows.
nw-user-story-mapping
User story mapping for backlog management and outcome-based prioritization. Load during Phase 2.5 (User Story Mapping) to produce story-map.md and prioritization.md.
nw-tr-review-criteria
Review dimensions and scoring for root cause analysis quality assessment
nw-tlaplus-verification
TLA+ formal verification for design correctness and PBT pipeline integration
nw-test-refactoring-catalog
Detailed refactoring mechanics with step-by-step procedures, and test code smell catalog with detection patterns and before/after examples
nw-test-organization-conventions
Test directory structure patterns by architecture style, language conventions, naming rules, and fixture placement. Decision tree for selecting test organization strategy.
nw-test-design-mandates
Four design mandates for acceptance tests - hexagonal boundary enforcement, business language abstraction, user journey completeness, walking skeleton strategy, and pure function extraction
nw-tdd-review-enforcement
Test design mandate enforcement, test budget validation, 5-phase TDD validation, and external validity checks for the software crafter reviewer