nwave-ai/nwave-nw-roadmap-design
Roadmap concision rules, step decomposition efficiency, AC abstraction guidelines, and step-to-scenario mapping. Load when creating implementation roadmaps.
This is a copy. The original lives at nwave-ai/nw-roadmap-design.
npx skills add https://github.com/nWave-ai/nWave --skill nw-roadmap-design
When this skill is loaded, these principles activate in addition to the agent's core principles:
Use ONLY compact nested format. See nWave/templates/roadmap-schema.json for fields/validation. Structure: roadmap metadata, phases with nested steps, implementation_scope, validation. Phase IDs: two digits ("01"). Step IDs: "NN-MM".
Token efficiency: crafter reads roadmap ~35 times (7 phases x 5 steps). 5000-token x 35 = 175k tokens. 1000-token x 35 = 35k (80% savings).
WHAT to build (one sentence) | WHY (brief business value) | Observable outcomes (testable AC) | Architectural constraints | Integration points
HOW to implement | code snippets/class names | algorithm descriptions | step-by-step instructions | tech tutorials | testing strategy (TDD standard) | motivational language | redundancy | examples when description clear
Bullets over prose | eliminate qualifiers | assume expertise | active voice | omit obvious
AC describe observable outcomes, never internal implementation.
Describe WHAT (behavior) not HOW (implementation) | Never reference private methods (underscore prefix) | Never reference internal class decomposition | Never prescribe signatures/params/return types | Crafter decides structure during GREEN + REFACTOR
Rule: steps_count / estimated_production_files <= 2.5
Violation = over-decomposition. Action: merge steps targeting same file.
Rule: if N steps differ only by substitution variable, batch into 1 step. Threshold: 3+ identical-pattern steps must batch.
Bad: 4 separate steps for AgentsPlugin, CommandsPlugin, TemplatesPlugin, UtilitiesPlugin
Good: 1 step creating all 4
Each step must add production code. Validation-only steps are not steps.
Bad: "Step 02-05: Validate extraction with integration tests"
Good: validation is part of preceding step's REVIEW phase
For roadmaps feeding DELIVER wave:
For each step mapped to a distilled acceptance scenario, populate:
test_file: relative path to the test file (e.g., tests/acceptance/test_auth.py)scenario_name: the scenario/test function name (e.g., test_login_with_valid_credentials)These fields enable the crafter to locate and unskip the exact pre-existing test during RED (3-phase canon per ADR-025; legacy logs record the same activation under the RED_ACCEPTANCE sub-step).
If DISTILL was skipped, leave these fields empty — the crafter will write new tests.
Before any roadmap, verify: 1. Timing data shows WHERE time spent | 2. Impact ranking shows MOST contributing component | 3. Target validation provides evidence
Missing data: halt, request measurement, offer to help. Gate is blocking.
Before multi-phase (>3 steps), document rejected alternatives:
## Rejected Simple Alternatives
### Alternative 1: {simplest approach}
- What: {description}
- Expected Impact: {% of problem solved}
- Why Insufficient: {evidence-based reason}
### Why Complex Solution Necessary
1. Simple alternatives fail due to: {specific reason with evidence}
2. Complexity justified by: {benefit simple solutions cannot achieve}
Min 2 alternatives. Each: specific description, expected impact, evidence-based rejection.
Schema source-of-truth: nWave/templates/roadmap-schema.json (required step fields: id, name, criteria as list[str]).
{
"id": "01-03",
"name": "Order processing with payment integration",
"criteria": [
"Order confirmed after successful payment",
"Failed payment returns clear error to caller",
"Order persists with payment reference"
],
"files_to_modify": [
"src/order/application/order_service.py",
"src/order/adapters/payment_gateway.py"
],
"implementation_notes": "Payment gateway accessed through driven port; order aggregate maintains consistency."
}
{
"id": "01-03",
"name": "Order processing pipeline with payment integration",
"criteria": [
"Valid order request produces confirmed order with payment reference",
"Invalid payment produces domain error value (not exception)",
"Order state is immutable — processing produces new OrderConfirmed value"
],
"files_to_modify": [
"src/order/pipeline.py",
"src/order/payment_port.py"
],
"implementation_notes": "Payment accessed through function-signature port (PaymentRequest -> Result); pipeline composed from pure transformations; effect boundary at adapter layer only."
}
Same WHAT-level criteria as Example 1, adapted for FP. No function names or type definitions -- functional-software-crafter decides those.
{
"id": "01-03",
"name": "Implement PaymentProcessor class",
"criteria": [
"_validate_card() returns CardValidationResult",
"PaymentProcessor.charge() uses retry with exponential backoff"
]
}
Crafter decides class names|method signatures|retry strategies.
Take nwave-ai/nwave-nw-roadmap-design 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.