원클릭으로
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