git:20260318.e6a0e19 to git:20260609.c723548

10 added, 9 removed. Audit A to A.

---
name: nw-wizard-shared-rules
- description: Shared rules for feature ID derivation and wave detection used by /nw:new, /nw:continue, and /nw:fast-forward wizards
+ description: Shared rules for feature ID derivation and wave detection used by /nw-new, /nw-continue, and /nw-fast-forward wizards
+ user-invocable: false
disable-model-invocation: true
---
# Wizard Shared Rules
- Shared rules referenced by `/nw:new`, `/nw:continue`, and `/nw:fast-forward` wizards.
+ Shared rules referenced by `/nw-new`, `/nw-continue`, and `/nw-fast-forward` wizards.
## Feature ID Derivation
Derive a kebab-case feature ID from the feature description:
1. Strip common prefixes: "implement", "add", "create", "build"
2. Remove English stop words: "a", "the", "to", "for", "with", "and", "in", "on", "of"
3. Convert to kebab-case (lowercase, hyphens between words)
4. Limit to 5 hyphenated segments maximum
**Examples:**
- "Add rate limiting to the API gateway" โ†’ `rate-limiting-api-gateway`
- "OAuth2 upgrade" โ†’ `oauth2-upgrade`
- "Implement a real-time notification system with WebSocket support for mobile and desktop clients" โ†’ `real-time-notification-system-websocket`
## Wave Detection Rules
- For a given project (`docs/feature/{id}/`), check each wave's artifacts:
+ Check SSOT first, then feature delta:
| Wave | Complete When | In Progress When |
|------|--------------|-----------------|
- | DISCOVER | `docs/feature/{id}/discover/problem-validation.md` AND `docs/feature/{id}/discover/lean-canvas.md` exist and are non-empty | `docs/feature/{id}/discover/` exists but required files missing or empty |
- | DISCUSS | `docs/feature/{id}/discuss/requirements.md` AND `docs/feature/{id}/discuss/user-stories.md` exist and are non-empty | `docs/feature/{id}/discuss/` exists but required files missing or empty |
- | DESIGN | `docs/feature/{id}/design/architecture-design.md` exists and is non-empty | `docs/feature/{id}/design/` exists but required file missing or empty |
- | DEVOPS | `docs/feature/{id}/devops/platform-architecture.md` exists and is non-empty | `docs/feature/{id}/devops/` exists but platform-architecture.md missing or empty |
- | DISTILL | `docs/feature/{id}/distill/test-scenarios.md` exists and is non-empty | `docs/feature/{id}/distill/` exists but required file missing or empty |
+ | DISCOVER | `docs/product/jobs.yaml` has a validated job for this feature | `docs/feature/{id}/discover/` exists but no validated job in SSOT |
+ | DISCUSS | `docs/feature/{id}/discuss/user-stories.md` exists and is non-empty | `docs/feature/{id}/discuss/` exists but user-stories.md missing or empty |
+ | DESIGN | `docs/product/architecture/brief.md` has a section for this feature | `docs/feature/{id}/design/` exists but brief.md not updated |
+ | DEVOPS | `docs/product/kpi-contracts.yaml` has contracts for this feature | `docs/feature/{id}/devops/` exists but no KPI contracts in SSOT |
+ | DISTILL | `tests/acceptance/{id}/` has feature files | `docs/feature/{id}/distill/` exists but test files incomplete |
| DELIVER | `docs/feature/{id}/deliver/execution-log.json` with all roadmap steps at COMMIT/PASS | `docs/feature/{id}/deliver/execution-log.json` exists with some steps incomplete |
- "Not started" = neither directory nor required artifacts exist for that wave.
+ "Not started" = neither SSOT entry nor feature delta directory exist for that wave.