nWave/skills/nw-discover/SKILL.md
Conducts evidence-based product discovery through customer interviews and assumption testing. Use at project start to validate problem-solution fit.
npx skillsauth add nwave-ai/nwave nw-discoverInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Wave: DISCOVER | Agent: Scout (nw-product-discoverer)
Execute evidence-based product discovery through assumption testing and market validation. First wave in nWave (DISCOVER > DISCUSS > SPIKE > DESIGN > DEVOPS > DISTILL > DELIVER).
Scout establishes product-market fit through rigorous customer development using Mom Test interviewing principles and continuous discovery practices.
Provenance: feature lean-wave-documentation — D2 (schema-typed sections), D10 (one-line expansion descriptions). Tier-1 [REF] sections (always emitted) + Tier-2 EXPANSION CATALOG items (lazy, on-demand) are the two output bands. Full contract + provenance for [REF] / [WHY] / [HOW] heading convention: nWave/skills/nw-density-resolution-contract/SKILL.md.
Under ## Wave: DISCOVER / [REF] <Section> headings:
Rendered under ## Wave: DISCOVER / [WHY|HOW] <Section> only when requested via --expand <id> (DDD-2), the wave-end menu (expansion_prompt = "ask"), mode = "full" auto-expansion, or an ad-hoc user request mid-session.
| Expansion ID | Tier label | One-line description |
|---|---|---|
| discovery-interview-transcripts | [WHY] | Full interview transcripts with verbatim quotes (Mom Test compliance evidence) |
| jtbd-analysis | [WHY] | Jobs-to-be-Done analysis: functional/emotional/social dimensions per job |
| taste-evaluation-rationale | [WHY] | Decision rationale for each evaluated opportunity (why fit, why not) |
| alternative-opportunities | [WHY] | Alternative product opportunities considered and rejected |
| four-forces-narrative | [WHY] | Push/Pull/Anxiety/Habit narrative analysis per primary job |
| lean-canvas-walkthrough | [HOW] | Lean canvas section-by-section walkthrough for stakeholder reviews |
| interview-protocol | [HOW] | Step-by-step interview script with Mom Test follow-up patterns |
| 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" | "always-skip" | "always-expand" | "smart") per the D12 cascade (resolver-internal, DDD-5 — do NOT replicate locally). Branch on density.mode for what to emit; branch on density.expansion_prompt at wave end for menu behaviour. Full cascade detail, branch semantics, ad-hoc override workflow ("expand X" / "tell me why"): nWave/skills/nw-density-resolution-contract/SKILL.md.
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": "DISCOVER". Use helper scripts/shared/telemetry.py:write_density_event(...) — do NOT write JSONL directly.
Wave-specific signal: DISCOVER feeding into DISCUSS — downstream --expand invocations are a signal the lean baseline is too thin. Full emission rules (one event per ask choice; synthetic skip event for always-skip; per-item expand event for full / always-expand): nWave/skills/nw-density-resolution-contract/SKILL.md.
None (DISCOVER is the first wave).
Before completing DISCOVER, produce docs/feature/{feature-id}/discover/wave-decisions.md:
[D1] {decision}: {rationale} (see: {source-file}). Gate: every major discovery choice has a rationale entry.This summary enables downstream waves to quickly assess DISCOVER outcomes without reading all artifacts.
DISCOVER is the first wave but it DOES write to SSOT. It has no prior wave to back-propagate to, but it seeds the SSOT for downstream waves:
docs/product/journeys/{name}.yaml with the persona, opportunity statement, and the discovered job(s) traced from interviews. DISCUSS will refine and lock this schema.docs/product/personas/{name}.yaml with the validated persona profile. Otherwise leave to DISCUSS.Per D5 (lean-wave-documentation): DISCOVER's docs/product/journeys/ feeder artifact stays Tier-1 — these are seed artifacts for the product SSOT, not feature-delta sections.
@nw-product-discoverer with Execute *discover for {product-concept-name}. Gate: agent dispatched.docs/project-brief.md and docs/market-context.md if available. Gate: available context files referenced.interactive: high, output_format: markdown, interview_depth: comprehensive, evidence_standard: past_behavior. Gate: configuration confirmed.@nw-product-discoverer-reviewer before handoff to DISCUSS. Gate: reviewer dispatched, all discovery artifacts available.Refer to Scout's quality gates in ~/.claude/agents/nw/nw-product-discoverer.md.
Handoff To: nw-product-owner (DISCUSS wave) Deliverables: See Scout's handoff package specification in agent file
/nw-discover invoice-automation
Scout conducts customer development interviews, validates problem-solution fit through Mom Test questioning, and produces a lean canvas with evidence-backed assumptions.
Single narrative file: docs/feature/{feature-id}/feature-delta.md — all DISCOVER findings (Tier-1 [REF] sections + any rendered Tier-2 expansions) live here.
Machine artifacts: none unique to DISCOVER (no parseable companions are produced).
SSOT updates (per Recommendation 3 / back-propagation contract):
docs/product/journeys/{name}.yaml — initial drafts seeding the journey schema (DISCUSS refines)docs/product/personas/{name}.yaml — optional, only when persona-narrative expansion is renderedLegacy multi-file outputs (problem-validation.md, opportunity-tree.md, solution-testing.md, lean-canvas.md, interview-log.md, wave-decisions.md as separate files) are NOT produced — that content lives in feature-delta.md under ## Wave: DISCOVER / [REF|WHY|HOW] <Section> headings. Validator: scripts/validation/validate_feature_layout.py.
testing
Acceptance test creation methodology for the DISTILL wave. Domain knowledge for the acceptance designer agent: port-to-port principle, prior wave reading, wave-decision reconciliation, graceful degradation, and document back-propagation.
testing
Methodology for minimizing test count while maximizing behavioral coverage - behavior definition, anti-pattern catalog, consolidation patterns, stopping criterion, coverage-preserving validation
testing
Methodology for minimizing test count while maximizing behavioral coverage - behavior definition, anti-pattern catalog, consolidation patterns, stopping criterion, coverage-preserving validation
development
Design mandates for acceptance tests - hexagonal boundary, business language abstraction, user journey completeness, pure function extraction, 3 Pillars (domain language / chained narrative / production composition), and the layered ATD discipline (Universe-bound assertion, layer-dependent PBT mode, two-tier acceptance, example-based sad paths)