ワンクリックで
discovery
Pre-requirements product discovery gate (roadmap check, research loop, feature brief)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Pre-requirements product discovery gate (roadmap check, research loop, feature brief)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Execute ONE executable leaf workstream with TDD, guard enforcement, and ws-verdict output
Multi-agent quality review (QA + Security + DevOps + SRE + TechLead + Documentation + PromptOps)
Execute ONE executable leaf workstream with TDD, guard enforcement, and ws-verdict output
Multi-agent quality review (QA + Security + DevOps + SRE + TechLead + Documentation + PromptOps)
Software architect for system boundaries, design patterns, and integration tradeoffs.
Beads task tracker integration for SDP workflows.
| name | discovery |
| description | Pre-requirements product discovery gate (roadmap check, research loop, feature brief) |
| version | 1.0.0 |
| depends_on | @feature v8 |
| changes | [{"Initial release":"4 phases, 3 routing tracks (Obvious / Competitive / Novel)"}] |
Validate before specifying. Answer "should we build this?" before "how should we build this?"
When user invokes @discovery "feature description" or when @feature invokes it (unless --quick):
sdp index stats <repo-path> # warn if index > 24h old
sdp index query <repo-path> "<keyword1> <keyword2> <keyword3>"
Analyze results for:
Present Overlap Report (HIGH and MEDIUM confidence only; log LOW to file):
Found N potentially related items:
[HIGH] Rework Loop — covers [summary]. Similarity reason: [1 sentence]
[MEDIUM] 00-008-02 — touches [same module]. Overlap type: [data model / API / user flow]
User resolution (single question):
Gate: Proceed only after user resolves.
Mode --quiet: Phase 1 only, then stop. Output: overlap report only.
Ask 2 questions:
Run web search: "{feature_name} existing solutions 2026"
Route to track:
| Condition | Track |
|---|---|
| User answers both confidently AND search finds ≥1 clear prior art | OBVIOUS |
| User answers but search shows competitive landscape | COMPETITIVE |
| User uncertain on Q1 OR search shows no clear prior art | NOVEL |
Mode --skip-research: Phase 1+2 only, then stop. Output: overlap report + route decision.
@idea --quiet (invoked by @feature).Web searches:
"{feature_name} best practices {year}"
"{feature_category} open source alternatives"
"how does [top competitor] implement {feature_name}"
Synthesize:
Ask 3 targeted questions:
Convergence criteria (all 3 must be met):
Each iteration targets one of Cagan's four risks:
| Iteration | Expert Role | Risk | Web Search Focus |
|---|---|---|---|
| 1 | Product PM | Value risk — is this a real problem worth solving? | user pain points, demand signals |
| 2 | Tech Lead | Feasibility risk — can we build this well? | technical patterns, implementation complexity |
| 3 | DevRel/Strategist | Strategic fit risk — does this belong in the product? | roadmap alignment, user segment fit |
Per iteration: form hypothesis → 1-2 web searches → simulate expert (use @think internally) → ask user ONE clarifying question → update risk score.
JTBD Convergence: Loop stops when the user can articulate the feature in Jobs-to-be-Done format: "When [situation], I want to [motivation], so I can [outcome]" AND all 3 risk scores ≥ 3/5 (total ≥ 9/15).
Generate docs/drafts/discovery-{slug}.md:
## Feature Brief: {Name}
### Opportunity Statement
When [situation], [user segment] want to [motivation], so they can [outcome].
### Market Context
- Existing alternatives: [table]
- Build rationale: [why build vs adopt]
- Differentiation: [one sentence]
### Validated Assumptions
- Value risk: [score]/5 — [evidence]
- Feasibility risk: [score]/5 — [evidence]
- Strategic fit: [score]/5 — [evidence]
### Open Questions
- [Q1]: [answer or "unresolved"]
### Research Context (for @idea)
- Alternatives: [list]
- Key constraints: [list]
- Pre-answered cycles: [Vision ✓, Problem ✓, ...]
| Mode | Phases | Output |
|---|---|---|
| Default | 1–4 | Full discovery brief |
--quiet | 1 only | Overlap report |
--skip-research | 1+2 | Overlap report + route decision |
@discovery "auth" — pre-check only, produces discovery brief, stops@feature "auth" invokes @discovery before @idea (unless --quick)Primary: docs/drafts/discovery-{slug}.md (COMPETITIVE / NOVEL tracks)
Secondary: Overlap report (presented to user); route decision (OBVIOUS / COMPETITIVE / NOVEL)
--spec docs/drafts/discovery-{slug}.mdBefore creating the discovery brief, emit a write plan:
--dry-run — Emit write plan only. Do NOT create, modify, or delete any file.--yes — Skip confirmation prompt. Execute immediately. Intended for CI/non-interactive.--yes)..sdp/log/events.jsonl (sanitize file paths before logging: strip newlines, ensure valid JSON escaping):
{"spec_version":"v1.0","event_id":"<uuid>","timestamp":"<ISO-8601>","source":{"system":"sdp-lab","component":"discovery"},"event_type":"decision.made","payload":{"decision_type":"write_plan","plan":[{"path":"...","action":"CREATE|MODIFY|DELETE","reason":"..."}]},"context":{"feature_id":"<F-id if known>","workstream_id":"<ws-id if applicable>"}}
Include context fields only when the ID is known at plan time. Omit unavailable fields rather than inventing placeholders.
Note: Phase 1 uses prompt-level write boundaries (CLI out of scope). Aligns with
schema/contracts/orchestration-event.schema.jsonviaevent_type: "decision.made". Phase 2 CLI will emit natively.
Output format:
WRITE PLAN for @discovery <feature>:
CREATE: docs/drafts/discovery-{slug}.md — Discovery brief (COMPETITIVE / NOVEL tracks only)
MODIFY: .sdp/log/events.jsonl — Write plan event log
Proceed? [y/n]
Modes:
--dry-run: Show plan → STOP--yes: Show plan → Execute immediately (no prompt)| Symptom | Fix |
|---|---|
| Skill produces no output | Check working directory is project root with docs/workstreams/backlog/ |
| "checkpoint not found" | Run sdp-orchestrate --feature <ID> to create initial checkpoint |
| "workstream files missing" | Run sdp-orchestrate --index to verify, then @feature to regenerate |
| Skill hangs / no progress | Check .sdp/log/events.jsonl for last event; use sdp reset --feature <ID> if stuck |
| Review loop exceeds 3 rounds | Use @review --override "reason", @review --partial, or @review --escalate |
@feature - Orchestrator that invokes @discovery@idea - Requirements gathering (receives discovery output as --spec)@think - Internal expert simulation for NOVEL track