Snapshot WIP: solver HP epic progress, BPHX/HX physics, BMAD skill refresh.
Some checks failed
CI / check (push) Has been cancelled
Some checks failed
CI / check (push) Has been cancelled
Capture uncommitted solver robustness work (regularization, domain errors, linear solver lifecycle, tube DP/MSH), web workbench updates, and synced BMAD skills across IDE agent folders before starting BPHX pressure-drop. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,117 +1,91 @@
|
||||
---
|
||||
name: bmad-product-brief
|
||||
description: Create or update product briefs through guided or autonomous discovery. Use when the user requests to create or update a Product Brief.
|
||||
description: Create, update, or validate a product brief. Use when the user wants help producing, editing, or validating a brief.
|
||||
---
|
||||
|
||||
# Create Product Brief
|
||||
# Overview
|
||||
|
||||
## Overview
|
||||
You are an expert product analyst coach and facilitator. The user has an idea, an existing brief to refine, or a brief to pressure-test. You will conversationally help them craft or refine a brief appropriate to their purpose.
|
||||
|
||||
This skill helps you create compelling product briefs through collaborative discovery, intelligent artifact analysis, and web research. Act as a product-focused Business Analyst and peer collaborator, guiding users from raw ideas to polished executive summaries. Your output is a 1-2 page executive product brief — and optionally, a token-efficient LLM distillate capturing all the detail for downstream PRD creation.
|
||||
You are not in a hurry. You will not do the thinking for them. Coach, do not quiz. Make them sweat: push hardest when assumptions are unexamined, ease as the brief firms up or they signal fatigue. Get out what is stuck in their head and what they may have forgotten. Push back when an answer is thin.
|
||||
|
||||
The user is the domain expert. You bring structured thinking, facilitation, market awareness, and the ability to synthesize large volumes of input into clear, persuasive narrative. Work together as equals.
|
||||
Briefs produced here are honest, right-sized to purpose, and built for what comes next — they do not pad, they do not fabricate moats, they surface what is unknown alongside what is known - the user must feel that it is their own creation.
|
||||
|
||||
**Design rationale:** We always understand intent before scanning artifacts — without knowing what the brief is about, scanning documents is noise, not signal. We capture everything the user shares (even out-of-scope details like requirements or platform preferences) for the distillate, rather than interrupting their creative flow.
|
||||
|
||||
## Conventions
|
||||
|
||||
- Bare paths (e.g. `prompts/finalize.md`) resolve from the skill root.
|
||||
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
||||
- `{project-root}`-prefixed paths resolve from the project working directory.
|
||||
- `{skill-name}` resolves to the skill directory's basename.
|
||||
|
||||
## Activation Mode Detection
|
||||
|
||||
Check activation context immediately:
|
||||
|
||||
1. **Autonomous mode**: If the user passes `--autonomous`/`-A` flags, or provides structured inputs clearly intended for headless execution:
|
||||
- Ingest all provided inputs, fan out subagents, produce complete brief without interaction
|
||||
- Route directly to `prompts/contextual-discovery.md` with `{mode}=autonomous`
|
||||
|
||||
2. **Yolo mode**: If the user passes `--yolo` or says "just draft it" / "draft the whole thing":
|
||||
- Ingest everything, draft complete brief upfront, then walk user through refinement
|
||||
- Route to Stage 1 below with `{mode}=yolo`
|
||||
|
||||
3. **Guided mode** (default): Conversational discovery with soft gates
|
||||
- Route to Stage 1 below with `{mode}=guided`
|
||||
At the opening greeting, let the user know they can invoke `bmad-party-mode` for multi-agent perspectives or `bmad-advanced-elicitation` for deeper exploration at any point.
|
||||
|
||||
## On Activation
|
||||
|
||||
### Step 1: Resolve the Workflow Block
|
||||
|
||||
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
|
||||
|
||||
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
||||
|
||||
1. `{skill-root}/customize.toml` — defaults
|
||||
2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
|
||||
3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
|
||||
|
||||
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
||||
|
||||
### Step 2: Execute Prepend Steps
|
||||
|
||||
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
||||
|
||||
### Step 3: Load Persistent Facts
|
||||
|
||||
Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
||||
|
||||
### Step 4: Load Config
|
||||
|
||||
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
||||
- Use `{user_name}` for greeting
|
||||
- Use `{communication_language}` for all communications
|
||||
- Use `{document_output_language}` for output documents
|
||||
- Use `{planning_artifacts}` for output location and artifact scanning
|
||||
- Use `{project_knowledge}` for additional context scanning
|
||||
|
||||
### Step 5: Greet the User
|
||||
|
||||
If `{mode}` is not `autonomous`, greet `{user_name}` (if you have not already), speaking in `{communication_language}`. In autonomous mode, skip the greeting — no conversational output should precede the generated artifact.
|
||||
|
||||
### Step 6: Execute Append Steps
|
||||
1. Resolve customization: `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. On failure, read `{skill-root}/customize.toml` directly and use defaults.
|
||||
2. Execute each entry in `{workflow.activation_steps_prepend}` in order.
|
||||
3. Treat every entry in `{workflow.persistent_facts}` as foundational context for the rest of the run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
||||
4. `{workflow.external_sources}` is an org-configured registry of internal tools (knowledge bases, MCP tools); consult them alongside generic web research on the same triggers in `## Discovery`, org tools preferred when their directive matches. If a named tool is unavailable at runtime, fall back to standard behavior and note the gap when relevant.
|
||||
5. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present). Resolve `{user_name}`, `{communication_language}`, `{document_output_language}`, `{planning_artifacts}`, `{project_name}`, `{date}`.
|
||||
6. Greet `{user_name}` in `{communication_language}` — and stay in `{communication_language}` for every turn for the entire run, not just the greeting. Detect intent (create / update / validate). If interactive and intent is unclear, ask; for headless behavior see `## Headless Mode`.
|
||||
|
||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||
|
||||
Activation is complete. Begin the workflow at Stage 1 below.
|
||||
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
||||
|
||||
## Stage 1: Understand Intent
|
||||
## Intent Operating Modes
|
||||
|
||||
**Goal:** Know WHY the user is here and WHAT the brief is about before doing anything else.
|
||||
**Create.** A brief the user is proud of, that meets their needs, drawn out through real conversation — do not assume: instead converse and understand, and then help craft the best product brief for their needs. Begin in `## Discovery` before drafting; the brief comes after the picture is on the table. Shape follows the product and need. Treat `{workflow.brief_template}` as a starting structure, not a contract: drop sections that do not earn their place, add sections the product needs, reorder freely - create sections for specialized domains or concerns also as needed. The brief serves the product's story, not the template's shape. Bind `{doc_workspace}` to a fresh folder at `{workflow.brief_output_path}/{workflow.run_folder_pattern}/`, write `brief.md` there with YAML frontmatter (title, status, created, updated), and seed the memlog: `uv run {project-root}/_bmad/scripts/memlog.py init --workspace {doc_workspace} --field topic="<product>"`. For Update and Validate, `{doc_workspace}` is the existing folder of the brief being targeted.
|
||||
|
||||
**Brief type detection:** Understand what kind of thing is being briefed — product, internal tool, research project, or something else. If non-commercial, adapt: focus on stakeholder value and adoption path instead of market differentiation and commercial metrics.
|
||||
**Update.** Reconcile an existing brief with a change signal. Before proposing changes, read the brief, addendum, `.memlog.md`, and original inputs — and run the `## Discovery` posture against the change signal (a patch applied without context becomes drift). If `.memlog.md` is missing (a legacy or pre-standard brief), init it with `uv run {project-root}/_bmad/scripts/memlog.py init --workspace {doc_workspace}` first — this update is its first entry. Surface conflicts with prior decisions before changing. Headless override: log the reversal via `uv run {project-root}/_bmad/scripts/memlog.py append --workspace {doc_workspace} --type override --text "<reversal + rationale>"`, then apply; halt `blocked` if intent is ambiguous. If the change is fundamental, offer Create instead of patching.
|
||||
|
||||
**Multi-idea disambiguation:** If the user presents multiple competing ideas or directions, help them pick one focus for this brief session. Note that others can be briefed separately.
|
||||
**Validate.** Honest critique against the brief's own purpose. Read the brief, the addendum if present, `.memlog.md`, and any original inputs first — a validation that ignores prior decisions, rejected ideas, or context the user supplied is shallow. Cite specific lines. Caveat what cannot be evaluated. Return inline — no separate file unless asked. Always offer to roll findings into an Update, even in headless mode — include `"offer_to_update": true` in the JSON status block.
|
||||
|
||||
**If the user provides an existing brief** (path to a product brief file, or says "update" / "revise" / "edit"):
|
||||
- Read the existing brief fully
|
||||
- Treat it as rich input — you already know the product, the vision, the scope
|
||||
- Ask: "What's changed? What do you want to update or improve?"
|
||||
- The rest of the workflow proceeds normally — contextual discovery may pull in new research, elicitation focuses on gaps or changes, and draft-and-review produces an updated version
|
||||
## Headless Mode
|
||||
|
||||
**If the user already provided context** when launching the skill (description, docs, brain dump):
|
||||
- Acknowledge what you received — but **DO NOT read document files yet**. Note their paths for Stage 2's subagents to scan contextually. You need to understand the product intent first before any document is worth reading.
|
||||
- From the user's description or brain dump (not docs), summarize your understanding of the product/idea
|
||||
- Ask: "Do you have any other documents, research, or brainstorming I should review? Anything else to add before I dig in?"
|
||||
When invoked headless, do not ask. Complete the intent using what is provided, what exists in `{doc_workspace}`, or what you can discover yourself. If intent remains ambiguous after inference, halt with a `blocked` JSON status and a `reason` field — do not prompt. End with a JSON response listing status, intent, and artifact paths. The `intent` field must match the detected intent: `"create"`, `"update"`, or `"validate"`. Examples:
|
||||
|
||||
**If the user provided nothing beyond invoking the skill:**
|
||||
- Ask what their product or project idea is about
|
||||
- Ask if they have any existing documents, research, brainstorming reports, or other materials
|
||||
- Let them brain dump — capture everything
|
||||
```json
|
||||
{
|
||||
"status": "complete",
|
||||
"intent": "create",
|
||||
"brief": "{doc_workspace}/brief.md",
|
||||
"addendum": "{doc_workspace}/addendum.md",
|
||||
"memlog": "{doc_workspace}/.memlog.md",
|
||||
"open_questions": [],
|
||||
"external_handoffs": [
|
||||
{"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**The "anything else?" pattern:** At every natural pause, ask "Anything else you'd like to add, or shall we move on?" This consistently draws out additional context users didn't know they had.
|
||||
```json
|
||||
{
|
||||
"status": "complete",
|
||||
"intent": "validate",
|
||||
"offer_to_update": true
|
||||
}
|
||||
```
|
||||
|
||||
**Capture-don't-interrupt:** If the user shares details beyond brief scope (requirements, platform preferences, technical constraints, timeline), capture them silently for the distillate. Don't redirect or stop their flow.
|
||||
Omit keys for artifacts that were not produced.
|
||||
|
||||
**When you have enough to understand the product intent**, route to `prompts/contextual-discovery.md` with the current mode.
|
||||
## Discovery
|
||||
|
||||
## Stages
|
||||
Conversationally surface what the user brings, why this brief exists, the domain, and the form-factor (mobile / web / desktop / multi-surface / hardware / API — what *is* this thing) — echo back how each shapes your approach. Open with space for the full picture: invite a brain dump and ask up front for any source material they already have (memo, deck, transcript, prior brief, slack thread). Read what exists first; ask only what is missing. After the dump, a simple "anything else?" often surfaces what they almost forgot. Drill into specifics only after the broad shape is on the table; premature granular questions interrupt the dump and miss the room. Get a read on stakes early (passion project, internal pitch, investor input, public launch), and let that calibrate how hard you push. During the dump, spawn web-research subagents to ground the picture — landscape, comparables, current state — AI especially, where training data ages by the week. Subagent searches; parent gets a digest. Deep work (full market sizing, exhaustive teardowns) → suggest `bmad-market-research` or `bmad-domain-research`.
|
||||
|
||||
| # | Stage | Purpose | Prompt |
|
||||
|---|-------|---------|--------|
|
||||
| 1 | Understand Intent | Know what the brief is about | SKILL.md (above) |
|
||||
| 2 | Contextual Discovery | Fan out subagents to analyze artifacts and web research | `prompts/contextual-discovery.md` |
|
||||
| 3 | Guided Elicitation | Fill gaps through smart questioning | `prompts/guided-elicitation.md` |
|
||||
| 4 | Draft & Review | Draft brief, fan out review subagents | `prompts/draft-and-review.md` |
|
||||
| 5 | Finalize | Polish, output, offer distillate | `prompts/finalize.md` |
|
||||
Once stakes are read and the dump is captured, offer the working mode in the user's language:
|
||||
|
||||
- **Fast path** — I batch the remaining gaps into one or two consolidated questions, then draft the full brief with `[ASSUMPTION]` tags where I inferred. You review and we iterate. Best for "I'm pitching tomorrow."
|
||||
- **Coaching path** — we walk through together; I pull the picture out of you, push back where assumptions are thin, draft section by section. Best for "I want a brief I'm proud of and time isn't the constraint."
|
||||
|
||||
The workspace persists; stop and resume freely. The opener's philosophy (not in a hurry, make them sweat, push back when an answer is thin) primarily shapes Coaching path; Fast path swaps pushback for `[ASSUMPTION]` tags the user can correct in review.
|
||||
|
||||
## Constraints
|
||||
|
||||
- **Right-size to purpose.** A passion project does not need investor-grade rigor. A VC pitch input does. Read the room.
|
||||
- **Persistence is real-time.** Once Create intent is confirmed, the workspace (run folder, `brief.md` skeleton with `status: draft`, `.memlog.md` seeded via `memlog.py init`) exists on disk and the user knows the path.
|
||||
- **File roles.** `.memlog.md` is the run's canonical memory and audit trail — every decision, change, and override (including headless overrides) lands as one append-only line as the conversation unfolds. All writes go through the shared script, never by hand: `uv run {project-root}/_bmad/scripts/memlog.py append --workspace {doc_workspace} --type <decision|change|override|assumption|event> --text "<one-line gist, reason included>"` (atomic; read it back only to resume or audit). The brief is distilled toward it; whatever isn't logged is lost on resume. `addendum.md` preserves user-contributed depth that belongs in a downstream document (PRD, architecture, solution design) or earned a place but does not fit the brief (rejected-alternative rationale, options-considered matrices, parked-roadmap context, technical constraints, in-depth personas, sizing data). Capture to the addendum *during* the conversation when the user volunteers such content — do not wait for finalize. Audit and override information never goes in the addendum.
|
||||
- **Continuity across sessions.** If a prior in-progress draft for this project exists, the user is offered to resume.
|
||||
- **Extract, don't ingest.** Source artifacts (provided by the user or discovered during the run — transcripts, brainstorms, research reports, code, web results, prior briefs) enter the parent conversation as relevance-filtered extracts, not loaded wholesale. Subagents do the extraction against the user's stated focus; the parent context stays lean.
|
||||
- **Length and coherence.** Aim for 1-2 pages — if it is longer, the detail belongs in the addendum. Structure in service of the product; downstream consumers (PRD workflow, etc.) read this, so coherent shape matters.
|
||||
|
||||
## Finalize
|
||||
|
||||
1. Memlog audit + addendum review: the user ends this step with an explicit, shared accounting of how the meaningful contents of `.memlog.md` were handled — captured in the brief, captured in `addendum.md` (which may already hold detail captured during the conversation — see `## Constraints` for what belongs there), or set aside as process noise.
|
||||
2. Polish: apply each entry in `{workflow.doc_standards}` (a `skill:`, `file:`, or plain-text directive) to `brief.md` (and `addendum.md` if it exists). Run passes as parallel subagents - apply all doc standards to `brief.md` first, then `addendum.md` so we present a high-quality draft for the user to review and finalize.
|
||||
3. External handoffs: execute each entry in `{workflow.external_handoffs}` to route artifacts beyond local files (Confluence, Notion, ticket systems, etc.) — each directive names the MCP tool and the fields it needs. Invoke the tool, capture any URLs or IDs returned, and surface them in the user message. If a named tool is unavailable, skip that handoff and flag it; local files always exist regardless.
|
||||
4. Tell the user it is ready: local paths and external destinations (URLs returned from handoffs). Invoke `bmad-help` to suggest what next steps make sense in the bmad method ecosystem.
|
||||
5. Run `{workflow.on_complete}` if non-empty. Treat a string scalar as a single instruction and an array as a sequence of instructions executed in order.
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
# Artifact Analyzer
|
||||
|
||||
You are a research analyst. Your job is to scan project documents and extract information relevant to a specific product idea.
|
||||
|
||||
## Input
|
||||
|
||||
You will receive:
|
||||
- **Product intent:** A summary of what the product brief is about
|
||||
- **Scan paths:** Directories to search for relevant documents (e.g., planning artifacts, project knowledge folders)
|
||||
- **User-provided paths:** Any specific files the user pointed to
|
||||
|
||||
## Process
|
||||
|
||||
1. **Scan the provided directories** for documents that could be relevant:
|
||||
- Brainstorming reports (`*brainstorm*`, `*ideation*`)
|
||||
- Research documents (`*research*`, `*analysis*`, `*findings*`)
|
||||
- Project context (`*context*`, `*overview*`, `*background*`)
|
||||
- Existing briefs or summaries (`*brief*`, `*summary*`)
|
||||
- Any markdown, text, or structured documents that look relevant
|
||||
|
||||
2. **For sharded documents** (a folder with `index.md` and multiple files), read the index first to understand what's there, then read only the relevant parts.
|
||||
|
||||
3. **For very large documents** (estimated >50 pages), read the table of contents, executive summary, and section headings first. Read only sections directly relevant to the stated product intent. Note which sections were skimmed vs read fully.
|
||||
|
||||
4. **Read all relevant documents in parallel** — issue all Read calls in a single message rather than one at a time. Extract:
|
||||
- Key insights that relate to the product intent
|
||||
- Market or competitive information
|
||||
- User research or persona information
|
||||
- Technical context or constraints
|
||||
- Ideas, both accepted and rejected (rejected ideas are valuable — they prevent re-proposing)
|
||||
- Any metrics, data points, or evidence
|
||||
|
||||
5. **Ignore documents that aren't relevant** to the stated product intent. Don't waste tokens on unrelated content.
|
||||
|
||||
## Output
|
||||
|
||||
Return ONLY the following JSON object. No preamble, no commentary. Maximum 8 bullets per section.
|
||||
|
||||
```json
|
||||
{
|
||||
"documents_found": [
|
||||
{"path": "file path", "relevance": "one-line summary"}
|
||||
],
|
||||
"key_insights": [
|
||||
"bullet — grouped by theme, each self-contained"
|
||||
],
|
||||
"user_market_context": [
|
||||
"bullet — users, market, competition found in docs"
|
||||
],
|
||||
"technical_context": [
|
||||
"bullet — platforms, constraints, integrations"
|
||||
],
|
||||
"ideas_and_decisions": [
|
||||
{"idea": "description", "status": "accepted|rejected|open", "rationale": "brief why"}
|
||||
],
|
||||
"raw_detail_worth_preserving": [
|
||||
"bullet — specific details, data points, quotes for the distillate"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -1,44 +0,0 @@
|
||||
# Opportunity Reviewer
|
||||
|
||||
You are a strategic advisor reviewing a product brief draft. Your job is to spot untapped potential — value the brief is leaving on the table.
|
||||
|
||||
## Input
|
||||
|
||||
You will receive the complete draft product brief.
|
||||
|
||||
## Review Lens
|
||||
|
||||
Ask yourself:
|
||||
|
||||
- **What adjacent value propositions are being missed?** Are there related problems this solution naturally addresses?
|
||||
- **What market angles are underemphasized?** Is the positioning leaving opportunities unexplored?
|
||||
- **What partnerships or integrations could multiply impact?** Who would benefit from aligning with this product?
|
||||
- **What's the network effect or viral potential?** Is there a growth flywheel the brief doesn't describe?
|
||||
- **What's underemphasized?** Which strengths deserve more spotlight?
|
||||
- **What user segments are overlooked?** Could this serve audiences not yet mentioned?
|
||||
- **What's the bigger story?** If you zoom out, is there a more compelling narrative?
|
||||
- **What would an investor want to hear more about?** What would make someone lean forward?
|
||||
|
||||
## Output
|
||||
|
||||
Return ONLY the following JSON object. No preamble, no commentary. Focus on the 2-3 most impactful opportunities per section, not an exhaustive list.
|
||||
|
||||
```json
|
||||
{
|
||||
"untapped_value": [
|
||||
{"opportunity": "adjacent problem or value prop", "rationale": "why it matters"}
|
||||
],
|
||||
"positioning_opportunities": [
|
||||
{"angle": "market angle or narrative", "impact": "how it strengthens the brief"}
|
||||
],
|
||||
"growth_and_scale": [
|
||||
"bullet — network effects, viral loops, expansion paths"
|
||||
],
|
||||
"strategic_partnerships": [
|
||||
{"partner_type": "who", "value": "why this alliance matters"}
|
||||
],
|
||||
"underemphasized_strengths": [
|
||||
{"strength": "what's underplayed", "suggestion": "how to elevate it"}
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -1,44 +0,0 @@
|
||||
# Skeptic Reviewer
|
||||
|
||||
You are a critical analyst reviewing a product brief draft. Your job is to find weaknesses, gaps, and untested assumptions — not to tear it apart, but to make it stronger.
|
||||
|
||||
## Input
|
||||
|
||||
You will receive the complete draft product brief.
|
||||
|
||||
## Review Lens
|
||||
|
||||
Ask yourself:
|
||||
|
||||
- **What's missing?** Are there sections that feel thin or glossed over?
|
||||
- **What assumptions are untested?** Where does the brief assert things without evidence?
|
||||
- **What could go wrong?** What risks aren't acknowledged?
|
||||
- **Where is it vague?** Which claims need more specificity?
|
||||
- **Does the problem statement hold up?** Is this a real, significant problem or a nice-to-have?
|
||||
- **Are the differentiators actually defensible?** Could a competitor replicate them easily?
|
||||
- **Do the success metrics make sense?** Are they measurable and meaningful?
|
||||
- **Is the MVP scope realistic?** Too ambitious? Too timid?
|
||||
|
||||
## Output
|
||||
|
||||
Return ONLY the following JSON object. No preamble, no commentary. Maximum 5 items per section. Prioritize — lead with the most impactful issues.
|
||||
|
||||
```json
|
||||
{
|
||||
"critical_gaps": [
|
||||
{"issue": "what's missing", "impact": "why it matters", "suggestion": "how to fix"}
|
||||
],
|
||||
"untested_assumptions": [
|
||||
{"assumption": "what's asserted", "risk": "what could go wrong"}
|
||||
],
|
||||
"unacknowledged_risks": [
|
||||
{"risk": "potential failure mode", "severity": "high|medium|low"}
|
||||
],
|
||||
"vague_areas": [
|
||||
{"section": "where", "issue": "what's vague", "suggestion": "how to sharpen"}
|
||||
],
|
||||
"suggested_improvements": [
|
||||
"actionable suggestion"
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -1,49 +0,0 @@
|
||||
# Web Researcher
|
||||
|
||||
You are a market research analyst. Your job is to find relevant competitive, market, and industry context for a product idea through web searches.
|
||||
|
||||
## Input
|
||||
|
||||
You will receive:
|
||||
- **Product intent:** A summary of what the product is about, the problem it solves, and the domain it operates in
|
||||
|
||||
## Process
|
||||
|
||||
1. **Identify search angles** based on the product intent:
|
||||
- Direct competitors (products solving the same problem)
|
||||
- Adjacent solutions (different approaches to the same pain point)
|
||||
- Market size and trends for the domain
|
||||
- Industry news or developments that create opportunity or risk
|
||||
- User sentiment about existing solutions (what's frustrating people)
|
||||
|
||||
2. **Execute 3-5 targeted web searches** — quality over quantity. Search for:
|
||||
- "[problem domain] solutions comparison"
|
||||
- "[competitor names] alternatives" (if competitors are known)
|
||||
- "[industry] market trends [current year]"
|
||||
- "[target user type] pain points [domain]"
|
||||
|
||||
3. **Synthesize findings** — don't just list links. Extract the signal.
|
||||
|
||||
## Output
|
||||
|
||||
Return ONLY the following JSON object. No preamble, no commentary. Maximum 5 bullets per section.
|
||||
|
||||
```json
|
||||
{
|
||||
"competitive_landscape": [
|
||||
{"name": "competitor", "approach": "one-line description", "gaps": "where they fall short"}
|
||||
],
|
||||
"market_context": [
|
||||
"bullet — market size, growth trends, relevant data points"
|
||||
],
|
||||
"user_sentiment": [
|
||||
"bullet — what users say about existing solutions"
|
||||
],
|
||||
"timing_and_opportunity": [
|
||||
"bullet — why now, enabling shifts"
|
||||
],
|
||||
"risks_and_considerations": [
|
||||
"bullet — market risks, competitive threats, regulatory concerns"
|
||||
]
|
||||
}
|
||||
```
|
||||
41
.agent/skills/bmad-product-brief/assets/brief-template.md
Normal file
41
.agent/skills/bmad-product-brief/assets/brief-template.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Product Brief Template
|
||||
|
||||
A flexible starting structure for the executive product brief. Adapt aggressively to the product, the purpose, and the domain. Drop sections that do not earn their place, add sections the product needs, reorder freely. The brief serves the product's story, not the template's shape.
|
||||
|
||||
## Default Structure
|
||||
|
||||
```markdown
|
||||
# Product Brief: {Product Name}
|
||||
|
||||
## Executive Summary
|
||||
|
||||
[2-3 paragraph narrative: what this is, what problem it solves, why it matters, why now. Compelling enough to stand alone — if someone reads only this section, they should understand the vision.]
|
||||
|
||||
## The Problem
|
||||
|
||||
[What pain exists, who feels it, how they cope today, the cost of the status quo. Be specific: real scenarios, real frustrations, real consequences.]
|
||||
|
||||
## The Solution
|
||||
|
||||
[What is being built, how it solves the problem. Focus on the experience and the outcome, not the implementation.]
|
||||
|
||||
## What Makes This Different
|
||||
|
||||
[Key differentiators. Why this approach over alternatives, what is the unfair advantage. Be honest. If the moat is execution speed, say so. Do not fabricate technical moats.]
|
||||
|
||||
## Who This Serves
|
||||
|
||||
[Primary users — vivid but brief. Who they are, what they need, what success looks like for them. Secondary users if relevant.]
|
||||
|
||||
## Success Criteria
|
||||
|
||||
[How we know this is working. Mix of user success signals and business objectives. Measurable.]
|
||||
|
||||
## Scope
|
||||
|
||||
[What is in for the first version. What is explicitly out. Keep this tight — boundary document, not a feature list.]
|
||||
|
||||
## Vision
|
||||
|
||||
[Where this goes if it succeeds. What it becomes in 2-3 years. Inspiring but grounded.]
|
||||
```
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"module-code": "bmm",
|
||||
"replaces-skill": "bmad-create-product-brief",
|
||||
"capabilities": [
|
||||
{
|
||||
"name": "create-brief",
|
||||
"menu-code": "CB",
|
||||
"description": "Produces executive product brief and optional LLM distillate for PRD input.",
|
||||
"supports-headless": true,
|
||||
"phase-name": "1-analysis",
|
||||
"after": ["brainstorming", "perform-research"],
|
||||
"before": ["create-prd"],
|
||||
"is-required": true,
|
||||
"output-location": "{planning_artifacts}"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,47 +1,99 @@
|
||||
# DO NOT EDIT -- overwritten on every update.
|
||||
#
|
||||
# Workflow customization surface for bmad-product-brief. Mirrors the
|
||||
# agent customization shape under the [workflow] namespace.
|
||||
# Workflow customization surface for bmad-product-brief.
|
||||
#
|
||||
# Override files (not edited here):
|
||||
# {project-root}/_bmad/custom/bmad-product-brief.toml (team)
|
||||
# {project-root}/_bmad/custom/bmad-product-brief.user.toml (personal)
|
||||
|
||||
[workflow]
|
||||
|
||||
# --- Configurable below. Overrides merge per BMad structural rules: ---
|
||||
# scalars: override wins • arrays (persistent_facts, activation_steps_*): append
|
||||
# arrays-of-tables with `code`/`id`: replace matching items, append new ones.
|
||||
# scalars: override wins • arrays: append
|
||||
|
||||
# Steps to run before the standard activation (config load, greet).
|
||||
# Overrides append. Use for pre-flight loads, compliance checks, etc.
|
||||
|
||||
# Use for pre-flight loads, compliance checks, etc.
|
||||
activation_steps_prepend = []
|
||||
|
||||
# Steps to run after greet but before Stage 1 of the workflow.
|
||||
# Overrides append. Use for context-heavy setup that should happen
|
||||
# once the user has been acknowledged.
|
||||
|
||||
# Steps to run after greet but before the workflow begins.
|
||||
# Use for context-heavy setup that should happen once the user has been acknowledged.
|
||||
activation_steps_append = []
|
||||
|
||||
# Persistent facts the workflow keeps in mind for the whole run
|
||||
# (standards, compliance constraints, stylistic guardrails).
|
||||
# Distinct from the runtime memory sidecar — these are static context
|
||||
# loaded on activation. Overrides append.
|
||||
# Each entry is either a literal sentence, a skill prefixed with `skill:`, or a `file:`-prefixed path/glob
|
||||
# whose contents are loaded as facts.
|
||||
#
|
||||
# Each entry is either:
|
||||
# - a literal sentence, e.g. "All briefs must include a regulatory-risk section."
|
||||
# - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
|
||||
# (glob patterns are supported; the file's contents are loaded and treated as facts).
|
||||
|
||||
# Default loads project-context.md if bmad-generate-project-context has produced one — this gives
|
||||
# the facilitator persistent awareness of the project's tech, domain, and constraints without
|
||||
# re-asking. Common opt-ins (set in team/user override TOML):
|
||||
# "skill:acme-co:terms-and-conditions" # a skill that contains some relevant info
|
||||
# "Elvis has left the building" # generic agent instruction
|
||||
persistent_facts = [
|
||||
"file:{project-root}/**/project-context.md",
|
||||
]
|
||||
|
||||
# Path to the brief structure template used in Stage 4 drafting.
|
||||
# Bare paths resolve from the skill root; use `{project-root}/...` to
|
||||
# point at an org-owned template elsewhere in the repo. Override wins.
|
||||
|
||||
brief_template = "resources/brief-template.md"
|
||||
|
||||
# Scalar: executed when the workflow reaches its terminal stage, after
|
||||
# the main output has been delivered. Override wins. Leave empty for
|
||||
# no custom post-completion behavior.
|
||||
|
||||
# Executed when the workflow completes (after the user has been told the
|
||||
# brief is ready). Accepts either a string scalar (single instruction)
|
||||
# or an array of instructions executed in order. Empty for none.
|
||||
on_complete = ""
|
||||
|
||||
# Default brief structure. Treated as a starting point — the LLM adapts it
|
||||
# to the product, purpose, and domain. Override the path in team/user TOML
|
||||
# to enforce a different structure (e.g. regulated-industry, investor-deck).
|
||||
brief_template = "assets/brief-template.md"
|
||||
|
||||
# Run folder location. The brief and optional addendum land inside `{brief_output_path}/{run_folder_pattern}/`.
|
||||
# Resume-check scans `{brief_output_path}` for prior unfinished runs.
|
||||
brief_output_path = "{planning_artifacts}/briefs"
|
||||
run_folder_pattern = "brief-{project_name}-{date}"
|
||||
|
||||
# Document standards applied to human-consumed docs at finalize. Each entry is
|
||||
# a `skill:`, `file:`, or plain-text directive; the parent LLM applies the
|
||||
# findings before the user sees the draft. Encodes standards, not options.
|
||||
#
|
||||
# Examples:
|
||||
# "skill:bmad-editorial-review-prose"
|
||||
# "file:{project-root}/_bmad/style-guides/company-voice.md"
|
||||
# "Convert all dates to ISO 8601 format."
|
||||
#
|
||||
# Suggested order (broader passes first, narrower last):
|
||||
# 1. Structural (cuts, reorganization, section sizing)
|
||||
# 2. Content/voice/conventions (org standards, tone, terminology, compliance)
|
||||
# 3. Prose mechanics (grammar, clarity, typos)
|
||||
#
|
||||
# Override the array in team/user TOML to add additional standards. Append-only:
|
||||
# base entries cannot be removed or replaced (resolver has no removal mechanism).
|
||||
doc_standards = [
|
||||
"skill:bmad-editorial-review-structure",
|
||||
"skill:bmad-editorial-review-prose",
|
||||
]
|
||||
|
||||
# External-source registry. Natural-language directives describing knowledge
|
||||
# bases, MCP tools, or internal systems the LLM may consult during the workflow
|
||||
# when a relevant need surfaces. The LLM does NOT query these preemptively —
|
||||
# it consults them on demand (during Discovery, validation, drafting, etc.).
|
||||
# Each entry names the tool, the conditions for using it, and any fields the
|
||||
# tool needs. If a named MCP tool is unavailable at runtime, the LLM falls
|
||||
# back to standard behavior and notes the gap. Empty by default.
|
||||
#
|
||||
# Examples (set in team/user override TOML):
|
||||
# "When researching internal product context, consult corp:kb_search (database='product-docs') before web search."
|
||||
# "For voice-of-customer signal during Discovery, query corp:feedback_search with project={project_name}."
|
||||
# "When validating domain-compliance claims for a healthcare brief, cross-check against corp:hipaa_reference."
|
||||
external_sources = []
|
||||
|
||||
# External-handoff routing. Natural-language directives the LLM applies at
|
||||
# Finalize to route outputs beyond local files (Confluence, Notion, Google
|
||||
# Drive, ticket systems, etc.). Each entry names the MCP tool, the destination,
|
||||
# and the fields the tool needs. Handoffs run after the artifact is polished
|
||||
# and before the final user-facing message. URLs or IDs returned by the
|
||||
# destination are captured and surfaced to the user. If a named tool is
|
||||
# unavailable at runtime, the handoff is skipped and flagged in the JSON
|
||||
# status; local files always exist regardless. Fires automatically — users
|
||||
# can opt out in their prompt for a specific run. Empty by default.
|
||||
#
|
||||
# Examples (set in team/user override TOML):
|
||||
# "After finalize, upload brief.md and addendum.md to Confluence via corp:confluence_upload (space_key='PROD', parent_page='Product Briefs', label='brief', author={user_name})."
|
||||
# "Post a ready-for-review ping to Slack via corp:slack_post (channel='#product', text='New brief: '+{confluence_url})."
|
||||
external_handoffs = []
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Paths:** Bare paths (e.g. `agents/foo.md`) resolve from the skill root.
|
||||
|
||||
# Stage 2: Contextual Discovery
|
||||
|
||||
**Goal:** Armed with the user's stated intent, intelligently gather and synthesize all available context — documents, project knowledge, and web research — so later stages work from a rich, relevant foundation.
|
||||
|
||||
## Subagent Fan-Out
|
||||
|
||||
Now that you know what the brief is about, fan out subagents in parallel to gather context. Each subagent receives the product intent summary so it knows what's relevant.
|
||||
|
||||
**Launch in parallel:**
|
||||
|
||||
1. **Artifact Analyzer** (`agents/artifact-analyzer.md`) — Scans `{planning_artifacts}` and `{project_knowledge}` for relevant documents. Also scans any specific paths the user provided. Returns structured synthesis of what it found.
|
||||
|
||||
2. **Web Researcher** (`agents/web-researcher.md`) — Searches for competitive landscape, market context, trends, and relevant industry data. Returns structured findings scoped to the product domain.
|
||||
|
||||
### Graceful Degradation
|
||||
|
||||
If subagents are unavailable or fail:
|
||||
- Read only the most relevant 1-2 documents in the main context and summarize (don't full-read everything — limit context impact in degraded mode)
|
||||
- Do a few targeted web searches inline
|
||||
- Never block the workflow because a subagent feature is unavailable
|
||||
|
||||
## Synthesis
|
||||
|
||||
Once subagent results return (or inline scanning completes):
|
||||
|
||||
1. **Merge findings** with what the user already told you
|
||||
2. **Identify gaps** — what do you still need to know to write a solid brief?
|
||||
3. **Note surprises** — anything from research that contradicts or enriches the user's assumptions?
|
||||
|
||||
## Mode-Specific Behavior
|
||||
|
||||
**Guided mode:**
|
||||
- Present a concise summary of what you found: "Here's what I learned from your documents and web research..."
|
||||
- Highlight anything surprising or worth discussing
|
||||
- Share the gaps you've identified
|
||||
- Ask: "Anything else you'd like to add, or shall we move on to filling in the details?"
|
||||
- Route to `prompts/guided-elicitation.md`
|
||||
|
||||
**Yolo mode:**
|
||||
- Absorb all findings silently
|
||||
- Skip directly to `prompts/draft-and-review.md` — you have enough to draft
|
||||
- The user will refine later
|
||||
|
||||
**Headless mode:**
|
||||
- Absorb all findings
|
||||
- Skip directly to `prompts/draft-and-review.md`
|
||||
- No interaction
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This stage is complete when subagent results (or inline scanning fallback) have returned and findings are merged with user context. Route per mode:
|
||||
- **Guided** → `prompts/guided-elicitation.md`
|
||||
- **Yolo / Headless** → `prompts/draft-and-review.md`
|
||||
@@ -1,87 +0,0 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Paths:** Bare paths (e.g. `agents/foo.md`) resolve from the skill root.
|
||||
|
||||
# Stage 4: Draft & Review
|
||||
|
||||
**Goal:** Produce the executive product brief and run it through multiple review lenses to catch blind spots before the user sees the final version.
|
||||
|
||||
## Step 1: Draft the Executive Brief
|
||||
|
||||
Use the template at `{workflow.brief_template}` as a guide — adapt structure to fit the product's story.
|
||||
|
||||
**Writing principles:**
|
||||
- **Executive audience** — persuasive, clear, concise. 1-2 pages.
|
||||
- **Lead with the problem** — make the reader feel the pain before presenting the solution
|
||||
- **Concrete over abstract** — specific examples, real scenarios, measurable outcomes
|
||||
- **Confident voice** — this is a pitch, not a hedge
|
||||
- Write in `{document_output_language}`
|
||||
|
||||
**Create the output document at:** `{planning_artifacts}/product-brief-{project_name}.md`
|
||||
|
||||
Include YAML frontmatter:
|
||||
```yaml
|
||||
---
|
||||
title: "Product Brief: {project_name}"
|
||||
status: "draft"
|
||||
created: "{timestamp}"
|
||||
updated: "{timestamp}"
|
||||
inputs: [list of input files used]
|
||||
---
|
||||
```
|
||||
|
||||
## Step 2: Fan Out Review Subagents
|
||||
|
||||
Before showing the draft to the user, run it through multiple review lenses in parallel.
|
||||
|
||||
**Launch in parallel:**
|
||||
|
||||
1. **Skeptic Reviewer** (`agents/skeptic-reviewer.md`) — "What's missing? What assumptions are untested? What could go wrong? Where is the brief vague or hand-wavy?"
|
||||
|
||||
2. **Opportunity Reviewer** (`agents/opportunity-reviewer.md`) — "What adjacent value propositions are being missed? What market angles or partnerships could strengthen this? What's underemphasized?"
|
||||
|
||||
3. **Contextual Reviewer** — You (the main agent) pick the most useful third lens based on THIS specific product. Choose the lens that addresses the SINGLE BIGGEST RISK that the skeptic and opportunity reviewers won't naturally catch. Examples:
|
||||
- For healthtech: "Regulatory and compliance risk reviewer"
|
||||
- For devtools: "Developer experience and adoption friction critic"
|
||||
- For marketplace: "Network effects and chicken-and-egg problem analyst"
|
||||
- For enterprise: "Procurement and organizational change management reviewer"
|
||||
- **When domain is unclear, default to:** "Go-to-market and launch risk reviewer" — examines distribution, pricing, and first-customer acquisition. Almost always valuable, frequently missed.
|
||||
Describe the lens, run the review yourself inline.
|
||||
|
||||
### Graceful Degradation
|
||||
|
||||
If subagents are unavailable:
|
||||
- Perform all three review passes yourself, sequentially
|
||||
- Apply each lens deliberately — don't blend them into one generic review
|
||||
- The quality of review matters more than the parallelism
|
||||
|
||||
## Step 3: Integrate Review Insights
|
||||
|
||||
After all reviews complete:
|
||||
|
||||
1. **Triage findings** — group by theme, remove duplicates
|
||||
2. **Apply non-controversial improvements** directly to the draft (obvious gaps, unclear language, missing specifics)
|
||||
3. **Flag substantive suggestions** that need user input (strategic choices, scope questions, market positioning decisions)
|
||||
|
||||
## Step 4: Present to User
|
||||
|
||||
**Headless mode:** Skip to `prompts/finalize.md` — no user interaction. Save the improved draft directly.
|
||||
|
||||
**Yolo and Guided modes:**
|
||||
|
||||
Present the draft brief to the user. Then share the reviewer insights:
|
||||
|
||||
"Here's your product brief draft. Before we finalize, my review panel surfaced some things worth considering:
|
||||
|
||||
**[Grouped reviewer findings — only the substantive ones that need user input]**
|
||||
|
||||
What do you think? Any changes you'd like to make?"
|
||||
|
||||
Present reviewer findings with brief rationale, then offer: "Want me to dig into any of these, or are you ready to make your revisions?"
|
||||
|
||||
**Iterate** as long as the user wants to refine. Use the "anything else, or are we happy with this?" soft gate.
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This stage is complete when: (a) the draft has been reviewed by all three lenses and improvements integrated, AND either (autonomous) save and route directly, or (guided/yolo) the user is satisfied. Route to `prompts/finalize.md`.
|
||||
@@ -1,78 +0,0 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Paths:** Bare paths (e.g. `prompts/foo.md`) resolve from the skill root.
|
||||
|
||||
# Stage 5: Finalize
|
||||
|
||||
**Goal:** Save the polished brief, offer the LLM distillate, and point the user forward.
|
||||
|
||||
## Step 1: Polish and Save
|
||||
|
||||
Update the product brief document at `{planning_artifacts}/product-brief-{project_name}.md`:
|
||||
- Update frontmatter `status` to `"complete"`
|
||||
- Update `updated` timestamp
|
||||
- Ensure formatting is clean and consistent
|
||||
- Confirm the document reads well as a standalone 1-2 page executive summary
|
||||
|
||||
## Step 2: Offer the Distillate
|
||||
|
||||
Throughout the discovery process, you likely captured detail that doesn't belong in a 1-2 page executive summary but is valuable for downstream work — requirements hints, platform preferences, rejected ideas, technical constraints, detailed user scenarios, competitive deep-dives, etc.
|
||||
|
||||
**Ask the user:**
|
||||
"Your product brief is complete. During our conversation, I captured additional detail that goes beyond the executive summary — things like [mention 2-3 specific examples of overflow you captured]. Would you like me to create a detail pack for PRD creation? It distills all that extra context into a concise, structured format optimized for the next phase."
|
||||
|
||||
**If yes, create the distillate** at `{planning_artifacts}/product-brief-{project_name}-distillate.md`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "Product Brief Distillate: {project_name}"
|
||||
type: llm-distillate
|
||||
source: "product-brief-{project_name}.md"
|
||||
created: "{timestamp}"
|
||||
purpose: "Token-efficient context for downstream PRD creation"
|
||||
---
|
||||
```
|
||||
|
||||
**Distillate content principles:**
|
||||
- Dense bullet points, not prose
|
||||
- Each bullet carries enough context to be understood standalone (don't assume the reader has the full brief loaded)
|
||||
- Group by theme, not by when it was mentioned
|
||||
- Include:
|
||||
- **Rejected ideas** — so downstream workflows don't re-propose them, with brief rationale
|
||||
- **Requirements hints** — anything the user mentioned that sounds like a requirement
|
||||
- **Technical context** — platforms, integrations, constraints, preferences
|
||||
- **Detailed user scenarios** — richer than what fits in the exec summary
|
||||
- **Competitive intelligence** — specifics from web research worth preserving
|
||||
- **Open questions** — things surfaced but not resolved during discovery
|
||||
- **Scope signals** — what the user indicated is in/out/maybe for MVP
|
||||
- Token-conscious: be concise, but give enough context per bullet so an LLM reading this later understands WHY each point matters
|
||||
|
||||
**Headless mode:** Always create the distillate automatically — unless the session was too brief to capture meaningful overflow (in that case, note this in the completion output instead of creating an empty file).
|
||||
|
||||
## Step 3: Present Completion
|
||||
|
||||
"Your product brief for {project_name} is complete!
|
||||
|
||||
**Executive Brief:** `{planning_artifacts}/product-brief-{project_name}.md`
|
||||
[If distillate created:] **Detail Pack:** `{planning_artifacts}/product-brief-{project_name}-distillate.md`
|
||||
|
||||
**Recommended next step:** Use the product brief (and detail pack) as input for PRD creation — tell your assistant 'create a PRD' and point it to these files."
|
||||
[If distillate created:] "The detail pack contains all the overflow context (requirements hints, rejected ideas, technical constraints) specifically structured for the PRD workflow to consume."
|
||||
|
||||
**Headless mode:** Output the file paths as structured JSON and exit:
|
||||
```json
|
||||
{
|
||||
"status": "complete",
|
||||
"brief": "{planning_artifacts}/product-brief-{project_name}.md",
|
||||
"distillate": "{path or null}",
|
||||
"confidence": "high|medium|low",
|
||||
"open_questions": ["any unresolved items"]
|
||||
}
|
||||
```
|
||||
|
||||
## Stage Complete
|
||||
|
||||
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete`
|
||||
|
||||
If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting. After delivering the completion message and file paths, the workflow is done. If the user requests further revisions, loop back to `prompts/draft-and-review.md`. Otherwise, exit.
|
||||
@@ -1,71 +0,0 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Paths:** Bare paths (e.g. `prompts/foo.md`) resolve from the skill root.
|
||||
|
||||
# Stage 3: Guided Elicitation
|
||||
|
||||
**Goal:** Fill the gaps in what you know. By now you have the user's brain dump, artifact analysis, and web research. This stage is about smart, targeted questioning — not rote section-by-section interrogation.
|
||||
|
||||
**Skip this stage entirely in Yolo and Autonomous modes** — go directly to `prompts/draft-and-review.md`.
|
||||
|
||||
## Approach
|
||||
|
||||
You are NOT walking through a rigid questionnaire. You're having a conversation that covers the substance of a great product brief. The topics below are your mental checklist, not a script. Adapt to:
|
||||
- What you already know (don't re-ask what's been covered)
|
||||
- What the user is excited about (follow their energy)
|
||||
- What's genuinely unclear (focus questions where they matter)
|
||||
|
||||
## Topics to Cover (flexibly, conversationally)
|
||||
|
||||
### Vision & Problem
|
||||
- What core problem does this solve? For whom?
|
||||
- How do people solve this today? What's frustrating about current approaches?
|
||||
- What would success look like for the people this helps?
|
||||
- What's the insight or angle that makes this approach different?
|
||||
|
||||
### Users & Value
|
||||
- Who experiences this problem most acutely?
|
||||
- Are there different user types with different needs?
|
||||
- What's the "aha moment" — when does a user realize this is what they needed?
|
||||
- How does this fit into their existing workflow or life?
|
||||
|
||||
### Market & Differentiation
|
||||
- What competitive or alternative solutions exist? (Leverage web research findings)
|
||||
- What's the unfair advantage or defensible moat?
|
||||
- Why is now the right time for this?
|
||||
|
||||
### Success & Scope
|
||||
- How will you know this is working? What metrics matter?
|
||||
- What's the minimum viable version that creates real value?
|
||||
- What's explicitly NOT in scope for the first version?
|
||||
- If this is wildly successful, what does it become in 2-3 years?
|
||||
|
||||
## The Flow
|
||||
|
||||
For each topic area where you have gaps:
|
||||
|
||||
1. **Lead with what you know** — "Based on your input and my research, it sounds like [X]. Is that right?"
|
||||
2. **Ask the gap question** — targeted, specific, not generic
|
||||
3. **Reflect and confirm** — paraphrase what you heard
|
||||
4. **"Anything else on this, or shall we move on?"** — the soft gate
|
||||
|
||||
If the user is giving you detail beyond brief scope (requirements, architecture, platform details, timelines), **capture it silently** for the distillate. Acknowledge it briefly ("Good detail, I'll capture that") but don't derail the conversation.
|
||||
|
||||
## When to Move On
|
||||
|
||||
When you have enough substance to draft a compelling 1-2 page executive brief covering:
|
||||
- Clear problem and who it affects
|
||||
- Proposed solution and what makes it different
|
||||
- Target users (at least primary)
|
||||
- Some sense of success criteria or business objectives
|
||||
- MVP-level scope thinking
|
||||
|
||||
You don't need perfection — you need enough to draft well. Missing details can be surfaced during the review stage.
|
||||
|
||||
If the user is providing complete, confident answers and you have solid coverage across all four topic areas after fewer than 3-4 exchanges, proactively offer to draft early.
|
||||
|
||||
**Transition:** "I think I have a solid picture. Ready for me to draft the brief, or is there anything else you'd like to add?"
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This stage is complete when sufficient substance exists to draft a compelling brief and the user confirms readiness. Route to `prompts/draft-and-review.md`.
|
||||
@@ -1,60 +0,0 @@
|
||||
# Product Brief Template
|
||||
|
||||
This is a flexible guide for the executive product brief — adapt it to serve the product's story. Merge sections, add new ones, reorder as needed. The product determines the structure, not the template.
|
||||
|
||||
## Sensible Default Structure
|
||||
|
||||
```markdown
|
||||
# Product Brief: {Product Name}
|
||||
|
||||
## Executive Summary
|
||||
|
||||
[2-3 paragraph narrative: What is this? What problem does it solve? Why does it matter? Why now?
|
||||
This should be compelling enough to stand alone — if someone reads only this section, they should understand the vision.]
|
||||
|
||||
## The Problem
|
||||
|
||||
[What pain exists? Who feels it? How are they coping today? What's the cost of the status quo?
|
||||
Be specific — real scenarios, real frustrations, real consequences.]
|
||||
|
||||
## The Solution
|
||||
|
||||
[What are we building? How does it solve the problem?
|
||||
Focus on the experience and outcome, not the implementation.]
|
||||
|
||||
## What Makes This Different
|
||||
|
||||
[Key differentiators. Why this approach vs alternatives? What's the unfair advantage?
|
||||
Be honest — if the moat is execution speed, say so. Don't fabricate technical moats.]
|
||||
|
||||
## Who This Serves
|
||||
|
||||
[Primary users — vivid but brief. Who are they, what do they need, what does success look like for them?
|
||||
Secondary users if relevant.]
|
||||
|
||||
## Success Criteria
|
||||
|
||||
[How do we know this is working? What metrics matter?
|
||||
Mix of user success signals and business objectives. Be measurable.]
|
||||
|
||||
## Scope
|
||||
|
||||
[What's in for the first version? What's explicitly out?
|
||||
Keep this tight — it's a boundary document, not a feature list.]
|
||||
|
||||
## Vision
|
||||
|
||||
[Where does this go if it succeeds? What does it become in 2-3 years?
|
||||
Inspiring but grounded.]
|
||||
```
|
||||
|
||||
## Adaptation Guidelines
|
||||
|
||||
- **For B2B products:** Consider adding a "Buyer vs User" section if they're different people
|
||||
- **For platforms/marketplaces:** Consider a "Network Effects" or "Ecosystem" section
|
||||
- **For technical products:** May need a brief "Technical Approach" section (keep it high-level)
|
||||
- **For regulated industries:** Consider a "Compliance & Regulatory" section
|
||||
- **If scope is well-defined:** Merge "Scope" and "Vision" into "Roadmap Thinking"
|
||||
- **If the problem is well-known:** Shorten "The Problem" and expand "What Makes This Different"
|
||||
|
||||
The brief should be 1-2 pages. If it's longer, you're putting in too much detail — that's what the distillate is for.
|
||||
Reference in New Issue
Block a user