User Story Writer
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
Conducts Jobs-to-be-Done analysis, UX journey design, and requirements gathering through interactive discovery.
$ npx skills add nWave-ai/nWave --skill nw-discuss -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nWave-ai/nWave nw-discuss --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .claude/skills && cp -r skills-src/nWave/skills/nw-discuss .claude/skills/nw-discuss && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "nw-discuss" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discuss into .claude/skills/nw-discuss/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-discuss", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discussType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nWave-ai/nWave --skill nw-discuss -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nWave-ai/nWave nw-discuss --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .agents/skills && cp -r skills-src/nWave/skills/nw-discuss .agents/skills/nw-discuss && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nw-discuss" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discuss into .agents/skills/nw-discuss/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-discuss", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nWave-ai/nWave --skill nw-discuss -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nWave-ai/nWave nw-discuss --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/nWave/skills/nw-discuss .cursor/skills/nw-discuss && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nw-discuss" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discuss into .cursor/skills/nw-discuss/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-discuss", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nWave-ai/nWave.git --path nWave/skills/nw-discuss--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nWave-ai/nWave --skill nw-discuss -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nWave-ai/nWave nw-discuss --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/nWave/skills/nw-discuss .gemini/skills/nw-discuss && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nw-discuss" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discuss into .gemini/skills/nw-discuss/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-discuss", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nWave-ai/nWave nw-discussInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nWave-ai/nWave --skill nw-discuss -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .github/skills && cp -r skills-src/nWave/skills/nw-discuss .github/skills/nw-discuss && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nw-discuss" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discuss into .github/skills/nw-discuss/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-discuss", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nWave-ai/nWave --skill nw-discuss -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nWave-ai/nWave nw-discuss --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nWave-ai/nWave.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/nWave/skills/nw-discuss .opencode/skills/nw-discuss && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nw-discuss" agent skill from https://github.com/nWave-ai/nWave/tree/main/nWave/skills/nw-discuss into .opencode/skills/nw-discuss/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nw-discuss", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nw-discussConducts Jobs-to-be-Done analysis, UX journey design, and requirements gathering through interactive discovery.
Nw Discuss is an agent skill from nWave-ai/nWave. Conducts Jobs-to-be-Done analysis, UX journey design, and requirements gathering through interactive discovery. Use when starting feature analysis, defining user stories, or creating acceptance criteria.
Its SKILL.md is about 7.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Product & Project Management, covering User stories and Requirements gathering. The repository describes itself as: AI agents that guide you from idea to working code, with you in control at every step. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit da401a8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nw Discuss loads about 7.3k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 3,407 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from nWave-ai/nWave at commit da401a8, republished under its MIT licence (© nWave-ai). 3,407 words, ~7,339 tokens.
.claude/skills/nw-discuss/SKILL.md (or your agent's skills folder).Wave: DISCUSS (wave 2 of 6) | Agent: Luna (nw-product-owner) | Command: /nw-discuss
Execute DISCUSS wave through Luna's integrated workflow: JTBD analysis|UX journey discovery|emotional arc design|shared artifact tracking|requirements gathering|user story creation|acceptance criteria definition. Luna uncovers jobs users accomplish, maps to journeys and requirements, handles complete lifecycle from user motivations through DoR-validated stories ready for DESIGN. Establishes the acceptance-test foundation.
For greenfield projects (no src/ code, no docs/feature/ history), Luna proposes Walking Skeleton as Feature 0.
Provenance: feature lean-wave-documentation — D2 (schema-typed sections), D10 (one-line expansion descriptions), DDD-7 (DISCUSS pilot wave), D6 (install-time pedagogical prompt). Tier-1 [REF] sections (always emitted) + Tier-2 EXPANSION CATALOG items (lazy, on-demand) are the two output bands. Full contract: nWave/skills/nw-density-resolution-contract/SKILL.md.
Under ## Wave: DISCUSS / [REF] <Section> headings:
Rendered under ## Wave: DISCUSS / [WHY|HOW] <Section> only when requested via --expand <id> (DDD-2), the wave-end menu (expansion_prompt = "ask" or "ask-intelligent"), mode = "full" auto-expansion, or an ad-hoc user request mid-session.
| Expansion ID | Tier label | One-line description |
|---|---|---|
jtbd-narrative | [WHY] | Full JTBD analysis: job dimensions (functional/emotional/social), four forces, opportunity scores |
persona-narrative | [WHY] | Extended persona: goals, frustrations, mental model, vocabulary glossary |
alternatives-considered | [WHY] | Decision rationale: alternatives weighed and rejected per locked decision |
migration-playbook | [HOW] | Step-by-step migration guide for users on a prior version |
journey-deep-dive | [HOW] | Full UX journey: emotional arc, shared artifacts registry, error-path map |
gherkin-scenarios | [HOW] | Generated Gherkin scenarios covering happy path and key error paths |
reviewer-findings-trace | [WHY] | R1-R10 reviewer findings chain with verdicts and how each landed in D1-D10 |
expansion-catalog-rationale | [WHY] | Why this set of expansions, why these defaults, why D10 enforces one-line descriptions |
Call resolve_density(global_config) from scripts/shared/density_config.py after reading ~/.nwave/global-config.json (missing/malformed = empty dict). Returns mode ("lean" | "full") + expansion_prompt ("ask" | "ask-intelligent" | "always-skip" | "always-expand" | "smart") per the D12 cascade (resolver-internal, DDD-5 — do NOT replicate locally). DISCUSS hard default is lean+ask-intelligent per Decision 4 (2026-04-28). Branch on density.mode (lean = Tier-1 only; full = Tier-1 + all Tier-2) and at wave end on density.expansion_prompt. Full cascade detail, branch semantics, ad-hoc override workflow: nWave/skills/nw-density-resolution-contract/SKILL.md.
ask-intelligent mode, per Decision 4)DISCUSS-specific extension on top of the shared contract. When expansion_prompt = "ask-intelligent", evaluate ALL triggers below against the wave artifacts produced so far. Each trigger that fires contributes its suggested expansion to a scoped menu. If NO trigger fires, emit no menu — strict lean output.
| Trigger | Detection criterion | Suggested expansion |
|---|---|---|
| AC ambiguity | ≥2 user stories share an AC where reasonable readers could disagree on the outcome | gherkin-scenarios |
| Cross-context complexity | Feature touches ≥3 bounded contexts (per DDD glossary) OR ≥3 distinct technologies | alternatives-considered |
| Multi-stakeholder need | ≥3 distinct personas referenced across the user stories | persona-narrative |
| Compliance / regulatory | ACs reference regulatory terms (GDPR, HIPAA, SOX, audit, retention, encryption, PII, data residency) | migration-playbook (data migration) OR journey-deep-dive (user-facing) |
| WS strategy = D | Walking Skeleton strategy is "Configurable" (env-switching) | alternatives-considered |
Menu when 1+ trigger fires: Suggested expansions for this feature (triggered by: {trigger names}): - {id}: {description} ... Apply? [Y/n/all/none/custom]. Do NOT show the generic 8-item Tier-2 catalog in ask-intelligent mode — only triggered items. Ad-hoc override path ("expand <X>") still works for any catalog item. Telemetry: one event per scoped-menu choice; when NO trigger fires, one choice = "skip" event with expansion_id = "*" records the silent-lean opportunity.
Every expansion choice emits a DocumentationDensityEvent (dataclass at src/des/domain/telemetry/documentation_density_event.py) via event.to_audit_event() → JsonlAuditLogWriter().log_event(...). Schema fields per D4: feature_id, wave, expansion_id, choice, timestamp. For this wave the schema declares "wave": "DISCUSS". Use helper scripts/shared/telemetry.py:write_density_event(...) — do NOT write JSONL directly.
Wave-specific signal: feeds DDD-7 pilot success metric (4) — "downstream agent regression — DESIGN consumes lean DISCUSS feature-delta.md and produces no --expand invocation". ask-intelligent emission rules: one expand event per scoped-menu acceptance; one skip event for no-trigger silent-lean; one skip event for triggers fired but user declined. Full emission rules + per-mode patterns: nWave/skills/nw-density-resolution-contract/SKILL.md.
Question: What type of feature is this? Options:
Question: Should we start with a walking skeleton? Options:
Question: Priority for UX research depth? Options:
Question: Include Jobs-to-be-Done analysis? Options:
job_id in docs/product/jobs.yaml. Stories without job traceability fail Definition of Ready.job_id: infrastructure-only AND a infrastructure_rationale field on every story explaining why no user job applies. Reviewer will reject this option for any feature that touches user-facing surfaces.Default: 1 (Yes). Rationale: STANDING rule "Tech-surface vs value-outcome backlog anti-pattern" (2026-04-24) — epics with tech-surface children but no JTBD framing fail to converge on done-state. Default-on JTBD enforces value-outcome framing at PO level.
Before beginning DISCUSS work, read SSOT and prior wave artifacts:
docs/product/ exists):docs/product/journeys/{name}.yaml — existing journey to extend (if applicable)docs/product/jobs.yaml — validated jobs and opportunity scoresdocs/product/vision.md — product visiondocs/project-brief.md | docs/stakeholders.yamldocs/feature/{feature-id}/discover/ (if present)docs/feature/{feature-id}/diverge/recommendation.md and job-analysis.md (if present — job is already validated, do not re-run JTBD)Migration gate: If docs/product/ does not exist but docs/feature/ has existing features, STOP. The project has old-model features that should be migrated to SSOT before new waves run. Guide the user to docs/guides/migrating-to-ssot-model/README.md and complete the migration first. If docs/product/ does not exist and no old features exist (greenfield), DISCUSS will bootstrap it.
DISCUSS follows DISCOVER and optionally DIVERGE — reading SSOT first ensures continuity with prior features, then prior wave artifacts ground requirements in evidence.
READING ENFORCEMENT: You MUST read every file listed in Prior Wave Consultation above using the Read tool before proceeding. After reading, output a confirmation checklist (✓ {file} for each read, ⊘ {file} (not found) for missing). Do NOT skip files that exist — skipping causes requirements disconnected from evidence.
After reading, check whether any DISCUSS decisions would contradict DISCOVER evidence. Flag contradictions and resolve with user before proceeding. Example: DISCOVER found "users don't want automation" but DISCUSS story assumes "automated workflow" — this must be resolved.
When DISCUSS decisions change assumptions established in DISCOVER:
## Changed Assumptions section at the end of the affected DISCUSS artifact. Gate: section exists in artifact.@nw-product-owner
IF Decision 4 = Yes (default): Execute *jtbd-analysis for {feature-id}, then *journey informed by JTBD artifacts, then *story-map, then *gather-requirements with outcome KPIs. Every user story must include a job_id field traceable to docs/product/jobs.yaml.
IF Decision 4 = No (infrastructure-only escape valve): Execute *journey for {feature-id}, then *story-map, then *gather-requirements with outcome KPIs. Every story must use job_id: infrastructure-only AND include an infrastructure_rationale field. Reviewer rejects this branch for any user-facing feature.
Context files: see Prior Wave Consultation above + project context files.
Configuration:
At the start of execution, create these tasks using TaskCreate and follow them in order:
Grounds all subsequent artifacts in real user motivations. Mandatory unless Decision 4 = No (infrastructure-only); reviewer enforces job traceability as a hard-blocking DoR check.
| Artifact | Path |
|---|---|
| Job Stories | docs/feature/{feature-id}/discuss/jtbd-job-stories.md |
| Four Forces | docs/feature/{feature-id}/discuss/jtbd-four-forces.md |
| Opportunity Scores | docs/feature/{feature-id}/discuss/jtbd-opportunity-scores.md (when multiple jobs) |
Per Decision 3 (2026-04-28): scope assessment runs BEFORE journey visualization investment to detect oversized features early and save rework. The agent (nw-product-owner) runs this as workflow Phase 2 (between Discovery and Journey Visualization). Heuristics: oversized signals (any 2+) = >10 user stories | >3 bounded contexts or modules | walking skeleton requires >5 integration points | estimated effort >2 weeks | multiple independent user outcomes that could ship separately. If oversized: propose splitting into independent thin end-to-end slices, ask user to confirm split before continuing. If right-sized: note ## Scope Assessment: PASS in wave-decisions.md. Deeper Elephant Carpaccio slicing happens later in Phase 2.5 (User Story Mapping). Gate: scope assessed; right-sized OR user-approved split confirmed.
Luna runs deep discovery (mental model|emotional arc|shared artifacts|error paths) informed by JTBD, produces visual journey + YAML schema + Gherkin scenarios. Each journey maps to one or more identified jobs.
${variable} or artifact passed between steps. Document single source of truth for each. Gate: every shared artifact has one documented source.| Artifact | Path |
|---|---|
| Visual Journey | docs/feature/{feature-id}/discuss/journey-{name}-visual.md |
| Journey Schema | docs/feature/{feature-id}/discuss/journey-{name}.yaml |
| Gherkin Scenarios | docs/feature/{feature-id}/discuss/journey-{name}.feature |
| Artifact Registry | docs/feature/{feature-id}/discuss/shared-artifacts-registry.md |
Luna loads user-story-mapping skill before this phase.
user-story-mapping skill. Gate: skill loaded.docs/feature/{feature-id}/slices/slice-NN-name.md with: goal (one sentence), IN scope, OUT scope, learning hypothesis (what this disproves if it fails, what it confirms if it succeeds), acceptance criteria, dependencies, effort estimate, reference class, pre-slice SPIKE if uncertainty is high. Each brief is ≤100 lines. Gate: brief exists for each slice listed in the story map.| Artifact | Path |
|---|---|
| Story Map | docs/feature/{feature-id}/discuss/story-map.md |
| Prioritization | docs/feature/{feature-id}/discuss/prioritization.md |
| Slice Briefs | docs/feature/{feature-id}/slices/slice-NN-*.md (one per slice) |
Luna crafts LeanUX stories informed by JTBD + journey artifacts. Every story traces to at least one job story. Validates against DoR, prepares handoff. Per-wave peer review is OPTIONAL — the mandatory review gate is consolidated at end of DISTILL where Eclipse + Architect + Forge + Sentinel run in parallel against the full feature-delta.md (all 4 waves visible). Invoke per-wave review explicitly via /nw-review only when uncertainty warrants early feedback (e.g., novel domain, contested DoR, vendor-neutrality risk).
job_id referencing a job in docs/product/jobs.yaml (Phase 1 output when Decision 4 = Yes). Infrastructure-only escape valve (Decision 4 = No): every story uses job_id: infrastructure-only AND includes an infrastructure_rationale field documenting why no user job applies — reviewer rejects this for user-facing features. Gate: every story has a job traceability reference (real job_id OR infrastructure-only with rationale).
1b. Elevator Pitch Test (MANDATORY, per-story) — Every user story MUST contain an ### Elevator Pitch subsection immediately after the story narrative, with exactly these three lines:### Elevator Pitch
Before: {one sentence — what the user cannot do today}
After: run `{exact command / endpoint / UI action}` → sees `{exact observable output}`
Decision enabled: {one sentence — what the user decides with that output}Rules:
@infrastructure and BLOCK the slice — a slice containing only @infrastructure stories cannot be releasedSlice composition hard gate (per Decision 2): any slice that contains ONLY @infrastructure stories (zero user-visible value stories) is a structural failure. The reviewer (nw-product-owner-reviewer) will REJECT the story-map and set verdict to rejected_pending_revisions. The PO must either (a) merge the slice with an adjacent value-bearing slice, or (b) split the @infrastructure work to land BEFORE the slice as a precursor commit (not a separately-shipped slice). This is hard-blocking: structural failure, not nit.
Gate: every non-@infrastructure story has a complete Elevator Pitch. Every slice contains at least one user-visible value story (slice composition hard gate).
/nw-review nw-product-owner-reviewer only if (a) DoR validation surfaced ambiguity, (b) JTBD assumptions are unverified, (c) vendor-neutrality risk in story ACs, or (d) user explicitly requests. Default: skip. The mandatory consolidated review covering DISCUSS+DESIGN+DEVOPS+DISTILL fires at end of DISTILL. Gate: optional unless triggered. Structural-correctness reviewer never skips: rigor.reviewer_model: "skip" applies to scale-sensitive cost-driven reviewers (Eclipse / Architect / Forge) only; the structural-correctness reviewer at the end of DISTILL (Sentinel / @nw-acceptance-designer-reviewer) ALWAYS dispatches — silent skip masks the bug class issue #52 fixed.| Artifact | Path |
|---|---|
| User Stories (includes requirements + embedded AC) | docs/feature/{feature-id}/discuss/user-stories.md |
| DoR Validation | docs/feature/{feature-id}/discuss/dor-validation.md |
| Outcome KPIs | docs/feature/{feature-id}/discuss/outcome-kpis.md |
docs/feature/{id}/slices/slice-NN-*.md, all carpaccio taste tests passed)job_id: infrastructure-only with rationale)Handoff To: nw-solution-architect (DESIGN wave) + nw-platform-architect (DEVOPS wave, KPIs only) Deliverables: User stories + story map + outcome KPIs + SSOT journey/jobs updates | JTBD artifacts (when selected)
DISCUSS hands off to BOTH DESIGN (full artifacts) and DEVOPS (outcome-kpis.md only). DEVOPS and DESIGN can proceed in parallel — DESIGN receives the complete artifact set while DEVOPS receives only the KPI file to drive observability and instrumentation design.
Before completing DISCUSS, produce docs/feature/{feature-id}/discuss/wave-decisions.md:
# DISCUSS Decisions — {feature-id}
## Key Decisions
- [D1] {decision}: {rationale} (see: {source-file})
## Requirements Summary
- Primary jobs/user needs: {1-3 sentence summary}
- Walking skeleton scope: {if applicable}
- Feature type: {user-facing|backend|infrastructure|cross-cutting}
## Constraints Established
- {constraint from requirements analysis}
## Upstream Changes
- {any DISCOVER assumptions changed, with rationale}This summary enables DESIGN to quickly assess DISCUSS outcomes. DESIGN reads this plus key artifacts (user-stories.md, story-map.md, outcome-kpis.md) rather than all DISCUSS files.
Single narrative file: docs/feature/{feature-id}/feature-delta.md — all DISCUSS findings (Tier-1 [REF] sections + any rendered Tier-2 expansions) live here. User stories with embedded AC, story map, DoR validation, outcome KPIs, wave-decisions all become ## Wave: DISCUSS / [REF|WHY|HOW] <Section> headings.
Machine artifacts (declared, parseable by downstream waves):
docs/feature/{feature-id}/slices/slice-NN-*.md — slice briefs (one per elephant-carpaccio slice; consumed by DELIVER for roadmap step decomposition)SSOT updates (per Recommendation 3 / back-propagation contract):
docs/product/jobs.yaml — add validated job stories (functional/emotional/social dimensions, four forces, opportunity score)docs/product/journeys/{name}.yaml — create or extend journey schema (refines DISCOVER seed)docs/product/personas/{name}.yaml — create or extend persona profileLegacy multi-file outputs (user-stories.md, story-map.md, dor-validation.md, outcome-kpis.md, wave-decisions.md, journey-{name}-visual.md as separate files) are NOT produced — that content lives in feature-delta.md. Validator: scripts/validation/validate_feature_layout.py.
/nw-discuss first-time-setupOrchestrator asks Decision 1-3. User selects "User-facing", "No skeleton", "Comprehensive". Luna starts with JTBD analysis: discovers jobs like "When I first open the app, I want to feel productive immediately, so I can justify the purchase." Maps four forces for each job. Scores opportunities. Then runs journey discovery informed by JTBD, produces visual journey + YAML + Gherkin. Finally crafts stories where each traces to a job, validates DoR, and prepares handoff.
/nw-discuss --phase=jtbd onboarding-flowRuns only Luna's JTBD analysis phase (job discovery + dimensions + four forces + opportunity scoring). Produces JTBD artifacts without proceeding to journey design or requirements. Useful for early discovery when you need to understand user motivations before committing to UX design.
/nw-discuss --phase=journey release-nwaveRuns only Luna's journey design phases (discovery + visualization + coherence validation). Produces journey artifacts without proceeding to requirements crafting. Useful when JTBD is already done and journey design needs standalone iteration.
/nw-discuss --phase=requirements new-plugin-systemRuns only Luna's requirements phases (gathering + crafting + DoR validation). Assumes JTBD and journey artifacts already exist or are not needed (e.g., backend feature).
© nWave-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in nWave/skills/nw-discuss of nWave-ai/nWave.
Open the folder on GitHubat commit da401a8
Nw Discuss next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Nw Discuss this skillnWave-ai/nWave | 616 | — | ~7.3k | Automated safety check: Pass | MIT | |
| User Story Writerdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.9k | Automated safety check: Pass | Custom licence | |
| PRD Developmentdeanpeters/Product-Manager-Skills | 7.2k | 3 repos | ~6.2k | Automated safety check: Pass | Custom licence | |
| Feature ForgeJeffallan/claude-skills | 12k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Specificationcitypaul/.dotfiles | 740 | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Find Gapscitypaul/.dotfiles | 740 | — | ~6.6k | Automated safety check: Pass | Custom licence |
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
deanpeters/Product-Manager-Skills
Builds a structured PRD that ties problem, users, solution and success criteria together, turning discovery notes into a document engineers can act on.
Jeffallan/claude-skills
Runs a structured requirements interview to produce a feature specification with EARS requirements, acceptance criteria and an implementation checklist.
citypaul/.dotfiles
Turn fuzzy intent into shared understanding and acceptance criteria — specification as a conversation, run one question at a time, before any story is split or planned.
citypaul/.dotfiles
Adversarially review an existing written artifact — stories, plans, acceptance criteria, specs, or design mocks — to surface missing states, unhandled edge cases, unstated assumptions, unverifiable…
forcedotcom/salesforcedx-vscode
Triage the team's open GUS backlog — propose closing done-but-open work items (with code/test citations), flag under-specified items for grilling, catch wrong-epic / orphan / unpointed / dead-link…
nWave-ai/nWave
DELIVER wave orchestration workflow -- 9 phases from baseline to finalization.
nWave-ai/nWave
Generates C4 architecture diagrams (context, container, component) in Mermaid or PlantUML.
nWave-ai/nWave
Generates 3-5 divergent design directions through JTBD analysis, competitive research, structured brainstorming, and taste evaluation before convergence.
nWave-ai/nWave
Creates evidence-based documentation following DIVIO/Diataxis principles.
nWave-ai/nWave
A skill your agent uses when a DELIVER roadmap already exists and you need to dispatch exactly one identified step through its TDD cycle.
nWave-ai/nWave
Creates new specialized agents using the 5-phase workflow (ANALYZE DESIGN CREATE VALIDATE REFINE).
Categories
Conducts Jobs-to-be-Done analysis, UX journey design, and requirements gathering through interactive discovery. Nw Discuss is an agent skill from nWave-ai/nWave. Conducts Jobs-to-be-Done analysis, UX journey design, and requirements gathering through interactive discovery.
Nw Discuss fits situations like: starting feature analysis; defining user stories; creating acceptance criteria.
Run `npx skills add nWave-ai/nWave --skill nw-discuss -a claude-code`. Or copy the skill folder (nWave/skills/nw-discuss in nWave-ai/nWave) into .claude/skills/nw-discuss in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nWave-ai/nWave --skill nw-discuss -a codex`. Or copy the skill folder (nWave/skills/nw-discuss in nWave-ai/nWave) into .agents/skills/nw-discuss in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nWave-ai/nWave --skill nw-discuss -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nw-discuss, .gemini/skills/nw-discuss, .github/skills/nw-discuss and .opencode/skills/nw-discuss in your project.
SKILL.md names no scripts, command-line tools or credentials: Nw Discuss is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Nw Discuss is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.3k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Nw Discuss: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), PRD Development (deanpeters/Product-Manager-Skills, 7.2k stars), Feature Forge (Jeffallan/claude-skills, 12k stars) and Specification (citypaul/.dotfiles, 740 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nWave-ai (a GitHub organization) maintains it in nWave-ai/nWave, which has 616 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on September 16, 2026.
Source: nWave-ai/nWave on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.