Compare commits
36 Commits
550807f8ec
...
c1c6db90fd
| Author | SHA1 | Date |
|---|---|---|
|
|
c1c6db90fd | |
|
|
e472dade97 | |
|
|
4c85275a2b | |
|
|
1a877ce18f | |
|
|
b07b1dab46 | |
|
|
a1bd60c04a | |
|
|
fd76f5e43b | |
|
|
772e06ddba | |
|
|
ad07e39300 | |
|
|
faaf78b854 | |
|
|
7b945fb39b | |
|
|
189c2b85eb | |
|
|
f28d04a92a | |
|
|
aa6dece05d | |
|
|
ee47e30cf6 | |
|
|
1da6bf80df | |
|
|
b4f47e1f05 | |
|
|
a08522631b | |
|
|
0eae7c4352 | |
|
|
74cf467d57 | |
|
|
71136bc6af | |
|
|
0f852a38ac | |
|
|
5090cfb096 | |
|
|
c52c9b5b0e | |
|
|
724867d48d | |
|
|
c48b6f3069 | |
|
|
fd0018900e | |
|
|
b5b33c08fa | |
|
|
c19f6cd72a | |
|
|
24a81706ca | |
|
|
32258a53a6 | |
|
|
1c1abaa5b1 | |
|
|
a3e0545847 | |
|
|
697d92e355 | |
|
|
7b590b0a90 | |
|
|
380590aa8b |
|
|
@ -20,7 +20,7 @@
|
|||
"skills": [
|
||||
"./src/core-skills/bmad-help",
|
||||
"./src/core-skills/bmad-brainstorming",
|
||||
"./src/core-skills/bmad-distillator",
|
||||
"./src/core-skills/bmad-spec",
|
||||
"./src/core-skills/bmad-party-mode",
|
||||
"./src/core-skills/bmad-shard-doc",
|
||||
"./src/core-skills/bmad-advanced-elicitation",
|
||||
|
|
|
|||
|
|
@ -10,3 +10,8 @@ _bmad*/
|
|||
|
||||
# IDE integration folders (user-specific, not in repo)
|
||||
.junie/
|
||||
|
||||
# Quality scan artifacts produced by bmad-workflow-builder
|
||||
# (per-skill .analysis/ folders contain JSON/HTML reports that should
|
||||
# not block commits with formatting checks)
|
||||
**/.analysis/
|
||||
|
|
|
|||
50
CHANGELOG.md
50
CHANGELOG.md
|
|
@ -1,5 +1,55 @@
|
|||
# Changelog
|
||||
|
||||
## v6.7.1 - 2026-05-18
|
||||
|
||||
### 🐛 Fixes
|
||||
|
||||
* **Installer no longer errors when a previously installed module's source can no longer be found** — In v6.7.0 the experimental BMad Automator module's installer code (the value used for its `_bmad/<code>/` folder and manifest entry) was renamed from `baut` to `automator`. Anyone who had installed it under the old `baut` code saw `quick-update` fail with `Source for module 'baut' is not available` and risked having the existing install removed. The installer now detects installed modules that can no longer be resolved from any source, leaves them in place untouched, and continues the update. If you previously installed it as `baut` and want the renamed `automator` version, run `npx bmad-method install`, choose **Modify BMAD Installation**, and reselect **BMad Automator**; the old `_bmad/baut/` directory can then be deleted manually
|
||||
|
||||
## v6.7.0 - 2026-05-17
|
||||
|
||||
### ✨ Headline
|
||||
|
||||
**PRD and Product Brief rebuilt as lean, outcome-driven facilitators called bmad-prd and bmad-brief.** Both flagship planning skills now ship three first-class intents (Create / Update / Validate), support express and guided modes, drive elicitation rather than LLM-suggested filler, and adapt output to your needs. New PRD validation pipeline replaces the adversarial reviewer with a quality-rubric synthesis pass that emits both HTML and markdown reports. New **bmad-investigate** skill brings forensic, evidence-graded case files for bug triage, incident RCA, and unfamiliar-code exploration.
|
||||
|
||||
A new .decision-log pattern is implemented in this release that will track through workflows all decisions made from the start, allowing for easier continuation or later modifications, where memory of what was decided and why will be remembered.
|
||||
|
||||
The existing create, edit and validate prd skills still exist but internally will route to the single prd skill with the proper intent. These shims will be removed with the 7.0.0 release when similar updates are completed across all of v6.
|
||||
|
||||
The shape of the toml customizations is still the same, so if you make them for create already, it will still work. There are new fields supported also that can improve your experience with the new bmad-prd skill.
|
||||
|
||||
### 💥 Breaking Changes
|
||||
|
||||
* **Community modules picker removed from the interactive installer.** Previously installed community modules are preserved on update. Install community modules headlessly with `--custom-source <git-url-or-path>`, or wait for the forthcoming dedicated community installer.
|
||||
* **Remote marketplace registry fully retired.** The installer makes zero network calls to `bmad-code-org/bmad-plugins-marketplace`. Both the official-registry fetch (`registry/official.yaml`) and the community-catalog fetch (`registry/community-index.yaml`, `categories.yaml`) are gone. `CommunityModuleManager` and `RegistryClient` are deleted. The bundled `bmad-modules.yaml` at the repo root is the single source of truth for which official modules appear in the picker. Per-module version bumps continue to happen in each module's own repo. **Migration note:** users with previously installed community modules will see them preserved in their manifest, but updates must be handled via `--custom-source <url>` going forward (a dedicated community installer is planned separately).
|
||||
|
||||
### 🎁 Features
|
||||
|
||||
* **WDS (Whiteport Design Studio) now bundled in the official module picker.** Selectable alongside BMM, BMB, BMA, CIS, GDS, and TEA without needing `--custom-source`.
|
||||
* **Refreshed display names and hints across all bundled modules.** Shorter, clearer names; hints now describe what each module provides. TEA repositioned to sit directly after BMM in the picker.
|
||||
* **Registry entries can declare a `plugin_name` override.** When a module's `.claude-plugin/marketplace.json` declares the plugin under a name different from the module's installer code (e.g., WDS uses `bmad-wds`), set `plugin_name: <name>` on the registry entry to match the marketplace plugin without falling back to the single-plugin heuristic.
|
||||
|
||||
* **bmad-prd overhaul** — Three intents (Create / Update / Validate); new Discovery shape (Brain dump → Stakes calibration → Working mode → mode-scoped work); capability-first or user-first modes; Essential Spine template plus Adapt-In Menu with authorized section invention for compliance, integration, hardware, SLAs, monetization, data governance; subagent web research default-on; rebuilt validation via PRD Quality Rubric → synthesis pass → HTML + markdown reports; cross-skill parity with `bmad-product-brief` (variable names, `.decision-log.md`, `persistent_facts` auto-loads `project-context.md`); headless mode with per-intent inputs and `partial` status (#2385, #2378)
|
||||
* **bmad-product-brief refactor** — Streamlined from a five-stage scripted workflow to a single outcome-driven SKILL.md with Create / Update / Validate intents; inline discovery, elicitation, and review (no more scripted agent fan-outs); new `assets/brief-template.md` with adapt-aggressively guidance; finalize chain through `bmad-distillator` and `bmad-help`; JSON headless responses (#2370, #2371)
|
||||
* **New bmad-investigate skill** — Forensic case investigation with evidence-graded findings (Confirmed / Deduced / Hypothesized), delegation discipline for large codebases, resume-on-collision logic; supports both defect-chasing and area-exploration modes (#2345 and follow-ups)
|
||||
* **Interactive directory prompt in installer** — `@clack/core` AutocompletePrompt for install-path selection: Tab-cycles existing child dirs, accepts not-yet-created paths, validates raw input (#2387)
|
||||
* **OpenCode and GitHub Copilot pointer files** — Generic `installCommandPointers()` mechanism driven by per-platform YAML. OpenCode gets `.opencode/commands/<id>.md` for every skill; Copilot gets `.github/agents/<id>.agent.md` for persona agents only (plus `bmad-tea` allowlist), keeping the Custom Agents picker uncluttered. Works for external modules automatically via `skill-manifest.csv` (#2324)
|
||||
* **BMad Automator (`bma`) registered** — Bundled registry fallback gains source-root external-module support, enabling `--modules bma` (#2345)
|
||||
|
||||
### 🐛 Fixes
|
||||
|
||||
* **Clear installer error on missing module definition** — `findExternalModuleSource()` throws an actionable error naming the module, missing path, and channel, with a suggested `--next=<code>` recovery path, replacing a silent ENOENT in `getFileList` (#2377)
|
||||
* **bmad-product-brief Update/Validate discipline** — Headless Update now requires decision-log entry + addendum before modifying `brief.md`; distillate regeneration is mandatory; Validate always returns `"offer_to_update": true`; eval expectations tightened (#2371)
|
||||
* **Module help catalog directional clarity** — Renamed `after`/`before` columns (and JSON manifest keys) to `preceded-by`/`followed-by` to eliminate ambiguity that was causing dependency-direction flips; `required` retains hard-gate semantics (#2360)
|
||||
* **bmad-help removed from Copilot Custom Agents picker** — Not a true agent; every persona already advertises it on activation (#2359)
|
||||
* **bmad-investigate robustness** — Collapsed multi-line description, unwrapped case-file template, tightened PRD discovery glob (review follow-ups)
|
||||
* **Dependency security audit** — Lockfile-only fixes closed 12 of 14 open Dependabot alerts (`vite`, `postcss`, `h3`, `yaml`, `brace-expansion`, `picomatch`, `astro`, others). Two `astro <6.1.10` alerts and one `markdown-it` (via `markdownlint-cli2`) deferred pending major bumps (#2382)
|
||||
|
||||
### 📚 Docs
|
||||
|
||||
* New `docs/explanation/forensic-investigation.md` (EN + FR) explaining the bmad-investigate workflow and evidence-grading discipline; workflow maps updated in both languages
|
||||
* Installer prerequisite docs updated across README, install/upgrade/non-interactive/tutorial guides and FR / CS / ZH-CN / VI-VN translations to advertise Node.js 20.12+ (#2387)
|
||||
|
||||
## v6.6.0 - 2026-04-28
|
||||
|
||||
### 💥 Breaking Changes
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[](https://www.npmjs.com/package/bmad-method)
|
||||
[](LICENSE)
|
||||
[](https://nodejs.org)
|
||||
[](https://nodejs.org)
|
||||
[](https://www.python.org)
|
||||
[](https://docs.astral.sh/uv/)
|
||||
[](https://discord.gg/gk8jAdXWmj)
|
||||
|
|
@ -36,7 +36,7 @@ Traditional AI tools do the thinking for you, producing average results. BMad ag
|
|||
|
||||
## Quick Start
|
||||
|
||||
**Prerequisites**: [Node.js](https://nodejs.org) v20+ · [Python](https://www.python.org) 3.10+ · [uv](https://docs.astral.sh/uv/)
|
||||
**Prerequisites**: [Node.js](https://nodejs.org) v20.12+ · [Python](https://www.python.org) 3.10+ · [uv](https://docs.astral.sh/uv/)
|
||||
|
||||
```bash
|
||||
npx bmad-method install
|
||||
|
|
@ -82,11 +82,11 @@ BMad Method extends with official modules for specialized domains. Available dur
|
|||
[BMad Method Docs Site](https://docs.bmad-method.org) — Tutorials, guides, concepts, and reference
|
||||
|
||||
**Quick links:**
|
||||
|
||||
- [Getting Started Tutorial](https://docs.bmad-method.org/tutorials/getting-started/)
|
||||
- [Upgrading from Previous Versions](https://docs.bmad-method.org/how-to/upgrade-to-v6/)
|
||||
- [Test Architect Documentation](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/)
|
||||
|
||||
|
||||
## Community
|
||||
|
||||
- [Discord](https://discord.gg/gk8jAdXWmj) — Get help, share ideas, collaborate
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
# Official module registry — the single source of truth for which modules
|
||||
# the BMad installer offers and how they are displayed.
|
||||
#
|
||||
# Order here determines display order in the installer picker (after the
|
||||
# built-in core and bmm entries, which are loaded from local module.yaml).
|
||||
#
|
||||
# default_channel (optional) — the install channel when the user does not
|
||||
# override with --channel/--pin/--next. Valid values: stable | next.
|
||||
# Omit to inherit the installer's hardcoded default (stable).
|
||||
|
||||
modules:
|
||||
bmad-method-test-architecture-enterprise:
|
||||
url: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise
|
||||
module-definition: src/module.yaml
|
||||
code: tea
|
||||
name: "BMad Test Architect"
|
||||
description: "Quality strategy, test automation, and release gates for enterprise teams"
|
||||
defaultSelected: false
|
||||
type: bmad-org
|
||||
npmPackage: bmad-method-test-architecture-enterprise
|
||||
default_channel: stable
|
||||
|
||||
bmad-builder:
|
||||
url: https://github.com/bmad-code-org/bmad-builder
|
||||
module-definition: skills/module.yaml
|
||||
code: bmb
|
||||
name: "BMad Builder"
|
||||
description: "Build AI agents, workflows, and modules from a conversation"
|
||||
defaultSelected: false
|
||||
type: bmad-org
|
||||
npmPackage: bmad-builder
|
||||
default_channel: stable
|
||||
|
||||
bmad-automator:
|
||||
url: https://github.com/bmad-code-org/bmad-automator
|
||||
module-definition: skills/module.yaml
|
||||
code: automator
|
||||
name: "BMad Automator Epic Builder Experimental"
|
||||
description: "EXPERIMENTAL: only supports claude and codex currently"
|
||||
defaultSelected: false
|
||||
type: experimental
|
||||
npmPackage: bmad-story-automator
|
||||
default_channel: next
|
||||
|
||||
bmad-creative-intelligence-suite:
|
||||
url: https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite
|
||||
module-definition: src/module.yaml
|
||||
code: cis
|
||||
name: "BMad Creative Intelligence Suite"
|
||||
description: "Brainstorming, ideation, storytelling, design thinking, and problem-solving"
|
||||
defaultSelected: false
|
||||
type: bmad-org
|
||||
npmPackage: bmad-creative-intelligence-suite
|
||||
default_channel: stable
|
||||
|
||||
bmad-game-dev-studio:
|
||||
url: https://github.com/bmad-code-org/bmad-module-game-dev-studio.git
|
||||
module-definition: src/module.yaml
|
||||
code: gds
|
||||
name: "BMad Game Dev Studio"
|
||||
description: "Game design and development for Unity, Unreal, Godot, and Phaser."
|
||||
defaultSelected: false
|
||||
type: bmad-org
|
||||
npmPackage: bmad-game-dev-studio
|
||||
default_channel: stable
|
||||
|
||||
bmad-method-wds-expansion:
|
||||
url: https://github.com/bmad-code-org/bmad-method-wds-expansion
|
||||
module-definition: src/module.yaml
|
||||
code: wds
|
||||
plugin_name: bmad-wds # WDS marketplace.json declares the plugin under this name
|
||||
name: "Whiteport Design Studio"
|
||||
description: "Strategic UX and Design first planning methodology"
|
||||
defaultSelected: false
|
||||
type: bmad-org
|
||||
npmPackage: bmad-wds
|
||||
default_channel: stable
|
||||
|
|
@ -16,7 +16,7 @@ Pokud chcete použít neinteraktivní instalátor a zadat všechny možnosti na
|
|||
- Aktualizujete stávající instalaci BMad
|
||||
|
||||
:::note[Předpoklady]
|
||||
- **Node.js** 20+ (vyžadováno pro instalátor)
|
||||
- **Node.js** 20.12+ (vyžadováno pro instalátor)
|
||||
- **Git** (doporučeno)
|
||||
- **AI nástroj** (Claude Code, Cursor nebo podobný)
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Použijte příznaky příkazové řádky k neinteraktivní instalaci BMad. To j
|
|||
- Rychlé instalace se známými konfiguracemi
|
||||
|
||||
:::note[Předpoklady]
|
||||
Vyžaduje [Node.js](https://nodejs.org) v20+ a `npx` (součástí npm).
|
||||
Vyžaduje [Node.js](https://nodejs.org) v20.12+ a `npx` (součástí npm).
|
||||
:::
|
||||
|
||||
## Dostupné příznaky
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Použijte instalátor BMad pro upgrade z v4 na v6, který zahrnuje automatickou
|
|||
- Máte existující plánovací artefakty k zachování
|
||||
|
||||
:::note[Předpoklady]
|
||||
- Node.js 20+
|
||||
- Node.js 20.12+
|
||||
- Existující instalace BMad v4
|
||||
:::
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Spusťte jakýkoli základní nástroj zadáním jeho názvu skillu (např. `bma
|
|||
| [`bmad-help`](#bmad-help) | Task | Kontextové poradenství, co dělat dál |
|
||||
| [`bmad-brainstorming`](#bmad-brainstorming) | Workflow | Facilitace interaktivních brainstormingových sezení |
|
||||
| [`bmad-party-mode`](#bmad-party-mode) | Workflow | Orchestrace skupinových diskuzí více agentů |
|
||||
| [`bmad-distillator`](#bmad-distillator) | Task | Bezeztrátová LLM-optimalizovaná komprese dokumentů |
|
||||
| [`bmad-spec`](#bmad-spec) | Workflow | Distill any intent input into a SPEC kernel and companions, the canonical contract for downstream work (translation pending) |
|
||||
| [`bmad-advanced-elicitation`](#bmad-advanced-elicitation) | Task | Iterativní zdokonalování LLM výstupu |
|
||||
| [`bmad-review-adversarial-general`](#bmad-review-adversarial-general) | Task | Cynická revize hledající chybějící a chybné |
|
||||
| [`bmad-review-edge-case-hunter`](#bmad-review-edge-case-hunter) | Task | Vyčerpávající analýza větvících cest pro neošetřené hraniční případy |
|
||||
|
|
@ -97,32 +97,6 @@ Kouzlo se děje v nápadech 50–100. Workflow povzbuzuje generování 100+ náp
|
|||
|
||||
**Výstup:** Real-time multi-agentní konverzace s udržovanými osobnostmi agentů
|
||||
|
||||
## bmad-distillator
|
||||
|
||||
**Bezeztrátová LLM-optimalizovaná komprese zdrojových dokumentů.** — Produkuje husté, tokenově efektivní destiláty, které zachovávají všechny informace pro následné LLM zpracování. Ověřitelné prostřednictvím round-trip rekonstrukce.
|
||||
|
||||
**Použijte když:**
|
||||
|
||||
- Dokument je příliš velký pro kontextové okno LLM
|
||||
- Potřebujete tokenově efektivní verze výzkumů, specifikací nebo plánovacích artefaktů
|
||||
- Chcete ověřit, že během komprese nebyly ztraceny žádné informace
|
||||
|
||||
**Jak to funguje:**
|
||||
|
||||
1. **Analýza** — Čte zdrojové dokumenty, identifikuje hustotu informací a strukturu
|
||||
2. **Komprese** — Převádí prózu na hustý odrážkový formát, odstraňuje dekorativní formátování
|
||||
3. **Ověření** — Kontroluje úplnost pro zajištění zachování všech informací
|
||||
4. **Validace** (volitelné) — Round-trip rekonstrukční test dokazuje bezeztrátovou kompresi
|
||||
|
||||
**Vstup:**
|
||||
|
||||
- `source_documents` (povinné) — Cesty k souborům, složkám nebo glob vzory
|
||||
- `downstream_consumer` (volitelné) — Co to konzumuje (např. „tvorba PRD“)
|
||||
- `token_budget` (volitelné) — Přibližná cílová velikost
|
||||
- `--validate` (příznak) — Spuštění round-trip rekonstrukčního testu
|
||||
|
||||
**Výstup:** Destilátové markdown soubory s reportem kompresního poměru (např. „3.2:1“)
|
||||
|
||||
## bmad-advanced-elicitation
|
||||
|
||||
**Iterativní zdokonalování LLM výstupu metodami elicitace.** — Vybírá z knihovny elicitačních technik pro systematické zlepšování obsahu více průchody.
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ Definujte, co budovat a pro koho.
|
|||
| Workflow | Účel | Produkuje |
|
||||
| --------------------------- | ---------------------------------------- | ------------ |
|
||||
| `bmad-create-prd` | Definice požadavků (FR/NFR) | `PRD.md` |
|
||||
| `bmad-create-ux-design` | Návrh uživatelského zážitku (když záleží na UX) | `ux-spec.md` |
|
||||
| `bmad-ux` | Návrh uživatelského zážitku (když záleží na UX) | `DESIGN.md`, `EXPERIENCE.md` |
|
||||
|
||||
## Fáze 3: Solutioning
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Vytvářejte software rychleji pomocí pracovních postupů řízených AI se sp
|
|||
- Efektivně používat agenty a pracovní postupy
|
||||
|
||||
:::note[Předpoklady]
|
||||
- **Node.js 20+** — Vyžadováno pro instalátor
|
||||
- **Node.js 20.12+** — Vyžadováno pro instalátor
|
||||
- **Git** — Doporučeno pro správu verzí
|
||||
- **AI-powered IDE** — Claude Code, Cursor nebo podobné
|
||||
- **Nápad na projekt** — I jednoduchý stačí pro učení
|
||||
|
|
@ -150,7 +150,7 @@ Všechny workflow v této fázi jsou volitelné:
|
|||
- Spusťte `bmad-quick-dev` — zvládne plánování i implementaci v jednom workflow, přeskočte k implementaci
|
||||
|
||||
:::note[UX Design (volitelné)]
|
||||
Pokud má váš projekt uživatelské rozhraní, vyvolejte **UX-Designer agenta** (`bmad-agent-ux-designer`) a spusťte UX design workflow (`bmad-create-ux-design`) po vytvoření PRD.
|
||||
Pokud má váš projekt uživatelské rozhraní, vyvolejte **UX-Designer agenta** (`bmad-agent-ux-designer`) a spusťte UX design workflow (`bmad-ux`) po vytvoření PRD.
|
||||
:::
|
||||
|
||||
### Fáze 3: Solutioning (BMad Method/Enterprise)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,137 @@
|
|||
---
|
||||
title: "Forensic Investigation"
|
||||
description: How bmad-investigate treats every issue like a crime scene, grades evidence, and produces a structured case file engineers can act on
|
||||
sidebar:
|
||||
order: 6
|
||||
---
|
||||
|
||||
You hand `bmad-investigate` a crash log, a stack trace, or just a "this used to work, now it doesn't". The skill takes
|
||||
over the investigator's discipline for the duration of the run. It does not start fixing. It opens a case file.
|
||||
|
||||
Every finding gets graded. Every hypothesis gets a status. Wrong turns are kept, not erased. The deliverable is a
|
||||
document another engineer can pick up cold.
|
||||
|
||||
This page explains why investigation is its own discipline, and what the skill buys you that a regular dev workflow
|
||||
doesn't.
|
||||
|
||||
## The Problem With "Just Debug It"
|
||||
|
||||
Normal debugging blends three things: looking at evidence, reasoning about cause, and changing code to test the theory.
|
||||
When they're blended, two failure modes show up.
|
||||
|
||||
The first is **narrative lock-in**. The first plausible story becomes the working theory, and every observation gets
|
||||
bent to fit it. The bug stays unfixed until someone gives up and starts over. Hours later.
|
||||
|
||||
The second is **evidence amnesia**. You traced something, ruled it out, but didn't write down why. Two days later, with
|
||||
fresh eyes, you trace it again. Or worse, a colleague picks up the bug and re-runs the same dead end you already
|
||||
eliminated.
|
||||
|
||||
The skill's design is a direct response to both.
|
||||
|
||||
## Evidence Grading
|
||||
|
||||
Every finding in an investigation is one of three things.
|
||||
|
||||
- **Confirmed.** Directly observed in logs, code, or dumps; cited with a specific reference (a `path:line`, a log
|
||||
timestamp, a commit hash). If someone asks "how do you know?", you point at the citation.
|
||||
- **Deduced.** Logically follows from confirmed evidence; the reasoning chain is shown. If a step in the chain is wrong,
|
||||
the deduction is wrong, and you can see exactly which step.
|
||||
- **Hypothesized.** Plausible but unconfirmed. States what evidence would confirm or refute, and declares upfront what
|
||||
would close it. Hypotheses are explicitly *not facts*.
|
||||
|
||||
The grading is not about being humble. It's about making the case file readable. A reader can scan the Confirmed section
|
||||
to know what is true, the Deduced section to know what follows, and the Hypothesized section to know what is still open.
|
||||
Confusion between the three is the most common reason investigations spiral.
|
||||
|
||||
## Stronghold First
|
||||
|
||||
Investigation never starts from a theory. It starts from one piece of confirmed evidence and expands outward. That
|
||||
evidence might be a specific error message, a stack frame, or a timestamped log entry.
|
||||
|
||||
This is the opposite of how investigations often go. Someone has a hunch, builds a theory, and then hunts for evidence
|
||||
that supports it. The hunch can be right; the *method* is fragile because it makes confirmation bias the default.
|
||||
|
||||
A stronghold is a fact you can return to when reasoning gets murky. If a deduction takes you somewhere strange, you can
|
||||
walk it back to the stronghold and try a different branch. Without one, you don't know which step to undo.
|
||||
|
||||
When evidence is sparse, the skill says so and switches to hypothesis-driven exploration: form hypotheses from what's
|
||||
available, identify what would test each, present a prioritized data-collection list. Missing evidence is itself a
|
||||
finding.
|
||||
|
||||
## Hypothesis Discipline
|
||||
|
||||
Hypotheses are never deleted from the case file. When evidence confirms or refutes one, its **Status** field updates
|
||||
from Open to Confirmed or Refuted, and a **Resolution** explains what evidence settled it.
|
||||
|
||||
This rule has a real cost. Case files grow. The benefit is real too. The full reasoning history becomes part of the
|
||||
deliverable. Six months later, when a similar bug surfaces, the next investigator can read the original case file and
|
||||
see which paths were already eliminated and why. Without that history, every new investigator re-runs the same dead
|
||||
ends.
|
||||
|
||||
It also disciplines the present-tense investigator. If you can't delete a wrong hypothesis, you have to disprove it
|
||||
with cited evidence. Quietly dropping it when it becomes inconvenient is no longer an option.
|
||||
|
||||
## Challenge the Premise
|
||||
|
||||
The user's description of the problem is a hypothesis, not a fact. "The cache is broken" is something a user *believes*.
|
||||
Before the skill builds an investigation around it, the technical claims are verified independently. If the evidence
|
||||
contradicts the premise, the report says so directly.
|
||||
|
||||
This is the forensic instinct: the witness's account is data, not truth. Sometimes the reported bug is real but
|
||||
mislabeled. Sometimes the described symptom is downstream of a different cause. Investigations that take the premise as
|
||||
gospel diagnose the wrong defect, and the bug returns in a slightly different form.
|
||||
|
||||
## A Calibrated Walk
|
||||
|
||||
The skill is one procedure, not two modes. It calibrates how much defect-chasing versus how much area-exploration the
|
||||
input demands, on a continuous scale.
|
||||
|
||||
A symptom-driven case (a ticket, a crash, an error message, a "this used to work") leans into hypothesis tracking,
|
||||
timeline reconstruction, and a fix direction. A no-symptom case (understanding a module before you touch it, evaluating
|
||||
reusability, building a mental model) leans into I/O mapping, control-flow filtering, and a verification plan. Most
|
||||
real cases sit somewhere between, and the case file reflects whichever balance the evidence required.
|
||||
|
||||
The discipline is the same regardless of where on the scale a case lands: stronghold first, evidence grading, hypothesis
|
||||
tracking, never erase. The output is always at `{implementation_artifacts}/investigations/{slug}-investigation.md`, with
|
||||
sections that don't apply to a given case left empty or omitted.
|
||||
|
||||
When a deep bug requires understanding a broader subsystem, the procedure folds in the I/O mapping, control-flow
|
||||
filtering, working-backward-from-outputs, and cross-component boundary tracing techniques inline. The area model lands
|
||||
in the same case file. There is no mode switch.
|
||||
|
||||
## Methodology Lives in the Skill
|
||||
|
||||
The investigator's discipline is a property of the skill itself. Whoever invokes `bmad-investigate` takes on the
|
||||
methodology and communication style for the run: clinical precision, evidence-first language, no hedging, case-file
|
||||
framing. When the skill ends, the caller returns to its prior voice. No persona swap, just a tone shift from the skill's
|
||||
principles.
|
||||
|
||||
This matters because investigation and implementation reward different instincts. Investigators are slow and precise.
|
||||
Implementers are fast and confident. The same brain doing both in one session tends to do neither well. The skill
|
||||
carves out the investigative posture inline, without a context switch to a separate identity.
|
||||
|
||||
## What You Get
|
||||
|
||||
A completed investigation file:
|
||||
|
||||
- Separates Confirmed findings (with citations) from Deductions and Hypotheses
|
||||
- Preserves all hypotheses ever formed, with their final Status and Resolution
|
||||
- Reconstructs a timeline of events from multiple evidence sources
|
||||
- Identifies data gaps and what they would resolve
|
||||
- Provides actionable conclusions grounded in evidence
|
||||
- Includes a reproduction plan when a root cause is identified
|
||||
- Maintains an investigation backlog of paths still to explore
|
||||
|
||||
Hand it to an engineer who was not present and they understand what happened, what is known, and what remains uncertain.
|
||||
That's the bar.
|
||||
|
||||
## The Bigger Idea
|
||||
|
||||
Most "AI debugging" today blends evidence, reasoning, and code changes into one stream of plausible-looking text. The
|
||||
signal is hard to find, the dead ends repeat, and the case file, if there is one, is a chat log nobody wants to read.
|
||||
|
||||
`bmad-investigate` treats investigation as a discipline with its own deliverable. Evidence has a grade. Hypotheses have
|
||||
a status. Wrong turns are documented, not erased. The case file outlives the session.
|
||||
|
||||
When the next bug shows up that looks like one you've seen before, you have somewhere to start that isn't a blank
|
||||
prompt.
|
||||
|
|
@ -36,7 +36,7 @@ BMad ships six named agents, each anchored to a phase of the BMad Method:
|
|||
| 📋 **John**, Product Manager | Planning | PRD creation, epic/story breakdown, implementation readiness |
|
||||
| 🎨 **Sally**, UX Designer | Planning | UX design specifications |
|
||||
| 🏗️ **Winston**, System Architect | Solutioning | technical architecture, alignment checks |
|
||||
| 💻 **Amelia**, Senior Engineer | Implementation | story execution, quick-dev, code review, sprint planning |
|
||||
| 💻 **Amelia**, Senior Engineer | Implementation | story execution, quick-dev, code review, sprint planning, [forensic investigation](./forensic-investigation.md) |
|
||||
|
||||
They each have a hardcoded identity (name, title, domain) and a customizable layer (role, principles, communication style, icon, menu). You can rewrite Mary's principles or add menu items; you can't rename her — that's deliberate. Brand recognition survives customization so "hey Mary" always activates the analyst, regardless of how a team has shaped her behavior.
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,157 @@
|
|||
---
|
||||
title: "Enquête de code"
|
||||
description: Comment bmad-investigate traite chaque problème comme une scène d'enquête, classe les preuves et produit un dossier structuré sur lequel les ingénieurs peuvent agir
|
||||
sidebar:
|
||||
order: 6
|
||||
---
|
||||
|
||||
Vous confiez à `bmad-investigate` un journal de plantage, une trace de pile, ou simplement un « ça marchait avant, plus
|
||||
maintenant ». Le skill prend le relais avec la discipline d'enquête le temps de l'exécution. Il ne se met pas à
|
||||
corriger. Il ouvre un dossier d'enquête.
|
||||
|
||||
Chaque constatation reçoit une note. Chaque hypothèse a un statut. Les fausses pistes sont conservées, pas effacées. Le
|
||||
livrable est un document qu'un autre ingénieur peut reprendre à froid.
|
||||
|
||||
Cette page explique pourquoi l'enquête est une discipline à part entière, et ce que le skill apporte qu'un workflow de
|
||||
développement classique n'apporte pas.
|
||||
|
||||
## Le problème du « débogue, c'est tout »
|
||||
|
||||
Le débogage classique mélange trois activités : examiner les preuves, raisonner sur la cause, et modifier le code pour
|
||||
tester la théorie. Quand elles sont mélangées, deux modes de défaillance apparaissent.
|
||||
|
||||
Le premier est le **verrouillage narratif**[^1]. La première histoire plausible devient la théorie de travail, et chaque
|
||||
observation est tordue pour la confirmer. Le bug reste non corrigé jusqu'à ce que quelqu'un abandonne et reparte de
|
||||
zéro. Des heures plus tard.
|
||||
|
||||
Le second est l'**amnésie probatoire**. Vous avez tracé quelque chose, l'avez écarté, mais n'avez pas écrit pourquoi.
|
||||
Deux jours plus tard, avec un regard frais, vous le retracez. Pire encore, un collègue reprend le bug et refait la même
|
||||
impasse que vous aviez déjà éliminée.
|
||||
|
||||
La conception du skill est une réponse directe à ces deux modes.
|
||||
|
||||
## Classement des preuves
|
||||
|
||||
Chaque constatation dans une enquête appartient à l'une de trois catégories.
|
||||
|
||||
- **Confirmé.** Directement observé dans les logs, le code ou les dumps ; cité avec une référence spécifique (un
|
||||
`chemin:ligne`, un horodatage de log, un hash de commit). Si quelqu'un demande « comment le sais-tu ? », vous pointez
|
||||
la citation.
|
||||
- **Déduit.** Découle logiquement de preuves confirmées ; la chaîne de raisonnement est explicite. Si une étape de la
|
||||
chaîne est fausse, la déduction est fausse, et on peut voir précisément quelle étape.
|
||||
- **Hypothétique.** Plausible mais non confirmé. Énonce quelle preuve confirmerait ou réfuterait, et déclare d'avance ce
|
||||
qui le clôturerait. Les hypothèses sont explicitement *non factuelles*.
|
||||
|
||||
Le classement n'est pas une posture d'humilité. Il rend le dossier lisible. Un lecteur peut parcourir la section
|
||||
Confirmé pour savoir ce qui est vrai, la section Déduit pour savoir ce qui en découle, et la section Hypothétique pour
|
||||
savoir ce qui reste ouvert. Confondre les trois est la première raison pour laquelle les enquêtes dérapent.
|
||||
|
||||
## Tête de pont d'abord
|
||||
|
||||
L'enquête ne part jamais d'une théorie. Elle part d'une seule preuve confirmée et étend la zone à partir de là. Cette
|
||||
preuve peut être un message d'erreur précis, une trame de pile, ou une entrée de log horodatée.
|
||||
|
||||
C'est l'inverse de la manière dont les enquêtes se déroulent souvent : quelqu'un a une intuition, construit une théorie,
|
||||
puis cherche les preuves qui la soutiennent. L'intuition peut être correcte ; la *méthode* est fragile parce qu'elle
|
||||
fait du biais de confirmation[^2] le comportement par défaut.
|
||||
|
||||
Une tête de pont est un fait sur lequel vous pouvez revenir quand le raisonnement devient flou. Si une déduction vous
|
||||
emmène quelque part d'étrange, vous pouvez remonter jusqu'à la tête de pont et essayer une autre branche. Sans elle,
|
||||
vous ne savez pas quelle étape annuler.
|
||||
|
||||
Quand les preuves sont rares, le skill le dit et bascule en exploration guidée par hypothèses : formuler des hypothèses
|
||||
à partir de ce qui est disponible, identifier ce qui testerait chacune, présenter une liste priorisée de données à
|
||||
collecter. L'absence de preuve est elle-même une constatation.
|
||||
|
||||
## Discipline des hypothèses
|
||||
|
||||
Les hypothèses ne sont jamais supprimées du dossier. Quand une preuve en confirme ou en réfute une, son champ **Statut**
|
||||
passe d'Ouvert à Confirmé ou Réfuté, et une **Résolution** explique quelle preuve a tranché.
|
||||
|
||||
Cette règle a un coût réel : les dossiers grossissent. Le bénéfice est réel aussi. L'historique complet du raisonnement
|
||||
fait partie du livrable. Six mois plus tard, quand un bug similaire surgit, le prochain enquêteur peut lire le dossier
|
||||
original et voir quelles pistes ont déjà été éliminées et pourquoi. Sans cet historique, chaque nouvel enquêteur refait
|
||||
les mêmes impasses.
|
||||
|
||||
Cela discipline aussi l'enquêteur du présent. Si vous ne pouvez pas supprimer une hypothèse fausse, vous devez la
|
||||
réfuter avec une preuve citée. L'abandonner discrètement quand elle devient gênante n'est plus une option.
|
||||
|
||||
## Remettre en question la prémisse
|
||||
|
||||
La description du problème par l'utilisateur est une hypothèse, pas un fait. « Le cache est cassé » est quelque chose
|
||||
que l'utilisateur *croit*. Avant que le skill ne construise une enquête autour, les affirmations techniques sont
|
||||
vérifiées de manière indépendante. Si la preuve contredit la prémisse, le rapport le dit directement.
|
||||
|
||||
C'est l'instinct de l'enquêteur : le récit du témoin est une donnée, pas la vérité. Parfois le bug rapporté est réel
|
||||
mais mal étiqueté. Parfois le symptôme décrit est en aval d'une cause différente. Les enquêtes qui prennent la prémisse
|
||||
pour argent comptant diagnostiquent le mauvais défaut, et le bug revient sous une forme légèrement différente.
|
||||
|
||||
## Une marche calibrée
|
||||
|
||||
Le skill est une seule procédure, pas deux modes. Il calibre la part d'investigation de défaut versus la part
|
||||
d'exploration de zone que l'entrée demande, sur une échelle continue.
|
||||
|
||||
Un cas piloté par symptôme (un ticket, un plantage, un message d'erreur, un « ça marchait avant ») penche vers le suivi
|
||||
d'hypothèses, la reconstruction de la chronologie et une direction de correction. Un cas sans symptôme (comprendre un
|
||||
module avant de le toucher, évaluer la réutilisabilité, bâtir un modèle mental) penche vers la cartographie
|
||||
entrées/sorties, le filtrage du flux de contrôle et un plan de vérification. La plupart des cas réels se situent quelque
|
||||
part entre les deux, et le dossier reflète l'équilibre que les preuves ont exigé.
|
||||
|
||||
La discipline est la même quel que soit l'endroit de l'échelle où se situe un cas : tête de pont d'abord, classement
|
||||
des preuves, suivi des hypothèses, jamais effacer. La sortie est toujours
|
||||
`{implementation_artifacts}/investigations/{slug}-investigation.md`, avec les sections qui ne s'appliquent pas à un cas
|
||||
laissées vides ou omises.
|
||||
|
||||
Quand un bug profond exige de comprendre un sous-système plus large, la procédure intègre en ligne les techniques de
|
||||
cartographie entrées/sorties, de filtrage du flux de contrôle, de raisonnement à rebours depuis les sorties et de
|
||||
traçage des frontières inter-composants[^3]. Le modèle de la zone atterrit dans le même dossier. Pas de changement de
|
||||
mode.
|
||||
|
||||
## La méthodologie vit dans le skill
|
||||
|
||||
La discipline d'enquête est une propriété du skill lui-même. Quiconque invoque `bmad-investigate` adopte la méthodologie
|
||||
et le style de communication pour l'exécution : précision clinique, langage centré sur la preuve, pas de prudence
|
||||
inutile, présentation en dossier de cas. Quand le skill se termine, l'appelant retrouve sa voix d'avant. Pas de
|
||||
changement de persona, juste un déplacement de ton issu des principes du skill.
|
||||
|
||||
Cela compte parce que l'enquête et l'implémentation récompensent des instincts différents. Les enquêteurs sont lents et
|
||||
précis. Les implémenteurs sont rapides et confiants. Le même cerveau faisant les deux dans une seule session finit par
|
||||
mal faire les deux. Le skill délimite la posture d'enquête en ligne, sans changement de contexte vers une identité
|
||||
séparée.
|
||||
|
||||
## Ce que vous obtenez
|
||||
|
||||
Un fichier d'enquête achevé :
|
||||
|
||||
- Sépare les constatations Confirmées (avec citations) des Déductions et des Hypothèses
|
||||
- Préserve toutes les hypothèses jamais formulées, avec leur Statut final et leur Résolution
|
||||
- Reconstruit une chronologie des événements à partir de plusieurs sources de preuves
|
||||
- Identifie les lacunes de données et ce qu'elles résoudraient
|
||||
- Fournit des conclusions actionnables ancrées dans les preuves
|
||||
- Inclut un plan de reproduction quand une cause racine est identifiée
|
||||
- Maintient un backlog d'enquête de pistes encore à explorer
|
||||
|
||||
Donnez-le à un ingénieur qui n'était pas là, et il comprend ce qui s'est passé, ce qui est connu, et ce qui reste
|
||||
incertain. C'est la barre.
|
||||
|
||||
## L'idée plus large
|
||||
|
||||
La plupart du « débogage par IA » d'aujourd'hui mélange preuves, raisonnement et changements de code en un seul flux de
|
||||
texte plausible. Le signal est difficile à trouver, les impasses se répètent, et le dossier, s'il en existe un, est un
|
||||
journal de chat que personne ne veut lire.
|
||||
|
||||
`bmad-investigate` traite l'enquête comme une discipline avec son propre livrable. La preuve a une note. Les hypothèses
|
||||
ont un statut. Les fausses pistes sont documentées, pas effacées. Le dossier survit à la session.
|
||||
|
||||
Quand le prochain bug ressemblant à un que vous avez déjà vu apparaîtra, vous aurez un point de départ qui ne sera pas
|
||||
une invite vide.
|
||||
|
||||
## Glossaire
|
||||
|
||||
[^1]: **Verrouillage narratif** : phénomène cognitif par lequel un raisonnement adopte la première explication plausible
|
||||
et l'enrichit progressivement, devenant de plus en plus difficile à abandonner même face à des preuves contraires.
|
||||
[^2]: **Biais de confirmation** : tendance cognitive à rechercher, interpréter et favoriser les informations qui
|
||||
confirment des croyances préexistantes, tout en ignorant ou minimisant celles qui les contredisent.
|
||||
[^3]: **Passage de frontière** : transition entre deux zones d'exécution distinctes (langage, processus, machine,
|
||||
client/serveur, code/configuration). Les frontières concentrent les bugs car chaque côté suppose que l'autre s'est
|
||||
comporté comme documenté.
|
||||
|
|
@ -16,7 +16,7 @@ Si vous souhaitez utiliser un installateur non interactif et fournir toutes les
|
|||
- Mettre à jour une installation BMad existante
|
||||
|
||||
:::note[Prérequis]
|
||||
- **Node.js** 20+ (requis pour l'installateur)
|
||||
- **Node.js** 20.12+ (requis pour l'installateur)
|
||||
- **Git** (recommandé)
|
||||
- **Outil d'IA** (Claude Code, Cursor, ou similaire)
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Utilisez les options de ligne de commande pour installer BMad de manière non-in
|
|||
- Installations rapides avec des configurations connues
|
||||
|
||||
:::note[Prérequis]
|
||||
Nécessite [Node.js](https://nodejs.org) v20+ et `npx` (inclus avec npm).
|
||||
Nécessite [Node.js](https://nodejs.org) v20.12+ et `npx` (inclus avec npm).
|
||||
:::
|
||||
|
||||
## Options disponibles
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Utilisez l'installateur BMad pour passer de la v4 à la v6, qui inclut une déte
|
|||
- Vous avez des artefacts de planification existants à préserver
|
||||
|
||||
:::note[Prérequis]
|
||||
- Node.js 20+
|
||||
- Node.js 20.12+
|
||||
- Installation BMad v4 existante
|
||||
:::
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Exécutez n'importe quel outil principal en tapant son nom de compétence (par e
|
|||
| [`bmad-help`](#bmad-help) | Tâche | Obtenir des conseils contextuels sur la prochaine étape |
|
||||
| [`bmad-brainstorming`](#bmad-brainstorming) | Workflow | Faciliter des sessions de brainstorming interactives |
|
||||
| [`bmad-party-mode`](#bmad-party-mode) | Workflow | Orchestrer des discussions de groupe multi-agents |
|
||||
| [`bmad-distillator`](#bmad-distillator) | Tâche | Compression sans perte optimisée pour LLM de documents |
|
||||
| [`bmad-spec`](#bmad-spec) | Workflow | Distill any intent input into a SPEC kernel and companions (translation pending) |
|
||||
| [`bmad-advanced-elicitation`](#bmad-advanced-elicitation) | Tâche | Pousser la sortie LLM à travers des méthodes de raffinement itératives |
|
||||
| [`bmad-review-adversarial-general`](#bmad-review-adversarial-general) | Tâche | Revue cynique qui trouve ce qui manque et ce qui ne va pas |
|
||||
| [`bmad-review-edge-case-hunter`](#bmad-review-edge-case-hunter) | Tâche | Analyse exhaustive des chemins de branchement pour les cas limites non gérés |
|
||||
|
|
@ -97,33 +97,6 @@ La magie se produit dans les idées 50–100. Le workflow encourage la générat
|
|||
|
||||
**Sortie :** Conversation multi-agents en temps réel avec des personnalités d'agents maintenues
|
||||
|
||||
## bmad-distillator
|
||||
|
||||
**Compression sans perte optimisée pour LLM de documents sources.** — Produit des distillats denses et efficaces en tokens qui préservent toute l'information pour la consommation par des LLM en aval. Vérifiable par reconstruction aller-retour.
|
||||
|
||||
**Utilisez-le quand :**
|
||||
|
||||
- Un document est trop volumineux pour la fenêtre de contexte d'un LLM
|
||||
- Vous avez besoin de versions économes en tokens de recherches, spécifications ou artefacts de planification
|
||||
- Vous voulez vérifier qu'aucune information n'est perdue pendant la compression
|
||||
- Les agents auront besoin de référencer et de trouver fréquemment des informations dedans
|
||||
|
||||
**Fonctionnement :**
|
||||
|
||||
1. **Analyser** — Lit les documents sources, identifie la densité d'information et la structure
|
||||
2. **Compresser** — Convertit la prose en format dense de liste de points, supprime le formatage décoratif
|
||||
3. **Vérifier** — Vérifie l'exhaustivité pour s'assurer que toute l'information originale est préservée
|
||||
4. **Valider** (optionnel) — Le test de reconstruction aller-retour prouve la compression sans perte
|
||||
|
||||
**Entrée :**
|
||||
|
||||
- `source_documents` (requis) — Chemins de fichiers, chemins de dossiers ou motifs glob
|
||||
- `downstream_consumer` (optionnel) — Ce qui va le consommer (par ex., "création de PRD")
|
||||
- `token_budget` (optionnel) — Taille cible approximative
|
||||
- `--validate` (drapeau) — Exécuter le test de reconstruction aller-retour
|
||||
|
||||
**Sortie :** Fichier(s) markdown distillé(s) avec rapport de ratio de compression (par ex., "3.2:1")
|
||||
|
||||
## bmad-advanced-elicitation
|
||||
|
||||
**Passer la sortie du LLM à travers des méthodes de raffinement itératives.** — Sélectionne depuis une bibliothèque de techniques d'élicitation pour améliorer systématiquement le contenu à travers multiples passages.
|
||||
|
|
|
|||
|
|
@ -5,13 +5,23 @@ sidebar:
|
|||
order: 1
|
||||
---
|
||||
|
||||
La méthode BMad (BMM) est un module de l'écosystème BMad, conçu pour suivre les meilleures pratiques de l'ingénierie du contexte et de la planification. Les agents IA fonctionnent de manière optimale avec un contexte clair et structuré. Le système BMM construit ce contexte progressivement à travers 4 phases distinctes — chaque phase, et plusieurs workflows optionnels au sein de chaque phase, produisent des documents qui alimentent la phase suivante, afin que les agents sachent toujours quoi construire et pourquoi.
|
||||
La méthode BMad (BMM) est un module de l'écosystème BMad, conçu pour suivre les meilleures pratiques de l'ingénierie du
|
||||
contexte et de la planification. Les agents IA fonctionnent de manière optimale avec un contexte clair et structuré. Le
|
||||
système BMM construit ce contexte progressivement à travers 4 phases distinctes — chaque phase, et plusieurs workflows
|
||||
optionnels au sein de chaque phase, produisent des documents qui alimentent la phase suivante, afin que les agents
|
||||
sachent toujours quoi construire et pourquoi.
|
||||
|
||||
La logique et les concepts proviennent des méthodologies agiles qui ont été utilisées avec succès dans l'industrie comme cadre mental de référence.
|
||||
La logique et les concepts proviennent des méthodologies agiles qui ont été utilisées avec succès dans l'industrie comme
|
||||
cadre mental de référence.
|
||||
|
||||
Si à tout moment vous ne savez pas quoi faire, le skill `bmad-help` vous aidera à rester sur la bonne voie ou à savoir quoi faire ensuite. Vous pouvez toujours vous référer à cette page également — mais `bmad-help` est entièrement interactif et beaucoup plus rapide si vous avez déjà installé la méthode BMad. De plus, si vous utilisez différents modules qui ont étendu la méthode BMad ou ajouté d'autres modules complémentaires non extensifs — `bmad-help` évolue pour connaître tout ce qui est disponible et vous donner les meilleurs conseils du moment.
|
||||
Si à tout moment vous ne savez pas quoi faire, le skill `bmad-help` vous aidera à rester sur la bonne voie ou à savoir
|
||||
quoi faire ensuite. Vous pouvez toujours vous référer à cette page également — mais `bmad-help` est entièrement
|
||||
interactif et beaucoup plus rapide si vous avez déjà installé la méthode BMad. De plus, si vous utilisez différents
|
||||
modules qui ont étendu la méthode BMad ou ajouté d'autres modules complémentaires non extensifs — `bmad-help` évolue
|
||||
pour connaître tout ce qui est disponible et vous donner les meilleurs conseils du moment.
|
||||
|
||||
Note finale importante : Chaque workflow ci-dessous peut être exécuté directement avec l'outil de votre choix via un skill ou en chargeant d'abord un agent et en utilisant l'entrée du menu des agents.
|
||||
Note finale importante : Chaque workflow ci-dessous peut être exécuté directement avec l'outil de votre choix via un
|
||||
skill ou en chargeant d'abord un agent et en utilisant l'entrée du menu des agents.
|
||||
|
||||
<iframe src="/workflow-map-diagram-fr.html" title="Diagramme de la carte des workflows de la méthode BMad" width="100%" height="100%" style="border-radius: 8px; border: 1px solid #334155; min-height: 900px;"></iframe>
|
||||
|
||||
|
|
@ -21,14 +31,15 @@ Note finale importante : Chaque workflow ci-dessous peut être exécuté directe
|
|||
|
||||
## Phase 1 : Analyse (Optionnelle)
|
||||
|
||||
Explorez l’espace problème et validez les idées avant de vous engager dans la planification. [**Découvrez ce que fait chaque outil et quand l’utiliser**](../explanation/analysis-phase.md).
|
||||
Explorez l’espace problème et validez les idées avant de vous engager dans la planification. [**Découvrez ce que fait
|
||||
chaque outil et quand l’utiliser**](../explanation/analysis-phase.md).
|
||||
|
||||
| Workflow | Objectif | Produit |
|
||||
|---------------------------------------------------------------------------|------------------------------------------------------------------------------------------|---------------------------|
|
||||
| `bmad-brainstorming` | Brainstormez des idées de projet avec l’accompagnement guidé d’un coach de brainstorming | `brainstorming-report.md` |
|
||||
| `bmad-domain-research`, `bmad-market-research`, `bmad-technical-research` | Validez les hypothèses de marché, techniques ou de domaine | Rapport de recherches |
|
||||
| `bmad-product-brief` | Capturez la vision stratégique — idéal lorsque votre concept est clair | `product-brief.md` |
|
||||
| `bmad-prfaq` | Working Backwards — éprouvez et forgez votre concept produit | `prfaq-{project}.md` |
|
||||
| `bmad-prfaq` | Working Backwards — éprouvez et forgez votre concept produit | `prfaq-{project}.md` |
|
||||
|
||||
## Phase 2 : Planification
|
||||
|
||||
|
|
@ -36,60 +47,75 @@ Définissez ce qu'il faut construire et pour qui.
|
|||
|
||||
| Workflow | Objectif | Produit |
|
||||
|-------------------------|---------------------------------------------------------|--------------|
|
||||
| `bmad-create-prd` | Définissez les exigences (FRs/NFRs)[^1] | `PRD.md`[^2] |
|
||||
| `bmad-create-ux-design` | Concevez l'expérience utilisateur (lorsque l'UX compte) | `ux-spec.md` |
|
||||
| `bmad-create-prd` | Définissez les exigences (FRs/NFRs)[^1] | `PRD.md`[^2] |
|
||||
| `bmad-ux` | Concevez l'expérience utilisateur (lorsque l'UX compte) | `DESIGN.md`, `EXPERIENCE.md` |
|
||||
|
||||
## Phase 3 : Solutioning
|
||||
|
||||
Décidez comment le construire et décomposez le travail en stories.
|
||||
|
||||
| Workflow | Objectif | Produit |
|
||||
|---------------------------------------|---------------------------------------------------|------------------------------|
|
||||
| `bmad-create-architecture` | Rendez les décisions techniques explicites | `architecture.md` avec ADRs[^3] |
|
||||
| `bmad-create-epics-and-stories` | Décomposez les exigences en travail implémentable | Fichiers d'epic avec stories |
|
||||
| `bmad-check-implementation-readiness` | Vérification avant implémentation | Décision Passe/Réserves/Échec |
|
||||
| Workflow | Objectif | Produit |
|
||||
|---------------------------------------|---------------------------------------------------|---------------------------------|
|
||||
| `bmad-create-architecture` | Rendez les décisions techniques explicites | `architecture.md` avec ADRs[^3] |
|
||||
| `bmad-create-epics-and-stories` | Décomposez les exigences en travail implémentable | Fichiers d'epic avec stories |
|
||||
| `bmad-check-implementation-readiness` | Vérification avant implémentation | Décision Passe/Réserves/Échec |
|
||||
|
||||
## Phase 4 : Implémentation
|
||||
|
||||
Construisez, une story à la fois. Bientôt disponible : automatisation complète de la phase 4 !
|
||||
|
||||
| Workflow | Objectif | Produit |
|
||||
|------------------------|-------------------------------------------------------------------------------------|----------------------------------|
|
||||
| `bmad-sprint-planning` | Initialisez le suivi (une fois par projet pour séquencer le cycle de développement) | `sprint-status.yaml` |
|
||||
| `bmad-create-story` | Préparez la story suivante pour implémentation | `story-[slug].md` |
|
||||
| `bmad-dev-story` | Implémentez la story | Code fonctionnel + tests |
|
||||
| `bmad-code-review` | Validez la qualité de l'implémentation | Approuvé ou changements demandés |
|
||||
| `bmad-correct-course` | Gérez les changements significatifs en cours de sprint | Plan mis à jour ou réorientation |
|
||||
| `bmad-sprint-status` | Suivez la progression du sprint et le statut des stories | Mise à jour du statut du sprint |
|
||||
| `bmad-retrospective` | Revue après complétion d'un epic | Leçons apprises |
|
||||
| Workflow | Objectif | Produit |
|
||||
|------------------------|-------------------------------------------------------------------------------------|------------------------------------------------------|
|
||||
| `bmad-sprint-planning` | Initialisez le suivi (une fois par projet pour séquencer le cycle de développement) | `sprint-status.yaml` |
|
||||
| `bmad-create-story` | Préparez la story suivante pour implémentation | `story-[slug].md` |
|
||||
| `bmad-dev-story` | Implémentez la story | Code fonctionnel + tests |
|
||||
| `bmad-code-review` | Validez la qualité de l'implémentation | Approuvé ou changements demandés |
|
||||
| `bmad-correct-course` | Gérez les changements significatifs en cours de sprint | Plan mis à jour ou réorientation |
|
||||
| `bmad-sprint-status` | Suivez la progression du sprint et le statut des stories | Mise à jour du statut du sprint |
|
||||
| `bmad-retrospective` | Revue après complétion d'un epic | Leçons apprises |
|
||||
| `bmad-investigate` | Enquête de cas avec conclusions à preuves graduées, calibrée selon l'entrée | `{slug}-investigation.md` |
|
||||
|
||||
## Quick Dev (Parcours Parallèle)
|
||||
|
||||
Sautez les phases 1-3 pour les travaux de faible envergure et bien compris.
|
||||
|
||||
| Workflow | Objectif | Produit |
|
||||
|------------------|-------------------------------------------------------------------------------------|-----------------------|
|
||||
| Workflow | Objectif | Produit |
|
||||
|------------------|-------------------------------------------------------------------------------------|--------------------|
|
||||
| `bmad-quick-dev` | Flux rapide unifié — clarifie l'intention, planifie, implémente, révise et présente | `spec-*.md` + code |
|
||||
|
||||
## Gestion du Contexte
|
||||
|
||||
Chaque document devient le contexte de la phase suivante. Le PRD[^2] indique à l'architecte quelles contraintes sont importantes. L'architecture indique à l'agent de développement quels modèles suivre. Les fichiers de story fournissent un contexte focalisé et complet pour l'implémentation. Sans cette structure, les agents prennent des décisions incohérentes.
|
||||
Chaque document devient le contexte de la phase suivante. Le PRD[^2] indique à l'architecte quelles contraintes sont
|
||||
importantes. L'architecture indique à l'agent de développement quels modèles suivre. Les fichiers de story fournissent
|
||||
un contexte focalisé et complet pour l'implémentation. Sans cette structure, les agents prennent des décisions
|
||||
incohérentes.
|
||||
|
||||
### Contexte du Projet
|
||||
|
||||
:::tip[Recommandé]
|
||||
Créez `project-context.md` pour vous assurer que les agents IA suivent les règles et préférences de votre projet. Ce fichier fonctionne comme une constitution pour votre projet — il guide les décisions d'implémentation à travers tous les workflows. Ce fichier optionnel peut être généré à la fin de la création de l'architecture, ou dans un projet existant il peut également être généré pour capturer ce qui est important de conserver aligné avec les conventions actuelles.
|
||||
Créez `project-context.md` pour vous assurer que les agents IA suivent les règles et préférences de votre projet. Ce
|
||||
fichier fonctionne comme une constitution pour votre projet — il guide les décisions d'implémentation à travers tous les
|
||||
workflows. Ce fichier optionnel peut être généré à la fin de la création de l'architecture, ou dans un projet existant
|
||||
il peut également être généré pour capturer ce qui est important de conserver aligné avec les conventions actuelles.
|
||||
:::
|
||||
|
||||
**Comment le créer :**
|
||||
|
||||
- **Manuellement** — Créez `_bmad-output/project-context.md` avec votre pile technologique et vos règles d'implémentation
|
||||
- **Générez-le** — Exécutez `bmad-generate-project-context` pour l'auto-générer à partir de votre architecture ou de votre codebase
|
||||
- **Manuellement** — Créez `_bmad-output/project-context.md` avec votre pile technologique et vos règles
|
||||
d'implémentation
|
||||
- **Générez-le** — Exécutez `bmad-generate-project-context` pour l'auto-générer à partir de votre architecture ou de
|
||||
votre codebase
|
||||
|
||||
[**En savoir plus sur project-context.md**](../explanation/project-context.md)
|
||||
|
||||
## Glossaire
|
||||
|
||||
[^1]: FR / NFR (Functional / Non-Functional Requirement) : exigences décrivant respectivement **ce que le système doit faire** (fonctionnalités, comportements attendus) et **comment il doit le faire** (contraintes de performance, sécurité, fiabilité, ergonomie, etc.).
|
||||
[^2]: PRD (Product Requirements Document) : document de référence qui décrit les objectifs du produit, les besoins utilisateurs, les fonctionnalités attendues, les contraintes et les critères de succès, afin d’aligner les équipes sur ce qui doit être construit et pourquoi.
|
||||
[^3]: ADR (Architecture Decision Record) : document qui consigne une décision d’architecture, son contexte, les options envisagées, le choix retenu et ses conséquences, afin d’assurer la traçabilité et la compréhension des décisions techniques dans le temps.
|
||||
[^1]: FR / NFR (Functional / Non-Functional Requirement) : exigences décrivant respectivement **ce que le système doit
|
||||
faire** (fonctionnalités, comportements attendus) et **comment il doit le faire** (contraintes de performance, sécurité,
|
||||
fiabilité, ergonomie, etc.).
|
||||
[^2]: PRD (Product Requirements Document) : document de référence qui décrit les objectifs du produit, les besoins
|
||||
utilisateurs, les fonctionnalités attendues, les contraintes et les critères de succès, afin d’aligner les équipes sur
|
||||
ce qui doit être construit et pourquoi.
|
||||
[^3]: ADR (Architecture Decision Record) : document qui consigne une décision d’architecture, son contexte, les options
|
||||
envisagées, le choix retenu et ses conséquences, afin d’assurer la traçabilité et la compréhension des décisions
|
||||
techniques dans le temps.
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Construisez des logiciels plus rapidement en utilisant des workflows propulsés
|
|||
- Utiliser efficacement les agents et les workflows
|
||||
|
||||
:::note[Prérequis]
|
||||
- **Node.js 20+** — Requis pour l'installateur
|
||||
- **Node.js 20.12+** — Requis pour l'installateur
|
||||
- **Git** — Recommandé pour le contrôle de version
|
||||
- **IDE IA** — Claude Code, Cursor, ou similaire
|
||||
- **Une idée de projet** — Même simple, elle fonctionne pour apprendre
|
||||
|
|
@ -150,7 +150,7 @@ Tous les workflows de cette phase sont optionnels. [**Pas sûr de quel outil uti
|
|||
- Exécutez `bmad-quick-dev` — il gère la planification et l'implémentation dans un seul workflow, passez directement à l'implémentation
|
||||
|
||||
:::note[Design UX (Optionnel)]
|
||||
Si votre projet a une interface utilisateur, invoquez l'**agent Designer UX** (`bmad-agent-ux-designer`) et exécutez le workflow de design UX (`bmad-create-ux-design`) après avoir créé votre PRD.
|
||||
Si votre projet a une interface utilisateur, invoquez l'**agent Designer UX** (`bmad-agent-ux-designer`) et exécutez le workflow de design UX (`bmad-ux`) après avoir créé votre PRD.
|
||||
:::
|
||||
|
||||
### Phase 3 : Solutioning (méthode BMad/Enterprise)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
---
|
||||
title: 'How to Expand BMad for Your Organization'
|
||||
description: Five customization patterns that reshape BMad without forking — agent-wide rules, workflow conventions, external publishing, template swaps, and agent roster changes
|
||||
description: Six customization patterns that reshape BMad without forking — agent-wide rules, workflow conventions, external publishing, template swaps, agent roster changes, and advanced integration patterns
|
||||
sidebar:
|
||||
order: 9
|
||||
---
|
||||
|
||||
BMad's customization surface lets an organization reshape behavior without editing installed files or forking skills. This guide walks through five recipes that cover most enterprise needs.
|
||||
BMad's customization surface lets an organization reshape behavior without editing installed files or forking skills. This guide walks through six recipes that cover most enterprise needs.
|
||||
|
||||
:::note[Prerequisites]
|
||||
|
||||
|
|
@ -227,9 +227,79 @@ One sentence, loaded every session. It pairs with the `bmad-agent-dev.toml` cust
|
|||
|
||||
Keep the IDE file **succinct**. A dozen well-chosen lines are more effective than a sprawling list. Models read it every turn, and noise crowds out signal.
|
||||
|
||||
## Recipe 6: Advanced Integration Patterns
|
||||
|
||||
Several BMad workflows expose a richer configuration surface beyond the basics covered in Recipes 1–5. These patterns — on-demand knowledge sources, automatic output publishing, finalize-time doc standards, and swappable templates — appear across multiple workflows. Check a workflow's `customize.toml` to see which fields it exposes; the examples below use `bmad-prd` because it exposes all of them, but the same patterns apply wherever the field appears.
|
||||
|
||||
### On-demand knowledge sources (`external_sources`)
|
||||
|
||||
Connect the workflow to internal knowledge bases, competitive databases, or compliance references. The agent consults these on demand when the conversation surfaces a matching need — never preemptively.
|
||||
|
||||
```toml
|
||||
# _bmad/custom/bmad-prd.toml (same pattern works in any workflow that exposes external_sources)
|
||||
|
||||
[workflow]
|
||||
external_sources = [
|
||||
"When the user mentions a competitor or market segment, query corp:competitive_db (category={project_name}) before drafting the differentiation section.",
|
||||
"For regulatory domains (healthcare, fintech, education), consult corp:compliance_reference before drafting domain-specific sections.",
|
||||
]
|
||||
```
|
||||
|
||||
Each entry is a natural-language directive naming the MCP tool, the trigger condition, and any fields the tool needs. If the tool is unavailable at runtime, the workflow falls back to standard behavior and notes the gap.
|
||||
|
||||
### Automatic output publishing (`external_handoffs`)
|
||||
|
||||
Route completed artifacts to external systems of record after the workflow finalizes. Unlike `on_complete` (Recipe 3), `external_handoffs` is a dedicated append array — team entries stack, and each handoff fires independently with graceful degradation if a tool is unavailable.
|
||||
|
||||
```toml
|
||||
# _bmad/custom/bmad-prd.toml (same pattern works in any workflow that exposes external_handoffs)
|
||||
|
||||
[workflow]
|
||||
external_handoffs = [
|
||||
"After finalize, upload prd.md and addendum.md to Confluence via corp:confluence_upload (space_key='PROD', parent_page='PRDs', label='prd', author={user_name}). Capture and surface the returned page URL.",
|
||||
"Mirror to Notion via notion:create_page (database_id='abc123', title='PRD: ' + {project_name}).",
|
||||
]
|
||||
```
|
||||
|
||||
If a named tool is unavailable, the handoff is skipped and flagged — local files always exist regardless.
|
||||
|
||||
### Finalize-time doc standards (`doc_standards`)
|
||||
|
||||
Apply org writing standards to human-consumed documents at finalize, after content is complete but before the user sees the output. Each entry is a `skill:`, `file:`, or plain-text directive; passes run as parallel subagents.
|
||||
|
||||
```toml
|
||||
# _bmad/custom/bmad-prd.toml (same pattern works in any workflow that exposes doc_standards)
|
||||
|
||||
[workflow]
|
||||
doc_standards = [
|
||||
"file:{project-root}/docs/enterprise/voice-and-tone.md",
|
||||
"All dates must use ISO 8601 format (YYYY-MM-DD).",
|
||||
"Replace any use of 'leverage' with 'use'.",
|
||||
]
|
||||
```
|
||||
|
||||
`doc_standards` is an append array — team entries stack on top of whatever defaults the workflow ships with. Broader structural passes should come before narrower prose passes.
|
||||
|
||||
### Swappable templates and checklists
|
||||
|
||||
Workflows that produce structured documents typically expose template and checklist paths as overridable scalars. Point them at org-owned files under `{project-root}` to enforce a different structure without editing any source.
|
||||
|
||||
```toml
|
||||
# _bmad/custom/bmad-prd.toml
|
||||
|
||||
[workflow]
|
||||
# Regulated-industry PRD structure
|
||||
prd_template = "{project-root}/docs/enterprise/prd-template-hipaa.md"
|
||||
|
||||
# Org-specific validation criteria
|
||||
validation_checklist = "{project-root}/docs/enterprise/prd-checklist-regulated.md"
|
||||
```
|
||||
|
||||
The agent adapts to whatever structure the template defines. Keep templates under `{project-root}/docs/` or `{project-root}/_bmad/custom/templates/` so they version alongside the override file. For multi-org repos, use `.user.toml` to let teams point at their own templates without touching the committed team file.
|
||||
|
||||
## Combining Recipes
|
||||
|
||||
All five recipes compose. A realistic enterprise override for `bmad-product-brief` might set `persistent_facts` (Recipe 2), `on_complete` (Recipe 3), and `brief_template` (Recipe 4) in one file. The agent-level rule (Recipe 1) lives in a separate file under the agent's name, central config (Recipe 5) pins the shared roster and team settings, and all four apply in parallel.
|
||||
All six recipes compose. A realistic enterprise override for `bmad-product-brief` might set `persistent_facts` (Recipe 2), `on_complete` (Recipe 3), and `brief_template` (Recipe 4) in one file. The agent-level rule (Recipe 1) lives in a separate file under the agent's name, central config (Recipe 5) pins the shared roster and team settings, advanced integration patterns (Recipe 6) configure external sources and handoffs, and all layers apply in parallel.
|
||||
|
||||
```toml
|
||||
# _bmad/custom/bmad-product-brief.toml (workflow-level)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ Use `npx bmad-method install` to set up BMad in your project. One command handle
|
|||
|
||||
:::note[Prerequisites]
|
||||
|
||||
- **Node.js** 20+ (the installer requires it)
|
||||
- **Node.js** 20.12+ (the installer requires it)
|
||||
- **Git** (for cloning external modules)
|
||||
- **An AI tool** such as Claude Code or Cursor (run `npx bmad-method install --list-tools` to see all supported tools)
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Use the BMad installer to add modules from the community registry, third-party G
|
|||
- Installing modules from a private or self-hosted Git server
|
||||
|
||||
:::note[Prerequisites]
|
||||
Requires [Node.js](https://nodejs.org) v20+ and `npx` (included with npm). Custom and community modules can be selected during a fresh install or added to an existing installation.
|
||||
Requires [Node.js](https://nodejs.org) v20.12+ and `npx` (included with npm). Custom and community modules can be selected during a fresh install or added to an existing installation.
|
||||
:::
|
||||
|
||||
## Community Modules
|
||||
|
|
@ -68,7 +68,7 @@ Select **Yes**, then provide a source:
|
|||
| Input Type | Example |
|
||||
| --------------------- | ------------------------------------------------- |
|
||||
| HTTPS URL (any host) | `https://github.com/org/repo` |
|
||||
| HTTP URL (any host) | `http://host/org/repo` |
|
||||
| HTTP URL (any host) | `http://host/org/repo` |
|
||||
| HTTPS URL with subdir | `https://github.com/org/repo/tree/main/my-module` |
|
||||
| SSH URL | `git@github.com:org/repo.git` |
|
||||
| Local path | `/Users/me/projects/my-module` |
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Use the BMad installer to upgrade from v4 to v6, which includes automatic detect
|
|||
|
||||
:::note[Prerequisites]
|
||||
|
||||
- Node.js 20+
|
||||
- Node.js 20.12+
|
||||
- Existing BMad v4 installation
|
||||
:::
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ This page lists the default BMM (Agile suite) agents that install with BMad Meth
|
|||
| Analyst (Mary) | `bmad-analyst` | `BP`, `MR`, `DR`, `TR`, `CB`, `WB`, `DP` | Brainstorm, Market Research, Domain Research, Technical Research, Create Brief, PRFAQ Challenge, Document Project |
|
||||
| Product Manager (John) | `bmad-pm` | `CP`, `VP`, `EP`, `CE`, `IR`, `CC` | Create/Validate/Edit PRD, Create Epics and Stories, Implementation Readiness, Correct Course |
|
||||
| Architect (Winston) | `bmad-architect` | `CA`, `IR` | Create Architecture, Implementation Readiness |
|
||||
| Developer (Amelia) | `bmad-agent-dev` | `DS`, `QD`, `QA`, `CR`, `SP`, `CS`, `ER` | Dev Story, Quick Dev, QA Test Generation, Code Review, Sprint Planning, Create Story, Epic Retrospective |
|
||||
| Developer (Amelia) | `bmad-agent-dev` | `DS`, `QD`, `QA`, `CR`, `SP`, `CS`, `ER`, `IN` | Dev Story, Quick Dev, QA Test Generation, Code Review, Sprint Planning, Create Story, Epic Retrospective, [Forensic Investigation](../explanation/forensic-investigation.md) |
|
||||
| UX Designer (Sally) | `bmad-ux-designer` | `CU` | Create UX Design |
|
||||
| Technical Writer (Paige) | `bmad-tech-writer` | `DP`, `WD`, `US`, `MG`, `VD`, `EC` | Document Project, Write Document, Update Standards, Mermaid Generate, Validate Doc, Explain Concept |
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ Each skill is a directory containing a `SKILL.md` file. For example, a Claude Co
|
|||
.claude/skills/
|
||||
├── bmad-help/
|
||||
│ └── SKILL.md
|
||||
├── bmad-create-prd/
|
||||
├── bmad-prd/
|
||||
│ └── SKILL.md
|
||||
├── bmad-agent-dev/
|
||||
│ └── SKILL.md
|
||||
|
|
@ -91,9 +91,9 @@ Workflow skills run a structured, multi-step process without loading an agent pe
|
|||
|
||||
| Example skill | Purpose |
|
||||
| --- | --- |
|
||||
| `bmad-product-brief` | Create a product brief — guided discovery when your concept is clear |
|
||||
| `bmad-product-brief` | Create or update a product brief — guided discovery when your concept is clear |
|
||||
| `bmad-prfaq` | [Working Backwards PRFAQ](../explanation/analysis-phase.md#prfaq-working-backwards) challenge to stress-test your product concept |
|
||||
| `bmad-create-prd` | Create a Product Requirements Document |
|
||||
| `bmad-prd` | Create, update, or validate a Product Requirements Document |
|
||||
| `bmad-create-architecture` | Design system architecture |
|
||||
| `bmad-create-epics-and-stories` | Create epics and stories |
|
||||
| `bmad-dev-story` | Implement a story |
|
||||
|
|
@ -124,7 +124,7 @@ The core module includes 11 built-in tools — reviews, compression, brainstormi
|
|||
|
||||
## Naming Convention
|
||||
|
||||
All skills use the `bmad-` prefix followed by a descriptive name (e.g., `bmad-agent-dev`, `bmad-create-prd`, `bmad-help`). See [Modules](./modules.md) for available modules.
|
||||
All skills use the `bmad-` prefix followed by a descriptive name (e.g., `bmad-agent-dev`, `bmad-prd`, `bmad-help`). See [Modules](./modules.md) for available modules.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Run any core tool by typing its skill name (e.g., `bmad-help`) in your IDE. No a
|
|||
| [`bmad-help`](#bmad-help) | Task | Get context-aware guidance on what to do next |
|
||||
| [`bmad-brainstorming`](#bmad-brainstorming) | Workflow | Facilitate interactive brainstorming sessions |
|
||||
| [`bmad-party-mode`](#bmad-party-mode) | Workflow | Orchestrate multi-agent group discussions |
|
||||
| [`bmad-distillator`](#bmad-distillator) | Task | Lossless LLM-optimized compression of documents |
|
||||
| [`bmad-spec`](#bmad-spec) | Workflow | Distill any intent input into a SPEC kernel and companions, the canonical contract for downstream work |
|
||||
| [`bmad-advanced-elicitation`](#bmad-advanced-elicitation) | Task | Push LLM output through iterative refinement methods |
|
||||
| [`bmad-review-adversarial-general`](#bmad-review-adversarial-general) | Task | Cynical review that finds what's missing and what's wrong |
|
||||
| [`bmad-review-edge-case-hunter`](#bmad-review-edge-case-hunter) | Task | Exhaustive branching-path analysis for unhandled edge cases |
|
||||
|
|
@ -97,32 +97,36 @@ The magic happens in ideas 50–100. The workflow encourages generating 100+ ide
|
|||
|
||||
**Output:** Real-time multi-agent conversation with maintained agent personalities
|
||||
|
||||
## bmad-distillator
|
||||
## bmad-spec
|
||||
|
||||
**Lossless LLM-optimized compression of source documents.** — Produces dense, token-efficient distillates that preserve all information for downstream LLM consumption. Verifiable through round-trip reconstruction.
|
||||
**Distill any intent input into the canonical SPEC contract for downstream work.** Takes a brief, PRD, GDD, RFC, brain dump, transcript, UX folder, or mixed multi-source input and produces a `SPEC.md` carrying the five-field kernel (Why, Capabilities, Constraints, Non-goals, Success signal) plus companion files for load-bearing content that does not fit the kernel.
|
||||
|
||||
**Use it when:**
|
||||
|
||||
- A document is too large for an LLM's context window
|
||||
- You need token-efficient versions of research, specs, or planning artifacts
|
||||
- You want to verify no information is lost during compression
|
||||
- Agents will need to frequently reference and find information in it
|
||||
- You need to lock the WHAT before the HOW for any kind of work (software, game design, research, editorial, policy, business).
|
||||
- You want a LLM Optimized succinct, no-fluff contract that downstream skills can consume without re-reading every upstream artifact.
|
||||
- You want to validate or update an existing spec.
|
||||
|
||||
**How it works:**
|
||||
|
||||
1. **Analyze** — Reads source documents, identifies information density and structure
|
||||
2. **Compress** — Converts prose to dense bullet-point format, strips decorative formatting
|
||||
3. **Verify** — Checks completeness to ensure all original information is preserved
|
||||
4. **Validate** (optional) — Round-trip reconstruction test proves lossless compression
|
||||
1. Reads the input and any ancillary linked materials.
|
||||
2. Distills into the five-field kernel using a configurable template; routes overflow into appropriately-named companions.
|
||||
3. Runs a two-pass self-validate (coherence rules, then preservation of every load-bearing source claim).
|
||||
4. Writes `SPEC.md`, sibling companions, and a `.decision-log.md` under `{output_folder}/specs/spec-{slug}/`.
|
||||
|
||||
Spec Law enforces eight rules: capabilities carry both intent and success; intents are WHAT not HOW; constraints actually bend decisions; non-goals are explicit; success signals are concrete; capability IDs are stable; every load-bearing source claim is preserved; prose is lean.
|
||||
|
||||
**Input:**
|
||||
|
||||
- `source_documents` (required) — File paths, folder paths, or glob patterns
|
||||
- `downstream_consumer` (optional) — What consumes this (e.g., "PRD creation")
|
||||
- `token_budget` (optional) — Approximate target size
|
||||
- `--validate` (flag) — Run round-trip reconstruction test
|
||||
- `input` (required) — path or inline text. Vague idea, brain dump, PRD, GDD, RFC, brief, transcript, mockup folder, mixed multi-source.
|
||||
- `slug` (optional) — required only when input is sparse and no slug is derivable from a source filename.
|
||||
- `target_spec_path` (optional) — set to update an existing spec instead of creating a new one.
|
||||
|
||||
**Output:** Distillate markdown file(s) with compression ratio report (e.g., "3.2:1")
|
||||
**Output:** Spec folder containing `SPEC.md`, any companion files, and a `.decision-log.md`. Headless callers receive a JSON response with the result status and the list of files written or modified.
|
||||
|
||||
:::note[Mutation contract]
|
||||
`bmad-spec` is the only writer of `SPEC.md` and of spec-authored companions. Other skills produce their own native artifacts and invoke `bmad-spec` headless when they need to express intent as the canonical contract or propose updates.
|
||||
:::
|
||||
|
||||
## bmad-advanced-elicitation
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,22 @@ sidebar:
|
|||
order: 1
|
||||
---
|
||||
|
||||
The BMad Method (BMM) is a module in the BMad Ecosystem, targeted at following the best practices of context engineering and planning. AI agents work best with clear, structured context. The BMM system builds that context progressively across 4 distinct phases - each phase, and multiple workflows optionally within each phase, produce documents that inform the next, so agents always know what to build and why.
|
||||
The BMad Method (BMM) is a module in the BMad Ecosystem, targeted at following the best practices of context engineering
|
||||
and planning. AI agents work best with clear, structured context. The BMM system builds that context progressively
|
||||
across 4 distinct phases - each phase, and multiple workflows optionally within each phase, produce documents that
|
||||
inform the next, so agents always know what to build and why.
|
||||
|
||||
The rationale and concepts come from agile methodologies that have been used across the industry with great success as a mental framework.
|
||||
The rationale and concepts come from agile methodologies that have been used across the industry with great success as a
|
||||
mental framework.
|
||||
|
||||
If at any time you are unsure what to do, the `bmad-help` skill will help you stay on track or know what to do next. You can always refer to this for reference also - but `bmad-help` is fully interactive and much quicker if you have already installed the BMad Method. Additionally, if you are using different modules that have extended the BMad Method or added other complementary non-extension modules - `bmad-help` evolves to know all that is available to give you the best in-the-moment advice.
|
||||
If at any time you are unsure what to do, the `bmad-help` skill will help you stay on track or know what to do next. You
|
||||
can always refer to this for reference also - but `bmad-help` is fully interactive and much quicker if you have already
|
||||
installed the BMad Method. Additionally, if you are using different modules that have extended the BMad Method or added
|
||||
other complementary non-extension modules - `bmad-help` evolves to know all that is available to give you the best
|
||||
in-the-moment advice.
|
||||
|
||||
Final important note: Every workflow below can be run directly with your tool of choice via skill or by loading an agent first and using the entry from the agents menu.
|
||||
Final important note: Every workflow below can be run directly with your tool of choice via skill or by loading an agent
|
||||
first and using the entry from the agents menu.
|
||||
|
||||
<iframe src="/workflow-map-diagram.html" title="BMad Method Workflow Map Diagram" width="100%" height="100%" style="border-radius: 8px; border: 1px solid #334155; min-height: 900px;"></iframe>
|
||||
|
||||
|
|
@ -21,30 +30,43 @@ Final important note: Every workflow below can be run directly with your tool of
|
|||
|
||||
## Phase 1: Analysis (Optional)
|
||||
|
||||
Explore the problem space and validate ideas before committing to planning. [**Learn what each tool does and when to use it**](../explanation/analysis-phase.md).
|
||||
Explore the problem space and validate ideas before committing to planning. [**Learn what each tool does and when to use
|
||||
it**](../explanation/analysis-phase.md).
|
||||
|
||||
| Workflow | Purpose | Produces |
|
||||
| ------------------------------- | -------------------------------------------------------------------------- | ------------------------- |
|
||||
| `bmad-brainstorming` | Brainstorm Project Ideas with guided facilitation of a brainstorming coach | `brainstorming-report.md` |
|
||||
| `bmad-domain-research`, `bmad-market-research`, `bmad-technical-research` | Validate market, technical, or domain assumptions | Research findings |
|
||||
| `bmad-product-brief` | Capture strategic vision — best when your concept is clear | `product-brief.md` |
|
||||
| `bmad-prfaq` | Working Backwards — stress-test and forge your product concept | `prfaq-{project}.md` |
|
||||
| Workflow | Purpose | Produces |
|
||||
|---------------------------------------------------------------------------|----------------------------------------------------------------------------|---------------------------|
|
||||
| `bmad-brainstorming` | Brainstorm Project Ideas with guided facilitation of a brainstorming coach | `brainstorming-report.md` |
|
||||
| `bmad-domain-research`, `bmad-market-research`, `bmad-technical-research` | Validate market, technical, or domain assumptions | Research findings |
|
||||
| `bmad-product-brief` | Capture strategic vision — best when your concept is clear | `product-brief.md` |
|
||||
| `bmad-prfaq` | Working Backwards — stress-test and forge your product concept | `prfaq-{project}.md` |
|
||||
|
||||
## Phase 2: Planning
|
||||
|
||||
Define what to build and for whom.
|
||||
|
||||
| Workflow | Purpose | Produces |
|
||||
| --------------------------- | ---------------------------------------- | ------------ |
|
||||
| `bmad-create-prd` | Define requirements (FRs/NFRs) | `PRD.md` |
|
||||
| `bmad-create-ux-design` | Design user experience (when UX matters) | `ux-spec.md` |
|
||||
| Workflow | Purpose | Produces |
|
||||
|-------------------------|-------------------------------------------------------------------------------------|---------------------------------------------------|
|
||||
| `bmad-prd` | Create, update, or validate a PRD — facilitated discovery, three intents in one skill | Create/Update: `prd.md`, `addendum.md`, `decision-log.md`; Validate: `validation-report.html` + `.md` |
|
||||
| `bmad-ux` | Design user experience (when UX matters) — DESIGN.md (visual) + EXPERIENCE.md (behavioral) spine pair | `DESIGN.md`, `EXPERIENCE.md`, `.decision-log.md` |
|
||||
|
||||
:::tip[Three intents in one skill]
|
||||
`bmad-prd` handles the full PRD lifecycle. State your intent when invoking or the skill will ask:
|
||||
|
||||
- **Create** — new PRD from scratch via coached discovery; produces `prd.md`, `addendum.md`, and `decision-log.md`
|
||||
- **Update** — reconcile an existing PRD with a change signal, surfacing conflicts before applying changes
|
||||
- **Validate** — critique a PRD against a configurable checklist and produce a structured HTML findings report
|
||||
:::
|
||||
|
||||
:::tip[Upstream: `bmad-product-brief`]
|
||||
`bmad-product-brief` (Phase 1) produces a `product-brief.md` that `bmad-prd` can source-extract during Discovery, reducing re-explanation and keeping the two documents aligned. Neither skill requires the other — start with `bmad-prd` directly if you already know what you're building.
|
||||
:::
|
||||
|
||||
## Phase 3: Solutioning
|
||||
|
||||
Decide how to build it and break work into stories.
|
||||
|
||||
| Workflow | Purpose | Produces |
|
||||
| ----------------------------------------- | ------------------------------------------ | --------------------------- |
|
||||
| Workflow | Purpose | Produces |
|
||||
|---------------------------------------|--------------------------------------------|-----------------------------|
|
||||
| `bmad-create-architecture` | Make technical decisions explicit | `architecture.md` with ADRs |
|
||||
| `bmad-create-epics-and-stories` | Break requirements into implementable work | Epic files with stories |
|
||||
| `bmad-check-implementation-readiness` | Gate check before implementation | PASS/CONCERNS/FAIL decision |
|
||||
|
|
@ -53,32 +75,38 @@ Decide how to build it and break work into stories.
|
|||
|
||||
Build it, one story at a time. Coming soon, full phase 4 automation!
|
||||
|
||||
| Workflow | Purpose | Produces |
|
||||
| -------------------------- | ------------------------------------------------------------------------ | -------------------------------- |
|
||||
| `bmad-sprint-planning` | Initialize tracking (once per project to sequence the dev cycle) | `sprint-status.yaml` |
|
||||
| `bmad-create-story` | Prepare next story for implementation | `story-[slug].md` |
|
||||
| `bmad-dev-story` | Implement the story | Working code + tests |
|
||||
| `bmad-code-review` | Validate implementation quality | Approved or changes requested |
|
||||
| `bmad-correct-course` | Handle significant mid-sprint changes | Updated plan or re-routing |
|
||||
| `bmad-sprint-status` | Track sprint progress and story status | Sprint status update |
|
||||
| `bmad-retrospective` | Review after epic completion | Lessons learned |
|
||||
| Workflow | Purpose | Produces |
|
||||
|------------------------|-------------------------------------------------------------------------------|------------------------------------------------------|
|
||||
| `bmad-sprint-planning` | Initialize tracking (once per project to sequence the dev cycle) | `sprint-status.yaml` |
|
||||
| `bmad-create-story` | Prepare next story for implementation | `story-[slug].md` |
|
||||
| `bmad-dev-story` | Implement the story | Working code + tests |
|
||||
| `bmad-code-review` | Validate implementation quality | Approved or changes requested |
|
||||
| `bmad-correct-course` | Handle significant mid-sprint changes | Updated plan or re-routing |
|
||||
| `bmad-sprint-status` | Track sprint progress and story status | Sprint status update |
|
||||
| `bmad-retrospective` | Review after epic completion | Lessons learned |
|
||||
| `bmad-investigate` | Forensic case investigation with evidence-graded findings, calibrated to the input | `{slug}-investigation.md` |
|
||||
|
||||
## Quick Flow (Parallel Track)
|
||||
|
||||
Skip phases 1-3 for small, well-understood work.
|
||||
|
||||
| Workflow | Purpose | Produces |
|
||||
| ------------------ | --------------------------------------------------------------------------- | ---------------------- |
|
||||
| `bmad-quick-dev` | Unified quick flow — clarify intent, plan, implement, review, and present | `spec-*.md` + code |
|
||||
| Workflow | Purpose | Produces |
|
||||
|------------------|---------------------------------------------------------------------------|--------------------|
|
||||
| `bmad-quick-dev` | Unified quick flow — clarify intent, plan, implement, review, and present | `spec-*.md` + code |
|
||||
|
||||
## Context Management
|
||||
|
||||
Each document becomes context for the next phase. The PRD tells the architect what constraints matter. The architecture tells the dev agent which patterns to follow. Story files give focused, complete context for implementation. Without this structure, agents make inconsistent decisions.
|
||||
Each document becomes context for the next phase. The PRD tells the architect what constraints matter. The architecture
|
||||
tells the dev agent which patterns to follow. Story files give focused, complete context for implementation. Without
|
||||
this structure, agents make inconsistent decisions.
|
||||
|
||||
### Project Context
|
||||
|
||||
:::tip[Recommended]
|
||||
Create `project-context.md` to ensure AI agents follow your project's rules and preferences. This file works like a constitution for your project — it guides implementation decisions across all workflows. This optional file can be generated at the end of Architecture Creation, or in an existing project it can be generated also to capture whats important to keep aligned with current conventions.
|
||||
Create `project-context.md` to ensure AI agents follow your project's rules and preferences. This file works like a
|
||||
constitution for your project — it guides implementation decisions across all workflows. This optional file can be
|
||||
generated at the end of Architecture Creation, or in an existing project it can be generated also to capture whats
|
||||
important to keep aligned with current conventions.
|
||||
:::
|
||||
|
||||
**How to create it:**
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: "Getting Started"
|
||||
title: 'Getting Started'
|
||||
description: Install BMad and build your first project
|
||||
---
|
||||
|
||||
|
|
@ -14,11 +14,12 @@ Build software faster using AI-powered workflows with specialized agents that gu
|
|||
- Use agents and workflows effectively
|
||||
|
||||
:::note[Prerequisites]
|
||||
- **Node.js 20+** — Required for the installer
|
||||
|
||||
- **Node.js 20.12+** — Required for the installer
|
||||
- **Git** — Recommended for version control
|
||||
- **AI-powered IDE** — Claude Code, Cursor, or similar
|
||||
- **A project idea** — Even a simple one works for learning
|
||||
:::
|
||||
:::
|
||||
|
||||
:::tip[The Easiest Path]
|
||||
**Install** → `npx bmad-method install`
|
||||
|
|
@ -50,6 +51,7 @@ bmad-help I have an idea for a SaaS product, I already know all the features I w
|
|||
```
|
||||
|
||||
BMad-Help will respond with:
|
||||
|
||||
- What's recommended for your situation
|
||||
- What the first required task is
|
||||
- What the rest of the process looks like
|
||||
|
|
@ -66,12 +68,12 @@ After installing BMad, invoke the `bmad-help` skill immediately. It will detect
|
|||
|
||||
BMad helps you build software through guided workflows with specialized AI agents. The process follows four phases:
|
||||
|
||||
| Phase | Name | What Happens |
|
||||
| ----- | -------------- | --------------------------------------------------- |
|
||||
| 1 | Analysis | Brainstorming, research, product brief or PRFAQ *(optional)* |
|
||||
| 2 | Planning | Create requirements (PRD or spec) |
|
||||
| 3 | Solutioning | Design architecture *(BMad Method/Enterprise only)* |
|
||||
| 4 | Implementation | Build epic by epic, story by story |
|
||||
| Phase | Name | What Happens |
|
||||
| ----- | -------------- | ------------------------------------------------------------ |
|
||||
| 1 | Analysis | Brainstorming, research, product brief or PRFAQ _(optional)_ |
|
||||
| 2 | Planning | Create requirements (PRD or spec) |
|
||||
| 3 | Solutioning | Design architecture _(BMad Method/Enterprise only)_ |
|
||||
| 4 | Implementation | Build epic by epic, story by story |
|
||||
|
||||
**[Open the Workflow Map](../reference/workflow-map.md)** to explore phases, workflows, and context management.
|
||||
|
||||
|
|
@ -100,6 +102,7 @@ If you want the newest prerelease build instead of the default release channel,
|
|||
When prompted to select modules, choose **BMad Method**.
|
||||
|
||||
The installer creates two folders:
|
||||
|
||||
- `_bmad/` — agents, workflows, tasks, and configuration
|
||||
- `_bmad-output/` — empty for now, but this is where your artifacts will be saved
|
||||
|
||||
|
|
@ -114,7 +117,7 @@ BMad-Help will detect what you've completed and recommend exactly what to do nex
|
|||
:::
|
||||
|
||||
:::note[How to Load Agents and Run Workflows]
|
||||
Each workflow has a **skill** you invoke by name in your IDE (e.g., `bmad-create-prd`). Your AI tool will recognize the `bmad-*` name and run it — you don't need to load agents separately. You can also invoke an agent skill directly for general conversation (e.g., `bmad-agent-pm` for the PM agent).
|
||||
Each workflow has a **skill** you invoke by name in your IDE (e.g., `bmad-prd`). Your AI tool will recognize the `bmad-*` name and run it — you don't need to load agents separately. You can also invoke an agent skill directly for general conversation (e.g., `bmad-agent-pm` for the PM agent).
|
||||
:::
|
||||
|
||||
:::caution[Fresh Chats]
|
||||
|
|
@ -134,6 +137,7 @@ Create it manually at `_bmad-output/project-context.md` or generate it after arc
|
|||
### Phase 1: Analysis (Optional)
|
||||
|
||||
All workflows in this phase are optional. [**Not sure which to use?**](../explanation/analysis-phase.md)
|
||||
|
||||
- **brainstorming** (`bmad-brainstorming`) — Guided ideation
|
||||
- **research** (`bmad-market-research` / `bmad-domain-research` / `bmad-technical-research`) — Market, domain, and technical research
|
||||
- **product-brief** (`bmad-product-brief`) — Recommended foundation document when your concept is clear
|
||||
|
|
@ -142,20 +146,29 @@ All workflows in this phase are optional. [**Not sure which to use?**](../explan
|
|||
### Phase 2: Planning (Required)
|
||||
|
||||
**For BMad Method and Enterprise tracks:**
|
||||
1. Invoke the **PM agent** (`bmad-agent-pm`) in a new chat
|
||||
2. Run the `bmad-create-prd` workflow (`bmad-create-prd`)
|
||||
3. Output: `PRD.md`
|
||||
|
||||
1. Run `bmad-prd` in a new chat — state your intent (Create / Update / Validate) or let the skill ask
|
||||
2. Output: `prd.md`, `addendum.md`, `decision-log.md`
|
||||
|
||||
:::note[`bmad-prd` intents]
|
||||
|
||||
- **Create** — coached discovery from scratch; the skill names the workspace folder and guides you to a PRD you're proud of
|
||||
- **Update** — point it at an existing PRD and a change signal; it surfaces conflicts before applying changes
|
||||
- **Validate** — critique a finished PRD against a checklist and produce an HTML findings report
|
||||
:::
|
||||
|
||||
**For Quick Flow track:**
|
||||
|
||||
- Run `bmad-quick-dev` — it handles planning and implementation in a single workflow, skip to implementation
|
||||
|
||||
:::note[UX Design (Optional)]
|
||||
If your project has a user interface, invoke the **UX-Designer agent** (`bmad-agent-ux-designer`) and run the UX design workflow (`bmad-create-ux-design`) after creating your PRD.
|
||||
If your project has a user interface, invoke the **UX-Designer agent** (`bmad-agent-ux-designer`) and run the UX design workflow (`bmad-ux`) after creating your PRD.
|
||||
:::
|
||||
|
||||
### Phase 3: Solutioning (BMad Method/Enterprise)
|
||||
|
||||
**Create Architecture**
|
||||
|
||||
1. Invoke the **Architect agent** (`bmad-agent-architect`) in a new chat
|
||||
2. Run `bmad-create-architecture` (`bmad-create-architecture`)
|
||||
3. Output: Architecture document with technical decisions
|
||||
|
|
@ -163,14 +176,15 @@ If your project has a user interface, invoke the **UX-Designer agent** (`bmad-ag
|
|||
**Create Epics and Stories**
|
||||
|
||||
:::tip[V6 Improvement]
|
||||
Epics and stories are now created *after* architecture. This produces better quality stories because architecture decisions (database, API patterns, tech stack) directly affect how work should be broken down.
|
||||
Epics and stories are now created _after_ architecture. This produces better quality stories because architecture decisions (database, API patterns, tech stack) directly affect how work should be broken down.
|
||||
:::
|
||||
|
||||
1. Invoke the **PM agent** (`bmad-agent-pm`) in a new chat
|
||||
2. Run `bmad-create-epics-and-stories` (`bmad-create-epics-and-stories`)
|
||||
3. The workflow uses both PRD and Architecture to create technically-informed stories
|
||||
|
||||
**Implementation Readiness Check** *(Highly Recommended)*
|
||||
**Implementation Readiness Check** _(Highly Recommended)_
|
||||
|
||||
1. Invoke the **Architect agent** (`bmad-agent-architect`) in a new chat
|
||||
2. Run `bmad-check-implementation-readiness` (`bmad-check-implementation-readiness`)
|
||||
3. Validates cohesion across all planning documents
|
||||
|
|
@ -187,11 +201,11 @@ Invoke the **Developer agent** (`bmad-agent-dev`) and run `bmad-sprint-planning`
|
|||
|
||||
For each story, repeat this cycle with fresh chats:
|
||||
|
||||
| Step | Agent | Workflow | Command | Purpose |
|
||||
| ---- | ----- | -------------- | -------------------------- | ---------------------------------- |
|
||||
| 1 | DEV | `bmad-create-story` | `bmad-create-story` | Create story file from epic |
|
||||
| 2 | DEV | `bmad-dev-story` | `bmad-dev-story` | Implement the story |
|
||||
| 3 | DEV | `bmad-code-review` | `bmad-code-review` | Quality validation *(recommended)* |
|
||||
| Step | Agent | Workflow | Command | Purpose |
|
||||
| ---- | ----- | ------------------- | ------------------- | ---------------------------------- |
|
||||
| 1 | DEV | `bmad-create-story` | `bmad-create-story` | Create story file from epic |
|
||||
| 2 | DEV | `bmad-dev-story` | `bmad-dev-story` | Implement the story |
|
||||
| 3 | DEV | `bmad-code-review` | `bmad-code-review` | Quality validation _(recommended)_ |
|
||||
|
||||
After completing all stories in an epic, invoke the **Developer agent** (`bmad-agent-dev`) and run `bmad-retrospective` (`bmad-retrospective`).
|
||||
|
||||
|
|
@ -222,18 +236,18 @@ your-project/
|
|||
|
||||
## Quick Reference
|
||||
|
||||
| Workflow | Command | Agent | Purpose |
|
||||
| ------------------------------------- | ------------------------------------------ | --------- | ----------------------------------------------- |
|
||||
| **`bmad-help`** ⭐ | `bmad-help` | Any | **Your intelligent guide — ask anything!** |
|
||||
| `bmad-create-prd` | `bmad-create-prd` | PM | Create Product Requirements Document |
|
||||
| `bmad-create-architecture` | `bmad-create-architecture` | Architect | Create architecture document |
|
||||
| `bmad-generate-project-context` | `bmad-generate-project-context` | Analyst | Create project context file |
|
||||
| `bmad-create-epics-and-stories` | `bmad-create-epics-and-stories` | PM | Break down PRD into epics |
|
||||
| `bmad-check-implementation-readiness` | `bmad-check-implementation-readiness` | Architect | Validate planning cohesion |
|
||||
| `bmad-sprint-planning` | `bmad-sprint-planning` | DEV | Initialize sprint tracking |
|
||||
| `bmad-create-story` | `bmad-create-story` | DEV | Create a story file |
|
||||
| `bmad-dev-story` | `bmad-dev-story` | DEV | Implement a story |
|
||||
| `bmad-code-review` | `bmad-code-review` | DEV | Review implemented code |
|
||||
| Workflow | Command | Agent | Purpose |
|
||||
| ------------------------------------- | ------------------------------------- | --------- | ------------------------------------------ |
|
||||
| **`bmad-help`** ⭐ | `bmad-help` | Any | **Your intelligent guide — ask anything!** |
|
||||
| `bmad-prd` | `bmad-prd` | Any | Create, update, or validate a PRD |
|
||||
| `bmad-create-architecture` | `bmad-create-architecture` | Architect | Create architecture document |
|
||||
| `bmad-generate-project-context` | `bmad-generate-project-context` | Analyst | Create project context file |
|
||||
| `bmad-create-epics-and-stories` | `bmad-create-epics-and-stories` | PM | Break down PRD into epics |
|
||||
| `bmad-check-implementation-readiness` | `bmad-check-implementation-readiness` | Architect | Validate planning cohesion |
|
||||
| `bmad-sprint-planning` | `bmad-sprint-planning` | DEV | Initialize sprint tracking |
|
||||
| `bmad-create-story` | `bmad-create-story` | DEV | Create a story file |
|
||||
| `bmad-dev-story` | `bmad-dev-story` | DEV | Implement a story |
|
||||
| `bmad-code-review` | `bmad-code-review` | DEV | Review implemented code |
|
||||
|
||||
## Common Questions
|
||||
|
||||
|
|
@ -253,6 +267,7 @@ Not strictly. Once you learn the flow, you can run workflows directly using the
|
|||
|
||||
:::tip[First Stop: BMad-Help]
|
||||
**Invoke `bmad-help` anytime** — it's the fastest way to get unstuck. Ask it anything:
|
||||
|
||||
- "What should I do after installing?"
|
||||
- "I'm stuck on workflow X"
|
||||
- "What are my options for Y?"
|
||||
|
|
@ -267,10 +282,11 @@ BMad-Help inspects your project, detects what you've completed, and tells you ex
|
|||
## Key Takeaways
|
||||
|
||||
:::tip[Remember These]
|
||||
|
||||
- **Start with `bmad-help`** — Your intelligent guide that knows your project and options
|
||||
- **Always use fresh chats** — Start a new chat for each workflow
|
||||
- **Track matters** — Quick Flow uses `bmad-quick-dev`; Method/Enterprise need PRD and architecture
|
||||
- **BMad-Help runs automatically** — Every workflow ends with guidance on what's next
|
||||
:::
|
||||
:::
|
||||
|
||||
Ready to start? Install BMad, invoke `bmad-help`, and let your intelligent guide lead the way.
|
||||
|
|
|
|||
|
|
@ -694,15 +694,7 @@ Review kiểu "devil's advocate" — giả định vấn đề luôn tồn tại
|
|||
- Tìm những gì **còn thiếu**, không chỉ những gì sai
|
||||
- Trực giao với Edge Case Hunter
|
||||
|
||||
### 8.4. Distillator — Nén tài liệu cho LLM
|
||||
|
||||
```bash
|
||||
bmad-distillator
|
||||
```
|
||||
|
||||
Khi tài liệu quá lớn (PRD dài, Architecture phức tạp), Distillator nén nội dung tối ưu cho LLM mà không mất thông tin quan trọng.
|
||||
|
||||
### 8.5. Shard Large Documents — Tách file lớn
|
||||
### 8.4. Shard Large Documents — Tách file lớn
|
||||
|
||||
```bash
|
||||
bmad-shard-doc
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ Nếu bạn muốn dùng trình cài đặt không tương tác và cung cấp t
|
|||
- Cập nhật bản cài đặt BMad hiện tại
|
||||
|
||||
:::note[Điều kiện tiên quyết]
|
||||
- **Node.js** 20+ (bắt buộc cho trình cài đặt)
|
||||
- **Node.js** 20.12+ (bắt buộc cho trình cài đặt)
|
||||
- **Git** (khuyến nghị)
|
||||
- **Công cụ AI** (Claude Code, Cursor, hoặc tương tự)
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Sử dụng trình cài đặt BMad để thêm module từ kho cộng đồng (
|
|||
- Cài module từ máy chủ Git riêng tư hoặc tự host
|
||||
|
||||
:::note[Điều kiện tiên quyết]
|
||||
Yêu cầu [Node.js](https://nodejs.org) v20+ và `npx` đi kèm npm. Bạn có thể chọn module tùy chỉnh và module cộng đồng trong lúc cài mới, hoặc thêm chúng vào một bản cài hiện có.
|
||||
Yêu cầu [Node.js](https://nodejs.org) v20.12+ và `npx` đi kèm npm. Bạn có thể chọn module tùy chỉnh và module cộng đồng trong lúc cài mới, hoặc thêm chúng vào một bản cài hiện có.
|
||||
:::
|
||||
|
||||
## Module cộng đồng
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ Sử dụng các cờ dòng lệnh để cài đặt BMad mà không cần tươ
|
|||
- Cài đặt nhanh với cấu hình đã biết trước
|
||||
|
||||
:::note[Điều kiện tiên quyết]
|
||||
Yêu cầu [Node.js](https://nodejs.org) v20+ và `npx` (đi kèm với npm).
|
||||
Yêu cầu [Node.js](https://nodejs.org) v20.12+ và `npx` (đi kèm với npm).
|
||||
:::
|
||||
|
||||
## Các cờ khả dụng
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Sử dụng trình cài đặt BMad để nâng cấp từ v4 lên v6, bao gồm
|
|||
- Bạn có các planning artifact hiện có cần giữ lại
|
||||
|
||||
:::note[Điều kiện tiên quyết]
|
||||
- Node.js 20+
|
||||
- Node.js 20.12+
|
||||
- Bản cài đặt BMad v4 hiện có
|
||||
:::
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Chạy bất kỳ công cụ cốt lõi nào bằng cách gõ tên skill của n
|
|||
| [`bmad-help`](#bmad-help) | Tác vụ | Nhận hướng dẫn có ngữ cảnh về việc nên làm gì tiếp theo |
|
||||
| [`bmad-brainstorming`](#bmad-brainstorming) | Quy trình | Tổ chức các phiên brainstorming có tương tác |
|
||||
| [`bmad-party-mode`](#bmad-party-mode) | Quy trình | Điều phối thảo luận nhóm nhiều agent |
|
||||
| [`bmad-distillator`](#bmad-distillator) | Tác vụ | Nén tài liệu tối ưu cho LLM mà không mất thông tin |
|
||||
| [`bmad-spec`](#bmad-spec) | Quy trình | Distill any intent input into a SPEC kernel and companions, the canonical contract for downstream work (translation pending) |
|
||||
| [`bmad-advanced-elicitation`](#bmad-advanced-elicitation) | Tác vụ | Đẩy đầu ra của LLM qua các vòng tinh luyện lặp |
|
||||
| [`bmad-review-adversarial-general`](#bmad-review-adversarial-general) | Tác vụ | Rà soát hoài nghi để tìm chỗ thiếu và chỗ sai |
|
||||
| [`bmad-review-edge-case-hunter`](#bmad-review-edge-case-hunter) | Tác vụ | Phân tích toàn bộ nhánh rẽ để tìm trường hợp biên chưa được xử lý |
|
||||
|
|
@ -97,33 +97,6 @@ Chạy bất kỳ công cụ cốt lõi nào bằng cách gõ tên skill của n
|
|||
|
||||
**Đầu ra:** Cuộc hội thoại nhiều agent theo thời gian thực, vẫn giữ nguyên cá tính từng agent
|
||||
|
||||
## bmad-distillator
|
||||
|
||||
**Nén tài liệu nguồn tối ưu cho LLM mà không mất thông tin.** Công cụ này tạo ra các bản chưng cất dày đặc, tiết kiệm token nhưng vẫn giữ nguyên toàn bộ thông tin cho LLM dùng về sau. Có thể xác minh bằng tái dựng hai chiều.
|
||||
|
||||
**Dùng khi:**
|
||||
|
||||
- Một tài liệu quá lớn so với context window của LLM
|
||||
- Bạn cần phiên bản tiết kiệm token của tài liệu nghiên cứu, đặc tả hoặc artifact lập kế hoạch
|
||||
- Bạn muốn xác minh rằng không có thông tin nào bị mất trong quá trình nén
|
||||
- Các agent sẽ cần tham chiếu và tìm thông tin trong đó thường xuyên
|
||||
|
||||
**Cách hoạt động:**
|
||||
|
||||
1. **Analyze** — Đọc tài liệu nguồn, nhận diện mật độ thông tin và cấu trúc
|
||||
2. **Compress** — Chuyển văn xuôi thành dạng bullet dày đặc, bỏ trang trí không cần thiết
|
||||
3. **Verify** — Kiểm tra tính đầy đủ để đảm bảo mọi thông tin gốc còn nguyên
|
||||
4. **Validate** *(tùy chọn)* — Tái dựng hai chiều để chứng minh nén không mất mát
|
||||
|
||||
**Đầu vào:**
|
||||
|
||||
- `source_documents` *(bắt buộc)* — Đường dẫn file, thư mục hoặc mẫu glob
|
||||
- `downstream_consumer` *(tùy chọn)* — Thành phần sẽ dùng đầu ra này, ví dụ "PRD creation"
|
||||
- `token_budget` *(tùy chọn)* — Kích thước mục tiêu gần đúng
|
||||
- `--validate` *(cờ)* — Chạy kiểm tra tái dựng hai chiều
|
||||
|
||||
**Đầu ra:** Một hoặc nhiều file markdown distillate kèm báo cáo tỷ lệ nén, ví dụ `3.2:1`
|
||||
|
||||
## bmad-advanced-elicitation
|
||||
|
||||
**Đẩy đầu ra của LLM qua các phương pháp tinh luyện lặp.** Công cụ này chọn từ thư viện kỹ thuật elicitation để cải thiện nội dung một cách có hệ thống qua nhiều lượt.
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ Xác định cần xây gì và xây cho ai.
|
|||
| Quy trình | Mục đích | Tạo ra |
|
||||
| --------------------------- | ---------------------------------------- | ------------ |
|
||||
| `bmad-create-prd` | Xác định yêu cầu (FR/NFR) | `PRD.md` |
|
||||
| `bmad-create-ux-design` | Thiết kế trải nghiệm người dùng khi UX là yếu tố quan trọng | `ux-spec.md` |
|
||||
| `bmad-ux` | Thiết kế trải nghiệm người dùng khi UX là yếu tố quan trọng | `DESIGN.md`, `EXPERIENCE.md` |
|
||||
|
||||
## Giai đoạn 3: Định hình giải pháp
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Xây dựng phần mềm nhanh hơn bằng các workflow vận hành bởi AI, v
|
|||
- Sử dụng agent và workflow hiệu quả
|
||||
|
||||
:::note[Điều kiện tiên quyết]
|
||||
- **Node.js 20+** — Bắt buộc cho trình cài đặt
|
||||
- **Node.js 20.12+** — Bắt buộc cho trình cài đặt
|
||||
- **Git** — Khuyến nghị để quản lý phiên bản
|
||||
- **IDE có AI** — Claude Code, Cursor hoặc công cụ tương tự
|
||||
- **Một ý tưởng dự án** — Chỉ cần đơn giản cũng đủ để học
|
||||
|
|
@ -150,7 +150,7 @@ Tất cả workflow trong phase này đều là tùy chọn. [**Chưa chắc nê
|
|||
- Chạy `bmad-quick-dev` — workflow này gộp cả planning và implementation trong một lần, nên bạn có thể chuyển thẳng sang triển khai
|
||||
|
||||
:::note[Thiết kế UX (Tùy chọn)]
|
||||
Nếu dự án của bạn có giao diện người dùng, hãy gọi **UX-Designer agent** (`bmad-agent-ux-designer`) và chạy workflow thiết kế UX (`bmad-create-ux-design`) sau khi tạo PRD.
|
||||
Nếu dự án của bạn có giao diện người dùng, hãy gọi **UX-Designer agent** (`bmad-agent-ux-designer`) và chạy workflow thiết kế UX (`bmad-ux`) sau khi tạo PRD.
|
||||
:::
|
||||
|
||||
### Phase 3: Solutioning (BMad Method/Enterprise)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ sidebar:
|
|||
- 更新现有的 BMad 安装
|
||||
|
||||
:::note[前置条件]
|
||||
- **Node.js** 20+(安装程序必需)
|
||||
- **Node.js** 20.12+(安装程序必需)
|
||||
- **Git**(推荐)
|
||||
- **AI 工具**(Claude Code、Cursor 或类似工具)
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ sidebar:
|
|||
- 从私有或自托管 Git 服务器安装模块
|
||||
|
||||
:::note[前置条件]
|
||||
需要 [Node.js](https://nodejs.org) v20+ 和 `npx`(npm 自带)。自定义和社区模块可以在全新安装时选择,也可以添加到现有安装中。
|
||||
需要 [Node.js](https://nodejs.org) v20.12+ 和 `npx`(npm 自带)。自定义和社区模块可以在全新安装时选择,也可以添加到现有安装中。
|
||||
:::
|
||||
|
||||
## 社区模块
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ sidebar:
|
|||
- 使用已知配置的快速安装
|
||||
|
||||
:::note[前置条件]
|
||||
需要 [Node.js](https://nodejs.org) v20+ 和 `npx`(随 npm 附带)。
|
||||
需要 [Node.js](https://nodejs.org) v20.12+ 和 `npx`(随 npm 附带)。
|
||||
:::
|
||||
|
||||
## 可用参数(Flags)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ sidebar:
|
|||
- 你有要保留的规划产物或进行中的开发工作
|
||||
|
||||
:::note[前置条件]
|
||||
- Node.js 20+
|
||||
- Node.js 20.12+
|
||||
- 现有 BMad v4 安装
|
||||
:::
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ sidebar:
|
|||
| [`bmad-help`](#bmad-help) | Task | 基于项目上下文推荐下一步 |
|
||||
| [`bmad-brainstorming`](#bmad-brainstorming) | Workflow | 引导式头脑风暴与想法扩展 |
|
||||
| [`bmad-party-mode`](#bmad-party-mode) | Workflow | 多智能体协作讨论 |
|
||||
| [`bmad-distillator`](#bmad-distillator) | Task | 无损压缩文档,提升 LLM 消费效率 |
|
||||
| [`bmad-spec`](#bmad-spec) | Workflow | Distill any intent input into a SPEC kernel and companions, the canonical contract for downstream work (translation pending) |
|
||||
| [`bmad-advanced-elicitation`](#bmad-advanced-elicitation) | Task | 通过多轮技法增强 LLM 输出 |
|
||||
| [`bmad-review-adversarial-general`](#bmad-review-adversarial-general) | Task | 对抗式问题发现审查 |
|
||||
| [`bmad-review-edge-case-hunter`](#bmad-review-edge-case-hunter) | Task | 边界与分支路径穷举审查 |
|
||||
|
|
@ -80,29 +80,6 @@ sidebar:
|
|||
**输入:** 讨论主题(可指定希望参与的角色)
|
||||
**输出:** 多智能体实时对话过程
|
||||
|
||||
## bmad-distillator
|
||||
|
||||
**定位:** 在不丢失信息前提下压缩文档,降低 token 成本。
|
||||
|
||||
**适用场景:**
|
||||
- 源文档超过上下文窗口
|
||||
- 需要把研究/规格材料转成高密度引用版本
|
||||
- 想验证压缩结果是否可逆
|
||||
|
||||
**工作机制:**
|
||||
1. 分析源文档结构与信息密度
|
||||
2. 压缩为高密度结构化表达
|
||||
3. 校验信息完整性
|
||||
4. 可选执行往返重构验证(round-trip)
|
||||
|
||||
**输入:**
|
||||
- `source_documents`(必填)
|
||||
- `downstream_consumer`(可选)
|
||||
- `token_budget`(可选)
|
||||
- `--validate`(可选标志)
|
||||
|
||||
**输出:** 精馏文档 + 压缩比报告
|
||||
|
||||
## bmad-advanced-elicitation
|
||||
|
||||
**定位:** 对已有 LLM 输出做第二轮深挖与改写强化。
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ BMad Method(BMM)通过分阶段 workflow 逐步构建上下文,让智能
|
|||
| Workflow | 目的 | 产出 |
|
||||
| --- | --- | --- |
|
||||
| `bmad-create-prd` | 明确 FR/NFR 与范围边界 | `PRD.md` |
|
||||
| `bmad-create-ux-design` | 在 UX 复杂场景下补齐交互与体验方案 | `ux-spec.md` |
|
||||
| `bmad-ux` | 在 UX 复杂场景下补齐交互与体验方案 | `DESIGN.md`, `EXPERIENCE.md` |
|
||||
|
||||
## 阶段 3:解决方案设计(Solutioning)
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ description: 安装 BMad 并构建你的第一个项目
|
|||
- 有效使用智能体和工作流
|
||||
|
||||
:::note[前置条件]
|
||||
- **Node.js 20+** — 安装程序必需
|
||||
- **Node.js 20.12+** — 安装程序必需
|
||||
- **Git** — 推荐用于版本控制
|
||||
- **AI 驱动的 IDE** — Claude Code、Cursor 或类似工具
|
||||
- **一个项目想法** — 即使是简单的想法也可以用于学习
|
||||
|
|
@ -149,7 +149,7 @@ BMad-Help 将检测你已完成的内容,并准确推荐下一步该做什么
|
|||
- 运行 `bmad-quick-dev` —— 它会在一个工作流里同时处理规划与实现,可直接进入实现阶段
|
||||
|
||||
:::note[UX 设计(可选)]
|
||||
如果你的项目有用户界面,在创建 PRD 后调用 **UX-Designer 智能体**(`bmad-agent-ux-designer`),然后运行 UX 设计工作流(`bmad-create-ux-design`)。
|
||||
如果你的项目有用户界面,在创建 PRD 后调用 **UX-Designer 智能体**(`bmad-agent-ux-designer`),然后运行 UX 设计工作流(`bmad-ux`)。
|
||||
:::
|
||||
|
||||
### 阶段 3:解决方案设计(BMad Method/Enterprise)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,237 @@
|
|||
{
|
||||
"skill_name": "bmad-product-brief",
|
||||
"_design_notes": "Single-shot evals across two patterns. Pattern A (A1-A8) tests artifact correctness given complete inputs in headless mode. Pattern B tests process discipline (decision log fidelity, polish execution, intent boundaries) by inspecting transcript and side-artifacts. Facilitation/conversation-quality evals are deferred to a future multi-turn simulator.",
|
||||
"evals": [
|
||||
{
|
||||
"id": "A1",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a product brief for InsuLens.\n\nContext (use exactly this — do not invent):\n- Product: a smartphone app that pairs with off-the-shelf $200 thermal imaging accessories (FLIR ONE Pro and Seek Compact Pro). The app guides homeowners through a structured walkthrough and produces a professional-grade insulation audit in under 20 minutes.\n- Target: suburban homeowners aged 35-65 with houses built before 2000 (poor original insulation, rising energy bills).\n- Validation evidence: 50 user interviews completed in Q4 2025; 78% expressed willingness to pay $49 for a one-time audit if results were credible.\n- Stakes: this brief is the primary input investors will read before our first Series A pitch call.\n- Hardware dependency: requires a thermal imaging accessory (we do not manufacture hardware).\n- Known unknowns: insurance/warranty implications of homeowner-driven audits; whether the 78% intent translates to paid conversion at scale.\nRight-size for investor-stage rigor. Output a JSON status block at the end with status, intent, and artifact paths.",
|
||||
"expected_output": "A run folder containing brief.md (with valid YAML frontmatter) and decision-log.md. Brief is 1-2 pages, addresses target audience, hardware dependency, validation evidence, and surfaces unknowns alongside knowns. Final assistant message includes JSON with status='complete', intent='create', and artifact paths.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"A run folder is created with brief.md and decision-log.md",
|
||||
"brief.md has YAML frontmatter containing all four required fields: title, status, created (ISO 8601), updated (ISO 8601)",
|
||||
"brief.md frontmatter status is 'draft' or 'final' (not missing or empty)",
|
||||
"brief.md word count is between 250 and 1500",
|
||||
"brief.md identifies the suburban-homeowner-aged-35-65 target audience",
|
||||
"brief.md references the thermal imaging hardware dependency (FLIR ONE Pro / Seek Compact Pro or equivalent)",
|
||||
"brief.md references the 50-user interview validation OR the 78% willingness-to-pay finding",
|
||||
"brief.md surfaces at least one explicit unknown or unvalidated assumption",
|
||||
"brief.md does not introduce facts absent from the input prompt (no invented competitors, fabricated metrics, or unstated partnerships)",
|
||||
"The final assistant message contains a JSON object with keys 'status', 'intent', and at least one artifact path",
|
||||
"The JSON 'intent' value is 'create'"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A2",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a brief for our app idea.",
|
||||
"expected_output": "Headless mode with insufficient context should halt with status='blocked' and a reason field. No (or only skeleton) brief should be written. The skill must not invent a product to draft against.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"The final assistant message contains a JSON object with key 'status' set to 'blocked'",
|
||||
"The JSON output includes a 'reason' field explaining what context is missing",
|
||||
"If brief.md exists at all, its body content (excluding frontmatter) is fewer than 100 words OR is a placeholder skeleton — the skill did not invent a product",
|
||||
"The transcript contains no clarifying questions sent back to the user (headless mode honored)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A3",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a brief for our neighborhood compost coordinator app idea — we are moving forward with it. Q2 brainstorming session notes are at evals/bmm-skills/bmad-product-brief/files/q2-brainstorm.md; pull only what is relevant to the compost concept.",
|
||||
"expected_output": "Brief focuses tightly on the compost coordinator concept. Source brainstorm is filtered, not ingested wholesale. Decision-log records that filtering occurred.",
|
||||
"files": ["evals/bmm-skills/bmad-product-brief/files/q2-brainstorm.md"],
|
||||
"expectations": [
|
||||
"brief.md addresses the neighborhood compost coordinator concept",
|
||||
"brief.md does not introduce content from unrelated brainstorm topics (weather + mood, meditation chime, podcasting tool, craft beer subscription, AI sommelier, office plants, ride coordinator, cookbook app, AR home staging)",
|
||||
"brief.md word count is between 250 and 1500",
|
||||
"brief.md incorporates at least 2 specific details from the compost section of the brainstorm (e.g., two-sided market with apartment dwellers and home compost-pile owners, hyperlocal neighborhood scope, free-at-launch with eventual subscription, Portland Sunnyside/Hawthorne pilot)",
|
||||
"decision-log.md indicates the brainstorm was filtered for relevance, not ingested whole"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A4",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Validate the brief at evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md — the Mossridge Public Library board meets Monday and we need this to land. Read the addendum and decision-log in the same folder first. Cite specific sections, identify weaknesses, caveat what cannot be evaluated. Return inline only — no separate validation file.",
|
||||
"expected_output": "Inline critique citing specific sections from the input brief. No new files. Caveats at least one claim that cannot be evaluated from the brief alone. Offers to roll findings into an Update.",
|
||||
"files": [
|
||||
"evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/mossridge-brief/addendum.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/mossridge-brief/decision-log.md"
|
||||
],
|
||||
"expectations": [
|
||||
"The final output cites specific section names or line content from the input brief (not generic feedback)",
|
||||
"The output identifies at least one specific weakness or area for improvement in the input brief",
|
||||
"The output explicitly caveats at least one claim that cannot be evaluated from the brief alone (e.g., community demand, funding feasibility, volunteer sustainability)",
|
||||
"The output offers to roll findings into an Update (or equivalent next-step proposal)",
|
||||
"The final assistant message contains a JSON object with intent='validate'"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A5",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a brief for: a weekend-project iOS app called Sproutkeeper that reminds houseplant owners when to water their plants based on plant type and indoor humidity sensor data. Target is hobbyist plant owners. MVP scope only, single-developer side project, no investors, no team, just personal evening project.",
|
||||
"expected_output": "Lightweight brief right-sized to a side project. Low rigor. No investor-grade framing.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"The final assistant message contains a JSON object with intent='create'",
|
||||
"brief.md exists at the path referenced in the JSON output",
|
||||
"brief.md is right-sized for a side project (closer to 250-500 words than 1500)",
|
||||
"brief.md does not include investor-grade framing (no 'Series A inputs', 'TAM/SAM/SOM', 'go-to-market strategy' boilerplate when the user said this is a personal evening project)",
|
||||
"The transcript contains no clarifying questions to the user",
|
||||
"Sections that do not earn their place for a side project are dropped or kept minimal (e.g., no extensive Risk or Success Criteria padding)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A6",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a brief from this memo. It is from our last working group on a new microcredential program at Branfield Community College. Memo is at evals/bmm-skills/bmad-product-brief/files/branfield-memo.md. Use what is there; do not re-elicit facts already present.",
|
||||
"expected_output": "Brief reflects content from the memo. No re-asking for facts already present. Decision-log notes ingestion of the memo.",
|
||||
"files": ["evals/bmm-skills/bmad-product-brief/files/branfield-memo.md"],
|
||||
"expectations": [
|
||||
"brief.md incorporates at least 3 distinct facts or decisions present in the input memo",
|
||||
"decision-log.md references having used the memo as source material",
|
||||
"The transcript does not ask the user to re-state the program name, target student, or core curriculum focus if those are present in the memo",
|
||||
"brief.md does not invent program details not present in the memo"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A7",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a brief for Brightway — our smart bike helmet with crash detection, turn signals, and braking lights. Meridian Insights produced a market research report on e-mobility at evals/bmm-skills/bmad-product-brief/files/meridian-mobility-report.md. Use only what is relevant to the safety helmet category — do not let the e-scooter, charging-infrastructure, or bike-share segments bleed into the brief.",
|
||||
"expected_output": "Brief focuses on the smart bike helmet concept. Pulls relevant findings from the helmet section. Other mobility segments do not appear.",
|
||||
"files": ["evals/bmm-skills/bmad-product-brief/files/meridian-mobility-report.md"],
|
||||
"expectations": [
|
||||
"brief.md addresses the Brightway smart bike helmet concept",
|
||||
"brief.md does not introduce content from unrelated mobility segments (e-scooters, charging infrastructure, bike-share, vehicle-to-grid)",
|
||||
"brief.md word count is between 250 and 1500",
|
||||
"brief.md incorporates at least 2 specific findings from the smart helmet section of the report (e.g., market sizing, key players, crash detection technology trends, regulatory or insurance landscape)",
|
||||
"decision-log.md indicates the report was filtered to the helmet category rather than ingested whole"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A8",
|
||||
"_pattern": "artifact-correctness",
|
||||
"prompt": "Run headless. Create a brief for Pantry Bridge — a meal-kit subscription targeted at adults 65+ who live alone and want fresh meals without grocery shopping. Customer research transcripts are at evals/bmm-skills/bmad-product-brief/files/pantry-bridge-interviews.md. Pull what is relevant from the older-adult interviews; do not conflate insights from the working-parent, student, or corporate-buyer personas.",
|
||||
"expected_output": "Brief focuses on the older-adult target persona. Eleanor's interview drives the insights. Other personas do not pollute the brief.",
|
||||
"files": ["evals/bmm-skills/bmad-product-brief/files/pantry-bridge-interviews.md"],
|
||||
"expectations": [
|
||||
"brief.md addresses the Pantry Bridge older-adult meal-kit concept",
|
||||
"brief.md does not conflate insights from non-target personas (working parent Susan, college student Marcus, corporate cafeteria buyer Dimitri)",
|
||||
"brief.md word count is between 250 and 1500",
|
||||
"brief.md incorporates at least 2 specific insights from Eleanor's interview (e.g., grocery-trip difficulty, portion sizing, dietary restrictions, social aspects of meals, trust concerns)",
|
||||
"decision-log.md notes which interviews were used and which were excluded"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "B1",
|
||||
"_pattern": "process-discipline",
|
||||
"prompt": "Run headless. Create a brief for HelmStack — an open-source observability platform for distributed systems.\n\nWe have made these specific decisions and want each captured in the decision log with rationale:\n\n1. Pricing: Free open-source core; paid SaaS at $29/seat/month. Rejected paid-one-shot-license model because it would limit network effects in the OSS community.\n2. Launch: Invite-only beta for 6 weeks before public launch. Rejected open public launch — operational risk too high before stability is proven on real workloads.\n3. Stack: TypeScript + Postgres for the backend. Rejected Go + MongoDB — TypeScript aligned better with our team's existing skills and the frontend codebase.\n4. ICP: 5-50 person engineering teams for MVP. Rejected enterprise-first focus because the sales cycle is too long for our capital runway.\n5. Self-host: SaaS-only at launch; self-host arrives in v2. Rejected concurrent self-host because it would slow shipping velocity past our funding window.\n\nProduce brief.md and decision-log.md.",
|
||||
"expected_output": "Decision log contains all five named decisions with rationale captured. Brief reflects the decisions but the decision log is the canonical record.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"decision-log.md exists in the run folder",
|
||||
"decision-log.md captures the pricing decision (free OSS + $29/seat SaaS) with the rejected alternative (paid one-shot license) and rationale (network effects)",
|
||||
"decision-log.md captures the invite-only-beta decision with the rejected alternative (open public launch) and rationale (operational risk before stability)",
|
||||
"decision-log.md captures the platform-stack decision (TypeScript + Postgres) with the rejected alternative (Go + MongoDB) and rationale (team skills / frontend alignment)",
|
||||
"decision-log.md captures the ICP decision (5-50 person eng teams) with rationale referencing sales cycle / runway",
|
||||
"decision-log.md captures the self-host-timing decision (SaaS-only at launch, self-host v2) with rationale (shipping velocity / funding window)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "B2",
|
||||
"_pattern": "process-discipline",
|
||||
"prompt": "Run headless. Create a brief for HelmStack — an open-source observability platform for distributed systems.\n\nWe have made these specific decisions and want each captured in the decision log with rationale:\n\n1. Pricing: Free open-source core; paid SaaS at $29/seat/month. Rejected paid-one-shot-license model because it would limit network effects in the OSS community.\n2. Launch: Invite-only beta for 6 weeks before public launch. Rejected open public launch — operational risk too high before stability is proven on real workloads.\n3. Stack: TypeScript + Postgres for the backend. Rejected Go + MongoDB — TypeScript aligned better with our team's existing skills and the frontend codebase.\n4. ICP: 5-50 person engineering teams for MVP. Rejected enterprise-first focus because the sales cycle is too long for our capital runway.\n5. Self-host: SaaS-only at launch; self-host arrives in v2. Rejected concurrent self-host because it would slow shipping velocity past our funding window.\n\nProduce brief.md and decision-log.md.",
|
||||
"expected_output": "Brief is consistent with the decision log: every decision in the log is reflected in the brief, and no claim in the brief is absent from the input prompt or the log. Tests bidirectional fidelity.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"brief.md mentions the OSS-core + paid-SaaS pricing structure",
|
||||
"brief.md references the invite-only-beta launch sequencing OR identifies the launch model consistent with the decision log",
|
||||
"brief.md references the platform-stack choice (TypeScript + Postgres) OR is silent on stack — but does not contradict it (no mention of Go, MongoDB, etc.)",
|
||||
"brief.md identifies 5-50 person eng teams as the ICP (or equivalent — small-to-mid-size eng teams)",
|
||||
"brief.md does not introduce decisions, competitors, partnerships, metrics, or product features absent from both the input prompt and decision-log.md (no invented facts)",
|
||||
"Each substantive decision in decision-log.md has a corresponding reflection in brief.md (no log-to-brief drops)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "B3",
|
||||
"_pattern": "process-discipline",
|
||||
"prompt": "Run headless. Create a product brief for InsuLens.\n\nContext (use exactly this — do not invent):\n- Product: a smartphone app that pairs with off-the-shelf $200 thermal imaging accessories (FLIR ONE Pro and Seek Compact Pro). The app guides homeowners through a structured walkthrough and produces a professional-grade insulation audit in under 20 minutes.\n- Target: suburban homeowners aged 35-65 with houses built before 2000.\n- Validation: 50 user interviews completed in Q4 2025; 78% willingness to pay $49 for a one-time audit.\n- Stakes: Series A pitch input.\n- Hardware: requires a thermal accessory (we do not manufacture hardware).\n\nProduce brief.md and decision-log.md. Run the polish phase before presenting.",
|
||||
"expected_output": "The transcript shows the polish phase executing — the skill invokes bmad-editorial-review-structure and bmad-editorial-review-prose, either via the Skill tool directly or via Agent tool calls whose description or prompt targets those editorial skills. Both passes must occur after the initial draft is written and before the final JSON status block.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"The transcript contains either a Skill tool call invoking bmad-editorial-review-structure, OR an Agent tool call whose description or prompt references structural review or bmad-editorial-review-structure",
|
||||
"The transcript contains either a Skill tool call invoking bmad-editorial-review-prose, OR an Agent tool call whose description or prompt references prose review or bmad-editorial-review-prose",
|
||||
"Both editorial-pass dispatches (Skill or Agent) occur after the first Write tool call that creates brief.md",
|
||||
"Both editorial-pass dispatches (Skill or Agent) occur before the final assistant message containing the JSON status block"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "B5",
|
||||
"_pattern": "process-discipline",
|
||||
"prompt": "Run headless. Update the brief at evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md — we have decided to add B2B catering services for corporate events, in addition to the direct-to-consumer delivery model. Read the existing decision-log.md and addendum.md in the same folder first.",
|
||||
"expected_output": "The skill MUST detect the contradiction with the prior 'rejected B2B catering for MVP' decision (in decision-log.md) before applying the change. Acceptable resolutions: (a) halt with blocked status surfacing the conflict, or (b) apply the change with addendum.md capturing the override and rationale. Brief must not silently flip without acknowledging the prior decision.",
|
||||
"files": [
|
||||
"evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/forkbird-brief/addendum.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/forkbird-brief/decision-log.md"
|
||||
],
|
||||
"expectations": [
|
||||
"The transcript or output explicitly references the prior 'rejected B2B catering for MVP' decision from decision-log.md",
|
||||
"The contradiction is surfaced before the brief body is modified (a Read of decision-log.md occurs before the Edit/Write to brief.md, AND the conflict is named in the assistant output)",
|
||||
"Either the JSON status is 'blocked' with the conflict in the reason field, OR addendum.md is updated with an override entry capturing the rationale for reversing the prior decision",
|
||||
"If the brief is updated, decision-log.md gains a new entry referencing the catering reversal",
|
||||
"If the brief is updated, the YAML frontmatter 'updated' field is later than the original 'created' field"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "B6",
|
||||
"_pattern": "process-discipline",
|
||||
"prompt": "Run headless. Update the brief at evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md — we have signed our fifth chef partner (Chicago metro). Add this to the existing operating-model and what's-known sections. Read the existing decision-log.md first.",
|
||||
"expected_output": "Clean update — does not contradict any prior decision. Brief gets updated, decision-log gains a new entry, YAML 'updated' bumps but 'created' stays the same. No spurious addendum since this is a status update, not an override.",
|
||||
"files": [
|
||||
"evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/forkbird-brief/addendum.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/forkbird-brief/decision-log.md"
|
||||
],
|
||||
"expectations": [
|
||||
"brief.md is updated to reflect the signed fifth chef partner in Chicago",
|
||||
"brief.md frontmatter 'updated' field is later than the original 'created' timestamp; 'created' is unchanged",
|
||||
"decision-log.md contains a new entry referencing the fifth chef signing",
|
||||
"The transcript does not surface a fictional contradiction — this is a clean update, not an override of a prior decision"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "B7",
|
||||
"_pattern": "process-discipline",
|
||||
"prompt": "Run headless. Validate the brief at evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md — we are presenting to the library board Monday. Read the addendum and decision-log in the same folder. Cite specific sections. Return inline only.",
|
||||
"expected_output": "Validate is read-only. No new files created. No existing files modified. Critique returned inline in the assistant output.",
|
||||
"files": [
|
||||
"evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/mossridge-brief/addendum.md",
|
||||
"evals/bmm-skills/bmad-product-brief/files/mossridge-brief/decision-log.md"
|
||||
],
|
||||
"expectations": [
|
||||
"No new files appear in the mossridge-brief artifacts directory after the run (only the three input files)",
|
||||
"The input brief.md, addendum.md, and decision-log.md are byte-identical to the staged fixtures (no Edit/Write tool calls modified them)",
|
||||
"The transcript contains no Write tool calls and no Edit tool calls targeting the mossridge-brief folder",
|
||||
"The final assistant message contains a JSON object with intent='validate'"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "C1",
|
||||
"_pattern": "config-compliance",
|
||||
"prompt": "Run headless. Create a product brief for TaskFlow — a lightweight daily planning app for freelancers who juggle multiple clients. Core idea: a single daily view that pulls together tasks, time blocks, and client context so the freelancer always knows what to work on next. Target is independent freelancers, 1-3 clients at a time, who currently manage their day across sticky notes, calendar apps, and spreadsheets. MVP is mobile-first. No investors — the founder is bootstrapping.",
|
||||
"expected_output": "Brief written in Spanish (document_output_language=Spanish). Assistant's conversational output reflects the configured British-accent communication style. Brief lands at the custom output path (test-output/artifacts/briefs/...) rather than the default _bmad-output path. Brief is right-sized for a bootstrapped solo project.",
|
||||
"files": [],
|
||||
"expectations": [
|
||||
"brief.md exists under test-output/artifacts/briefs/ (the custom planning_artifacts path), not under _bmad-output/",
|
||||
"The final JSON status block artifact paths reference test-output/ rather than _bmad-output/",
|
||||
"brief.md body is written in Spanish — the majority of prose content (headings, section bodies) is in Spanish, not English",
|
||||
"brief.md covers the TaskFlow concept: freelancer daily planning, multi-client context, the sticky-notes-plus-calendar-plus-spreadsheet problem",
|
||||
"brief.md is right-sized for a bootstrapped side project — appropriate depth and scope for a solo-founder app with no investor audience, no TAM/SAM/SOM framing, no Series A language, and no sections that pad for enterprise credibility",
|
||||
"The assistant's non-document output (transcript text content outside of brief.md) contains at least one marker of British informal register (e.g., 'mate', 'cheers', 'brilliant', 'sorted', 'innit', 'blimey', 'proper', 'right then', or equivalent pub-idiom phrasing)"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
# Working Group Notes — Microcredential Program
|
||||
|
||||
**Branfield Community College**
|
||||
**Meeting:** 2026-04-22
|
||||
**Attendees:** Provost, Workforce Dev Director, Chair of Industry Advisory Board, two faculty leads (Data Analytics, Healthcare Admin), Financial Aid Director
|
||||
|
||||
## Why we're doing this
|
||||
|
||||
Regional employer survey (Q1 2026) showed 340+ unfilled mid-skill jobs in the three-county area. State workforce board approved a $1.4M grant if we can launch by fall 2027 with at least three tracks. Existing AAS programs are too long for working adults — average completion 3.5 years.
|
||||
|
||||
## What we're building
|
||||
|
||||
Six-month stackable microcredentials. Three tracks at launch:
|
||||
|
||||
1. **Data Analytics** (SQL, Excel/Power BI, intro Python). Faculty lead Marisol Reyes. Strongest employer demand. Will be MVP — first to launch, used to validate format.
|
||||
2. **Healthcare Admin** (medical coding, EHR systems, patient workflow). Faculty lead Dev Patel. Aging population in region drives demand.
|
||||
3. **Sustainable Construction** (green building practices, retrofit basics, code compliance). New faculty hire required.
|
||||
|
||||
Stackable means credits transfer into related AAS or BAS later if the student wants.
|
||||
|
||||
## Decisions made today
|
||||
|
||||
- **Data Analytics is MVP.** Launch fall 2027, others phase in spring/fall 2028. Validate format before scaling.
|
||||
- **Hybrid delivery.** Two evenings/week in person + asynchronous online. Board rejected pure-online (concerns about adult learner outcomes data).
|
||||
- **Stipend program.** Up to $3,000/student for low-income students, funded from the state grant. Means-tested.
|
||||
- **Industry Advisory Board** has approval authority on curriculum. Three employers committed (regional hospital, mid-size data consultancy, county housing authority). All three commit to interview every graduate.
|
||||
- **Cohort cap: 24 per track per term.** Driven by classroom size and faculty load.
|
||||
|
||||
## Open questions
|
||||
|
||||
- Childcare for evening sessions — can we partner with the campus childcare center? Deferred to next meeting.
|
||||
- Marketing — provost wants to know cost per enrolled student before approving budget. Need workforce dev to model.
|
||||
- Do we offer a tuition payment plan in addition to the stipend? Financial aid director thinks yes; provost wants to see uptake projections first.
|
||||
|
||||
## What we're NOT doing
|
||||
|
||||
- Not pursuing pure-online delivery (rejected — see above).
|
||||
- Not launching all three tracks at once (rejected — risk concentration, faculty bandwidth).
|
||||
- Not building employer-customized cohorts (rejected — too operationally complex for MVP).
|
||||
|
||||
## Next steps
|
||||
|
||||
- Workforce Dev: marketing cost model by 2026-05-15.
|
||||
- Provost: childcare partnership exploratory conversation.
|
||||
- Faculty leads: draft data analytics curriculum outline by 2026-06-01.
|
||||
- Reconvene 2026-05-20.
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
# Addendum — Forkbird Kitchen
|
||||
|
||||
## Options considered (and not taken)
|
||||
|
||||
### B2B / corporate catering
|
||||
|
||||
Considered as a parallel revenue stream from day one. Rejected for MVP. Different operational rhythm (bulk orders, fixed delivery windows, invoiced billing), different customer (procurement, not eaters), different unit economics. Splitting attention at launch risked degrading both. Revisit if consumer foundation is established by month 12.
|
||||
|
||||
### Subscription / meal plan
|
||||
|
||||
Considered as a recurring-revenue layer. Rejected for MVP. Operationally expensive at our planned scale: requires demand forecasting per subscriber, kitchen scheduling locked further out, and packaging/refrigerated handling we are not yet equipped for. Reasonable to revisit once kitchen utilization stabilizes.
|
||||
|
||||
### Retail / grocery channel
|
||||
|
||||
Considered (refrigerated meals in Whole Foods, Sprouts). Rejected for MVP. Different product (cold meals, longer shelf life, different texture profile), different go-to-market (broker relationships, slotting fees, category management). Parked for year 2 — would require a separate product line, not a channel extension.
|
||||
|
||||
### Lower-priced everyday tier
|
||||
|
||||
Considered. Rejected for now. The brand position is chef-driven; introducing a value tier alongside risks the premium signal in marketplace search ranking and review patterns. Explored alternative of separate brand for value tier; deferred.
|
||||
|
||||
## Personas (extended)
|
||||
|
||||
**The plant-based weekday professional.** Lives in a dense urban neighborhood, orders 4–6 times a month, splits between own-cooking and delivery. Sources of dissatisfaction with current options: chain plant-based menus feel formulaic, fine-dining plant-based is too expensive for weeknight, marketplace search surfaces too many low-quality options.
|
||||
|
||||
**The dietary-flex household member.** One person in a household is plant-based by preference; the other(s) are not. Ordering pattern is "tonight one of us wants Forkbird, the other wants something else." We benefit from being a dependable single-cuisine option that doesn't require negotiating across diets.
|
||||
|
||||
## Sizing notes
|
||||
|
||||
- Total addressable: ~6.2M urban professionals across 5 metros eating plant-based 3+ times/week (based on 2024 Plant Based Foods Association data, urban segmentation).
|
||||
- Serviceable addressable (within delivery radius of planned kitchens at launch): ~840K.
|
||||
- Realistic Y1 capture (per metro forecast): 0.4% of SAM = 3,360 active customers across all metros.
|
||||
|
||||
## Sourcing standard — exact wording
|
||||
|
||||
"For each dish on the menu, we publish the source of every ingredient that represents at least 5% of cost. We commit that at least 60% of total ingredient weight is sourced within 200 miles of the kitchen preparing that dish. Both numbers are auditable; we publish them per-dish in the app. If we cannot meet the 60% local threshold for a dish, the dish does not ship."
|
||||
|
||||
## Technical constraints
|
||||
|
||||
- Marketplace integration (DoorDash, UberEats, Grubhub) requires their menu management API. We are using a third-party middleware (Olo) to avoid maintaining three separate integrations.
|
||||
- Ingredient transparency display requires structured data per dish. We need an ingredient-master database; current option is to extend our recipe-management software vendor.
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: Forkbird Kitchen — Product Brief
|
||||
status: final
|
||||
created: 2026-02-14
|
||||
updated: 2026-02-14
|
||||
---
|
||||
|
||||
# Forkbird Kitchen
|
||||
|
||||
## What it is
|
||||
|
||||
A delivery-only ghost kitchen brand offering chef-driven plant-based meals in five US metros: San Francisco, New York, Los Angeles, Seattle, and Chicago. Launch operating model is direct-to-consumer through our own iOS/Android app and the major third-party marketplaces (DoorDash, UberEats, Grubhub).
|
||||
|
||||
## Who it's for
|
||||
|
||||
Urban professionals aged 28–45 who eat plant-based meals at least three times a week, value chef-driven food over chain alternatives, and order delivery 4+ times monthly. Initial geographic focus is dense neighborhoods within 3-mile delivery radii of partner kitchens.
|
||||
|
||||
We are not building for: families with children (different ticket size and ordering pattern), occasional plant-based eaters (price sensitivity too high for our positioning), or office lunch (different time-of-day operation).
|
||||
|
||||
## Why it wins
|
||||
|
||||
Three things are deliberately stacked:
|
||||
|
||||
1. **Chef partnerships, not chef-as-marketing.** Each metro has a named chef (with prior fine-dining or notable plant-based credit) who designs the rotating menu and earns equity in that metro's P&L. They are not endorsers; they are operators.
|
||||
2. **Ingredient sourcing standards.** Published per-dish: where it came from, how it was farmed, what portion of cost it represents. No dish ships if we can't source within 200 miles for ≥60% of ingredient weight. This is auditable, not marketing copy.
|
||||
3. **Speed without cars.** Average ticket-to-door is 28 minutes from order placement, achieved by tight delivery radii and dense order density per kitchen. Long delivery erodes plant-based texture more than animal protein — speed is product, not logistics.
|
||||
|
||||
## Operating model
|
||||
|
||||
Five kitchens, one per metro, each leased space inside an existing food-prep facility. No customer-facing storefronts. App orders go through our stack; marketplace orders pass through their stacks. Menu rotates every six weeks per chef.
|
||||
|
||||
Pricing tier: $14–$22 per entrée before delivery. We are deliberately at chef-driven positioning, not value positioning.
|
||||
|
||||
## What's known
|
||||
|
||||
- Demand validated through three pop-up dinners in SF and NY (Q4 2025). 480 covers, 78% repeat intent based on post-event survey.
|
||||
- Operating partner identified in each metro. Leases signed for SF, NY, LA. Seattle and Chicago in negotiation.
|
||||
- Three of five chefs signed; two in active conversations.
|
||||
|
||||
## What's unknown
|
||||
|
||||
- Whether ingredient-sourcing transparency is a differentiator at point of sale (in-app) or only in marketing. Our hypothesis is "both" but we have not tested in-app.
|
||||
- Marketplace economics. DoorDash takes 15–30% depending on tier; we are modeling the lower tier but have not negotiated.
|
||||
- Whether the 3-mile radius holds outside SF/NY (lower density in LA/Chicago).
|
||||
|
||||
## Risks
|
||||
|
||||
- Chef churn. If a metro chef leaves, the metro brand loses its anchor. Mitigation: equity vesting over 24 months, named-chef terms in operating agreement.
|
||||
- Sourcing cost volatility. 60% local-within-200-miles can spike with weather/supply disruption. We have not modeled the worst case.
|
||||
- Marketplace dependency. If DoorDash terms shift adversely, our blended margin is at risk. We are deliberately building the owned-app channel to reduce this dependency.
|
||||
|
||||
## Success criteria for first 12 months
|
||||
|
||||
- 4 of 5 metros operating profitably at the unit level (kitchen + chef + delivery economics) by month 9
|
||||
- 30% of orders through owned app (vs. marketplaces) by month 12
|
||||
- Chef retention 100% through year 1
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# Decision Log — Forkbird Kitchen
|
||||
|
||||
## 2026-01-08
|
||||
- **Brand position: chef-driven, premium plant-based.** Considered value tier; rejected for MVP. Premium positioning is the wedge against marketplace generic plant-based.
|
||||
|
||||
## 2026-01-12
|
||||
- **Five-metro launch: SF, NY, LA, Seattle, Chicago.** Considered three-metro start; rejected as not enough density to test the chef-equity model meaningfully.
|
||||
- **Ghost kitchen, no storefront.** Storefronts ruled out — capex too high for MVP, dilutes the speed advantage.
|
||||
|
||||
## 2026-01-19
|
||||
- **Pricing tier $14–$22 per entrée.** Modeled against three competitor sets: chain plant-based, fine-dining plant-based delivery, generic mid-tier delivery. Sits cleanly above chain, below fine-dining.
|
||||
- **Chef equity in metro P&L.** Rejected flat fee + revenue share alternative; equity creates the operator incentive we want.
|
||||
|
||||
## 2026-01-26
|
||||
- **Rejected B2B catering segment for MVP.** Different operational rhythm and customer; would split attention at launch and risk degrading both consumer and B2B execution. Revisit in year 2 if consumer foundation is solid. (Discussion: 2 hours; chef partners weighed in against splitting focus; CFO modeled the dilution effect on consumer kitchen utilization.)
|
||||
- **Rejected subscription model for MVP.** Operationally expensive at planned scale; revisit once kitchen utilization stabilizes.
|
||||
|
||||
## 2026-02-02
|
||||
- **Sourcing standard: 60% within 200 miles, published per-dish.** Considered weaker thresholds (50% / 250 miles); rejected as not differentiating enough to be worth publishing. The number has to be defensible.
|
||||
- **Marketplace channel mix: own app + DoorDash + UberEats + Grubhub.** Considered own-app only; rejected as too slow on demand acquisition. Considered marketplaces only; rejected — own app is critical to long-term margin.
|
||||
|
||||
## 2026-02-09
|
||||
- **Six-week menu rotation per chef.** Considered four-week (more freshness) and eight-week (more operational stability). Six is the compromise; reassess after first two cycles.
|
||||
- **Marketing budget: 60% acquisition / 40% brand.** Rejected pure-acquisition because chef-driven positioning needs brand-level signal that paid acquisition alone won't carry.
|
||||
|
||||
## 2026-02-14
|
||||
- **Brief finalized for Series A inputs.** Status moved to final.
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
# E-Mobility Market Report 2026
|
||||
|
||||
**Prepared by:** Meridian Insights
|
||||
**Date:** Q2 2026
|
||||
**Coverage:** North America, with comparative reference to EU markets
|
||||
**Engagement code:** MI-2026-EMOB-007
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
The e-mobility category continues a multi-year structural shift from "alternative transportation" to mainstream mobility infrastructure. North American unit volume across e-bikes, e-scooters, and connected safety hardware grew 18% year-over-year in 2025, against a 6% growth rate for traditional bicycles. Three macro factors are durably reshaping the category: regulatory clarity at the state level (29 US states now have explicit e-bike classifications, up from 14 in 2022), insurance industry interest in telematics-style risk pricing, and a generational shift in commuting preferences among the 28-44 cohort.
|
||||
|
||||
This report covers seven segments of the broader e-mobility landscape: e-bike retail, e-scooter regulation, bike-share systems, charging infrastructure, smart helmet hardware, and grid-integration trends. Findings are synthesized from 142 stakeholder interviews, 18 retailer site visits, government regulatory filings, and proprietary point-of-sale data from 4,200 specialty retail outlets.
|
||||
|
||||
---
|
||||
|
||||
## Methodology
|
||||
|
||||
Quantitative data was sourced from Meridian's proprietary Mobility Retail Panel (MRP), which aggregates POS data from independent specialty retailers and select chain operators. Where panel data is incomplete or lagging, we supplemented with manufacturer-reported shipment volumes and customs/import filings. Qualitative findings draw on 142 interviews conducted between November 2025 and March 2026 with retailers, fleet operators, regulators, manufacturers, and end users.
|
||||
|
||||
Helmet category sizing uses a separate methodology described in Section 8, blending CPSC compliance filings, manufacturer disclosures, and a sample purchase-intent survey of 3,400 cyclists.
|
||||
|
||||
---
|
||||
|
||||
## Section 3: Market Sizing — Total E-Mobility
|
||||
|
||||
The North American e-mobility market reached an estimated $14.7B in retail volume in 2025, up from $12.5B in 2024. The largest segment by volume is e-bikes at $7.2B, followed by e-scooter retail at $2.8B (excluding shared-fleet operations), bike-share and dockless mobility services at $2.1B, charging infrastructure at $1.8B, and connected safety hardware at $0.8B.
|
||||
|
||||
Compound annual growth rate (CAGR) forecasts through 2030 vary substantially by segment. We forecast 14% CAGR for e-bikes, 6% for e-scooters (decelerating as the regulatory regime stabilizes), 9% for bike-share, 22% for charging infrastructure (driven by both bike and scooter charging), and 31% for connected safety hardware (off a smaller base). Vehicle-to-grid (V2G) integration is too early to forecast reliably; we treat it as an emerging segment.
|
||||
|
||||
---
|
||||
|
||||
## Section 4: E-Bike Market Deep Dive
|
||||
|
||||
E-bikes represent the largest single segment by retail value. The 2025 unit mix favored Class 1 (pedal-assist, max assisted speed 20 mph) at 58% of units, Class 2 (throttle, max 20 mph) at 24%, and Class 3 (pedal-assist, max 28 mph) at 18%. Class 3 is the fastest-growing classification on a unit basis, driven by suburban commuter demand.
|
||||
|
||||
Manufacturer concentration shifted in 2025. The top 10 brands by unit volume now hold 64% of the market, up from 51% in 2022 — consolidation that mirrors patterns seen in the traditional bicycle market in the early 2000s. Specialized, Trek, and Cannondale (operating their respective electric sub-brands) represent the top three. Direct-to-consumer brands (Rad Power, Lectric, Aventon) collectively hold approximately 19% of retail value.
|
||||
|
||||
Retail channel split favored independent specialty bike shops at 47% of unit volume, with direct-to-consumer at 28%, big-box retail at 17%, and e-commerce marketplaces (Amazon, Walmart.com) at 8%. The independent specialty channel commands a price premium of approximately 22% over comparable D2C alternatives, attributed to in-store fitting, post-sale service relationships, and higher-margin component upgrades.
|
||||
|
||||
Notable trends in 2025: cargo e-bike sub-segment grew 41% YoY (small base, dense urban geographies); battery range claims continue to drift upward with manufacturer claims of 60+ mile range becoming standard for $2,500+ price points; bottom-bracket motor placement (mid-drive) gained share over hub-drive in the $3,000+ tier.
|
||||
|
||||
---
|
||||
|
||||
## Section 5: E-Scooter Regulatory Landscape
|
||||
|
||||
The North American e-scooter regulatory environment matured significantly during 2024-2025 after several years of municipal experimentation and reactive policymaking. Forty-one US cities now operate under what we classify as "stable" regulatory regimes (defined as: explicit operating permit framework, defined sidewalk/bike-lane rules, helmet provisions, and revenue-share or fee structures with the city). This is up from 19 cities in 2022.
|
||||
|
||||
The regulatory shift has compressed operator margins. Permit fees and per-trip surcharges in major markets (Los Angeles, Chicago, Atlanta, Denver) range from $0.15 to $0.42 per trip, against average ride revenue of $5.40. Several major operators have exited markets where permit economics have proven unviable; Lime exited five secondary US markets in 2025 citing exactly this reason.
|
||||
|
||||
Helmet requirements remain inconsistent. Thirteen US states require helmets for riders under 18 only; seven require them for all riders; the rest leave it to municipalities. Enforcement is widely acknowledged to be minimal even where mandates exist. EU markets are substantially stricter, with mandatory helmet provisions in France, Germany, and Italy applying to all e-scooter riders.
|
||||
|
||||
Insurance treatment is also fragmenting. Five US states have classified e-scooters as "motor vehicles" requiring liability coverage, raising the floor on operating costs for shared-fleet providers. Most states still treat them as bicycles for insurance purposes.
|
||||
|
||||
---
|
||||
|
||||
## Section 6: Bike-Share and Dockless Mobility
|
||||
|
||||
Docked bike-share systems (Citi Bike, Divvy, Bluebikes, Capital Bikeshare) continue stable, slow growth. Capital Bikeshare reported 5.1M trips in 2025 (5% growth); Citi Bike reported 38M (8% growth). Docked systems benefit from station infrastructure that creates predictability for riders and meters demand-side adoption.
|
||||
|
||||
Dockless bike-share (without fixed stations) is largely consolidated; the experimentation phase ended in 2023. Lyft operates the dominant national network through its acquired bike-share division, with regional players in select markets. Operating economics for dockless are structurally weaker than docked due to vehicle redistribution costs, vandalism rates, and the absence of station-driven advertising revenue.
|
||||
|
||||
A notable trend is the convergence of bike-share and dockless e-bike subscription models. Several operators now offer monthly memberships that include unlimited 30-minute trips on dockless e-bikes within a service zone. Adoption is concentrated in dense urban cores where car-free lifestyles are practical.
|
||||
|
||||
---
|
||||
|
||||
## Section 7: Charging Infrastructure Trends
|
||||
|
||||
Charging infrastructure for e-bikes and e-scooters has emerged as a meaningful sub-segment, growing 28% in 2025. The dominant form factor remains residential at-home wall chargers (87% of installed base), but commercial charging — at workplaces, transit stations, and apartment buildings — is the fastest-growing sub-segment.
|
||||
|
||||
Standardization remains a constraint. Battery interfaces have not converged; Bosch, Shimano, and various proprietary systems coexist. The European Union's USB-C mandate for portable electronics has not yet extended to e-mobility; industry observers expect regulatory pressure to follow within 3-5 years.
|
||||
|
||||
Workplace charging is increasingly common in tech and creative-industry employers; we estimate 31% of large urban employers in tech-heavy metros now offer workplace e-bike charging, up from 12% in 2022. Apartment buildings lag — 7% of class-A multifamily properties offer common-area charging, with retrofit cost cited as the primary barrier.
|
||||
|
||||
Public charging at transit hubs (subway/light rail stations) remains a stated priority across most major metro transit authorities, but actual installation lags policy commitments significantly. Funding fragmentation and permitting delays are the consistently cited bottlenecks.
|
||||
|
||||
---
|
||||
|
||||
## Section 8: Smart Helmet Category
|
||||
|
||||
The connected safety hardware category — colloquially "smart helmets" — is the smallest segment we cover by retail value but has the strongest growth profile. The North American smart helmet market reached $810M in retail value in 2025, up from $480M in 2023, representing a 30% CAGR. We forecast $2.4B by 2030, contingent on the resolution of two open questions detailed below.
|
||||
|
||||
**Category definition.** We define "smart helmets" as helmets that include at least one connected safety feature: turn signals (typically wireless-controlled), braking lights (auto-activated via accelerometer), crash detection (auto-notification to emergency contacts on detected impact), or integrated navigation/audio (bone-conduction speakers, often paired with smartphone apps). Helmets with passive integrated lighting only (no connectivity) are excluded from this category and tracked under traditional helmet retail.
|
||||
|
||||
**Key players.** The category remains fragmented; no single manufacturer commands more than 15% market share. Top five by 2025 retail volume: Lumos Helmet (US, market leader at ~14% share with strong DTC presence), Sena Technologies (Korea, intercom heritage, ~11%), Coros (US/China, multi-sport, ~9%), Specialized ANGi (US, premium tier at ~7%), and POC Aid (Sweden, premium safety positioning at ~6%). Approximately 30 smaller brands hold the remaining share.
|
||||
|
||||
**Crash detection technology.** Two architectures dominate: single-accelerometer crash detection (lower cost, higher false-positive rate) and multi-sensor fusion (accelerometer + gyroscope + GPS movement signature, lower false-positive rate but higher BOM cost). Insurance industry sources indicate that multi-sensor systems are likely to become a baseline requirement for any insurance discount programs, given that single-accelerometer systems triggered roughly 1 false alert per 47 hours of riding in our test panel.
|
||||
|
||||
**Regulatory landscape.** Smart helmets sit at the intersection of two regulatory regimes: the Consumer Product Safety Commission's bicycle helmet standard (16 CFR 1203, governing impact protection) and the Federal Communications Commission's regulation of intentional radiators (governing the radio components for Bluetooth/cellular). Compliance with both is non-trivial. Eight smart helmet brands have had FCC Part 15 violations issued since 2023, typically for emissions exceeding limits during compliance testing. EU markets additionally require EN 1078 certification for the helmet shell; this is widely held but adds 3-5 months to a typical product development timeline.
|
||||
|
||||
**Insurance industry interest.** Major auto insurers (State Farm, Progressive, Geico, Nationwide) are actively piloting telematics-style discount programs for cyclists who use connected safety helmets. The proposed structure mirrors auto-insurance "good driver" discount frameworks, with discounts of 5-15% on cycling-specific insurance riders or umbrella policies. As of Q1 2026, three insurers have public pilot programs and one (Progressive) has announced general availability for 2027. This could materially accelerate category adoption if discounts materialize at the upper end of the proposed range.
|
||||
|
||||
**Distribution.** D2C dominates at 58% of retail value, reflecting the still-emerging category and the absence of strong channel inventory in independent bike shops. The specialty bike shop channel is growing rapidly (up from 12% to 22% of retail value over 2023-2025) as the category gains category-management attention from major distributors. Big-box channels (REI, Dick's Sporting Goods) are present but shallow in selection — typically 4-8 SKUs versus 40+ in dedicated specialty.
|
||||
|
||||
**Open questions for the segment.** Our growth forecast is conditioned on (a) the proportion of insurers that follow Progressive into general availability of connected-safety discounts; (b) whether multi-sensor crash detection becomes a category baseline (lifting ASP) or remains a premium-tier feature; and (c) whether the current high false-positive rate of single-accelerometer systems triggers a consumer backlash that suppresses category trust before insurance discounts arrive. The downside scenario produces a 2030 category size of $1.4B versus our base-case $2.4B.
|
||||
|
||||
---
|
||||
|
||||
## Section 9: Vehicle-to-Grid Integration
|
||||
|
||||
Vehicle-to-grid (V2G) integration of e-bike and e-scooter batteries is an emerging area, but practical commercial deployment is years away. The thesis is that fleet-scale dockless e-bikes and e-scooters represent meaningful aggregate battery capacity that could participate in demand-response markets, particularly in deregulated electricity markets.
|
||||
|
||||
Several technical preconditions must be met: standardized battery interfaces (currently absent), bidirectional charging hardware (rare), aggregator software stack (early-stage), and regulatory clarity on energy market participation by mobility fleets (pre-policy). We treat this as a watch item for 2028+ rather than a current investable theme.
|
||||
|
||||
---
|
||||
|
||||
## Section 10: Outlook
|
||||
|
||||
Our base-case forecast for North American e-mobility is $22.5B by 2030, with the e-bike segment reaching $11.8B (the largest), connected safety hardware reaching $2.4B (the fastest-growing in percentage terms), and charging infrastructure reaching $4.2B (driven by commercial and multifamily retrofit demand). Bike-share and dockless mobility plateau in the $2.5-3.0B range as urban density limits adoption ceilings.
|
||||
|
||||
The largest single uncertainty in this forecast is the trajectory of insurance industry adoption of connected-safety telematics, which could accelerate or substantially constrain the smart helmet segment and, secondarily, influence rider behavior across the broader category. We will revisit forecasts in our Q4 2026 update.
|
||||
|
||||
---
|
||||
|
||||
*This report is prepared for the exclusive use of Meridian Insights subscribers. Reproduction or external distribution without written permission is prohibited.*
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# Addendum — Mossridge Tool Lending Library
|
||||
|
||||
## Options considered
|
||||
|
||||
### Paid lending model (rejected)
|
||||
|
||||
Considered charging a nominal per-loan fee ($2–$5) to cover replacement and maintenance. Rejected as inconsistent with library mission of free access. Board has previously stated free access is non-negotiable for core services. A donation jar at checkout was proposed as a soft alternative; deferred.
|
||||
|
||||
### Hardware store partnership (considered, deferred)
|
||||
|
||||
Mossridge Hardware (the store committing in-kind donations) offered to host a satellite lending point. Considered; deferred to year 2. The integration adds operational complexity (split inventory, cross-location tracking) we are not equipped for at launch. Reasonable to revisit once the main location is established.
|
||||
|
||||
### Mobile lending van (rejected)
|
||||
|
||||
Proposed by a board member to serve outlying areas. Rejected for MVP — capital cost ($35K+ for vehicle + outfitting) exceeds the entire grant. Could be a year-three expansion if demand validates.
|
||||
|
||||
### Skills classes alongside tool loans (deferred)
|
||||
|
||||
Considered offering "how to use a power drill" classes as a value-add. Deferred — interesting but distinct programming, not part of the lending service's MVP scope. Adult Services Librarian is interested in piloting separately.
|
||||
|
||||
## Reference programs reviewed
|
||||
|
||||
- Berkeley Tool Lending Library (operating since 1979, ~3,000 tools, 250+ daily loans). Funded as a city service.
|
||||
- Oakland Tool Lending Library (operating since 2000, smaller catalog, library-staffed).
|
||||
- Toronto Tool Library (nonprofit, member-supported, paid model — different funding architecture).
|
||||
|
||||
Direct correspondence with Berkeley TLL staff (March 2026) suggested:
|
||||
- Theft has been low (~2% annually) due to library card requirement and community norms
|
||||
- The biggest sustainability risk has been staff hours, not tool replacement
|
||||
- Most successful programs have a paid coordinator role, not pure volunteer
|
||||
|
||||
## Potential expansion (year 2+)
|
||||
|
||||
- Hardware store satellite location
|
||||
- Specialty tool categories: woodworking, automotive, sewing
|
||||
- Skills classes paired with relevant tool checkouts
|
||||
- Seed/cuttings library co-located in spring/summer
|
||||
|
||||
## Insurance and liability — current state
|
||||
|
||||
Library counsel (Town of Mossridge legal department) has been consulted informally. Formal opinion pending. Existing policy covers patrons in the building; coverage for tool use off-premises is the open question. Awaiting written response before submitting grant application.
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
title: Mossridge Public Library — Tool Lending Library Proposal
|
||||
status: final
|
||||
created: 2026-04-30
|
||||
updated: 2026-04-30
|
||||
---
|
||||
|
||||
# Tool Lending Library at Mossridge Public Library
|
||||
|
||||
## What we're proposing
|
||||
|
||||
A free tool-lending service operated out of the Mossridge Public Library, modeled on similar programs in Berkeley, Oakland, and Toronto. Cardholders borrow hand and power tools (drills, saws, ladders, sanders, plumbing snakes, gardening tools) for up to seven days, free of charge.
|
||||
|
||||
## Why now
|
||||
|
||||
Mossridge residents face rising costs of home maintenance and DIY supplies. Anecdotally, demand for community-shared resources is high — staff have fielded "do you lend tools?" requests for years. A tool library extends the library's mission of equitable access to information and skill-building into the practical-skills domain.
|
||||
|
||||
## Who it serves
|
||||
|
||||
Mossridge residents with active library cards. Primary audience: single-family homeowners doing their own home repairs, renters making minor improvements with landlord permission, hobbyist woodworkers and gardeners. Estimated 8,000 households in the library's service area.
|
||||
|
||||
## Service design
|
||||
|
||||
- **Catalog:** Approximately 200 tools to start, prioritizing the most-requested categories (drilling, cutting, sanding, ladders, garden).
|
||||
- **Loan period:** Seven days, one renewal allowed if no holds.
|
||||
- **Borrower requirements:** Active library card, signed liability waiver, completed safety briefing for power tools.
|
||||
- **Location:** Library basement, currently underutilized storage. Accessible by elevator.
|
||||
- **Hours:** Tuesday–Saturday during library hours; tools returned via after-hours drop slot when closed.
|
||||
|
||||
## Funding
|
||||
|
||||
- ARPA infrastructure grant: $42,000 (anticipated, application pending)
|
||||
- Friends of the Mossridge Library matching funds: $10,000 (committed)
|
||||
- In-kind tool donations from Mossridge Hardware (committed in principle)
|
||||
|
||||
Year-one operating cost is estimated at $48,000, primarily tool purchase, maintenance supplies, and shelving/storage retrofit. Ongoing cost (year two and beyond) projected at $12,000 annually for replacement tools and consumables.
|
||||
|
||||
## Operations
|
||||
|
||||
The service will be run by trained library volunteers, supervised by the Adult Services Librarian. Volunteer training program to be developed in partnership with Mossridge Vocational Center. Estimated 4–6 active volunteers needed at any given time, with a roster of 12–15 trained volunteers to provide coverage.
|
||||
|
||||
## Risks
|
||||
|
||||
- **Theft and loss.** Tools are valuable and portable. Mitigation: deposit on power tools (refundable), card-required checkout, photo documentation at loan and return.
|
||||
- **Liability.** Borrower waivers will be required; the library's existing insurance policy is being reviewed for coverage.
|
||||
- **Demand uncertainty.** We do not yet know the actual borrowing volume the service will see.
|
||||
|
||||
## Success criteria
|
||||
|
||||
- Launch by Q3 2027 with a catalog of 200 tools.
|
||||
- 300 unique borrowers in the first year of operation.
|
||||
- Zero serious injury incidents.
|
||||
- Tool loss rate under 5% per year.
|
||||
|
||||
## What we're asking
|
||||
|
||||
Board approval to proceed with the ARPA grant application and finalize the service design for fall 2027 launch.
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
# Decision Log — Mossridge Tool Lending Library
|
||||
|
||||
## 2026-03-04
|
||||
- **Pursuing the project.** Adult Services Librarian + Library Director agreed there's enough informal demand signal (years of "do you lend tools?" inquiries) to investigate seriously. Acknowledged that informal inquiries are not the same as validated demand.
|
||||
|
||||
## 2026-03-11
|
||||
- **Reference programs to study: Berkeley, Oakland, Toronto.** Selected based on size, longevity, and accessibility of operational data.
|
||||
|
||||
## 2026-03-25
|
||||
- **Initial scope: hand and power tools only.** Rejected including specialty categories (sewing, electronics test gear, automotive) for MVP. Reason: staff expertise and storage. Revisit year 2.
|
||||
- **Free model.** Confirmed — paid model rejected as inconsistent with library mission. Donation jar approved as soft revenue.
|
||||
|
||||
## 2026-04-01
|
||||
- **Volunteer-run model.** Selected to keep ongoing operating costs low. Acknowledged risk: Berkeley correspondence flagged staff-hours as the biggest sustainability concern in similar programs. Plan to revisit at year-one review.
|
||||
|
||||
## 2026-04-08
|
||||
- **Funding architecture: ARPA grant + Friends matching + in-kind donations.** Considered municipal budget request; rejected as too slow (next budget cycle is 18 months out). Grant is faster but requires fall 2027 launch deadline.
|
||||
|
||||
## 2026-04-15
|
||||
- **Launch timing: Q3 2027.** Driven by ARPA grant deadline, not by service-readiness analysis. Acknowledged this is grant-driven, not user-driven, timing.
|
||||
- **Year-one target: 300 unique borrowers.** Set by analogy to comparable programs scaled to Mossridge population. No local validation underlying this number.
|
||||
|
||||
## 2026-04-22
|
||||
- **Hardware store satellite deferred to year 2.** Operational complexity exceeds our launch capacity.
|
||||
- **Liability: pending formal opinion from town legal.** Borrower waiver in draft.
|
||||
|
||||
## 2026-04-30
|
||||
- **Brief finalized for board meeting.** Status moved to final.
|
||||
- **Open items acknowledged for board discussion:** demand validation method, volunteer sustainability, written legal opinion on off-premises tool use coverage.
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
# Pantry Bridge — Customer Research Transcripts
|
||||
|
||||
**Project:** Pantry Bridge meal-kit concept exploration
|
||||
**Research firm:** In-house
|
||||
**Round:** Discovery interviews, March 2026
|
||||
**Format:** 45-minute semi-structured interviews, video; excerpts below are lightly edited for length and clarity
|
||||
|
||||
The four interviews below cover four distinct potential customer segments. We are sharing all four for context, though the team's current product hypothesis targets one specific segment.
|
||||
|
||||
---
|
||||
|
||||
## Interview 1 — Susan, 38, working parent
|
||||
|
||||
**Household:** Two kids (ages 6 and 9), spouse works full-time, both parents work demanding office jobs. Suburban Chicago.
|
||||
|
||||
**Susan:** "Honestly, the question is just — can I get dinner on the table by 6:30 without it being chicken nuggets again? My kids don't eat anything green unless we play games about it. My husband and I both have late meetings sometimes. We've tried HelloFresh, we've tried Blue Apron, we tried Home Chef. They all kind of work, and they all kind of don't.
|
||||
|
||||
The thing that breaks them for us is the prep time. The boxes say 30 minutes but you need to add 10-15 to actually get it done. By Wednesday night I don't have 45 minutes. So we end up using the boxes on weekends and ordering takeout three nights a week, which is the opposite of what the boxes are supposed to do.
|
||||
|
||||
If you really wanted to crack it for families like ours: pre-chopped vegetables, sauces that are actually finished and not 'whisk these eight things together.' I'll pay more for less prep. And the recipe books need to read like the kid is going to eat it — not like 'spicy harissa-rubbed cauliflower steaks.'
|
||||
|
||||
Portion sizing — most kits send way too much for our family. We're a family of four but the kids each eat about 60% of a meal. We end up with leftovers that go bad. Better sizing would help."
|
||||
|
||||
**Interviewer:** What about price?
|
||||
|
||||
**Susan:** "We spend $250-350 a week on groceries currently and probably another $200 on takeout. So a meal kit that replaces three nights of takeout could be $200 a month and we'd still come out ahead. Most kits are priced fine; it's the time that breaks them."
|
||||
|
||||
---
|
||||
|
||||
## Interview 2 — Marcus, 21, college student
|
||||
|
||||
**Household:** Junior at state university, off-campus apartment shared with two roommates, kitchen has a microwave, a stovetop, and a half-broken oven. Limited budget.
|
||||
|
||||
**Marcus:** "I'm probably the wrong person for this conversation, no offense. I'm not really a meal-kit person. My food situation is, like, dining hall meal plan when I can use it, and the rest is whatever's cheap and fast. Trader Joe's frozen stuff. Eggs. Pasta. Costco runs with my roommates once a month.
|
||||
|
||||
I tried a meal kit when my mom signed me up as a 'starting college' gift. It was nice, but it was $80 a week for two people, which is way out of budget. And honestly, the thing they don't get is that I don't have time at 7 PM to cook. I have time at 11 PM. I want to grab something on my way back from the library and not think.
|
||||
|
||||
If you're trying to do meal kits for college students — and I don't really think you should — but if you were, the price has to be like $5 a meal. And it has to be food that survives in a fridge for two weeks because we don't shop on a weekly schedule. We shop when we run out.
|
||||
|
||||
Snacks matter more to us than meals, actually. Like, the moment when I'm desperate is 10 PM in the library, not 7 PM. Solve that and I might pay attention."
|
||||
|
||||
**Interviewer:** Do you have any dietary restrictions?
|
||||
|
||||
**Marcus:** "I'm vegetarian, sort of. I eat fish. So pescatarian I guess. But mostly because meat is expensive."
|
||||
|
||||
---
|
||||
|
||||
## Interview 3 — Eleanor, 71, retired, lives alone
|
||||
|
||||
**Household:** Widow, lives alone in the same single-family home she's been in for 36 years. Suburban Cleveland. Two adult children live out of state. Drives during the day but no longer at night.
|
||||
|
||||
**Eleanor:** "I'll tell you what I miss. I miss cooking for someone. My husband Walter passed five years ago this June, and the hardest thing — well, not the hardest, but one of them — is that I don't really cook anymore. I cook eggs. I cook a piece of fish. I open a can of soup more often than I'd like to admit. I used to make Sunday dinners that would feed eight people. Now I eat standing up at the counter half the time.
|
||||
|
||||
The grocery store is genuinely difficult. I drive there, I park in the back of the lot because I can usually find a spot, and then it's a long walk in. I get tired by the time I'm in the dairy aisle. Carrying the bags from the car to the kitchen — that's a project. My daughter wants me to use grocery delivery and I've tried, but the apps are all designed for someone twenty years younger than me. Tiny buttons, asking me to click through six screens to add a single tomato. I get frustrated and give up.
|
||||
|
||||
What I would actually want — and I've thought about this — is meals for one person. Real portions. Not a frozen TV dinner. Not 'serves four, freeze the rest.' I have a freezer full of leftovers I'll never eat. Just one good meal that I can heat up or finish cooking, that tastes like food I would have made.
|
||||
|
||||
I'm watching my sodium because of my blood pressure. Watching sugar too — borderline diabetic, my doctor calls it. So I read labels carefully. The frozen meals you can buy in stores are loaded with both. I'd pay more for less of both, if I trusted that the labels were accurate.
|
||||
|
||||
The other thing — and please put this in your notes — is that I'm careful about who I let into my house and what I sign up for. There are scams. My friend Marian got taken for $4,000 last year. So if some company asks for my information, I want to know who they are. I want a real customer service number with a real person. I want it to feel like a real business, not a flashy app.
|
||||
|
||||
I don't want it to feel like 'old-people food.' That's an important thing. The Meals on Wheels program in our township is wonderful but it's clearly designed for people who are sicker than I am. I'm not sick. I just live alone and grocery shopping is a lot."
|
||||
|
||||
**Interviewer:** What would the ideal experience look like?
|
||||
|
||||
**Eleanor:** "Someone delivers good food, in real portions, made with the kind of ingredients I would have used. I can heat it up or finish it. It doesn't taste like a hospital. The packaging is something I can actually open without a knife. I get a phone call once in a while from a person, not a robot. The price is reasonable — I'm on a fixed income but I can spend on things that matter. Eating well matters."
|
||||
|
||||
---
|
||||
|
||||
## Interview 4 — Dimitri, 44, Director of Food Services, mid-size hospital
|
||||
|
||||
**Organization:** 340-bed hospital, food service operates patient meals, staff cafeteria, and a small retail café. Reports to the COO.
|
||||
|
||||
**Dimitri:** "I'm probably also not who you should be talking to, but happy to share. We don't buy meal kits. We buy ingredients in institutional volumes from Sysco and US Foods primarily, with some specialty buys for dietary restrictions. We feed about 1,800 people a day across patients, staff, and visitors.
|
||||
|
||||
What I deal with that you might find interesting is the patient diet matrix. We have to produce meals that meet specific medical requirements — renal diets, cardiac diets, diabetic diets, dysphagia textures, allergen-free, religious restrictions. Each patient gets a tray that meets their specific orders. It's complex.
|
||||
|
||||
If a meal kit company wanted to play in our world, they'd be selling to me at the institutional level — bulk pricing, multi-year contracts, ability to deliver consistent specs across thousands of meals. That's not really a 'meal kit' anymore; that's wholesale food service.
|
||||
|
||||
Now, where I might be a buyer in a different sense: my staff cafeteria. We're trying to compete with grab-and-go culture. If you produced ready-to-heat meals targeting our staff demographic — nurses, doctors, techs, who are working 12-hour shifts and want real food, not a sandwich — I might pay attention. But the price point would have to make sense for institutional buying, and you'd need to integrate with our existing food safety protocols.
|
||||
|
||||
For consumer meal kits, I'm probably not your customer. We did try one when my wife and I were both working through COVID, and we let the subscription lapse after about three months. Fine product, just didn't fit our patterns."
|
||||
|
||||
---
|
||||
|
||||
## Note from the research lead
|
||||
|
||||
These four interviews were selected to represent the range of segments we've considered. The team's working hypothesis after this round is that the older-adult-living-alone segment is the strongest fit for the Pantry Bridge concept — distinctive needs, acknowledged friction with current options, willingness to pay for quality, and a meaningful unmet need around portion sizing and trust. Working parent segment is well-served by existing competitors. College student segment is too price-sensitive. Institutional segment is a different business entirely.
|
||||
|
||||
The brief should target the older-adult segment based on the Eleanor interview specifically.
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
# Q2 Brainstorm — Hatchet & Loop Studio
|
||||
|
||||
**Date:** 2026-04-15
|
||||
**Present:** Mira, Devon, Sofia, Theo
|
||||
|
||||
Annual Q2 ideation. We're hunting for our next side-project-that-could-become-a-product. Format: 10 minutes wild ideas, 3 minutes per idea on quick takes, then we vote on one to dig into.
|
||||
|
||||
## Round 1: Everything goes
|
||||
|
||||
(10 minutes, no filtering. We just throw stuff out.)
|
||||
|
||||
- A weather app that tracks your mood alongside the forecast (Devon)
|
||||
- Meditation chime that learns your sleep cycle and chimes only at the right wake-window (Theo)
|
||||
- A podcasting tool for non-podcasters — like, you record voice notes and it auto-edits and posts (Sofia)
|
||||
- Craft beer subscription with detailed brewer notes you can read while drinking (Mira)
|
||||
- AI sommelier app that tells you what wine to buy at Trader Joe's based on a photo (Theo)
|
||||
- Office-plant-care subscription with auto-replacement when one dies (Devon)
|
||||
- Neighborhood ride coordinator — like a private Uber pool for one neighborhood (Mira)
|
||||
- Neighborhood compost coordinator — connect people with food scraps to people with active compost piles (Sofia)
|
||||
- Cookbook app where you click "I'll cook this Tuesday" and it auto-generates the shopping list and sends it to your delivery service (Devon)
|
||||
- AR home staging — point your phone at a room and it shows you what it would look like with different furniture (Theo)
|
||||
|
||||
## Round 2: Quick takes
|
||||
|
||||
### Weather + mood
|
||||
|
||||
Devon: "I'd use it." Sofia thinks the data correlation isn't strong enough to be useful — interesting concept but the science doesn't support a product. Park.
|
||||
|
||||
### Sleep-cycle meditation chime
|
||||
|
||||
Theo's pitch — exists already (Sleep Cycle, etc.). Differentiation would be the chime, which is hardware. Out of scope for a software-first studio.
|
||||
|
||||
### Podcasting for non-podcasters
|
||||
|
||||
Sofia: "There are like fifty of these." She's right. Skip.
|
||||
|
||||
### Craft beer subscription
|
||||
|
||||
Mira admits this is mostly her wanting it for herself. We're not in the logistics business. Skip.
|
||||
|
||||
### AI sommelier
|
||||
|
||||
Theo: "The model would have to be incredibly good at label recognition." Sofia: "And there's already Vivino." Skip.
|
||||
|
||||
### Office-plant-care subscription
|
||||
|
||||
Devon: "I worked at a place that had this. They were always sad plants." Operational nightmare, low margin. Skip.
|
||||
|
||||
### Neighborhood ride coordinator
|
||||
|
||||
Mira: "Saturated. Lyft and Uber both have pool features. Uber Neighborhood was a thing and they killed it." Skip.
|
||||
|
||||
### Neighborhood compost coordinator
|
||||
|
||||
Sofia: "Hear me out. Cities are mandating organic waste separation but most apartments don't have a composting option. People in single-family homes often have active compost piles and would love more material. There's a missing match-making layer." General agreement this is more interesting than the others. Theo: "How do we make money?" Sofia: "Eventually a small fee on the compost-pile-host side, but for MVP just free and prove the demand." Group lights up. We agree to dig into this in Round 3.
|
||||
|
||||
### Cookbook → shopping list
|
||||
|
||||
Devon's pitch. Already exists (Mealime, Plan to Eat). Skip.
|
||||
|
||||
### AR home staging
|
||||
|
||||
Theo: "IKEA already has this." Skip.
|
||||
|
||||
## Round 3: Compost coordinator deep dive
|
||||
|
||||
We spent 45 minutes on this. Notes:
|
||||
|
||||
**Who is the user?**
|
||||
Two-sided market. Side A: apartment dwellers and renters who generate food scraps and want them composted (motivated by environmental values, sometimes by city mandates). Side B: people with active backyard compost piles who want more "browns and greens" — single-family homeowners, urban farmers, school gardens, community gardens.
|
||||
|
||||
Sofia thinks Side A is the harder side to acquire (weak intent — recycling-adjacent behavior). Side B is easier but smaller. The product has to be designed around Side A's friction points.
|
||||
|
||||
**Geographic scope.**
|
||||
Hyperlocal — neighborhood-level, not city-wide. The whole point is short-distance handoff: Side A doesn't want to drive their food scraps across town. We're talking 5-block radius matches.
|
||||
|
||||
**Business model (later).**
|
||||
Free at launch. Eventually: subscription for Side B (compost-pile hosts) — they pay to access more matches. Side A always free. Possibly partner with cities that have green-waste mandates (B2G channel).
|
||||
|
||||
**Technical approach.**
|
||||
Web app first, mobile second. Map-based discovery. Identity verification light-touch (apartment dwellers are skittish about strangers; need trust signals). Match-and-message pattern, not real-time logistics.
|
||||
|
||||
**Competition.**
|
||||
ShareWaste exists but is global and not focused on hyperlocal density. Some city-specific apps (NYC's GrowNYC). No one has cracked the neighborhood-density model.
|
||||
|
||||
**MVP scope.**
|
||||
One pilot neighborhood. Sofia knows people in a Portland neighborhood (Sunnyside / Hawthorne area) where compost culture is strong. Start there.
|
||||
|
||||
**Open questions.**
|
||||
- How do we acquire Side A (apartment dwellers)? They have low intent and lots of competing options (just throwing scraps in trash, paying a service, signing up for city pickup if available).
|
||||
- What does the trust layer look like? Reviews? Vouching? Real-name only?
|
||||
- Does Side B saturation become a problem fast (one compost pile can only take so much)? How do we route demand?
|
||||
|
||||
## Action items
|
||||
|
||||
- Sofia: write up the compost coordinator concept as a brief by next Wednesday. Take it to Mira and Devon for first read.
|
||||
- Devon: research ShareWaste's user numbers and any teardowns of why they haven't dominated.
|
||||
- Theo: sketch the trust-layer UX concepts.
|
||||
- Mira: talk to Sofia's Portland contacts about doing user interviews.
|
||||
|
||||
Next meeting: 2026-04-29 — review brief draft, decide on go/no-go.
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
[
|
||||
{ "query": "Help me write a product brief for my new app idea", "should_trigger": true },
|
||||
{ "query": "I need to draft a brief for a feature we're scoping", "should_trigger": true },
|
||||
{ "query": "Update this product brief — we changed the target audience", "should_trigger": true },
|
||||
{ "query": "Review my brief and tell me if it's investor-ready", "should_trigger": true },
|
||||
{ "query": "Validate this brief before our board meeting Monday", "should_trigger": true },
|
||||
{ "query": "Pressure-test my product brief for weak assumptions", "should_trigger": true },
|
||||
{ "query": "Help me put together a one-page summary of my product idea for stakeholders", "should_trigger": true },
|
||||
|
||||
{ "query": "Help me brainstorm ideas for a new feature", "should_trigger": false },
|
||||
{ "query": "Write me a PRD for our checkout flow redesign", "should_trigger": false },
|
||||
{ "query": "Run a working backwards exercise for my product idea", "should_trigger": false },
|
||||
{ "query": "Document this existing codebase for AI agents", "should_trigger": false },
|
||||
{ "query": "Help me write user stories for the next sprint", "should_trigger": false },
|
||||
{ "query": "Generate a system architecture for my app", "should_trigger": false },
|
||||
{ "query": "Write code to parse JSON in Python", "should_trigger": false },
|
||||
{ "query": "Create a marketing landing page for my product", "should_trigger": false }
|
||||
]
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
{
|
||||
"name": "bmad-method",
|
||||
"version": "6.6.0",
|
||||
"version": "6.7.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "bmad-method",
|
||||
"version": "6.6.0",
|
||||
"version": "6.7.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@clack/core": "^1.0.0",
|
||||
"@clack/prompts": "^1.0.0",
|
||||
"@clack/core": "^1.3.1",
|
||||
"@clack/prompts": "^1.4.0",
|
||||
"@kayvan/markdown-tree-parser": "^1.6.1",
|
||||
"chalk": "^4.1.2",
|
||||
"commander": "^14.0.0",
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
"yaml-lint": "^1.7.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20.0.0"
|
||||
"node": ">=20.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@astrojs/compiler": {
|
||||
|
|
@ -752,24 +752,31 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@clack/core": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@clack/core/-/core-1.0.0.tgz",
|
||||
"integrity": "sha512-Orf9Ltr5NeiEuVJS8Rk2XTw3IxNC2Bic3ash7GgYeA8LJ/zmSNpSQ/m5UAhe03lA6KFgklzZ5KTHs4OAMA/SAQ==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@clack/core/-/core-1.3.1.tgz",
|
||||
"integrity": "sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"picocolors": "^1.0.0",
|
||||
"fast-wrap-ansi": "^0.2.0",
|
||||
"sisteransi": "^1.0.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 20.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@clack/prompts": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.0.0.tgz",
|
||||
"integrity": "sha512-rWPXg9UaCFqErJVQ+MecOaWsozjaxol4yjnmYcGNipAWzdaWa2x+VJmKfGq7L0APwBohQOYdHC+9RO4qRXej+A==",
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.4.0.tgz",
|
||||
"integrity": "sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@clack/core": "1.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"@clack/core": "1.3.1",
|
||||
"fast-string-width": "^3.0.2",
|
||||
"fast-wrap-ansi": "^0.2.0",
|
||||
"sisteransi": "^1.0.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 20.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@ctrl/tinycolor": {
|
||||
|
|
@ -2428,9 +2435,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@jest/reporters/node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
|
||||
"integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -4034,9 +4041,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/anymatch/node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
|
||||
"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
|
|
@ -4101,15 +4108,15 @@
|
|||
}
|
||||
},
|
||||
"node_modules/astro": {
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmjs.org/astro/-/astro-5.17.1.tgz",
|
||||
"integrity": "sha512-oD3tlxTaVWGq/Wfbqk6gxzVRz98xa/rYlpe+gU2jXJMSD01k6sEDL01ZlT8mVSYB/rMgnvIOfiQQ3BbLdN237A==",
|
||||
"version": "5.18.1",
|
||||
"resolved": "https://registry.npmjs.org/astro/-/astro-5.18.1.tgz",
|
||||
"integrity": "sha512-m4VWilWZ+Xt6NPoYzC4CgGZim/zQUO7WFL0RHCH0AiEavF1153iC3+me2atDvXpf/yX4PyGUeD8wZLq1cirT3g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@astrojs/compiler": "^2.13.0",
|
||||
"@astrojs/internal-helpers": "0.7.5",
|
||||
"@astrojs/markdown-remark": "6.3.10",
|
||||
"@astrojs/internal-helpers": "0.7.6",
|
||||
"@astrojs/markdown-remark": "6.3.11",
|
||||
"@astrojs/telemetry": "3.3.0",
|
||||
"@capsizecss/unpack": "^4.0.0",
|
||||
"@oslojs/encoding": "^1.1.0",
|
||||
|
|
@ -4130,7 +4137,7 @@
|
|||
"dlv": "^1.1.3",
|
||||
"dset": "^3.1.4",
|
||||
"es-module-lexer": "^1.7.0",
|
||||
"esbuild": "^0.25.0",
|
||||
"esbuild": "^0.27.3",
|
||||
"estree-walker": "^3.0.3",
|
||||
"flattie": "^1.1.1",
|
||||
"fontace": "~0.4.0",
|
||||
|
|
@ -4200,6 +4207,485 @@
|
|||
"astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@astrojs/internal-helpers": {
|
||||
"version": "0.7.6",
|
||||
"resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.7.6.tgz",
|
||||
"integrity": "sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/astro/node_modules/@astrojs/markdown-remark": {
|
||||
"version": "6.3.11",
|
||||
"resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.3.11.tgz",
|
||||
"integrity": "sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@astrojs/internal-helpers": "0.7.6",
|
||||
"@astrojs/prism": "3.3.0",
|
||||
"github-slugger": "^2.0.0",
|
||||
"hast-util-from-html": "^2.0.3",
|
||||
"hast-util-to-text": "^4.0.2",
|
||||
"import-meta-resolve": "^4.2.0",
|
||||
"js-yaml": "^4.1.1",
|
||||
"mdast-util-definitions": "^6.0.0",
|
||||
"rehype-raw": "^7.0.0",
|
||||
"rehype-stringify": "^10.0.1",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"remark-parse": "^11.0.0",
|
||||
"remark-rehype": "^11.1.2",
|
||||
"remark-smartypants": "^3.0.2",
|
||||
"shiki": "^3.21.0",
|
||||
"smol-toml": "^1.6.0",
|
||||
"unified": "^11.0.5",
|
||||
"unist-util-remove-position": "^5.0.0",
|
||||
"unist-util-visit": "^5.0.0",
|
||||
"unist-util-visit-parents": "^6.0.2",
|
||||
"vfile": "^6.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
|
||||
"integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"aix"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/android-arm": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
|
||||
"integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/android-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
|
||||
"integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz",
|
||||
"integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz",
|
||||
"integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz",
|
||||
"integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz",
|
||||
"integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz",
|
||||
"integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz",
|
||||
"integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/netbsd-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/openbsd-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/openharmony-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openharmony"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"sunos"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz",
|
||||
"integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz",
|
||||
"integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz",
|
||||
"integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/@img/sharp-darwin-arm64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz",
|
||||
|
|
@ -4662,6 +5148,48 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/astro/node_modules/esbuild": {
|
||||
"version": "0.27.7",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz",
|
||||
"integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.27.7",
|
||||
"@esbuild/android-arm": "0.27.7",
|
||||
"@esbuild/android-arm64": "0.27.7",
|
||||
"@esbuild/android-x64": "0.27.7",
|
||||
"@esbuild/darwin-arm64": "0.27.7",
|
||||
"@esbuild/darwin-x64": "0.27.7",
|
||||
"@esbuild/freebsd-arm64": "0.27.7",
|
||||
"@esbuild/freebsd-x64": "0.27.7",
|
||||
"@esbuild/linux-arm": "0.27.7",
|
||||
"@esbuild/linux-arm64": "0.27.7",
|
||||
"@esbuild/linux-ia32": "0.27.7",
|
||||
"@esbuild/linux-loong64": "0.27.7",
|
||||
"@esbuild/linux-mips64el": "0.27.7",
|
||||
"@esbuild/linux-ppc64": "0.27.7",
|
||||
"@esbuild/linux-riscv64": "0.27.7",
|
||||
"@esbuild/linux-s390x": "0.27.7",
|
||||
"@esbuild/linux-x64": "0.27.7",
|
||||
"@esbuild/netbsd-arm64": "0.27.7",
|
||||
"@esbuild/netbsd-x64": "0.27.7",
|
||||
"@esbuild/openbsd-arm64": "0.27.7",
|
||||
"@esbuild/openbsd-x64": "0.27.7",
|
||||
"@esbuild/openharmony-arm64": "0.27.7",
|
||||
"@esbuild/sunos-x64": "0.27.7",
|
||||
"@esbuild/win32-arm64": "0.27.7",
|
||||
"@esbuild/win32-ia32": "0.27.7",
|
||||
"@esbuild/win32-x64": "0.27.7"
|
||||
}
|
||||
},
|
||||
"node_modules/astro/node_modules/sharp": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz",
|
||||
|
|
@ -4994,9 +5522,9 @@
|
|||
"license": "ISC"
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.12",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||
"version": "1.1.14",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz",
|
||||
"integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -5548,9 +6076,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/cookie-es": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz",
|
||||
"integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==",
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz",
|
||||
"integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
|
|
@ -5770,9 +6298,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/defu": {
|
||||
"version": "6.1.4",
|
||||
"resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
|
||||
"integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
|
||||
"version": "6.1.7",
|
||||
"resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz",
|
||||
"integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
|
|
@ -6811,6 +7339,30 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-string-truncated-width": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz",
|
||||
"integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-string-width": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz",
|
||||
"integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-string-truncated-width": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-wrap-ansi": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.0.tgz",
|
||||
"integrity": "sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-string-width": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/fastq": {
|
||||
"version": "1.20.1",
|
||||
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
|
||||
|
|
@ -6920,9 +7472,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/flatted": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz",
|
||||
"integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==",
|
||||
"version": "3.4.2",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz",
|
||||
"integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
|
|
@ -7129,9 +7681,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/glob/node_modules/brace-expansion": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
|
||||
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
|
||||
"version": "5.0.5",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
|
||||
"integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"balanced-match": "^4.0.2"
|
||||
|
|
@ -7217,15 +7769,15 @@
|
|||
"license": "ISC"
|
||||
},
|
||||
"node_modules/h3": {
|
||||
"version": "1.15.8",
|
||||
"resolved": "https://registry.npmjs.org/h3/-/h3-1.15.8.tgz",
|
||||
"integrity": "sha512-iOH6Vl8mGd9nNfu9C0IZ+GuOAfJHcyf3VriQxWaSWIB76Fg4BnFuk4cxBxjmQSSxJS664+pgjP6e7VBnUzFfcg==",
|
||||
"version": "1.15.11",
|
||||
"resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz",
|
||||
"integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cookie-es": "^1.2.2",
|
||||
"cookie-es": "^1.2.3",
|
||||
"crossws": "^0.3.5",
|
||||
"defu": "^6.1.4",
|
||||
"defu": "^6.1.6",
|
||||
"destr": "^2.0.5",
|
||||
"iron-webcrypto": "^1.2.1",
|
||||
"node-mock-http": "^1.0.4",
|
||||
|
|
@ -8363,9 +8915,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/jest-config/node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
|
||||
"integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -8765,9 +9317,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/jest-runtime/node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
|
||||
"integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -10709,9 +11261,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/micromatch/node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
|
||||
"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
|
|
@ -11403,9 +11955,9 @@
|
|||
"license": "ISC"
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
|
||||
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
||||
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
|
|
@ -11518,9 +12070,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.5.6",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
|
||||
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
|
||||
"version": "8.5.13",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.13.tgz",
|
||||
"integrity": "sha512-qif0+jGGZoLWdHey3UFHHWP0H7Gbmsk8T5VEqyYFbWqPr1XqvLGBbk/sl8V5exGmcYJklJOhOQq1pV9IcsiFag==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -12602,9 +13154,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/smol-toml": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.0.tgz",
|
||||
"integrity": "sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==",
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz",
|
||||
"integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"engines": {
|
||||
|
|
@ -13093,9 +13645,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/test-exclude/node_modules/brace-expansion": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
|
||||
"integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -13831,9 +14383,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "6.4.1",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
|
||||
"integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
|
||||
"version": "6.4.2",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz",
|
||||
"integrity": "sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
|
@ -14129,9 +14681,9 @@
|
|||
"license": "ISC"
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.8.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz",
|
||||
"integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==",
|
||||
"version": "2.8.4",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz",
|
||||
"integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==",
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"yaml": "bin.mjs"
|
||||
|
|
|
|||
13
package.json
13
package.json
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"$schema": "https://json.schemastore.org/package.json",
|
||||
"name": "bmad-method",
|
||||
"version": "6.6.0",
|
||||
"version": "6.7.1",
|
||||
"description": "Breakthrough Method of Agile AI-driven Development",
|
||||
"keywords": [
|
||||
"agile",
|
||||
|
|
@ -39,12 +39,13 @@
|
|||
"lint:fix": "eslint . --ext .js,.cjs,.mjs,.yaml --fix",
|
||||
"lint:md": "markdownlint-cli2 \"**/*.md\"",
|
||||
"prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
|
||||
"quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run test:install && npm run test:urls && npm run validate:refs && npm run validate:skills",
|
||||
"quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run test:install && npm run test:urls && npm run test:renderer && npm run validate:refs && npm run validate:skills",
|
||||
"rebundle": "node tools/installer/bundlers/bundle-web.js rebundle",
|
||||
"test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:channels && npm run lint && npm run lint:md && npm run format:check",
|
||||
"test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:channels && npm run test:renderer && npm run lint && npm run lint:md && npm run format:check",
|
||||
"test:channels": "node test/test-installer-channels.js",
|
||||
"test:install": "node test/test-installation-components.js",
|
||||
"test:refs": "node test/test-file-refs-csv.js",
|
||||
"test:renderer": "node test/test-quick-dev-renderer.js",
|
||||
"test:urls": "node test/test-parse-source-urls.js",
|
||||
"validate:refs": "node tools/validate-file-refs.js --strict",
|
||||
"validate:skills": "node tools/validate-skills.js --strict"
|
||||
|
|
@ -66,8 +67,8 @@
|
|||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@clack/core": "^1.0.0",
|
||||
"@clack/prompts": "^1.0.0",
|
||||
"@clack/core": "^1.3.1",
|
||||
"@clack/prompts": "^1.4.0",
|
||||
"@kayvan/markdown-tree-parser": "^1.6.1",
|
||||
"chalk": "^4.1.2",
|
||||
"commander": "^14.0.0",
|
||||
|
|
@ -103,7 +104,7 @@
|
|||
"yaml-lint": "^1.7.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20.0.0"
|
||||
"node": ">=20.12.0"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
|
|
|||
|
|
@ -52,3 +52,8 @@ bmad-bmm-sprint-planning
|
|||
bmad-bmm-sprint-status
|
||||
bmad-bmm-technical-research
|
||||
bmad-bmm-validate-prd
|
||||
|
||||
# Removed skills (post-v6.7.x)
|
||||
# bmad-distillator: superseded by bmad-spec (universal intent distiller with
|
||||
# preservation-validated contract for downstream skills).
|
||||
bmad-distillator
|
||||
|
|
|
|||
|
|
@ -1,117 +1,88 @@
|
|||
---
|
||||
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
|
||||
1. Resolve customization: `python3 {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`.
|
||||
7. Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||
|
||||
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
|
||||
## Intent Operating Modes
|
||||
|
||||
**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:
|
||||
**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}/` and write `brief.md` there with YAML frontmatter (title, status, created, updated). For Update and Validate, `{doc_workspace}` is the existing folder of the brief being targeted.
|
||||
|
||||
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
|
||||
**Update.** Reconcile an existing brief with a change signal. Before proposing changes, read the brief, addendum, `.decision-log.md`, and original inputs — and run the `## Discovery` posture against the change signal (a patch applied without context becomes drift). Surface conflicts with prior decisions before changing. Headless override: log the reversal to `.decision-log.md`, then apply; halt `blocked` if intent is ambiguous. If the change is fundamental, offer Create instead of patching.
|
||||
|
||||
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.
|
||||
**Validate.** Honest critique against the brief's own purpose. Read the brief, the addendum if present, `.decision-log.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.
|
||||
|
||||
### Step 2: Execute Prepend Steps
|
||||
## Headless Mode
|
||||
|
||||
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
||||
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:
|
||||
|
||||
### Step 3: Load Persistent Facts
|
||||
```json
|
||||
{
|
||||
"status": "complete",
|
||||
"intent": "create",
|
||||
"brief": "{doc_workspace}/brief.md",
|
||||
"addendum": "{doc_workspace}/addendum.md",
|
||||
"decision_log": "{doc_workspace}/.decision-log.md",
|
||||
"open_questions": [],
|
||||
"external_handoffs": [
|
||||
{"directive": "Confluence upload", "tool": "corp:confluence_upload", "url": "https://confluence.corp/PROD/123", "status": "ok"}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
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.
|
||||
```json
|
||||
{
|
||||
"status": "complete",
|
||||
"intent": "validate",
|
||||
"offer_to_update": true
|
||||
}
|
||||
```
|
||||
|
||||
### Step 4: Load Config
|
||||
Omit keys for artifacts that were not produced.
|
||||
|
||||
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
|
||||
## Discovery
|
||||
|
||||
### Step 5: Greet the User
|
||||
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`.
|
||||
|
||||
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.
|
||||
Once stakes are read and the dump is captured, offer the working mode in the user's language:
|
||||
|
||||
### Step 6: Execute Append Steps
|
||||
- **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."
|
||||
|
||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||
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.
|
||||
|
||||
Activation is complete. Begin the workflow at Stage 1 below.
|
||||
## Constraints
|
||||
|
||||
## Stage 1: Understand Intent
|
||||
- **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`, `.decision-log.md`) exists on disk and the user knows the path.
|
||||
- **File roles.** `.decision-log.md` is canonical memory and audit trail — every decision, change, and override (including headless overrides) is recorded there as the conversation unfolds. `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.
|
||||
|
||||
**Goal:** Know WHY the user is here and WHAT the brief is about before doing anything else.
|
||||
## Finalize
|
||||
|
||||
**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.
|
||||
|
||||
**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.
|
||||
|
||||
**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
|
||||
|
||||
**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?"
|
||||
|
||||
**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
|
||||
|
||||
**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.
|
||||
|
||||
**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.
|
||||
|
||||
**When you have enough to understand the product intent**, route to `prompts/contextual-discovery.md` with the current mode.
|
||||
|
||||
## Stages
|
||||
|
||||
| # | 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` |
|
||||
1. Decision log audit + addendum review: the user ends this step with an explicit, shared accounting of how the meaningful contents of `.decision-log.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"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
|
@ -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",
|
||||
"preceded-by": ["brainstorming", "perform-research"],
|
||||
"followed-by": ["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.
|
||||
|
|
@ -55,19 +55,9 @@ principles = [
|
|||
# registered skill by name) or `prompt` (executes the prompt text directly).
|
||||
|
||||
[[agent.menu]]
|
||||
code = "CP"
|
||||
description = "Expert led facilitation to produce your Product Requirements Document"
|
||||
skill = "bmad-create-prd"
|
||||
|
||||
[[agent.menu]]
|
||||
code = "VP"
|
||||
description = "Validate a PRD is comprehensive, lean, well organized and cohesive"
|
||||
skill = "bmad-validate-prd"
|
||||
|
||||
[[agent.menu]]
|
||||
code = "EP"
|
||||
description = "Update an existing Product Requirements Document"
|
||||
skill = "bmad-edit-prd"
|
||||
code = "PRD"
|
||||
description = "Create, update, or validate a PRD — state your intent or the skill will ask"
|
||||
skill = "bmad-prd"
|
||||
|
||||
[[agent.menu]]
|
||||
code = "CE"
|
||||
|
|
|
|||
|
|
@ -57,4 +57,4 @@ principles = [
|
|||
[[agent.menu]]
|
||||
code = "CU"
|
||||
description = "Guidance through realizing the plan for your UX to inform architecture and implementation"
|
||||
skill = "bmad-create-ux-design"
|
||||
skill = "bmad-ux"
|
||||
|
|
|
|||
|
|
@ -1,104 +1,30 @@
|
|||
---
|
||||
name: bmad-create-prd
|
||||
description: 'Create a PRD from scratch. Use when the user says "lets create a product requirements document" or "I want to create a new PRD"'
|
||||
description: 'DEPRECATED — consolidated into bmad-prd create intent - this skill will be removed in v7 in favor of `bmad-prd`.'
|
||||
---
|
||||
|
||||
# PRD Create Workflow
|
||||
# DEPRECATED — forwards to bmad-prd (create intent)
|
||||
|
||||
**Goal:** Create comprehensive PRDs through structured workflow facilitation.
|
||||
|
||||
**Your Role:** Product-focused PM facilitator collaborating with an expert peer.
|
||||
|
||||
You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
|
||||
|
||||
## Conventions
|
||||
|
||||
- Bare paths (e.g. `steps-c/step-01-init.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.
|
||||
|
||||
## WORKFLOW ARCHITECTURE
|
||||
|
||||
This uses **step-file architecture** for disciplined execution:
|
||||
|
||||
### Core Principles
|
||||
|
||||
- **Micro-file Design**: Each step is a self-contained instruction file that is a part of an overall workflow that must be followed exactly
|
||||
- **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
|
||||
- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
|
||||
- **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document
|
||||
- **Append-Only Building**: Build documents by appending content as directed to the output file
|
||||
|
||||
### Step Processing Rules
|
||||
|
||||
1. **READ COMPLETELY**: Always read the entire step file before taking any action
|
||||
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
|
||||
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
|
||||
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
|
||||
5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
|
||||
6. **LOAD NEXT**: When directed, read fully and follow the next step file
|
||||
|
||||
### Critical Rules (NO EXCEPTIONS)
|
||||
|
||||
- 🛑 **NEVER** load multiple step files simultaneously
|
||||
- 📖 **ALWAYS** read entire step file before execution
|
||||
- 🚫 **NEVER** skip steps or optimize the sequence
|
||||
- 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
|
||||
- 🎯 **ALWAYS** follow the exact instructions in the step file
|
||||
- ⏸️ **ALWAYS** halt at menus and wait for user input
|
||||
- 📋 **NEVER** create mental todo lists from future steps
|
||||
This skill was consolidated into `bmad-prd`. It is retained as a thin compatibility shim so existing invocations by name and `_bmad/custom/bmad-create-prd.toml` override files keep working. New work should invoke `bmad-prd` directly — it detects create / update / validate intent from the conversation.
|
||||
|
||||
## On Activation
|
||||
|
||||
### Step 1: Resolve the Workflow Block
|
||||
1. Resolve customization: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`. This picks up any `{project-root}/_bmad/custom/bmad-create-prd.toml` and `bmad-create-prd.user.toml` overrides for the legacy fields (`activation_steps_prepend`, `activation_steps_append`, `persistent_facts`, `on_complete`).
|
||||
|
||||
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
|
||||
2. Load `{project-root}/_bmad/bmm/config.yaml` (and `config.user.yaml` if present) to resolve `{user_name}` and `{communication_language}`.
|
||||
|
||||
**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:
|
||||
3. Emit a deprecation notice to the user in `{communication_language}`:
|
||||
|
||||
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
|
||||
> Notice: `bmad-create-prd` is deprecated and will be removed in a future release. It now forwards to `bmad-prd` with create intent. To silence this notice and access the full new customization surface (`prd_template`, `validation_checklist`, `doc_standards`, `external_sources`, `external_handoffs`, `output_dir`, `output_folder_name`), migrate `_bmad/custom/bmad-create-prd.toml` to `_bmad/custom/bmad-prd.toml` and invoke `bmad-prd` directly next time. Customization fields that were in this version still remain in the new version and will be respected if present in `_bmad/custom/bmad-prd.toml`, but the new version also supports additional fields that you can take advantage of by migrating.
|
||||
|
||||
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.
|
||||
4. Invoke `bmad-prd` with the following context. Pass these as the activating context so `bmad-prd` honors them instead of resolving its own customization from scratch:
|
||||
|
||||
### Step 2: Execute Prepend Steps
|
||||
- **Intent:** `create` — skip `bmad-prd`'s usual intent detection step.
|
||||
- **Pre-resolved legacy customization** — use these in place of resolving from `bmad-prd`'s own `customize.toml` for the four legacy fields. For everything else (`prd_template`, `validation_checklist`, `validation_report_template`, `doc_standards`, `output_dir`, `output_folder_name`, `external_sources`, `external_handoffs`), use `bmad-prd`'s own defaults and overrides as normal:
|
||||
- `activation_steps_prepend` = the resolved value from step 1
|
||||
- `activation_steps_append` = the resolved value from step 1
|
||||
- `persistent_facts` = the resolved value from step 1
|
||||
- `on_complete` = the resolved value from step 1
|
||||
- **Original user input:** forward whatever the user said when invoking this skill verbatim.
|
||||
|
||||
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
|
||||
|
||||
Greet `{user_name}`, speaking in `{communication_language}`.
|
||||
|
||||
### Step 6: Execute Append Steps
|
||||
|
||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||
|
||||
Activation is complete. Begin the workflow below.
|
||||
|
||||
## Paths
|
||||
|
||||
- `outputFile` = `{planning_artifacts}/prd.md`
|
||||
|
||||
## Execution
|
||||
|
||||
✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
|
||||
✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
|
||||
|
||||
**Create Mode: Creating a new PRD from scratch.**
|
||||
|
||||
Read fully and follow: `./steps-c/step-01-init.md`
|
||||
`bmad-prd` takes the workflow from here. Do not execute any further steps in this shim.
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
domain,signals,complexity,key_concerns,required_knowledge,suggested_workflow,web_searches,special_sections
|
||||
healthcare,"medical,diagnostic,clinical,FDA,patient,treatment,HIPAA,therapy,pharma,drug",high,"FDA approval;Clinical validation;HIPAA compliance;Patient safety;Medical device classification;Liability","Regulatory pathways;Clinical trial design;Medical standards;Data privacy;Integration requirements","domain-research","FDA software medical device guidance {date};HIPAA compliance software requirements;Medical software standards {date};Clinical validation software","clinical_requirements;regulatory_pathway;validation_methodology;safety_measures"
|
||||
fintech,"payment,banking,trading,investment,crypto,wallet,transaction,KYC,AML,funds,fintech",high,"Regional compliance;Security standards;Audit requirements;Fraud prevention;Data protection","KYC/AML requirements;PCI DSS;Open banking;Regional laws (US/EU/APAC);Crypto regulations","domain-research","fintech regulations {date};payment processing compliance {date};open banking API standards;cryptocurrency regulations {date}","compliance_matrix;security_architecture;audit_requirements;fraud_prevention"
|
||||
govtech,"government,federal,civic,public sector,citizen,municipal,voting",high,"Procurement rules;Security clearance;Accessibility (508);FedRAMP;Privacy;Transparency","Government procurement;Security frameworks;Accessibility standards;Privacy laws;Open data requirements","domain-research","government software procurement {date};FedRAMP compliance requirements;section 508 accessibility;government security standards","procurement_compliance;security_clearance;accessibility_standards;transparency_requirements"
|
||||
edtech,"education,learning,student,teacher,curriculum,assessment,K-12,university,LMS",medium,"Student privacy (COPPA/FERPA);Accessibility;Content moderation;Age verification;Curriculum standards","Educational privacy laws;Learning standards;Accessibility requirements;Content guidelines;Assessment validity","domain-research","educational software privacy {date};COPPA FERPA compliance;WCAG education requirements;learning management standards","privacy_compliance;content_guidelines;accessibility_features;curriculum_alignment"
|
||||
aerospace,"aircraft,spacecraft,aviation,drone,satellite,propulsion,flight,radar,navigation",high,"Safety certification;DO-178C compliance;Performance validation;Simulation accuracy;Export controls","Aviation standards;Safety analysis;Simulation validation;ITAR/export controls;Performance requirements","domain-research + technical-model","DO-178C software certification;aerospace simulation standards {date};ITAR export controls software;aviation safety requirements","safety_certification;simulation_validation;performance_requirements;export_compliance"
|
||||
automotive,"vehicle,car,autonomous,ADAS,automotive,driving,EV,charging",high,"Safety standards;ISO 26262;V2X communication;Real-time requirements;Certification","Automotive standards;Functional safety;V2X protocols;Real-time systems;Testing requirements","domain-research","ISO 26262 automotive software;automotive safety standards {date};V2X communication protocols;EV charging standards","safety_standards;functional_safety;communication_protocols;certification_requirements"
|
||||
scientific,"research,algorithm,simulation,modeling,computational,analysis,data science,ML,AI",medium,"Reproducibility;Validation methodology;Peer review;Performance;Accuracy;Computational resources","Scientific method;Statistical validity;Computational requirements;Domain expertise;Publication standards","technical-model","scientific computing best practices {date};research reproducibility standards;computational modeling validation;peer review software","validation_methodology;accuracy_metrics;reproducibility_plan;computational_requirements"
|
||||
legaltech,"legal,law,contract,compliance,litigation,patent,attorney,court",high,"Legal ethics;Bar regulations;Data retention;Attorney-client privilege;Court system integration","Legal practice rules;Ethics requirements;Court filing systems;Document standards;Confidentiality","domain-research","legal technology ethics {date};law practice management software requirements;court filing system standards;attorney client privilege technology","ethics_compliance;data_retention;confidentiality_measures;court_integration"
|
||||
insuretech,"insurance,claims,underwriting,actuarial,policy,risk,premium",high,"Insurance regulations;Actuarial standards;Data privacy;Fraud detection;State compliance","Insurance regulations by state;Actuarial methods;Risk modeling;Claims processing;Regulatory reporting","domain-research","insurance software regulations {date};actuarial standards software;insurance fraud detection;state insurance compliance","regulatory_requirements;risk_modeling;fraud_detection;reporting_compliance"
|
||||
energy,"energy,utility,grid,solar,wind,power,electricity,oil,gas",high,"Grid compliance;NERC standards;Environmental regulations;Safety requirements;Real-time operations","Energy regulations;Grid standards;Environmental compliance;Safety protocols;SCADA systems","domain-research","energy sector software compliance {date};NERC CIP standards;smart grid requirements;renewable energy software standards","grid_compliance;safety_protocols;environmental_compliance;operational_requirements"
|
||||
process_control,"industrial automation,process control,PLC,SCADA,DCS,HMI,operational technology,OT,control system,cyberphysical,MES,historian,instrumentation,I&C,P&ID",high,"Functional safety;OT cybersecurity;Real-time control requirements;Legacy system integration;Process safety and hazard analysis;Environmental compliance and permitting;Engineering authority and PE requirements","Functional safety standards;OT security frameworks;Industrial protocols;Process control architecture;Plant reliability and maintainability","domain-research + technical-model","IEC 62443 OT cybersecurity requirements {date};functional safety software requirements {date};industrial process control architecture;ISA-95 manufacturing integration","functional_safety;ot_security;process_requirements;engineering_authority"
|
||||
building_automation,"building automation,BAS,BMS,HVAC,smart building,lighting control,fire alarm,fire protection,fire suppression,life safety,elevator,access control,DDC,energy management,sequence of operations,commissioning",high,"Life safety codes;Building energy standards;Multi-trade coordination and interoperability;Commissioning and ongoing operational performance;Indoor environmental quality and occupant comfort;Engineering authority and PE requirements","Building automation protocols;HVAC and mechanical controls;Fire alarm, fire protection, and life safety design;Commissioning process and sequence of operations;Building codes and energy standards","domain-research","smart building software architecture {date};BACnet integration best practices;building automation cybersecurity {date};ASHRAE building standards","life_safety;energy_compliance;commissioning_requirements;engineering_authority"
|
||||
gaming,"game,player,gameplay,level,character,multiplayer,quest",redirect,"REDIRECT TO GAME WORKFLOWS","Game design","game-brief","NA","NA"
|
||||
general,"",low,"Standard requirements;Basic security;User experience;Performance","General software practices","continue","software development best practices {date}","standard_requirements"
|
||||
|
|
|
@ -1,197 +0,0 @@
|
|||
# BMAD PRD Purpose
|
||||
|
||||
**The PRD is the top of the required funnel that feeds all subsequent product development work in rhw BMad Method.**
|
||||
|
||||
---
|
||||
|
||||
## What is a BMAD PRD?
|
||||
|
||||
A dual-audience document serving:
|
||||
1. **Human Product Managers and builders** - Vision, strategy, stakeholder communication
|
||||
2. **LLM Downstream Consumption** - UX Design → Architecture → Epics → Development AI Agents
|
||||
|
||||
Each successive document becomes more AI-tailored and granular.
|
||||
|
||||
---
|
||||
|
||||
## Core Philosophy: Information Density
|
||||
|
||||
**High Signal-to-Noise Ratio**
|
||||
|
||||
Every sentence must carry information weight. LLMs consume precise, dense content efficiently.
|
||||
|
||||
**Anti-Patterns (Eliminate These):**
|
||||
- ❌ "The system will allow users to..." → ✅ "Users can..."
|
||||
- ❌ "It is important to note that..." → ✅ State the fact directly
|
||||
- ❌ "In order to..." → ✅ "To..."
|
||||
- ❌ Conversational filler and padding → ✅ Direct, concise statements
|
||||
|
||||
**Goal:** Maximum information per word. Zero fluff.
|
||||
|
||||
---
|
||||
|
||||
## The Traceability Chain
|
||||
|
||||
**PRD starts the chain:**
|
||||
```
|
||||
Vision → Success Criteria → User Journeys → Functional Requirements → (future: User Stories)
|
||||
```
|
||||
|
||||
**In the PRD, establish:**
|
||||
- Vision → Success Criteria alignment
|
||||
- Success Criteria → User Journey coverage
|
||||
- User Journey → Functional Requirement mapping
|
||||
- All requirements traceable to user needs
|
||||
|
||||
**Why:** Each downstream artifact (UX, Architecture, Epics, Stories) must trace back to documented user needs and business objectives. This chain ensures we build the right thing.
|
||||
|
||||
---
|
||||
|
||||
## What Makes Great Functional Requirements?
|
||||
|
||||
### FRs are Capabilities, Not Implementation
|
||||
|
||||
**Good FR:** "Users can reset their password via email link"
|
||||
**Bad FR:** "System sends JWT via email and validates with database" (implementation leakage)
|
||||
|
||||
**Good FR:** "Dashboard loads in under 2 seconds for 95th percentile"
|
||||
**Bad FR:** "Fast loading time" (subjective, unmeasurable)
|
||||
|
||||
### SMART Quality Criteria
|
||||
|
||||
**Specific:** Clear, precisely defined capability
|
||||
**Measurable:** Quantifiable with test criteria
|
||||
**Attainable:** Realistic within constraints
|
||||
**Relevant:** Aligns with business objectives
|
||||
**Traceable:** Links to source (executive summary or user journey)
|
||||
|
||||
### FR Anti-Patterns
|
||||
|
||||
**Subjective Adjectives:**
|
||||
- ❌ "easy to use", "intuitive", "user-friendly", "fast", "responsive"
|
||||
- ✅ Use metrics: "completes task in under 3 clicks", "loads in under 2 seconds"
|
||||
|
||||
**Implementation Leakage:**
|
||||
- ❌ Technology names, specific libraries, implementation details
|
||||
- ✅ Focus on capability and measurable outcomes
|
||||
|
||||
**Vague Quantifiers:**
|
||||
- ❌ "multiple users", "several options", "various formats"
|
||||
- ✅ "up to 100 concurrent users", "3-5 options", "PDF, DOCX, TXT formats"
|
||||
|
||||
**Missing Test Criteria:**
|
||||
- ❌ "The system shall provide notifications"
|
||||
- ✅ "The system shall send email notifications within 30 seconds of trigger event"
|
||||
|
||||
---
|
||||
|
||||
## What Makes Great Non-Functional Requirements?
|
||||
|
||||
### NFRs Must Be Measurable
|
||||
|
||||
**Template:**
|
||||
```
|
||||
"The system shall [metric] [condition] [measurement method]"
|
||||
```
|
||||
|
||||
**Examples:**
|
||||
- ✅ "The system shall respond to API requests in under 200ms for 95th percentile as measured by APM monitoring"
|
||||
- ✅ "The system shall maintain 99.9% uptime during business hours as measured by cloud provider SLA"
|
||||
- ✅ "The system shall support 10,000 concurrent users as measured by load testing"
|
||||
|
||||
### NFR Anti-Patterns
|
||||
|
||||
**Unmeasurable Claims:**
|
||||
- ❌ "The system shall be scalable" → ✅ "The system shall handle 10x load growth through horizontal scaling"
|
||||
- ❌ "High availability required" → ✅ "99.9% uptime as measured by cloud provider SLA"
|
||||
|
||||
**Missing Context:**
|
||||
- ❌ "Response time under 1 second" → ✅ "API response time under 1 second for 95th percentile under normal load"
|
||||
|
||||
---
|
||||
|
||||
## Domain-Specific Requirements
|
||||
|
||||
**Auto-Detect and Enforce Based on Project Context**
|
||||
|
||||
Certain industries have mandatory requirements that must be present:
|
||||
|
||||
- **Healthcare:** HIPAA Privacy & Security Rules, PHI encryption, audit logging, MFA
|
||||
- **Fintech:** PCI-DSS Level 1, AML/KYC compliance, SOX controls, financial audit trails
|
||||
- **GovTech:** NIST framework, Section 508 accessibility (WCAG 2.1 AA), FedRAMP, data residency
|
||||
- **E-Commerce:** PCI-DSS for payments, inventory accuracy, tax calculation by jurisdiction
|
||||
|
||||
**Why:** Missing these requirements in the PRD means they'll be missed in architecture and implementation, creating expensive rework. During PRD creation there is a step to cover this - during validation we want to make sure it was covered. For this purpose steps will utilize a domain-complexity.csv and project-types.csv.
|
||||
|
||||
---
|
||||
|
||||
## Document Structure (Markdown, Human-Readable)
|
||||
|
||||
### Required Sections
|
||||
1. **Executive Summary** - Vision, differentiator, target users
|
||||
2. **Success Criteria** - Measurable outcomes (SMART)
|
||||
3. **Product Scope** - MVP, Growth, Vision phases
|
||||
4. **User Journeys** - Comprehensive coverage
|
||||
5. **Domain Requirements** - Industry-specific compliance (if applicable)
|
||||
6. **Innovation Analysis** - Competitive differentiation (if applicable)
|
||||
7. **Project-Type Requirements** - Platform-specific needs
|
||||
8. **Functional Requirements** - Capability contract (FRs)
|
||||
9. **Non-Functional Requirements** - Quality attributes (NFRs)
|
||||
|
||||
### Formatting for Dual Consumption
|
||||
|
||||
**For Humans:**
|
||||
- Clear, professional language
|
||||
- Logical flow from vision to requirements
|
||||
- Easy for stakeholders to review and approve
|
||||
|
||||
**For LLMs:**
|
||||
- ## Level 2 headers for all main sections (enables extraction)
|
||||
- Consistent structure and patterns
|
||||
- Precise, testable language
|
||||
- High information density
|
||||
|
||||
---
|
||||
|
||||
## Downstream Impact
|
||||
|
||||
**How the PRD Feeds Next Artifacts:**
|
||||
|
||||
**UX Design:**
|
||||
- User journeys → interaction flows
|
||||
- FRs → design requirements
|
||||
- Success criteria → UX metrics
|
||||
|
||||
**Architecture:**
|
||||
- FRs → system capabilities
|
||||
- NFRs → architecture decisions
|
||||
- Domain requirements → compliance architecture
|
||||
- Project-type requirements → platform choices
|
||||
|
||||
**Epics & Stories (created after architecture):**
|
||||
- FRs → user stories (1 FR could map to 1-3 stories potentially)
|
||||
- Acceptance criteria → story acceptance tests
|
||||
- Priority → sprint sequencing
|
||||
- Traceability → stories map back to vision
|
||||
|
||||
**Development AI Agents:**
|
||||
- Precise requirements → implementation clarity
|
||||
- Test criteria → automated test generation
|
||||
- Domain requirements → compliance enforcement
|
||||
- Measurable NFRs → performance targets
|
||||
|
||||
---
|
||||
|
||||
## Summary: What Makes a Great BMAD PRD?
|
||||
|
||||
✅ **High Information Density** - Every sentence carries weight, zero fluff
|
||||
✅ **Measurable Requirements** - All FRs and NFRs are testable with specific criteria
|
||||
✅ **Clear Traceability** - Each requirement links to user need and business objective
|
||||
✅ **Domain Awareness** - Industry-specific requirements auto-detected and included
|
||||
✅ **Zero Anti-Patterns** - No subjective adjectives, implementation leakage, or vague quantifiers
|
||||
✅ **Dual Audience Optimized** - Human-readable AND LLM-consumable
|
||||
✅ **Markdown Format** - Professional, clean, accessible to all stakeholders
|
||||
|
||||
---
|
||||
|
||||
**Remember:** The PRD is the foundation. Quality here ripples through every subsequent phase. A dense, precise, well-traced PRD makes UX design, architecture, epic breakdown, and AI development dramatically more effective.
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
project_type,detection_signals,key_questions,required_sections,skip_sections,web_search_triggers,innovation_signals
|
||||
api_backend,"API,REST,GraphQL,backend,service,endpoints","Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?","endpoint_specs;auth_model;data_schemas;error_codes;rate_limits;api_docs","ux_ui;visual_design;user_journeys","framework best practices;OpenAPI standards","API composition;New protocol"
|
||||
mobile_app,"iOS,Android,app,mobile,iPhone,iPad","Native or cross-platform?;Offline needed?;Push notifications?;Device features?;Store compliance?","platform_reqs;device_permissions;offline_mode;push_strategy;store_compliance","desktop_features;cli_commands","app store guidelines;platform requirements","Gesture innovation;AR/VR features"
|
||||
saas_b2b,"SaaS,B2B,platform,dashboard,teams,enterprise","Multi-tenant?;Permission model?;Subscription tiers?;Integrations?;Compliance?","tenant_model;rbac_matrix;subscription_tiers;integration_list;compliance_reqs","cli_interface;mobile_first","compliance requirements;integration guides","Workflow automation;AI agents"
|
||||
developer_tool,"SDK,library,package,npm,pip,framework","Language support?;Package managers?;IDE integration?;Documentation?;Examples?","language_matrix;installation_methods;api_surface;code_examples;migration_guide","visual_design;store_compliance","package manager best practices;API design patterns","New paradigm;DSL creation"
|
||||
cli_tool,"CLI,command,terminal,bash,script","Interactive or scriptable?;Output formats?;Config method?;Shell completion?","command_structure;output_formats;config_schema;scripting_support","visual_design;ux_principles;touch_interactions","CLI design patterns;shell integration","Natural language CLI;AI commands"
|
||||
web_app,"website,webapp,browser,SPA,PWA","SPA or MPA?;Browser support?;SEO needed?;Real-time?;Accessibility?","browser_matrix;responsive_design;performance_targets;seo_strategy;accessibility_level","native_features;cli_commands","web standards;WCAG guidelines","New interaction;WebAssembly use"
|
||||
game,"game,player,gameplay,level,character","REDIRECT TO USE THE BMad Method Game Module Agent and Workflows - HALT","game-brief;GDD","most_sections","game design patterns","Novel mechanics;Genre mixing"
|
||||
desktop_app,"desktop,Windows,Mac,Linux,native","Cross-platform?;Auto-update?;System integration?;Offline?","platform_support;system_integration;update_strategy;offline_capabilities","web_seo;mobile_features","desktop guidelines;platform requirements","Desktop AI;System automation"
|
||||
iot_embedded,"IoT,embedded,device,sensor,hardware","Hardware specs?;Connectivity?;Power constraints?;Security?;OTA updates?","hardware_reqs;connectivity_protocol;power_profile;security_model;update_mechanism","visual_ui;browser_support","IoT standards;protocol specs","Edge AI;New sensors"
|
||||
blockchain_web3,"blockchain,crypto,DeFi,NFT,smart contract","Chain selection?;Wallet integration?;Gas optimization?;Security audit?","chain_specs;wallet_support;smart_contracts;security_audit;gas_optimization","traditional_auth;centralized_db","blockchain standards;security patterns","Novel tokenomics;DAO structure"
|
||||
|
|
|
@ -1,178 +0,0 @@
|
|||
# Step 1: Workflow Initialization
|
||||
|
||||
**Progress: Step 1 of 11** - Next: Project Discovery
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Initialize the PRD workflow by detecting continuation state, discovering input documents, and setting up the document structure for collaborative product requirement discovery.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a product-focused PM facilitator collaborating with an expert peer
|
||||
- ✅ If you already have been given a name, communication_style and persona, continue to use those while playing this new role
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus only on initialization and setup - no content generation yet
|
||||
- 🚫 FORBIDDEN to look ahead to future steps or assume knowledge from them
|
||||
- 💬 Approach: Systematic setup with clear reporting to user
|
||||
- 🚪 Detect existing workflow state and handle continuation properly
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis of current state before taking any action
|
||||
- 💾 Initialize document structure and update frontmatter appropriately
|
||||
- Update frontmatter: add this step name to the end of the steps completed array (it should be the first entry in the steps array since this is step 1)
|
||||
- 🚫 FORBIDDEN to load next step until user selects 'C' (Continue)
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: Variables from workflow.md are available in memory
|
||||
- Focus: Workflow initialization and document setup only
|
||||
- Limits: Don't assume knowledge from other steps or create content yet
|
||||
- Dependencies: Configuration loaded from workflow.md initialization
|
||||
|
||||
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
||||
|
||||
### 1. Check for Existing Workflow State
|
||||
|
||||
First, check if the output document already exists:
|
||||
|
||||
**Workflow State Detection:**
|
||||
|
||||
- Look for file at `{outputFile}`
|
||||
- If exists, read the complete file including frontmatter
|
||||
- If not exists, this is a fresh workflow
|
||||
|
||||
### 2. Handle Continuation (If Document Exists)
|
||||
|
||||
If the document exists and has frontmatter with `stepsCompleted` BUT `step-12-complete` is NOT in the list, follow the Continuation Protocol since the document is incomplete:
|
||||
|
||||
**Continuation Protocol:**
|
||||
|
||||
- **STOP immediately** and load `./step-01b-continue.md`
|
||||
- Do not proceed with any initialization tasks
|
||||
- Let step-01b handle all continuation logic
|
||||
- This is an auto-proceed situation - no user choice needed
|
||||
|
||||
### 3. Fresh Workflow Setup (If No Document)
|
||||
|
||||
If no document exists or no `stepsCompleted` in frontmatter:
|
||||
|
||||
#### A. Input Document Discovery
|
||||
|
||||
Discover and load context documents using smart discovery. Documents can be in the following locations:
|
||||
- {planning_artifacts}/**
|
||||
- {output_folder}/**
|
||||
- {project_knowledge}/**
|
||||
- docs/**
|
||||
|
||||
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
||||
|
||||
Try to discover the following:
|
||||
- Product Brief (`*brief*.md`)
|
||||
- Research Documents (`/*research*.md`)
|
||||
- Project Documentation (generally multiple documents might be found for this in the `{project_knowledge}` or `docs` folder.)
|
||||
- Project Context (`**/project-context.md`)
|
||||
|
||||
<critical>Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules</critical>
|
||||
|
||||
**Loading Rules:**
|
||||
|
||||
- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
|
||||
- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process
|
||||
- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
|
||||
- index.md is a guide to what's relevant whenever available
|
||||
- Track all successfully loaded files in frontmatter `inputDocuments` array
|
||||
|
||||
#### B. Create Initial Document
|
||||
|
||||
**Document Setup:**
|
||||
|
||||
- Copy the template from `../templates/prd-template.md` to `{outputFile}`
|
||||
- Initialize frontmatter with proper structure including inputDocuments array.
|
||||
|
||||
#### C. Present Initialization Results
|
||||
|
||||
**Setup Report to User:**
|
||||
|
||||
"Welcome {{user_name}}! I've set up your PRD workspace for {{project_name}}.
|
||||
|
||||
**Document Setup:**
|
||||
|
||||
- Created: `{outputFile}` from template
|
||||
- Initialized frontmatter with workflow state
|
||||
|
||||
**Input Documents Discovered:**
|
||||
|
||||
- Product briefs: {{briefCount}} files {if briefCount > 0}✓ loaded{else}(none found){/if}
|
||||
- Research: {{researchCount}} files {if researchCount > 0}✓ loaded{else}(none found){/if}
|
||||
- Brainstorming: {{brainstormingCount}} files {if brainstormingCount > 0}✓ loaded{else}(none found){/if}
|
||||
- Project docs: {{projectDocsCount}} files {if projectDocsCount > 0}✓ loaded (brownfield project){else}(none found - greenfield project){/if}
|
||||
|
||||
**Files loaded:** {list of specific file names or "No additional documents found"}
|
||||
|
||||
{if projectDocsCount > 0}
|
||||
📋 **Note:** This is a **brownfield project**. Your existing project documentation has been loaded. In the next step, I'll ask specifically about what new features or changes you want to add to your existing system.
|
||||
{/if}
|
||||
|
||||
Do you have any other documents you'd like me to include, or shall we continue to the next step?"
|
||||
|
||||
### 4. Present MENU OPTIONS
|
||||
|
||||
Display menu after setup report:
|
||||
|
||||
"[C] Continue - Save this and move to Project Discovery (Step 2 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Update output file frontmatter, adding this step name to the end of the list of stepsCompleted, then read fully and follow: ./step-02-discovery.md
|
||||
- IF user provides additional files: Load them, update inputDocuments and documentCounts, redisplay report
|
||||
- IF user asks questions: Answer and redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [frontmatter properly updated with this step added to stepsCompleted and documentCounts], will you then read fully and follow: `./step-02-discovery.md` to begin project discovery.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Existing workflow detected and properly handed off to step-01b
|
||||
- Fresh workflow initialized with template and proper frontmatter
|
||||
- Input documents discovered and loaded using sharded-first logic
|
||||
- All discovered files tracked in frontmatter `inputDocuments`
|
||||
- User clearly informed of brownfield vs greenfield status
|
||||
- Menu presented and user input handled correctly
|
||||
- Frontmatter updated with this step name added to stepsCompleted before proceeding
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Proceeding with fresh initialization when existing workflow exists
|
||||
- Not updating frontmatter with discovered input documents
|
||||
- **Not storing document counts in frontmatter**
|
||||
- Creating document without proper template structure
|
||||
- Not checking sharded folders first before whole files
|
||||
- Not reporting discovered documents to user clearly
|
||||
- Proceeding without user selecting 'C' (Continue)
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
|
|
@ -1,161 +0,0 @@
|
|||
# Step 1B: Workflow Continuation
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Resume the PRD workflow from where it was left off, ensuring smooth continuation with full context restoration.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a product-focused PM facilitator collaborating with an expert peer
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ Resume workflow from exact point where it was interrupted
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 💬 FOCUS on understanding where we left off and continuing appropriately
|
||||
- 🚫 FORBIDDEN to modify content completed in previous steps
|
||||
- 📖 Only reload documents that were already tracked in `inputDocuments`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis of current state before taking action
|
||||
- Update frontmatter: add this step name to the end of the steps completed array
|
||||
- 📖 Only load documents that were already tracked in `inputDocuments`
|
||||
- 🚫 FORBIDDEN to discover new input documents during continuation
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Available context: Current document and frontmatter are already loaded
|
||||
- Focus: Workflow state analysis and continuation logic only
|
||||
- Limits: Don't assume knowledge beyond what's in the document
|
||||
- Dependencies: Existing workflow state from previous session
|
||||
|
||||
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
||||
|
||||
### 1. Analyze Current State
|
||||
|
||||
**State Assessment:**
|
||||
Review the frontmatter to understand:
|
||||
|
||||
- `stepsCompleted`: Array of completed step filenames
|
||||
- Last element of `stepsCompleted` array: The most recently completed step
|
||||
- `inputDocuments`: What context was already loaded
|
||||
- All other frontmatter variables
|
||||
|
||||
### 2. Restore Context Documents
|
||||
|
||||
**Context Reloading:**
|
||||
|
||||
- For each document in `inputDocuments`, load the complete file
|
||||
- This ensures you have full context for continuation
|
||||
- Don't discover new documents - only reload what was previously processed
|
||||
|
||||
### 3. Determine Next Step
|
||||
|
||||
**Step Sequence Lookup:**
|
||||
|
||||
Use the following ordered sequence to determine the next step from the last completed step:
|
||||
|
||||
| Last Completed | Next Step |
|
||||
|---|---|
|
||||
| step-01-init.md | step-02-discovery.md |
|
||||
| step-02-discovery.md | step-02b-vision.md |
|
||||
| step-02b-vision.md | step-02c-executive-summary.md |
|
||||
| step-02c-executive-summary.md | step-03-success.md |
|
||||
| step-03-success.md | step-04-journeys.md |
|
||||
| step-04-journeys.md | step-05-domain.md |
|
||||
| step-05-domain.md | step-06-innovation.md |
|
||||
| step-06-innovation.md | step-07-project-type.md |
|
||||
| step-07-project-type.md | step-08-scoping.md |
|
||||
| step-08-scoping.md | step-09-functional.md |
|
||||
| step-09-functional.md | step-10-nonfunctional.md |
|
||||
| step-10-nonfunctional.md | step-11-polish.md |
|
||||
| step-11-polish.md | step-12-complete.md |
|
||||
|
||||
1. Get the last element from the `stepsCompleted` array
|
||||
2. Look it up in the table above to find the next step
|
||||
3. That's the next step to load!
|
||||
|
||||
**Example:**
|
||||
- If `stepsCompleted = ["step-01-init.md", "step-02-discovery.md", "step-03-success.md"]`
|
||||
- Last element is `"step-03-success.md"`
|
||||
- Table lookup → next step is `./step-04-journeys.md`
|
||||
|
||||
### 4. Handle Workflow Completion
|
||||
|
||||
**If `stepsCompleted` array contains `"step-12-complete.md"`:**
|
||||
"Great news! It looks like we've already completed the PRD workflow for {{project_name}}.
|
||||
|
||||
The final document is ready at `{outputFile}` with all sections completed.
|
||||
|
||||
Would you like me to:
|
||||
|
||||
- Review the completed PRD with you
|
||||
- Suggest next workflow steps (like architecture or epic creation)
|
||||
- Start a new PRD revision
|
||||
|
||||
What would be most helpful?"
|
||||
|
||||
### 5. Present Current Progress
|
||||
|
||||
**If workflow not complete:**
|
||||
"Welcome back {{user_name}}! I'm resuming our PRD collaboration for {{project_name}}.
|
||||
|
||||
**Current Progress:**
|
||||
- Last completed: {last step filename from stepsCompleted array}
|
||||
- Next up: {next step from lookup table}
|
||||
- Context documents available: {len(inputDocuments)} files
|
||||
|
||||
**Document Status:**
|
||||
- Current PRD document is ready with all completed sections
|
||||
- Ready to continue from where we left off
|
||||
|
||||
Does this look right, or do you want to make any adjustments before we proceed?"
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select an Option:** [C] Continue to {next step name}"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
|
||||
- IF C: Read fully and follow the next step determined from the lookup table in step 3
|
||||
- IF Any other comments or queries: respond and redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow the next step (from the lookup table) to resume the workflow.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- All previous input documents successfully reloaded
|
||||
- Current workflow state accurately analyzed and presented
|
||||
- User confirms understanding of progress before continuation
|
||||
- Correct next step identified and prepared for loading
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Discovering new input documents instead of reloading existing ones
|
||||
- Modifying content from already completed steps
|
||||
- Failing to determine the next step from the lookup table
|
||||
- Proceeding without user confirmation of current state
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
|
|
@ -1,208 +0,0 @@
|
|||
# Step 2: Project Discovery
|
||||
|
||||
**Progress: Step 2 of 13** - Next: Product Vision
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Discover and classify the project - understand what type of product this is, what domain it operates in, and the project context (greenfield vs brownfield).
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a product-focused PM facilitator collaborating with an expert peer
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus on classification and understanding - no content generation yet
|
||||
- 🚫 FORBIDDEN to generate executive summary or vision statements (that's next steps)
|
||||
- 💬 APPROACH: Natural conversation to understand the project
|
||||
- 🎯 LOAD classification data BEFORE starting discovery conversation
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after classification complete
|
||||
- 💾 ONLY save classification to frontmatter when user chooses C (Continue)
|
||||
- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from step 1 are available
|
||||
- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs)
|
||||
- **Document counts available in frontmatter `documentCounts`**
|
||||
- Classification CSV data will be loaded in this step only
|
||||
- No executive summary or vision content yet (that's steps 2b and 2c)
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Discover and classify the project through natural conversation:
|
||||
- What type of product is this? (web app, API, mobile, etc.)
|
||||
- What domain does it operate in? (healthcare, fintech, e-commerce, etc.)
|
||||
- What's the project context? (greenfield new product vs brownfield existing system)
|
||||
- How complex is this domain? (low, medium, high)
|
||||
|
||||
## DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Check Document State
|
||||
|
||||
Read the frontmatter from `{outputFile}` to get document counts:
|
||||
- `briefCount` - Product briefs available
|
||||
- `researchCount` - Research documents available
|
||||
- `brainstormingCount` - Brainstorming docs available
|
||||
- `projectDocsCount` - Existing project documentation
|
||||
|
||||
**Announce your understanding:**
|
||||
|
||||
"From step 1, I have loaded:
|
||||
- Product briefs: {{briefCount}}
|
||||
- Research: {{researchCount}}
|
||||
- Brainstorming: {{brainstormingCount}}
|
||||
- Project docs: {{projectDocsCount}}
|
||||
|
||||
{{if projectDocsCount > 0}}This is a brownfield project - I'll focus on understanding what you want to add or change.{{else}}This is a greenfield project - I'll help you define the full product vision.{{/if}}"
|
||||
|
||||
### 2. Load Classification Data
|
||||
|
||||
**Attempt subprocess data lookup:**
|
||||
|
||||
**Project Type Lookup:**
|
||||
"Your task: Lookup data in ../data/project-types.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where project_type matches {{detectedProjectType}}
|
||||
|
||||
**Return format:**
|
||||
Return ONLY the matching row as a YAML-formatted object with these fields:
|
||||
project_type, detection_signals
|
||||
|
||||
**Do NOT return the entire CSV - only the matching row.**"
|
||||
|
||||
**Domain Complexity Lookup:**
|
||||
"Your task: Lookup data in ../data/domain-complexity.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where domain matches {{detectedDomain}}
|
||||
|
||||
**Return format:**
|
||||
Return ONLY the matching row as a YAML-formatted object with these fields:
|
||||
domain, complexity, typical_concerns, compliance_requirements
|
||||
|
||||
**Do NOT return the entire CSV - only the matching row.**"
|
||||
|
||||
**Graceful degradation (if Task tool unavailable):**
|
||||
- Load the CSV files directly
|
||||
- Find the matching rows manually
|
||||
- Extract required fields
|
||||
- Keep in memory for intelligent classification
|
||||
|
||||
### 3. Begin Discovery Conversation
|
||||
|
||||
**Start with what you know:**
|
||||
|
||||
If the user has a product brief or project docs, acknowledge them and share your understanding. Then ask clarifying questions to deepen your understanding.
|
||||
|
||||
If this is a greenfield project with no docs, start with open-ended discovery:
|
||||
- What problem does this solve?
|
||||
- Who's it for?
|
||||
- What excites you about building this?
|
||||
|
||||
**Listen for classification signals:**
|
||||
|
||||
As the user describes their product, match against:
|
||||
- **Project type signals** (API, mobile, SaaS, etc.)
|
||||
- **Domain signals** (healthcare, fintech, education, etc.)
|
||||
- **Complexity indicators** (regulated industries, novel technology, etc.)
|
||||
|
||||
### 4. Confirm Classification
|
||||
|
||||
Once you have enough understanding, share your classification:
|
||||
|
||||
"I'm hearing this as:
|
||||
- **Project Type:** {{detectedType}}
|
||||
- **Domain:** {{detectedDomain}}
|
||||
- **Complexity:** {{complexityLevel}}
|
||||
|
||||
Does this sound right to you?"
|
||||
|
||||
Let the user confirm or refine your classification.
|
||||
|
||||
### 5. Save Classification to Frontmatter
|
||||
|
||||
When user selects 'C', update frontmatter with classification:
|
||||
```yaml
|
||||
classification:
|
||||
projectType: {{projectType}}
|
||||
domain: {{domain}}
|
||||
complexity: {{complexityLevel}}
|
||||
projectContext: {{greenfield|brownfield}}
|
||||
```
|
||||
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Present the project classification for review, then display menu:
|
||||
|
||||
"Based on our conversation, I've discovered and classified your project.
|
||||
|
||||
**Here's the classification:**
|
||||
|
||||
**Project Type:** {{detectedType}}
|
||||
**Domain:** {{detectedDomain}}
|
||||
**Complexity:** {{complexityLevel}}
|
||||
**Project Context:** {{greenfield|brownfield}}
|
||||
|
||||
**What would you like to do?**"
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Product Vision (Step 2b of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current classification, process the enhanced insights that come back, ask user if they accept the improvements, if yes update classification then redisplay menu, if no keep original classification then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current classification, process the collaborative insights, ask user if they accept the changes, if yes update classification then redisplay menu, if no keep original classification then redisplay menu
|
||||
- IF C: Save classification to {outputFile} frontmatter, add this step name to the end of stepsCompleted array, then read fully and follow: ./step-02b-vision.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [classification saved to frontmatter], will you then read fully and follow: `./step-02b-vision.md` to explore product vision.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Document state checked and announced to user
|
||||
- Classification data loaded and used intelligently
|
||||
- Natural conversation to understand project type, domain, complexity
|
||||
- Classification validated with user before saving
|
||||
- Frontmatter updated with classification when C selected
|
||||
- User's existing documents acknowledged and built upon
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Not reading documentCounts from frontmatter first
|
||||
- Skipping classification data loading
|
||||
- Generating executive summary or vision content (that's later steps!)
|
||||
- Not validating classification with user
|
||||
- Being prescriptive instead of having natural conversation
|
||||
- Proceeding without user selecting 'C'
|
||||
|
||||
**Master Rule:** This is classification and understanding only. No content generation yet. Build on what the user already has. Have natural conversations, don't follow scripts.
|
||||
|
|
@ -1,142 +0,0 @@
|
|||
# Step 2b: Product Vision Discovery
|
||||
|
||||
**Progress: Step 2b of 13** - Next: Executive Summary
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Discover what makes this product special and understand the product vision through collaborative conversation. No content generation — facilitation only.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a product-focused PM facilitator collaborating with an expert peer
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Focus on discovering vision and differentiator — no content generation yet
|
||||
- 🚫 FORBIDDEN to generate executive summary content (that's the next step)
|
||||
- 🚫 FORBIDDEN to append anything to the document in this step
|
||||
- 💬 APPROACH: Natural conversation to understand what makes this product special
|
||||
- 🎯 BUILD ON classification insights from step 2
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after vision discovery is complete
|
||||
- 📖 Update frontmatter, adding this step to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from steps 1 and 2 are available
|
||||
- Project classification exists from step 2 (project type, domain, complexity, context)
|
||||
- Input documents already loaded are in memory (product briefs, research, brainstorming, project docs)
|
||||
- No executive summary content yet (that's step 2c)
|
||||
- This step ONLY discovers — it does NOT write to the document
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Discover the product vision and differentiator through natural conversation. Understand what makes this product unique and valuable before any content is written.
|
||||
|
||||
## VISION DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Acknowledge Classification Context
|
||||
|
||||
Reference the classification from step 2 and use it to frame the vision conversation:
|
||||
|
||||
"We've established this is a {{projectType}} in the {{domain}} domain with {{complexityLevel}} complexity. Now let's explore what makes this product special."
|
||||
|
||||
### 2. Explore What Makes It Special
|
||||
|
||||
Guide the conversation to uncover the product's unique value:
|
||||
|
||||
- **User delight:** "What would make users say 'this is exactly what I needed'?"
|
||||
- **Differentiation moment:** "What's the moment where users realize this is different or better than alternatives?"
|
||||
- **Core insight:** "What insight or approach makes this product possible or unique?"
|
||||
- **Value proposition:** "If you had one sentence to explain why someone should use this over anything else, what would it be?"
|
||||
|
||||
### 3. Understand the Vision
|
||||
|
||||
Dig deeper into the product vision:
|
||||
|
||||
- **Problem framing:** "What's the real problem you're solving — not the surface symptom, but the deeper need?"
|
||||
- **Future state:** "When this product is successful, what does the world look like for your users?"
|
||||
- **Why now:** "Why is this the right time to build this?"
|
||||
|
||||
### 4. Validate Understanding
|
||||
|
||||
Reflect back what you've heard and confirm:
|
||||
|
||||
"Here's what I'm hearing about your vision and differentiator:
|
||||
|
||||
**Vision:** {{summarized_vision}}
|
||||
**What Makes It Special:** {{summarized_differentiator}}
|
||||
**Core Insight:** {{summarized_insight}}
|
||||
|
||||
Does this capture it? Anything I'm missing?"
|
||||
|
||||
Let the user confirm or refine your understanding.
|
||||
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Present your understanding of the product vision for review, then display menu:
|
||||
|
||||
"Based on our conversation, I have a clear picture of your product vision and what makes it special. I'll use these insights to draft the Executive Summary in the next step.
|
||||
|
||||
**What would you like to do?**"
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Executive Summary (Step 2c of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current vision insights, process the enhanced insights that come back, ask user if they accept the improvements, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current vision insights, process the collaborative insights, ask user if they accept the changes, if yes update understanding then redisplay menu, if no keep original understanding then redisplay menu
|
||||
- IF C: Update {outputFile} frontmatter by adding this step name to the end of stepsCompleted array, then read fully and follow: ./step-02c-executive-summary.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [stepsCompleted updated], will you then read fully and follow: `./step-02c-executive-summary.md` to generate the Executive Summary.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Classification context from step 2 acknowledged and built upon
|
||||
- Natural conversation to understand product vision and differentiator
|
||||
- User's existing documents (briefs, research, brainstorming) leveraged for vision insights
|
||||
- Vision and differentiator validated with user before proceeding
|
||||
- Clear understanding established that will inform Executive Summary generation
|
||||
- Frontmatter updated with stepsCompleted when C selected
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Generating executive summary or any document content (that's step 2c!)
|
||||
- Appending anything to the PRD document
|
||||
- Not building on classification from step 2
|
||||
- Being prescriptive instead of having natural conversation
|
||||
- Proceeding without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
|
||||
**Master Rule:** This step is vision discovery only. No content generation, no document writing. Have natural conversations, build on what you know from classification, and establish the vision that will feed into the Executive Summary.
|
||||
|
|
@ -1,158 +0,0 @@
|
|||
# Step 2c: Executive Summary Generation
|
||||
|
||||
**Progress: Step 2c of 13** - Next: Success Criteria
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Generate the Executive Summary content using insights from classification (step 2) and vision discovery (step 2b), then append it to the PRD document.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a product-focused PM facilitator collaborating with an expert peer
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ Content is drafted collaboratively — present for review before saving
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 Generate Executive Summary content based on discovered insights
|
||||
- 💬 Present draft content for user review and refinement before appending
|
||||
- 🚫 FORBIDDEN to append content without user approval via 'C'
|
||||
- 🎯 Content must be dense, precise, and zero-fluff (PRD quality standards)
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating executive summary content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from steps 1, 2, and 2b are available
|
||||
- Project classification exists from step 2 (project type, domain, complexity, context)
|
||||
- Vision and differentiator insights exist from step 2b
|
||||
- Input documents from step 1 are available (product briefs, research, brainstorming, project docs)
|
||||
- This step generates and appends the first substantive content to the PRD
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Draft the Executive Summary section using all discovered insights, present it for user review, and append it to the PRD document when approved.
|
||||
|
||||
## EXECUTIVE SUMMARY GENERATION SEQUENCE:
|
||||
|
||||
### 1. Synthesize Available Context
|
||||
|
||||
Review all available context before drafting:
|
||||
- Classification from step 2: project type, domain, complexity, project context
|
||||
- Vision and differentiator from step 2b: what makes this special, core insight
|
||||
- Input documents: product briefs, research, brainstorming, project docs
|
||||
|
||||
### 2. Draft Executive Summary Content
|
||||
|
||||
Generate the Executive Summary section using the content structure below. Apply PRD quality standards:
|
||||
- High information density — every sentence carries weight
|
||||
- Zero fluff — no filler phrases or vague language
|
||||
- Precise and actionable — clear, specific statements
|
||||
- Dual-audience optimized — readable by humans, consumable by LLMs
|
||||
|
||||
### 3. Present Draft for Review
|
||||
|
||||
Present the drafted content to the user for review:
|
||||
|
||||
"Here's the Executive Summary I've drafted based on our discovery work. Please review and let me know if you'd like any changes:"
|
||||
|
||||
Show the full drafted content using the structure from the Content Structure section below.
|
||||
|
||||
Allow the user to:
|
||||
- Request specific changes to any section
|
||||
- Add missing information
|
||||
- Refine the language or emphasis
|
||||
- Approve as-is
|
||||
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Present the executive summary content for user review, then display menu:
|
||||
|
||||
"Here's the Executive Summary for your PRD. Review the content above and let me know what you'd like to do."
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Success Criteria (Step 3 of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current executive summary content, process the enhanced content that comes back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current executive summary content, process the collaborative improvements, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-03-success.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the following content structure directly to the document:
|
||||
|
||||
```markdown
|
||||
## Executive Summary
|
||||
|
||||
{vision_alignment_content}
|
||||
|
||||
### What Makes This Special
|
||||
|
||||
{product_differentiator_content}
|
||||
|
||||
## Project Classification
|
||||
|
||||
{project_classification_content}
|
||||
```
|
||||
|
||||
Where:
|
||||
- `{vision_alignment_content}` — Product vision, target users, and the problem being solved. Dense, precise summary drawn from step 2b vision discovery.
|
||||
- `{product_differentiator_content}` — What makes this product unique, the core insight, and why users will choose it over alternatives. Drawn from step 2b differentiator discovery.
|
||||
- `{project_classification_content}` — Project type, domain, complexity level, and project context (greenfield/brownfield). Drawn from step 2 classification.
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [content appended to document], will you then read fully and follow: `./step-03-success.md` to define success criteria.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Executive Summary drafted using insights from steps 2 and 2b
|
||||
- Content meets PRD quality standards (dense, precise, zero-fluff)
|
||||
- Draft presented to user for review before saving
|
||||
- User given opportunity to refine content
|
||||
- Content properly appended to document when C selected
|
||||
- A/P/C menu presented and handled correctly
|
||||
- Frontmatter updated with stepsCompleted when C selected
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Generating content without incorporating discovered vision and classification
|
||||
- Appending content without user selecting 'C'
|
||||
- Producing vague, fluffy, or low-density content
|
||||
- Not presenting draft for user review
|
||||
- Not presenting A/P/C menu after content generation
|
||||
- Skipping directly to next step without appending content
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
**Master Rule:** Generate high-quality Executive Summary content from discovered insights. Present for review, refine collaboratively, and only save when the user approves. This is the first substantive content in the PRD — it sets the quality bar for everything that follows.
|
||||
|
|
@ -1,214 +0,0 @@
|
|||
# Step 3: Success Criteria Definition
|
||||
|
||||
**Progress: Step 3 of 11** - Next: User Journey Mapping
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on defining what winning looks like for this product
|
||||
- 🎯 COLLABORATIVE discovery, not assumption-based goal setting
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating success criteria content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Executive Summary and Project Classification already exist in document
|
||||
- Input documents from step-01 are available (product briefs, research, brainstorming)
|
||||
- No additional data files needed for this step
|
||||
- Focus on measurable, specific success criteria
|
||||
- LEVERAGE existing input documents to inform success criteria
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Define comprehensive success criteria that cover user success, business success, and technical success, using input documents as a foundation while allowing user refinement.
|
||||
|
||||
## SUCCESS DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Begin Success Definition Conversation
|
||||
|
||||
**Check Input Documents for Success Indicators:**
|
||||
Analyze product brief, research, and brainstorming documents for success criteria already mentioned.
|
||||
|
||||
**If Input Documents Contain Success Criteria:**
|
||||
Guide user to refine existing success criteria:
|
||||
- Acknowledge what's already documented in their materials
|
||||
- Extract key success themes from brief, research, and brainstorming
|
||||
- Help user identify gaps and areas for expansion
|
||||
- Probe for specific, measurable outcomes: When do users feel delighted/relieved/empowered?
|
||||
- Ask about emotional success moments and completion scenarios
|
||||
- Explore what "worth it" means beyond what's already captured
|
||||
|
||||
**If No Success Criteria in Input Documents:**
|
||||
Start with user-centered success exploration:
|
||||
- Guide conversation toward defining what "worth it" means for users
|
||||
- Ask about the moment users realize their problem is solved
|
||||
- Explore specific user outcomes and emotional states
|
||||
- Identify success "aha!" moments and completion scenarios
|
||||
- Focus on user experience of success first
|
||||
|
||||
### 2. Explore User Success Metrics
|
||||
|
||||
Listen for specific user outcomes and help make them measurable:
|
||||
|
||||
- Guide from vague to specific: NOT "users are happy" → "users complete [key action] within [timeframe]"
|
||||
- Ask about emotional success: "When do they feel delighted/relieved/empowered?"
|
||||
- Identify success moments: "What's the 'aha!' moment?"
|
||||
- Define completion scenarios: "What does 'done' look like for the user?"
|
||||
|
||||
### 3. Define Business Success
|
||||
|
||||
Transition to business metrics:
|
||||
- Guide conversation to business perspective on success
|
||||
- Explore timelines: What does 3-month success look like? 12-month success?
|
||||
- Identify key business metrics: revenue, user growth, engagement, or other measures?
|
||||
- Ask what specific metric would indicate "this is working"
|
||||
- Understand business success from their perspective
|
||||
|
||||
### 4. Challenge Vague Metrics
|
||||
|
||||
Push for specificity on business metrics:
|
||||
|
||||
- "10,000 users" → "What kind of users? Doing what?"
|
||||
- "99.9% uptime" → "What's the real concern - data loss? Failed payments?"
|
||||
- "Fast" → "How fast, and what specifically needs to be fast?"
|
||||
- "Good adoption" → "What percentage adoption by when?"
|
||||
|
||||
### 5. Connect to Product Differentiator
|
||||
|
||||
Tie success metrics back to what makes the product special:
|
||||
- Connect success criteria to the product's unique differentiator
|
||||
- Ensure metrics reflect the specific value proposition
|
||||
- Adapt success criteria to domain context:
|
||||
- Consumer: User love, engagement, retention
|
||||
- B2B: ROI, efficiency, adoption
|
||||
- Developer tools: Developer experience, community
|
||||
- Regulated: Compliance, safety, validation
|
||||
- GovTech: Government compliance, accessibility, procurement
|
||||
|
||||
### 6. Smart Scope Negotiation
|
||||
|
||||
Guide scope definition through success lens:
|
||||
- Help user distinguish MVP (must work to be useful) from growth (competitive) and vision (dream)
|
||||
- Guide conversation through three scope levels:
|
||||
1. MVP: What's essential for proving the concept?
|
||||
2. Growth: What makes it competitive?
|
||||
3. Vision: What's the dream version?
|
||||
- Challenge scope creep conversationally: Could this wait until after launch? Is this essential for MVP?
|
||||
- For complex domains: Ensure compliance minimums are included in MVP
|
||||
|
||||
### 7. Generate Success Criteria Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Success Criteria
|
||||
|
||||
### User Success
|
||||
|
||||
[Content about user success criteria based on conversation]
|
||||
|
||||
### Business Success
|
||||
|
||||
[Content about business success metrics based on conversation]
|
||||
|
||||
### Technical Success
|
||||
|
||||
[Content about technical success requirements based on conversation]
|
||||
|
||||
### Measurable Outcomes
|
||||
|
||||
[Content about specific measurable outcomes based on conversation]
|
||||
|
||||
## Product Scope
|
||||
|
||||
### MVP - Minimum Viable Product
|
||||
|
||||
[Content about MVP scope based on conversation]
|
||||
|
||||
### Growth Features (Post-MVP)
|
||||
|
||||
[Content about growth features based on conversation]
|
||||
|
||||
### Vision (Future)
|
||||
|
||||
[Content about future vision based on conversation]
|
||||
```
|
||||
|
||||
### 8. Present MENU OPTIONS
|
||||
|
||||
Present the success criteria content for user review, then display menu:
|
||||
|
||||
- Show the drafted success criteria and scope definition (using structure from section 7)
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of the conversation
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to User Journey Mapping (Step 4 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current success criteria content, process the enhanced success metrics that come back, ask user "Accept these improvements to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current success criteria, process the collaborative improvements to metrics and scope, ask user "Accept these changes to the success criteria? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-04-journeys.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 7.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ User success criteria clearly identified and made measurable
|
||||
✅ Business success metrics defined with specific targets
|
||||
✅ Success criteria connected to product differentiator
|
||||
✅ Scope properly negotiated (MVP, Growth, Vision)
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Accepting vague success metrics without pushing for specificity
|
||||
❌ Not connecting success criteria back to product differentiator
|
||||
❌ Missing scope negotiation and leaving it undefined
|
||||
❌ Generating content without real user input on what success looks like
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## DOMAIN CONSIDERATIONS:
|
||||
|
||||
If working in regulated domains (healthcare, fintech, govtech):
|
||||
|
||||
- Include compliance milestones in success criteria
|
||||
- Add regulatory approval timelines to MVP scope
|
||||
- Consider audit requirements as technical success metrics
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-04-journeys.md` to map user journeys.
|
||||
|
||||
Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
# Step 4: User Journey Mapping
|
||||
|
||||
**Progress: Step 4 of 11** - Next: Domain Requirements
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on mapping ALL user types that interact with the system
|
||||
- 🎯 CRITICAL: No journey = no functional requirements = product doesn't exist
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating journey content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Success criteria and scope already defined
|
||||
- Input documents from step-01 are available (product briefs with user personas)
|
||||
- Every human interaction with the system needs a journey
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Create compelling narrative user journeys that leverage existing personas from product briefs and identify additional user types needed for comprehensive coverage.
|
||||
|
||||
## JOURNEY MAPPING SEQUENCE:
|
||||
|
||||
### 1. Leverage Existing Users & Identify Additional Types
|
||||
|
||||
**Check Input Documents for Existing Personas:**
|
||||
Analyze product brief, research, and brainstorming documents for user personas already defined.
|
||||
|
||||
**If User Personas Exist in Input Documents:**
|
||||
Guide user to build on existing personas:
|
||||
- Acknowledge personas found in their product brief
|
||||
- Extract key persona details and backstories
|
||||
- Leverage existing insights about their needs
|
||||
- Prompt to identify additional user types beyond those documented
|
||||
- Suggest additional user types based on product context (admins, moderators, support, API consumers, internal ops)
|
||||
- Ask what additional user types should be considered
|
||||
|
||||
**If No Personas in Input Documents:**
|
||||
Start with comprehensive user type discovery:
|
||||
- Guide exploration of ALL people who interact with the system
|
||||
- Consider beyond primary users: admins, moderators, support staff, API consumers, internal ops
|
||||
- Ask what user types should be mapped for this specific product
|
||||
- Ensure comprehensive coverage of all system interactions
|
||||
|
||||
### 2. Create Narrative Story-Based Journeys
|
||||
|
||||
For each user type, create compelling narrative journeys that tell their story:
|
||||
|
||||
#### Narrative Journey Creation Process:
|
||||
|
||||
**If Using Existing Persona from Input Documents:**
|
||||
Guide narrative journey creation:
|
||||
- Use persona's existing backstory from brief
|
||||
- Explore how the product changes their life/situation
|
||||
- Craft journey narrative: where do we meet them, how does product help them write their next chapter?
|
||||
|
||||
**If Creating New Persona:**
|
||||
Guide persona creation with story framework:
|
||||
- Name: realistic name and personality
|
||||
- Situation: What's happening in their life/work that creates need?
|
||||
- Goal: What do they desperately want to achieve?
|
||||
- Obstacle: What's standing in their way?
|
||||
- Solution: How does the product solve their story?
|
||||
|
||||
**Story-Based Journey Mapping:**
|
||||
|
||||
Guide narrative journey creation using story structure:
|
||||
- **Opening Scene**: Where/how do we meet them? What's their current pain?
|
||||
- **Rising Action**: What steps do they take? What do they discover?
|
||||
- **Climax**: Critical moment where product delivers real value
|
||||
- **Resolution**: How does their situation improve? What's their new reality?
|
||||
|
||||
Encourage narrative format with specific user details, emotional journey, and clear before/after contrast
|
||||
|
||||
### 3. Guide Journey Exploration
|
||||
|
||||
For each journey, facilitate detailed exploration:
|
||||
- What happens at each step specifically?
|
||||
- What could go wrong? What's the recovery path?
|
||||
- What information do they need to see/hear?
|
||||
- What's their emotional state at each point?
|
||||
- Where does this journey succeed or fail?
|
||||
|
||||
### 4. Connect Journeys to Requirements
|
||||
|
||||
After each journey, explicitly state:
|
||||
- This journey reveals requirements for specific capability areas
|
||||
- Help user see how different journeys create different feature sets
|
||||
- Connect journey needs to concrete capabilities (onboarding, dashboards, notifications, etc.)
|
||||
|
||||
### 5. Aim for Comprehensive Coverage
|
||||
|
||||
Guide toward complete journey set:
|
||||
|
||||
- **Primary user** - happy path (core experience)
|
||||
- **Primary user** - edge case (different goal, error recovery)
|
||||
- **Secondary user** (admin, moderator, support, etc.)
|
||||
- **API consumer** (if applicable)
|
||||
|
||||
Ask if additional journeys are needed to cover uncovered user types
|
||||
|
||||
### 6. Generate User Journey Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## User Journeys
|
||||
|
||||
[All journey narratives based on conversation]
|
||||
|
||||
### Journey Requirements Summary
|
||||
|
||||
[Summary of capabilities revealed by journeys based on conversation]
|
||||
```
|
||||
|
||||
### 7. Present MENU OPTIONS
|
||||
|
||||
Present the user journey content for review, then display menu:
|
||||
- Show the mapped user journeys (using structure from section 6)
|
||||
- Highlight how each journey reveals different capabilities
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of conversation
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Domain Requirements (Step 5 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current journey content, process the enhanced journey insights that come back, ask user "Accept these improvements to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current journeys, process the collaborative journey improvements and additions, ask user "Accept these changes to the user journeys? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-05-domain.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Existing personas from product briefs leveraged when available
|
||||
✅ All user types identified (not just primary users)
|
||||
✅ Rich narrative storytelling for each persona and journey
|
||||
✅ Complete story-based journey mapping with emotional arc
|
||||
✅ Journey requirements clearly connected to capabilities needed
|
||||
✅ Minimum 3-4 compelling narrative journeys covering different user types
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Ignoring existing personas from product briefs
|
||||
❌ Only mapping primary user journeys and missing secondary users
|
||||
❌ Creating generic journeys without rich persona details and narrative
|
||||
❌ Missing emotional storytelling elements that make journeys compelling
|
||||
❌ Missing critical decision points and failure scenarios
|
||||
❌ Not connecting journeys to required capabilities
|
||||
❌ Not having enough journey diversity (admin, support, API, etc.)
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## JOURNEY TYPES TO ENSURE:
|
||||
|
||||
**Minimum Coverage:**
|
||||
|
||||
1. **Primary User - Success Path**: Core experience journey
|
||||
2. **Primary User - Edge Case**: Error recovery, alternative goals
|
||||
3. **Admin/Operations User**: Management, configuration, monitoring
|
||||
4. **Support/Troubleshooting**: Help, investigation, issue resolution
|
||||
5. **API/Integration** (if applicable): Developer/technical user journey
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-05-domain.md`.
|
||||
|
||||
Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,194 +0,0 @@
|
|||
# Step 5: Domain-Specific Requirements (Optional)
|
||||
|
||||
**Progress: Step 5 of 13** - Next: Innovation Focus
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
For complex domains only that have a mapping in ../data/domain-complexity.csv, explore domain-specific constraints, compliance requirements, and technical considerations that shape the product.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
- 📖 CRITICAL: Read the complete step file before taking any action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- ✅ You are a product-focused PM facilitator collaborating with an expert peer
|
||||
- ✅ We engage in collaborative dialogue, not command-response
|
||||
- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- 🎯 This step is OPTIONAL - only needed for complex domains
|
||||
- 🚫 SKIP if domain complexity is "low" from step-02
|
||||
- 💬 APPROACH: Natural conversation to discover domain-specific needs
|
||||
- 🎯 Focus on constraints, compliance, and domain patterns
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Check domain complexity from step-02 classification first
|
||||
- ⚠️ If complexity is "low", offer to skip this step
|
||||
- ⚠️ Present A/P/C menu after domain requirements defined (or skipped)
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Domain classification from step-02 is available
|
||||
- If complexity is low, this step may be skipped
|
||||
- Domain CSV data provides complexity reference
|
||||
- Focus on domain-specific constraints, not general requirements
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
For complex domains, explore what makes this domain special:
|
||||
- **Compliance requirements** - regulations, standards, certifications
|
||||
- **Technical constraints** - security, privacy, integration requirements
|
||||
- **Domain patterns** - common patterns, best practices, anti-patterns
|
||||
- **Risks and mitigations** - what could go wrong, how to prevent it
|
||||
|
||||
## DOMAIN DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Check Domain Complexity
|
||||
|
||||
**Review classification from step-02:**
|
||||
|
||||
- What's the domain complexity level? (low/medium/high)
|
||||
- What's the specific domain? (healthcare, fintech, education, etc.)
|
||||
|
||||
**If complexity is LOW:**
|
||||
|
||||
Offer to skip:
|
||||
"The domain complexity from our discovery is low. We may not need deep domain-specific requirements. Would you like to:
|
||||
- [C] Skip this step and move to Innovation
|
||||
- [D] Do domain exploration anyway"
|
||||
|
||||
**If complexity is MEDIUM or HIGH:**
|
||||
|
||||
Proceed with domain exploration.
|
||||
|
||||
### 2. Load Domain Reference Data
|
||||
|
||||
**Attempt subprocess data lookup:**
|
||||
|
||||
"Your task: Lookup data in ../data/domain-complexity.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where domain matches {{domainFromStep02}}
|
||||
|
||||
**Return format:**
|
||||
Return ONLY the matching row as a YAML-formatted object with these fields:
|
||||
domain, complexity, typical_concerns, compliance_requirements
|
||||
|
||||
**Do NOT return the entire CSV - only the matching row.**"
|
||||
|
||||
**Graceful degradation (if Task tool unavailable):**
|
||||
- Load the CSV file directly
|
||||
- Find the matching row manually
|
||||
- Extract required fields
|
||||
- Understand typical concerns and compliance requirements
|
||||
|
||||
### 3. Explore Domain-Specific Concerns
|
||||
|
||||
**Start with what you know:**
|
||||
|
||||
Acknowledge the domain and explore what makes it complex:
|
||||
- What regulations apply? (HIPAA, PCI-DSS, GDPR, SOX, etc.)
|
||||
- What standards matter? (ISO, NIST, domain-specific standards)
|
||||
- What certifications are needed? (security, privacy, domain-specific)
|
||||
- What integrations are required? (EMR systems, payment processors, etc.)
|
||||
|
||||
**Explore technical constraints:**
|
||||
- Security requirements (encryption, audit logs, access control)
|
||||
- Privacy requirements (data handling, consent, retention)
|
||||
- Performance requirements (real-time, batch, latency)
|
||||
- Availability requirements (uptime, disaster recovery)
|
||||
|
||||
### 4. Document Domain Requirements
|
||||
|
||||
**Structure the requirements around key concerns:**
|
||||
|
||||
```markdown
|
||||
### Compliance & Regulatory
|
||||
- [Specific requirements]
|
||||
|
||||
### Technical Constraints
|
||||
- [Security, privacy, performance needs]
|
||||
|
||||
### Integration Requirements
|
||||
- [Required systems and data flows]
|
||||
|
||||
### Risk Mitigations
|
||||
- [Domain-specific risks and how to address them]
|
||||
```
|
||||
|
||||
### 5. Validate Completeness
|
||||
|
||||
**Check with the user:**
|
||||
|
||||
"Are there other domain-specific concerns we should consider? For [this domain], what typically gets overlooked?"
|
||||
|
||||
### N. Present MENU OPTIONS
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue - Save and Proceed to Innovation (Step 6 of 13)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill, and when finished redisplay the menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill, and when finished redisplay the menu
|
||||
- IF C: Save content to {outputFile}, update frontmatter, then read fully and follow: ./step-06-innovation.md
|
||||
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#n-present-menu-options)
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT
|
||||
|
||||
When user selects 'C', append to `{outputFile}`:
|
||||
|
||||
```markdown
|
||||
## Domain-Specific Requirements
|
||||
|
||||
{{discovered domain requirements}}
|
||||
```
|
||||
|
||||
If step was skipped, append nothing and proceed.
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [content saved or skipped], will you then read fully and follow: `./step-06-innovation.md` to explore innovation.
|
||||
|
||||
---
|
||||
|
||||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### ✅ SUCCESS:
|
||||
|
||||
- Domain complexity checked before proceeding
|
||||
- Offered to skip if complexity is low
|
||||
- Natural conversation exploring domain concerns
|
||||
- Compliance, technical, and integration requirements identified
|
||||
- Domain-specific risks documented with mitigations
|
||||
- User validated completeness
|
||||
- Content properly saved (or step skipped) when C selected
|
||||
|
||||
### ❌ SYSTEM FAILURE:
|
||||
|
||||
- Not checking domain complexity first
|
||||
- Not offering to skip for low-complexity domains
|
||||
- Missing critical compliance requirements
|
||||
- Not exploring technical constraints
|
||||
- Not asking about domain-specific risks
|
||||
- Being generic instead of domain-specific
|
||||
- Proceeding without user validation
|
||||
|
||||
**Master Rule:** This step is OPTIONAL for simple domains. For complex domains, focus on compliance, constraints, and domain patterns. Natural conversation, not checklists.
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
# Step 6: Innovation Discovery
|
||||
|
||||
**Progress: Step 6 of 11** - Next: Project Type Analysis
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on detecting and exploring innovative aspects of the product
|
||||
- 🎯 OPTIONAL STEP: Only proceed if innovation signals are detected
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating innovation content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Project type from step-02 is available for innovation signal matching
|
||||
- Project-type CSV data will be loaded in this step
|
||||
- Focus on detecting genuine innovation, not forced creativity
|
||||
|
||||
## OPTIONAL STEP CHECK:
|
||||
|
||||
Before proceeding with this step, scan for innovation signals:
|
||||
|
||||
- Listen for language like "nothing like this exists", "rethinking how X works"
|
||||
- Check for project-type innovation signals from CSV
|
||||
- Look for novel approaches or unique combinations
|
||||
- If no innovation detected, skip this step
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Detect and explore innovation patterns in the product, focusing on what makes it truly novel and how to validate the innovative aspects.
|
||||
|
||||
## INNOVATION DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Load Project-Type Innovation Data
|
||||
|
||||
Load innovation signals specific to this project type:
|
||||
|
||||
- Load `../data/project-types.csv` completely
|
||||
- Find the row where `project_type` matches detected type from step-02
|
||||
- Extract `innovation_signals` (semicolon-separated list)
|
||||
- Extract `web_search_triggers` for potential innovation research
|
||||
|
||||
### 2. Listen for Innovation Indicators
|
||||
|
||||
Monitor conversation for both general and project-type-specific innovation signals:
|
||||
|
||||
#### General Innovation Language:
|
||||
|
||||
- "Nothing like this exists"
|
||||
- "We're rethinking how [X] works"
|
||||
- "Combining [A] with [B] for the first time"
|
||||
- "Novel approach to [problem]"
|
||||
- "No one has done [concept] before"
|
||||
|
||||
#### Project-Type-Specific Signals (from CSV):
|
||||
|
||||
Match user descriptions against innovation_signals for their project_type:
|
||||
|
||||
- **api_backend**: "API composition;New protocol"
|
||||
- **mobile_app**: "Gesture innovation;AR/VR features"
|
||||
- **saas_b2b**: "Workflow automation;AI agents"
|
||||
- **developer_tool**: "New paradigm;DSL creation"
|
||||
|
||||
### 3. Initial Innovation Screening
|
||||
|
||||
Ask targeted innovation discovery questions:
|
||||
- Guide exploration of what makes the product innovative
|
||||
- Explore if they're challenging existing assumptions
|
||||
- Ask about novel combinations of technologies/approaches
|
||||
- Identify what hasn't been done before
|
||||
- Understand which aspects feel most innovative
|
||||
|
||||
### 4. Deep Innovation Exploration (If Detected)
|
||||
|
||||
If innovation signals are found, explore deeply:
|
||||
|
||||
#### Innovation Discovery Questions:
|
||||
- What makes it unique compared to existing solutions?
|
||||
- What assumption are you challenging?
|
||||
- How do we validate it works?
|
||||
- What's the fallback if it doesn't?
|
||||
- Has anyone tried this before?
|
||||
|
||||
#### Market Context Research:
|
||||
|
||||
If relevant innovation detected, consider web search for context:
|
||||
Use `web_search_triggers` from project-type CSV:
|
||||
`[web_search_triggers] {concept} innovations {date}`
|
||||
|
||||
### 5. Generate Innovation Content (If Innovation Detected)
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Innovation & Novel Patterns
|
||||
|
||||
### Detected Innovation Areas
|
||||
|
||||
[Innovation patterns identified based on conversation]
|
||||
|
||||
### Market Context & Competitive Landscape
|
||||
|
||||
[Market context and research based on conversation]
|
||||
|
||||
### Validation Approach
|
||||
|
||||
[Validation methodology based on conversation]
|
||||
|
||||
### Risk Mitigation
|
||||
|
||||
[Innovation risks and fallbacks based on conversation]
|
||||
```
|
||||
|
||||
### 6. Present MENU OPTIONS (Only if Innovation Detected)
|
||||
|
||||
Present the innovation content for review, then display menu:
|
||||
- Show identified innovative aspects (using structure from section 5)
|
||||
- Highlight differentiation from existing solutions
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of conversation
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Project Type Analysis (Step 7 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current innovation content, process the enhanced innovation insights that come back, ask user "Accept these improvements to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current innovation content, process the collaborative innovation exploration and ideation, ask user "Accept these changes to the innovation analysis? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-07-project-type.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## NO INNOVATION DETECTED:
|
||||
|
||||
If no genuine innovation signals are found after exploration:
|
||||
- Acknowledge that no clear innovation signals were found
|
||||
- Note this is fine - many successful products are excellent executions of existing concepts
|
||||
- Ask if they'd like to try finding innovative angles or proceed
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation - Let's try to find innovative angles [C] Continue - Skip innovation section and move to Project Type Analysis (Step 7 of 11)"
|
||||
|
||||
### Menu Handling Logic:
|
||||
- IF A: Proceed with content generation anyway, then return to menu
|
||||
- IF C: Skip this step, then read fully and follow: ./step-07-project-type.md
|
||||
|
||||
### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 5.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Innovation signals properly detected from user conversation
|
||||
✅ Project-type innovation signals used to guide discovery
|
||||
✅ Genuine innovation explored (not forced creativity)
|
||||
✅ Validation approach clearly defined for innovative aspects
|
||||
✅ Risk mitigation strategies identified
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Forced innovation when none genuinely exists
|
||||
❌ Not using project-type innovation signals from CSV
|
||||
❌ Missing market context research for novel concepts
|
||||
❌ Not addressing validation approach for innovative features
|
||||
❌ Creating innovation theater without real innovative aspects
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## SKIP CONDITIONS:
|
||||
|
||||
Skip this step and load `./step-07-project-type.md` if:
|
||||
|
||||
- No innovation signals detected in conversation
|
||||
- Product is incremental improvement rather than breakthrough
|
||||
- User confirms innovation exploration is not needed
|
||||
- Project-type CSV has no innovation signals for this type
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document (or step is skipped), load `./step-07-project-type.md`.
|
||||
|
||||
Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu (or confirms step skip)!
|
||||
|
|
@ -1,222 +0,0 @@
|
|||
# Step 7: Project-Type Deep Dive
|
||||
|
||||
**Progress: Step 7 of 11** - Next: Scoping
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on project-type specific requirements and technical considerations
|
||||
- 🎯 DATA-DRIVEN: Use CSV configuration to guide discovery
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating project-type content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Project type from step-02 is available for configuration loading
|
||||
- Project-type CSV data will be loaded in this step
|
||||
- Focus on technical and functional requirements specific to this project type
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Conduct project-type specific discovery using CSV-driven guidance to define technical requirements.
|
||||
|
||||
## PROJECT-TYPE DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Load Project-Type Configuration Data
|
||||
|
||||
**Attempt subprocess data lookup:**
|
||||
|
||||
"Your task: Lookup data in ../data/project-types.csv
|
||||
|
||||
**Search criteria:**
|
||||
- Find row where project_type matches {{projectTypeFromStep02}}
|
||||
|
||||
**Return format:**
|
||||
Return ONLY the matching row as a YAML-formatted object with these fields:
|
||||
project_type, key_questions, required_sections, skip_sections, innovation_signals
|
||||
|
||||
**Do NOT return the entire CSV - only the matching row.**"
|
||||
|
||||
**Graceful degradation (if Task tool unavailable):**
|
||||
- Load the CSV file directly
|
||||
- Find the matching row manually
|
||||
- Extract required fields:
|
||||
- `key_questions` (semicolon-separated list of discovery questions)
|
||||
- `required_sections` (semicolon-separated list of sections to document)
|
||||
- `skip_sections` (semicolon-separated list of sections to skip)
|
||||
- `innovation_signals` (already explored in step-6)
|
||||
|
||||
### 2. Conduct Guided Discovery Using Key Questions
|
||||
|
||||
Parse `key_questions` from CSV and explore each:
|
||||
|
||||
#### Question-Based Discovery:
|
||||
|
||||
For each question in `key_questions` from CSV:
|
||||
|
||||
- Ask the user naturally in conversational style
|
||||
- Listen for their response and ask clarifying follow-ups
|
||||
- Connect answers to product value proposition
|
||||
|
||||
**Example Flow:**
|
||||
If key_questions = "Endpoints needed?;Authentication method?;Data formats?;Rate limits?;Versioning?;SDK needed?"
|
||||
|
||||
Ask naturally:
|
||||
|
||||
- "What are the main endpoints your API needs to expose?"
|
||||
- "How will you handle authentication and authorization?"
|
||||
- "What data formats will you support for requests and responses?"
|
||||
|
||||
### 3. Document Project-Type Specific Requirements
|
||||
|
||||
Based on user answers to key_questions, synthesize comprehensive requirements:
|
||||
|
||||
#### Requirement Categories:
|
||||
|
||||
Cover the areas indicated by `required_sections` from CSV:
|
||||
|
||||
- Synthesize what was discovered for each required section
|
||||
- Document specific requirements, constraints, and decisions
|
||||
- Connect to product differentiator when relevant
|
||||
|
||||
#### Skip Irrelevant Sections:
|
||||
|
||||
Skip areas indicated by `skip_sections` from CSV to avoid wasting time on irrelevant aspects.
|
||||
|
||||
### 4. Generate Dynamic Content Sections
|
||||
|
||||
Parse `required_sections` list from the matched CSV row. For each section name, generate corresponding content:
|
||||
|
||||
#### Common CSV Section Mappings:
|
||||
|
||||
- "endpoint_specs" or "endpoint_specification" → API endpoints documentation
|
||||
- "auth_model" or "authentication_model" → Authentication approach
|
||||
- "platform_reqs" or "platform_requirements" → Platform support needs
|
||||
- "device_permissions" or "device_features" → Device capabilities
|
||||
- "tenant_model" → Multi-tenancy approach
|
||||
- "rbac_matrix" or "permission_matrix" → Permission structure
|
||||
|
||||
#### Template Variable Strategy:
|
||||
|
||||
- For sections matching common template variables: generate specific content
|
||||
- For sections without template matches: include in main project_type_requirements
|
||||
- Hybrid approach balances template structure with CSV-driven flexibility
|
||||
|
||||
### 5. Generate Project-Type Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## [Project Type] Specific Requirements
|
||||
|
||||
### Project-Type Overview
|
||||
|
||||
[Project type summary based on conversation]
|
||||
|
||||
### Technical Architecture Considerations
|
||||
|
||||
[Technical architecture requirements based on conversation]
|
||||
|
||||
[Dynamic sections based on CSV and conversation]
|
||||
|
||||
### Implementation Considerations
|
||||
|
||||
[Implementation specific requirements based on conversation]
|
||||
```
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Present the project-type content for review, then display menu:
|
||||
|
||||
"Based on our conversation and best practices for this product type, I've documented the {project_type}-specific requirements for {{project_name}}.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from section 5]
|
||||
|
||||
**What would you like to do?**"
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Scoping (Step 8 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current project-type content, process the enhanced technical insights that come back, ask user "Accept these improvements to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current project-type requirements, process the collaborative technical expertise and validation, ask user "Accept these changes to the technical requirements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-08-scoping.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from previous steps.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Project-type configuration loaded and used effectively
|
||||
✅ All key questions from CSV explored with user input
|
||||
✅ Required sections generated per CSV configuration
|
||||
✅ Skip sections properly avoided to save time
|
||||
✅ Technical requirements connected to product value
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Not loading or using project-type CSV configuration
|
||||
❌ Missing key questions from CSV in discovery process
|
||||
❌ Not generating required sections per CSV configuration
|
||||
❌ Documenting sections that should be skipped per CSV
|
||||
❌ Creating generic content without project-type specificity
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## PROJECT-TYPE EXAMPLES:
|
||||
|
||||
**For api_backend:**
|
||||
|
||||
- Focus on endpoints, authentication, data schemas, rate limiting
|
||||
- Skip visual design and user journey sections
|
||||
- Generate API specification documentation
|
||||
|
||||
**For mobile_app:**
|
||||
|
||||
- Focus on platform requirements, device permissions, offline mode
|
||||
- Skip API endpoint documentation unless needed
|
||||
- Generate mobile-specific technical requirements
|
||||
|
||||
**For saas_b2b:**
|
||||
|
||||
- Focus on multi-tenancy, permissions, integrations
|
||||
- Skip mobile-first considerations unless relevant
|
||||
- Generate enterprise-specific requirements
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-08-scoping.md` to define project scope.
|
||||
|
||||
Remember: Do NOT proceed to step-08 (Scoping) until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,263 +0,0 @@
|
|||
# Step 8: Scoping Exercise - Scope Definition (Phased or Single-Release)
|
||||
|
||||
**Progress: Step 8 of 11** - Next: Functional Requirements
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on strategic scope decisions that keep projects viable
|
||||
- 🎯 EMPHASIZE lean MVP thinking while preserving long-term vision
|
||||
- ⚠️ NEVER de-scope, defer, or phase out requirements that the user explicitly included in their input documents without asking first
|
||||
- ⚠️ NEVER invent phasing (MVP/Growth/Vision) unless the user requests phased delivery — if input documents define all components as core requirements, they are ALL in scope
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- 📚 Review the complete PRD document built so far
|
||||
- ⚠️ Present A/P/C menu after generating scoping decisions
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Complete PRD document built so far is available for review
|
||||
- User journeys, success criteria, and domain requirements are documented
|
||||
- Focus on strategic scope decisions, not feature details
|
||||
- Balance between user value and implementation feasibility
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Conduct comprehensive scoping exercise to define release boundaries and prioritize features based on the user's chosen delivery mode (phased or single-release).
|
||||
|
||||
## SCOPING SEQUENCE:
|
||||
|
||||
### 1. Review Current PRD State
|
||||
|
||||
Analyze everything documented so far:
|
||||
- Present synthesis of established vision, success criteria, journeys
|
||||
- Assess domain and innovation focus
|
||||
- Evaluate scope implications: simple MVP, medium, or complex project
|
||||
- Ask if initial assessment feels right or if they see it differently
|
||||
|
||||
### 2. Define MVP Strategy
|
||||
|
||||
Facilitate strategic MVP decisions:
|
||||
- Explore MVP philosophy options: problem-solving, experience, platform, or revenue MVP
|
||||
- Ask critical questions:
|
||||
- What's the minimum that would make users say 'this is useful'?
|
||||
- What would make investors/partners say 'this has potential'?
|
||||
- What's the fastest path to validated learning?
|
||||
- Guide toward appropriate MVP approach for their product
|
||||
|
||||
### 3. Scoping Decision Framework
|
||||
|
||||
Use structured decision-making for scope:
|
||||
|
||||
**Must-Have Analysis:**
|
||||
- Guide identification of absolute MVP necessities
|
||||
- For each journey and success criterion, ask:
|
||||
- Without this, does the product fail?
|
||||
- Can this be manual initially?
|
||||
- Is this a deal-breaker for early adopters?
|
||||
- Analyze journeys for MVP essentials
|
||||
|
||||
**Nice-to-Have Analysis:**
|
||||
- Identify what could be added later:
|
||||
- Features that enhance but aren't essential
|
||||
- User types that can be added later
|
||||
- Advanced functionality that builds on MVP
|
||||
- Ask what features could be added in versions 2, 3, etc.
|
||||
|
||||
**⚠️ SCOPE CHANGE CONFIRMATION GATE:**
|
||||
- If you believe any user-specified requirement should be deferred or de-scoped, you MUST present this to the user and get explicit confirmation BEFORE removing it from scope
|
||||
- Frame it as a recommendation, not a decision: "I'd recommend deferring X because [reason]. Do you agree, or should it stay in scope?"
|
||||
- NEVER silently move user requirements to a later phase or exclude them from MVP
|
||||
- Before creating any consequential phase-based artifacts (e.g., phase tags, labels, or follow-on prompts), present artifact creation as a recommendation and proceed only after explicit user approval
|
||||
|
||||
### 4. Progressive Feature Roadmap
|
||||
|
||||
**CRITICAL: Phasing is NOT automatic. Check the user's input first.**
|
||||
|
||||
Before proposing any phased approach, review the user's input documents:
|
||||
|
||||
- **If the input documents define all components as core requirements with no mention of phases:** Present all requirements as a single release scope. Do NOT invent phases or move requirements to fabricated future phases.
|
||||
- **If the input documents explicitly request phased delivery:** Guide mapping of features across the phases the user defined.
|
||||
- **If scope is unclear:** ASK the user whether they want phased delivery or a single release before proceeding.
|
||||
|
||||
**When the user requests phased delivery**, guide mapping of features across the phases the user defines:
|
||||
|
||||
- Use user-provided phase labels and count; if none are provided, propose a default (e.g., MVP/Growth/Vision) and ask for confirmation
|
||||
- Ensure clear progression and dependencies between phases
|
||||
|
||||
**Each phase should address:**
|
||||
|
||||
- Core user value delivery and essential journeys for that phase
|
||||
- Clear boundaries on what ships in each phase
|
||||
- Dependencies on prior phases
|
||||
|
||||
**When the user chooses a single release**, define the complete scope:
|
||||
|
||||
- All user-specified requirements are in scope
|
||||
- Focus must-have vs nice-to-have analysis on what ships in this release
|
||||
- Do NOT create phases — use must-have/nice-to-have priority within the single release
|
||||
|
||||
**If phased delivery:** "Where does your current vision fit in this development sequence?"
|
||||
**If single release:** "How does your current vision map to this upcoming release?"
|
||||
|
||||
### 5. Risk-Based Scoping
|
||||
|
||||
Identify and mitigate scoping risks:
|
||||
|
||||
**Technical Risks:**
|
||||
"Looking at your innovation and domain requirements:
|
||||
|
||||
- What's the most technically challenging aspect?
|
||||
- Could we simplify the initial implementation?
|
||||
- What's the riskiest assumption about technology feasibility?"
|
||||
|
||||
**Market Risks:**
|
||||
|
||||
- What's the biggest market risk?
|
||||
- How does the MVP address this?
|
||||
- What learning do we need to de-risk this?"
|
||||
|
||||
**Resource Risks:**
|
||||
|
||||
- What if we have fewer resources than planned?
|
||||
- What's the absolute minimum team size needed?
|
||||
- Can we launch with a smaller feature set?"
|
||||
|
||||
### 6. Generate Scoping Content
|
||||
|
||||
Prepare comprehensive scoping section:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
**If user chose phased delivery:**
|
||||
|
||||
```markdown
|
||||
## Project Scoping & Phased Development
|
||||
|
||||
### MVP Strategy & Philosophy
|
||||
|
||||
**MVP Approach:** {{chosen_mvp_approach}}
|
||||
**Resource Requirements:** {{mvp_team_size_and_skills}}
|
||||
|
||||
### MVP Feature Set (Phase 1)
|
||||
|
||||
**Core User Journeys Supported:**
|
||||
{{essential_journeys_for_mvp}}
|
||||
|
||||
**Must-Have Capabilities:**
|
||||
{{list_of_essential_mvp_features}}
|
||||
|
||||
### Post-MVP Features
|
||||
|
||||
**Phase 2 (Post-MVP):**
|
||||
{{planned_growth_features}}
|
||||
|
||||
**Phase 3 (Expansion):**
|
||||
{{planned_expansion_features}}
|
||||
|
||||
### Risk Mitigation Strategy
|
||||
|
||||
**Technical Risks:** {{mitigation_approach}}
|
||||
**Market Risks:** {{validation_approach}}
|
||||
**Resource Risks:** {{contingency_approach}}
|
||||
```
|
||||
|
||||
**If user chose single release (no phasing):**
|
||||
|
||||
```markdown
|
||||
## Project Scoping
|
||||
|
||||
### Strategy & Philosophy
|
||||
|
||||
**Approach:** {{chosen_approach}}
|
||||
**Resource Requirements:** {{team_size_and_skills}}
|
||||
|
||||
### Complete Feature Set
|
||||
|
||||
**Core User Journeys Supported:**
|
||||
{{all_journeys}}
|
||||
|
||||
**Must-Have Capabilities:**
|
||||
{{list_of_must_have_features}}
|
||||
|
||||
**Nice-to-Have Capabilities:**
|
||||
{{list_of_nice_to_have_features}}
|
||||
|
||||
### Risk Mitigation Strategy
|
||||
|
||||
**Technical Risks:** {{mitigation_approach}}
|
||||
**Market Risks:** {{validation_approach}}
|
||||
**Resource Risks:** {{contingency_approach}}
|
||||
```
|
||||
|
||||
### 7. Present MENU OPTIONS
|
||||
|
||||
Present the scoping decisions for review, then display menu:
|
||||
- Show strategic scoping plan (using structure from step 6)
|
||||
- Highlight release boundaries and prioritization (phased roadmap only if phased delivery was selected)
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of conversation
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Functional Requirements (Step 9 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current scoping analysis, process the enhanced insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the scoping context, process the collaborative insights on MVP and roadmap decisions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array (also add `releaseMode: phased` or `releaseMode: single-release` to frontmatter based on user's choice), then read fully and follow: ./step-09-functional.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Complete PRD document analyzed for scope implications
|
||||
✅ Strategic MVP approach defined and justified
|
||||
✅ Clear feature boundaries established (phased or single-release, per user preference)
|
||||
✅ All user-specified requirements accounted for — none silently removed or deferred
|
||||
✅ Any scope reduction recommendations presented to user with rationale and explicit confirmation obtained
|
||||
✅ Key risks identified and mitigation strategies defined
|
||||
✅ User explicitly agrees to scope decisions
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Not analyzing the complete PRD before making scoping decisions
|
||||
❌ Making scope decisions without strategic rationale
|
||||
❌ Not getting explicit user agreement on MVP boundaries
|
||||
❌ Missing critical risk analysis
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ **CRITICAL**: Silently de-scoping or deferring requirements that the user explicitly included in their input documents
|
||||
❌ **CRITICAL**: Inventing phasing (MVP/Growth/Vision) when the user did not request phased delivery
|
||||
❌ **CRITICAL**: Making consequential scoping decisions (what is in/out of scope) without explicit user confirmation
|
||||
❌ **CRITICAL**: Creating phase-based artifacts (tags, labels, follow-on prompts) without explicit user approval
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load ./step-09-functional.md.
|
||||
|
||||
Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,219 +0,0 @@
|
|||
# Step 9: Functional Requirements Synthesis
|
||||
|
||||
**Progress: Step 9 of 11** - Next: Non-Functional Requirements
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on creating comprehensive capability inventory for the product
|
||||
- 🎯 CRITICAL: This is THE CAPABILITY CONTRACT for all downstream work
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating functional requirements
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- ALL previous content (executive summary, success criteria, journeys, domain, innovation, project-type) must be referenced
|
||||
- No additional data files needed for this step
|
||||
- Focus on capabilities, not implementation details
|
||||
|
||||
## CRITICAL IMPORTANCE:
|
||||
|
||||
**This section defines THE CAPABILITY CONTRACT for the entire product:**
|
||||
|
||||
- UX designers will ONLY design what's listed here
|
||||
- Architects will ONLY support what's listed here
|
||||
- Epic breakdown will ONLY implement what's listed here
|
||||
- If a capability is missing from FRs, it will NOT exist in the final product
|
||||
|
||||
## FUNCTIONAL REQUIREMENTS SYNTHESIS SEQUENCE:
|
||||
|
||||
### 1. Understand FR Purpose and Usage
|
||||
|
||||
Start by explaining the critical role of functional requirements:
|
||||
|
||||
**Purpose:**
|
||||
FRs define WHAT capabilities the product must have. They are the complete inventory of user-facing and system capabilities that deliver the product vision.
|
||||
|
||||
**Critical Properties:**
|
||||
✅ Each FR is a testable capability
|
||||
✅ Each FR is implementation-agnostic (could be built many ways)
|
||||
✅ Each FR specifies WHO and WHAT, not HOW
|
||||
✅ No UI details, no performance numbers, no technology choices
|
||||
✅ Comprehensive coverage of capability areas
|
||||
|
||||
**How They Will Be Used:**
|
||||
|
||||
1. UX Designer reads FRs → designs interactions for each capability
|
||||
2. Architect reads FRs → designs systems to support each capability
|
||||
3. PM reads FRs → creates epics and stories to implement each capability
|
||||
|
||||
### 2. Review Existing Content for Capability Extraction
|
||||
|
||||
Systematically review all previous sections to extract capabilities:
|
||||
|
||||
**Extract From:**
|
||||
|
||||
- Executive Summary → Core product differentiator capabilities
|
||||
- Success Criteria → Success-enabling capabilities
|
||||
- User Journeys → Journey-revealed capabilities
|
||||
- Domain Requirements → Compliance and regulatory capabilities
|
||||
- Innovation Patterns → Innovative feature capabilities
|
||||
- Project-Type Requirements → Technical capability needs
|
||||
|
||||
### 3. Organize Requirements by Capability Area
|
||||
|
||||
Group FRs by logical capability areas (NOT by technology or layer):
|
||||
|
||||
**Good Grouping Examples:**
|
||||
|
||||
- ✅ "User Management" (not "Authentication System")
|
||||
- ✅ "Content Discovery" (not "Search Algorithm")
|
||||
- ✅ "Team Collaboration" (not "WebSocket Infrastructure")
|
||||
|
||||
**Target 5-8 Capability Areas** for typical projects.
|
||||
|
||||
### 4. Generate Comprehensive FR List
|
||||
|
||||
Create complete functional requirements using this format:
|
||||
|
||||
**Format:**
|
||||
|
||||
- FR#: [Actor] can [capability] [context/constraint if needed]
|
||||
- Number sequentially (FR1, FR2, FR3...)
|
||||
- Aim for 20-50 FRs for typical projects
|
||||
|
||||
**Altitude Check:**
|
||||
Each FR should answer "WHAT capability exists?" NOT "HOW it's implemented?"
|
||||
|
||||
**Examples:**
|
||||
|
||||
- ✅ "Users can customize appearance settings"
|
||||
- ❌ "Users can toggle light/dark theme with 3 font size options stored in LocalStorage"
|
||||
|
||||
### 5. Self-Validation Process
|
||||
|
||||
Before presenting to user, validate the FR list:
|
||||
|
||||
**Completeness Check:**
|
||||
|
||||
1. "Did I cover EVERY capability mentioned in the MVP scope section?"
|
||||
2. "Did I include domain-specific requirements as FRs?"
|
||||
3. "Did I cover the project-type specific needs?"
|
||||
4. "Could a UX designer read ONLY the FRs and know what to design?"
|
||||
5. "Could an Architect read ONLY the FRs and know what to support?"
|
||||
6. "Are there any user actions or system behaviors we discussed that have no FR?"
|
||||
|
||||
**Altitude Check:**
|
||||
|
||||
1. "Am I stating capabilities (WHAT) or implementation (HOW)?"
|
||||
2. "Am I listing acceptance criteria or UI specifics?" (Remove if yes)
|
||||
3. "Could this FR be implemented 5 different ways?" (Good - means it's not prescriptive)
|
||||
|
||||
**Quality Check:**
|
||||
|
||||
1. "Is each FR clear enough that someone could test whether it exists?"
|
||||
2. "Is each FR independent (not dependent on reading other FRs to understand)?"
|
||||
3. "Did I avoid vague terms like 'good', 'fast', 'easy'?" (Use NFRs for quality attributes)
|
||||
|
||||
### 6. Generate Functional Requirements Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Functional Requirements
|
||||
|
||||
### [Capability Area Name]
|
||||
|
||||
- FR1: [Specific Actor] can [specific capability]
|
||||
- FR2: [Specific Actor] can [specific capability]
|
||||
- FR3: [Specific Actor] can [specific capability]
|
||||
|
||||
### [Another Capability Area]
|
||||
|
||||
- FR4: [Specific Actor] can [specific capability]
|
||||
- FR5: [Specific Actor] can [specific capability]
|
||||
|
||||
[Continue for all capability areas discovered in conversation]
|
||||
```
|
||||
|
||||
### 7. Present MENU OPTIONS
|
||||
|
||||
Present the functional requirements for review, then display menu:
|
||||
- Show synthesized functional requirements (using structure from step 6)
|
||||
- Emphasize this is the capability contract for all downstream work
|
||||
- Highlight that every feature must trace back to these requirements
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of conversation
|
||||
|
||||
**What would you like to do?**"
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Non-Functional Requirements (Step 10 of 11)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current FR list, process the enhanced capability coverage that comes back, ask user if they accept the additions, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current FR list, process the collaborative capability validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-10-nonfunctional.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ All previous discovery content synthesized into FRs
|
||||
✅ FRs organized by capability areas (not technology)
|
||||
✅ Each FR states WHAT capability exists, not HOW to implement
|
||||
✅ Comprehensive coverage with 20-50 FRs typical
|
||||
✅ Altitude validation ensures implementation-agnostic requirements
|
||||
✅ Completeness check validates coverage of all discussed capabilities
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Missing capabilities from previous discovery sections
|
||||
❌ Organizing FRs by technology instead of capability areas
|
||||
❌ Including implementation details or UI specifics in FRs
|
||||
❌ Not achieving comprehensive coverage of discussed capabilities
|
||||
❌ Using vague terms instead of testable capabilities
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## CAPABILITY CONTRACT REMINDER:
|
||||
|
||||
Emphasize to user: "This FR list is now binding. Any feature not listed here will not exist in the final product unless we explicitly add it. This is why it's critical to ensure completeness now."
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load ./step-10-nonfunctional.md to define non-functional requirements.
|
||||
|
||||
Remember: Do NOT proceed to step-10 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,230 +0,0 @@
|
|||
# Step 10: Non-Functional Requirements
|
||||
|
||||
**Progress: Step 10 of 12** - Next: Polish Document
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between PM peers
|
||||
- 📋 YOU ARE A FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on quality attributes that matter for THIS specific product
|
||||
- 🎯 SELECTIVE: Only document NFRs that actually apply to the product
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating NFR content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step name to the end of the list of stepsCompleted
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Functional requirements already defined and will inform NFRs
|
||||
- Domain and project-type context will guide which NFRs matter
|
||||
- Focus on specific, measurable quality criteria
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Define non-functional requirements that specify quality attributes for the product, focusing only on what matters for THIS specific product.
|
||||
|
||||
## NON-FUNCTIONAL REQUIREMENTS SEQUENCE:
|
||||
|
||||
### 1. Explain NFR Purpose and Scope
|
||||
|
||||
Start by clarifying what NFRs are and why we're selective:
|
||||
|
||||
**NFR Purpose:**
|
||||
NFRs define HOW WELL the system must perform, not WHAT it must do. They specify quality attributes like performance, security, scalability, etc.
|
||||
|
||||
**Selective Approach:**
|
||||
We only document NFRs that matter for THIS product. If a category doesn't apply, we skip it entirely. This prevents requirement bloat and focuses on what's actually important.
|
||||
|
||||
### 2. Assess Product Context for NFR Relevance
|
||||
|
||||
Evaluate which NFR categories matter based on product context:
|
||||
|
||||
**Quick Assessment Questions:**
|
||||
|
||||
- **Performance**: Is there user-facing impact of speed?
|
||||
- **Security**: Are we handling sensitive data or payments?
|
||||
- **Scalability**: Do we expect rapid user growth?
|
||||
- **Accessibility**: Are we serving broad public audiences?
|
||||
- **Integration**: Do we need to connect with other systems?
|
||||
- **Reliability**: Would downtime cause significant problems?
|
||||
|
||||
### 3. Explore Relevant NFR Categories
|
||||
|
||||
For each relevant category, conduct targeted discovery:
|
||||
|
||||
#### Performance NFRs (If relevant):
|
||||
|
||||
Explore performance requirements:
|
||||
- What parts of the system need to be fast for users to be successful?
|
||||
- Are there specific response time expectations?
|
||||
- What happens if performance is slower than expected?
|
||||
- Are there concurrent user scenarios we need to support?
|
||||
|
||||
#### Security NFRs (If relevant):
|
||||
|
||||
Explore security requirements:
|
||||
- What data needs to be protected?
|
||||
- Who should have access to what?
|
||||
- What are the security risks we need to mitigate?
|
||||
- Are there compliance requirements (GDPR, HIPAA, PCI-DSS)?
|
||||
|
||||
#### Scalability NFRs (If relevant):
|
||||
|
||||
Explore scalability requirements:
|
||||
- How many users do we expect initially? Long-term?
|
||||
- Are there seasonal or event-based traffic spikes?
|
||||
- What happens if we exceed our capacity?
|
||||
- What growth scenarios should we plan for?
|
||||
|
||||
#### Accessibility NFRs (If relevant):
|
||||
|
||||
Explore accessibility requirements:
|
||||
- Are we serving users with visual, hearing, or motor impairments?
|
||||
- Are there legal accessibility requirements (WCAG, Section 508)?
|
||||
- What accessibility features are most important for our users?
|
||||
|
||||
#### Integration NFRs (If relevant):
|
||||
|
||||
Explore integration requirements:
|
||||
- What external systems do we need to connect with?
|
||||
- Are there APIs or data formats we must support?
|
||||
- How reliable do these integrations need to be?
|
||||
|
||||
### 4. Make NFRs Specific and Measurable
|
||||
|
||||
For each relevant NFR category, ensure criteria are testable:
|
||||
|
||||
**From Vague to Specific:**
|
||||
|
||||
- NOT: "The system should be fast" → "User actions complete within 2 seconds"
|
||||
- NOT: "The system should be secure" → "All data is encrypted at rest and in transit"
|
||||
- NOT: "The system should scale" → "System supports 10x user growth with <10% performance degradation"
|
||||
|
||||
### 5. Generate NFR Content (Only Relevant Categories)
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure (Dynamic based on relevance):
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections (only include sections that are relevant):
|
||||
|
||||
```markdown
|
||||
## Non-Functional Requirements
|
||||
|
||||
### Performance
|
||||
|
||||
[Performance requirements based on conversation - only include if relevant]
|
||||
|
||||
### Security
|
||||
|
||||
[Security requirements based on conversation - only include if relevant]
|
||||
|
||||
### Scalability
|
||||
|
||||
[Scalability requirements based on conversation - only include if relevant]
|
||||
|
||||
### Accessibility
|
||||
|
||||
[Accessibility requirements based on conversation - only include if relevant]
|
||||
|
||||
### Integration
|
||||
|
||||
[Integration requirements based on conversation - only include if relevant]
|
||||
```
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Present the non-functional requirements for review, then display menu:
|
||||
- Show defined NFRs (using structure from step 5)
|
||||
- Note that only relevant categories were included
|
||||
- Emphasize NFRs specify how well the system needs to perform
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of conversation
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Polish Document (Step 11 of 12)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the current NFR content, process the enhanced quality attribute insights that come back, ask user if they accept the improvements, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the current NFR list, process the collaborative technical validation and additions, ask user if they accept the changes, if yes update content then redisplay menu, if no keep original content then redisplay menu
|
||||
- IF C: Append the final content to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-11-polish.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 5.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Only relevant NFR categories documented (no requirement bloat)
|
||||
✅ Each NFR is specific and measurable
|
||||
✅ NFRs connected to actual user needs and business context
|
||||
✅ Vague requirements converted to testable criteria
|
||||
✅ Domain-specific compliance requirements included if relevant
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Documenting NFR categories that don't apply to the product
|
||||
❌ Leaving requirements vague and unmeasurable
|
||||
❌ Not connecting NFRs to actual user or business needs
|
||||
❌ Missing domain-specific compliance requirements
|
||||
❌ Creating overly prescriptive technical requirements
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## NFR CATEGORY GUIDANCE:
|
||||
|
||||
**Include Performance When:**
|
||||
|
||||
- User-facing response times impact success
|
||||
- Real-time interactions are critical
|
||||
- Performance is a competitive differentiator
|
||||
|
||||
**Include Security When:**
|
||||
|
||||
- Handling sensitive user data
|
||||
- Processing payments or financial information
|
||||
- Subject to compliance regulations
|
||||
- Protecting intellectual property
|
||||
|
||||
**Include Scalability When:**
|
||||
|
||||
- Expecting rapid user growth
|
||||
- Handling variable traffic patterns
|
||||
- Supporting enterprise-scale usage
|
||||
- Planning for market expansion
|
||||
|
||||
**Include Accessibility When:**
|
||||
|
||||
- Serving broad public audiences
|
||||
- Subject to accessibility regulations
|
||||
- Targeting users with disabilities
|
||||
- B2B customers with accessibility requirements
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load ./step-11-polish.md to finalize the PRD and complete the workflow.
|
||||
|
||||
Remember: Do NOT proceed to step-11 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
|
|
@ -1,221 +0,0 @@
|
|||
# Step 11: Document Polish
|
||||
|
||||
**Progress: Step 11 of 12** - Next: Complete PRD
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 CRITICAL: Load the ENTIRE document before making changes
|
||||
- 📖 CRITICAL: Read complete step file before taking action
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- ✅ This is a POLISH step - optimize existing content
|
||||
- 📋 IMPROVE flow, coherence, and readability
|
||||
- 💬 PRESERVE user's voice and intent
|
||||
- 🎯 MAINTAIN all essential information while improving presentation
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Load complete document first
|
||||
- 📝 Review for flow and coherence issues
|
||||
- ✂️ Reduce duplication while preserving essential info
|
||||
- 📖 Ensure proper ## Level 2 headers throughout
|
||||
- 💾 Save optimized document
|
||||
- ⚠️ Present A/P/C menu after polish
|
||||
- 🚫 DO NOT skip review steps
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Complete PRD document exists from all previous steps
|
||||
- Document may have duplication from progressive append
|
||||
- Sections may not flow smoothly together
|
||||
- Level 2 headers ensure document can be split if needed
|
||||
- Focus on readability and coherence
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Optimize the complete PRD document for flow, coherence, and professional presentation while preserving all essential information.
|
||||
|
||||
## DOCUMENT POLISH SEQUENCE:
|
||||
|
||||
### 1. Load Context and Document
|
||||
|
||||
**CRITICAL:** Load the PRD purpose document first:
|
||||
|
||||
- Read `../data/prd-purpose.md` to understand what makes a great BMAD PRD
|
||||
- Internalize the philosophy: information density, traceability, measurable requirements
|
||||
- Keep the dual-audience nature (humans + LLMs) in mind
|
||||
|
||||
**Then Load the PRD Document:**
|
||||
|
||||
- Read `{outputFile}` completely from start to finish
|
||||
- Understand the full document structure and content
|
||||
- Identify all sections and their relationships
|
||||
- Note areas that need attention
|
||||
|
||||
### 2. Document Quality Review
|
||||
|
||||
Review the entire document with PRD purpose principles in mind:
|
||||
|
||||
**Information Density:**
|
||||
- Are there wordy phrases that can be condensed?
|
||||
- Is conversational padding present?
|
||||
- Can sentences be more direct and concise?
|
||||
|
||||
**Flow and Coherence:**
|
||||
- Do sections transition smoothly?
|
||||
- Are there jarring topic shifts?
|
||||
- Does the document tell a cohesive story?
|
||||
- Is the progression logical for readers?
|
||||
|
||||
**Duplication Detection:**
|
||||
- Are ideas repeated across sections?
|
||||
- Is the same information stated multiple times?
|
||||
- Can redundant content be consolidated?
|
||||
- Are there contradictory statements?
|
||||
|
||||
**Header Structure:**
|
||||
- Are all main sections using ## Level 2 headers?
|
||||
- Is the hierarchy consistent (##, ###, ####)?
|
||||
- Can sections be easily extracted or referenced?
|
||||
- Are headers descriptive and clear?
|
||||
|
||||
**Readability:**
|
||||
- Are sentences clear and concise?
|
||||
- Is the language consistent throughout?
|
||||
- Are technical terms used appropriately?
|
||||
- Would stakeholders find this easy to understand?
|
||||
|
||||
### 2b. Brainstorming Reconciliation (if brainstorming input exists)
|
||||
|
||||
**Check the PRD frontmatter `inputDocuments` for any brainstorming document** (e.g., `brainstorming-session*.md`, `brainstorming-report.md`). If a brainstorming document was used as input:
|
||||
|
||||
1. **Load the brainstorming document** and extract all distinct ideas, themes, and recommendations
|
||||
2. **Cross-reference against the PRD** — for each brainstorming idea, check if it landed in any PRD section (requirements, success criteria, user journeys, scope, etc.)
|
||||
3. **Identify dropped ideas** — ideas from brainstorming that do not appear anywhere in the PRD. Pay special attention to:
|
||||
- Tone, personality, and interaction design ideas (these are most commonly lost)
|
||||
- Design philosophy and coaching approach ideas
|
||||
- "What should this feel like" ideas (UX feel, not just UX function)
|
||||
- Qualitative/soft ideas that don't map cleanly to functional requirements
|
||||
4. **Present findings to user**: "These brainstorming ideas did not make it into the PRD: [list]. Should any be incorporated?"
|
||||
5. **If user wants to incorporate dropped ideas**: Add them to the most appropriate PRD section (success criteria, non-functional requirements, or a new section if needed)
|
||||
|
||||
**Why this matters**: Brainstorming documents are often long, and the PRD's structured template has an implicit bias toward concrete/structural ideas. Soft ideas (tone, philosophy, interaction feel) frequently get silently dropped because they don't map cleanly to FR/NFR format.
|
||||
|
||||
### 3. Optimization Actions
|
||||
|
||||
Make targeted improvements:
|
||||
|
||||
**Improve Flow:**
|
||||
- Add transition sentences between sections
|
||||
- Smooth out jarring topic shifts
|
||||
- Ensure logical progression
|
||||
- Connect related concepts across sections
|
||||
|
||||
**Reduce Duplication:**
|
||||
- Consolidate repeated information
|
||||
- Keep content in the most appropriate section
|
||||
- Use cross-references instead of repetition
|
||||
- Remove redundant explanations
|
||||
|
||||
**Enhance Coherence:**
|
||||
- Ensure consistent terminology throughout
|
||||
- Align all sections with product differentiator
|
||||
- Maintain consistent voice and tone
|
||||
- Verify scope consistency across sections
|
||||
|
||||
**Optimize Headers:**
|
||||
- Ensure all main sections use ## Level 2
|
||||
- Make headers descriptive and action-oriented
|
||||
- Check that headers follow consistent patterns
|
||||
- Verify headers support document navigation
|
||||
|
||||
### 4. Preserve Critical Information
|
||||
|
||||
**While optimizing, ensure NOTHING essential is lost:**
|
||||
|
||||
**Must Preserve:**
|
||||
- All user success criteria
|
||||
- All functional requirements (capability contract)
|
||||
- All user journey narratives
|
||||
- All scope decisions (whether phased or single-release), including consent-critical evidence (explicit user confirmations and rationales for any scope changes from step 8)
|
||||
- All non-functional requirements
|
||||
- Product differentiator and vision
|
||||
- Domain-specific requirements
|
||||
- Innovation analysis (if present)
|
||||
|
||||
**Can Consolidate:**
|
||||
- Repeated explanations of the same concept
|
||||
- Redundant background information
|
||||
- Multiple versions of similar content
|
||||
- Overlapping examples
|
||||
|
||||
### 5. Generate Optimized Document
|
||||
|
||||
Create the polished version:
|
||||
|
||||
**Polishing Process:**
|
||||
1. Start with original document
|
||||
2. Apply all optimization actions
|
||||
3. Review to ensure nothing essential was lost
|
||||
4. Verify improvements enhance readability
|
||||
5. Prepare optimized version for review
|
||||
|
||||
### 6. Present MENU OPTIONS
|
||||
|
||||
Present the polished document for review, then display menu:
|
||||
- Show what changed in the polish
|
||||
- Highlight improvements made (flow, duplication, headers)
|
||||
- Ask if they'd like to refine further, get other perspectives, or proceed
|
||||
- Present menu options naturally as part of conversation
|
||||
|
||||
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue to Complete PRD (Step 12 of 12)"
|
||||
|
||||
#### Menu Handling Logic:
|
||||
- IF A: Invoke the `bmad-advanced-elicitation` skill with the polished document, process the enhanced refinements that come back, ask user "Accept these polish improvements? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu
|
||||
- IF P: Invoke the `bmad-party-mode` skill with the polished document, process the collaborative refinements to flow and coherence, ask user "Accept these polish changes? (y/n)", if yes update content with improvements then redisplay menu, if no keep original polish then redisplay menu
|
||||
- IF C: Save the polished document to {outputFile}, update frontmatter by adding this step name to the end of the stepsCompleted array, then read fully and follow: ./step-12-complete.md
|
||||
- IF Any other: help user respond, then redisplay menu
|
||||
|
||||
#### EXECUTION RULES:
|
||||
- ALWAYS halt and wait for user input after presenting menu
|
||||
- ONLY proceed to next step when user selects 'C'
|
||||
- After other menu items execution, return to this menu
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', replace the entire document content with the polished version.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Complete document loaded and reviewed
|
||||
✅ Flow and coherence improved
|
||||
✅ Duplication reduced while preserving essential information
|
||||
✅ All main sections use ## Level 2 headers
|
||||
✅ Transitions between sections are smooth
|
||||
✅ User's voice and intent preserved
|
||||
✅ Document is more readable and professional
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Brainstorming reconciliation completed (if brainstorming input exists)
|
||||
✅ Polished document saved when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Loading only partial document (leads to incomplete polish)
|
||||
❌ Removing essential information while reducing duplication
|
||||
❌ Not preserving user's voice and intent
|
||||
❌ Changing content instead of improving presentation
|
||||
❌ Not ensuring ## Level 2 headers for main sections
|
||||
❌ Making arbitrary style changes instead of coherence improvements
|
||||
❌ Not presenting A/P/C menu for user approval
|
||||
❌ Saving polished document without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making changes without complete understanding of document requirements
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and polished document is saved, load `./step-12-complete.md` to complete the workflow.
|
||||
|
||||
Remember: Do NOT proceed to step-12 until user explicitly selects 'C' from the A/P/C menu and polished document is saved!
|
||||
|
|
@ -1,121 +0,0 @@
|
|||
# Step 12: Workflow Completion
|
||||
|
||||
**Final Step - Complete the PRD**
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- ✅ THIS IS A FINAL STEP - Workflow completion required
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action
|
||||
- 🛑 NO content generation - this is a wrap-up step
|
||||
- 📋 FINALIZE document and update workflow status
|
||||
- 💬 FOCUS on completion, validation options, and next steps
|
||||
- 🎯 UPDATE workflow status files with completion information
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- 💾 Update the main workflow status file with completion information (if exists)
|
||||
- 📖 Offer validation workflow options to user
|
||||
- 🚫 DO NOT load additional steps after this one
|
||||
|
||||
## TERMINATION STEP PROTOCOLS:
|
||||
|
||||
- This is a FINAL step - workflow completion required
|
||||
- Update workflow status file with finalized document
|
||||
- Suggest validation and next workflow steps
|
||||
- Mark workflow as complete in status tracking
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Complete and polished PRD document is available from all previous steps
|
||||
- Workflow frontmatter shows all completed steps including polish
|
||||
- All collaborative content has been generated, saved, and optimized
|
||||
- Focus on completion, validation options, and next steps
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Complete the PRD workflow, update status files, offer validation options, and suggest next steps for the project.
|
||||
|
||||
## WORKFLOW COMPLETION SEQUENCE:
|
||||
|
||||
### 1. Announce Workflow Completion
|
||||
|
||||
Inform user that the PRD is complete and polished:
|
||||
- Celebrate successful completion of comprehensive PRD
|
||||
- Summarize all sections that were created
|
||||
- Highlight that document has been polished for flow and coherence
|
||||
- Emphasize document is ready for downstream work
|
||||
|
||||
### 2. Workflow Status Update
|
||||
|
||||
Update the main workflow status file if there is one:
|
||||
|
||||
- Check workflow configuration for a status file (if one exists)
|
||||
- Update workflow_status["prd"] = "{outputFile}"
|
||||
- Save file, preserving all comments and structure
|
||||
- Mark current timestamp as completion time
|
||||
|
||||
### 3. Validation Workflow Options
|
||||
|
||||
Offer validation workflows to ensure PRD is ready for implementation:
|
||||
|
||||
**Available Validation Workflows:**
|
||||
|
||||
**Option 1: Check Implementation Readiness** (`skill:bmad-check-implementation-readiness`)
|
||||
- Validates PRD has all information needed for development
|
||||
- Checks epic coverage completeness
|
||||
- Reviews UX alignment with requirements
|
||||
- Assesses epic quality and readiness
|
||||
- Identifies gaps before architecture/design work begins
|
||||
|
||||
**When to use:** Before starting technical architecture or epic breakdown
|
||||
|
||||
**Option 2: Skip for Now**
|
||||
- Proceed directly to next workflows (architecture, UX, epics)
|
||||
- Validation can be done later if needed
|
||||
- Some teams prefer to validate during architecture reviews
|
||||
|
||||
### 4. Suggest Next Workflows
|
||||
|
||||
PRD complete. Invoke the `bmad-help` skill.
|
||||
|
||||
### 5. Final Completion Confirmation
|
||||
|
||||
- Confirm completion with user and summarize what has been accomplished
|
||||
- Document now contains: Executive Summary, Success Criteria, User Journeys, Domain Requirements (if applicable), Innovation Analysis (if applicable), Project-Type Requirements, Functional Requirements (capability contract), Non-Functional Requirements, and has been polished for flow and coherence
|
||||
- Ask if they'd like to run validation workflow or proceed to next workflows
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ PRD document contains all required sections and has been polished
|
||||
✅ All collaborative content properly saved and optimized
|
||||
✅ Workflow status file updated with completion information (if exists)
|
||||
✅ Validation workflow options clearly presented
|
||||
✅ Clear next step guidance provided to user
|
||||
✅ Document quality validation completed
|
||||
✅ User acknowledges completion and understands next options
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Not updating workflow status file with completion information (if exists)
|
||||
❌ Not offering validation workflow options
|
||||
❌ Missing clear next step guidance for user
|
||||
❌ Not confirming document completeness with user
|
||||
❌ Workflow not properly marked as complete in status tracking (if applicable)
|
||||
❌ User unclear about what happens next or what validation options exist
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## FINAL REMINDER to give the user:
|
||||
|
||||
The polished PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD - update it also as needed as you continue planning.
|
||||
|
||||
**Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉
|
||||
|
||||
## On 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.
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
stepsCompleted: []
|
||||
inputDocuments: []
|
||||
workflowType: 'prd'
|
||||
---
|
||||
|
||||
# Product Requirements Document - {{project_name}}
|
||||
|
||||
**Author:** {{user_name}}
|
||||
**Date:** {{date}}
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
---
|
||||
name: bmad-create-ux-design
|
||||
description: 'Plan UX patterns and design specifications. Use when the user says "lets create UX design" or "create UX specifications" or "help me plan the UX"'
|
||||
---
|
||||
|
||||
# Create UX Design Workflow
|
||||
|
||||
**Goal:** Create comprehensive UX design specifications through collaborative visual exploration and informed decision-making where you act as a UX facilitator working with a product stakeholder.
|
||||
|
||||
## Conventions
|
||||
|
||||
- Bare paths (e.g. `steps/step-01-init.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.
|
||||
|
||||
## WORKFLOW ARCHITECTURE
|
||||
|
||||
This uses **micro-file architecture** for disciplined execution:
|
||||
|
||||
- Each step is a self-contained file with embedded rules
|
||||
- Sequential progression with user control at each step
|
||||
- Document state tracked in frontmatter
|
||||
- Append-only document building through conversation
|
||||
|
||||
## 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
|
||||
|
||||
Greet `{user_name}`, speaking in `{communication_language}`.
|
||||
|
||||
### Step 6: Execute Append Steps
|
||||
|
||||
Execute each entry in `{workflow.activation_steps_append}` in order.
|
||||
|
||||
Activation is complete. Begin the workflow below.
|
||||
|
||||
## Paths
|
||||
|
||||
- `default_output_file` = `{planning_artifacts}/ux-design-specification.md`
|
||||
|
||||
## EXECUTION
|
||||
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
- Read fully and follow: `./steps/step-01-init.md` to begin the UX design workflow.
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# DO NOT EDIT -- overwritten on every update.
|
||||
#
|
||||
# Workflow customization surface for bmad-create-ux-design. Mirrors the
|
||||
# agent customization shape under the [workflow] namespace.
|
||||
|
||||
[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.
|
||||
|
||||
# Steps to run before the standard activation (config load, greet).
|
||||
# Overrides append. Use for pre-flight loads, compliance checks, etc.
|
||||
|
||||
activation_steps_prepend = []
|
||||
|
||||
# Steps to run after greet but before the workflow begins.
|
||||
# Overrides append. 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, e.g. "All designs must meet WCAG 2.1 AA accessibility standards."
|
||||
# - 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).
|
||||
|
||||
persistent_facts = [
|
||||
"file:{project-root}/**/project-context.md",
|
||||
]
|
||||
|
||||
# Scalar: executed when the workflow reaches Step 14 (Workflow Completion),
|
||||
# after the UX design specification is finalized and status is updated. Override wins.
|
||||
# Leave empty for no custom post-completion behavior.
|
||||
|
||||
on_complete = ""
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
# Step 1: UX Design Workflow Initialization
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
|
||||
- 📋 YOU ARE A UX FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on initialization and setup only - don't look ahead to future steps
|
||||
- 🚪 DETECT existing workflow state and handle continuation properly
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- 💾 Initialize document and update frontmatter
|
||||
- 📖 Set up frontmatter `stepsCompleted: [1]` before loading next step
|
||||
- 🚫 FORBIDDEN to load next step until setup is complete
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Variables from workflow.md are available in memory
|
||||
- Previous context = what's in output document + frontmatter
|
||||
- Don't assume knowledge from other steps
|
||||
- Input document discovery happens in this step
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Initialize the UX design workflow by detecting continuation state and setting up the design specification document.
|
||||
|
||||
## INITIALIZATION SEQUENCE:
|
||||
|
||||
### 1. Check for Existing Workflow
|
||||
|
||||
First, check if the output document already exists:
|
||||
|
||||
- Look for file at `{planning_artifacts}/*ux-design-specification*.md`
|
||||
- If exists, read the complete file including frontmatter
|
||||
- If not exists, this is a fresh workflow
|
||||
|
||||
### 2. Handle Continuation (If Document Exists)
|
||||
|
||||
If the document exists and has frontmatter with `stepsCompleted`:
|
||||
|
||||
- **STOP here** and load `./step-01b-continue.md` immediately
|
||||
- Do not proceed with any initialization tasks
|
||||
- Let step-01b handle the continuation logic
|
||||
|
||||
### 3. Fresh Workflow Setup (If No Document)
|
||||
|
||||
If no document exists or no `stepsCompleted` in frontmatter:
|
||||
|
||||
#### A. Input Document Discovery
|
||||
|
||||
Discover and load context documents using smart discovery. Documents can be in the following locations:
|
||||
- {planning_artifacts}/**
|
||||
- {output_folder}/**
|
||||
- {product_knowledge}/**
|
||||
- {project-root}/docs/**
|
||||
|
||||
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
||||
|
||||
Try to discover the following:
|
||||
- Product Brief (`*brief*.md`)
|
||||
- Research Documents (`*prd*.md`)
|
||||
- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
|
||||
- Project Context (`**/project-context.md`)
|
||||
|
||||
<critical>Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules</critical>
|
||||
|
||||
**Loading Rules:**
|
||||
|
||||
- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
|
||||
- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process
|
||||
- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
|
||||
- index.md is a guide to what's relevant whenever available
|
||||
- Track all successfully loaded files in frontmatter `inputDocuments` array
|
||||
|
||||
#### B. Create Initial Document
|
||||
|
||||
Copy the template from `../ux-design-template.md` to `{planning_artifacts}/ux-design-specification.md`
|
||||
Initialize frontmatter in the template.
|
||||
|
||||
#### C. Complete Initialization and Report
|
||||
|
||||
Complete setup and report to user:
|
||||
|
||||
**Document Setup:**
|
||||
|
||||
- Created: `{planning_artifacts}/ux-design-specification.md` from template
|
||||
- Initialized frontmatter with workflow state
|
||||
|
||||
**Input Documents Discovered:**
|
||||
Report what was found:
|
||||
"Welcome {{user_name}}! I've set up your UX design workspace for {{project_name}}.
|
||||
|
||||
**Documents Found:**
|
||||
|
||||
- PRD: {number of PRD files loaded or "None found"}
|
||||
- Product brief: {number of brief files loaded or "None found"}
|
||||
- Other context: {number of other files loaded or "None found"}
|
||||
|
||||
**Files loaded:** {list of specific file names or "No additional documents found"}
|
||||
|
||||
Do you have any other documents you'd like me to include, or shall we continue to the next step?
|
||||
|
||||
[C] Continue to UX discovery"
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects [C] to continue, ensure the file `{planning_artifacts}/ux-design-specification.md` has been created and saved, and then load `./step-02-discovery.md` to begin the UX discovery phase.
|
||||
|
||||
Remember: Do NOT proceed to step-02 until output file has been updated and user explicitly selects [C] to continue!
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Existing workflow detected and handed off to step-01b correctly
|
||||
✅ Fresh workflow initialized with template and frontmatter
|
||||
✅ Input documents discovered and loaded using sharded-first logic
|
||||
✅ All discovered files tracked in frontmatter `inputDocuments`
|
||||
✅ User confirmed document setup and can proceed
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Proceeding with fresh initialization when existing workflow exists
|
||||
❌ Not updating frontmatter with discovered input documents
|
||||
❌ Creating document without proper template
|
||||
❌ Not checking sharded folders first before whole files
|
||||
❌ Not reporting what documents were found to user
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
# Step 1B: UX Design Workflow Continuation
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
|
||||
- 📋 YOU ARE A UX FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on understanding where we left off and continuing appropriately
|
||||
- 🚪 RESUME workflow from exact point where it was interrupted
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis of current state before taking action
|
||||
- 💾 Keep existing frontmatter `stepsCompleted` values
|
||||
- 📖 Only load documents that were already tracked in `inputDocuments`
|
||||
- 🚫 FORBIDDEN to modify content completed in previous steps
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter are already loaded
|
||||
- Previous context = complete document + existing frontmatter
|
||||
- Input documents listed in frontmatter were already processed
|
||||
- Last completed step = `lastStep` value from frontmatter
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Resume the UX design workflow from where it was left off, ensuring smooth continuation.
|
||||
|
||||
## CONTINUATION SEQUENCE:
|
||||
|
||||
### 1. Analyze Current State
|
||||
|
||||
Review the frontmatter to understand:
|
||||
|
||||
- `stepsCompleted`: Which steps are already done
|
||||
- `lastStep`: The most recently completed step number
|
||||
- `inputDocuments`: What context was already loaded
|
||||
- All other frontmatter variables
|
||||
|
||||
### 2. Load All Input Documents
|
||||
|
||||
Reload the context documents listed in `inputDocuments`:
|
||||
|
||||
- For each document in `inputDocuments`, load the complete file
|
||||
- This ensures you have full context for continuation
|
||||
- Don't discover new documents - only reload what was previously processed
|
||||
|
||||
### 3. Summarize Current Progress
|
||||
|
||||
Welcome the user back and provide context:
|
||||
"Welcome back {{user_name}}! I'm resuming our UX design collaboration for {{project_name}}.
|
||||
|
||||
**Current Progress:**
|
||||
|
||||
- Steps completed: {stepsCompleted}
|
||||
- Last worked on: Step {lastStep}
|
||||
- Context documents available: {len(inputDocuments)} files
|
||||
- Current UX design specification is ready with all completed sections
|
||||
|
||||
**Document Status:**
|
||||
|
||||
- Current UX design document is ready with all completed sections
|
||||
- Ready to continue from where we left off
|
||||
|
||||
Does this look right, or do you want to make any adjustments before we proceed?"
|
||||
|
||||
### 4. Determine Next Step
|
||||
|
||||
Based on `lastStep` value, determine which step to load next:
|
||||
|
||||
- If `lastStep = 1` → Load `./step-02-discovery.md`
|
||||
- If `lastStep = 2` → Load `./step-03-core-experience.md`
|
||||
- If `lastStep = 3` → Load `./step-04-emotional-response.md`
|
||||
- Continue this pattern for all steps
|
||||
- If `lastStep` indicates final step → Workflow already complete
|
||||
|
||||
### 5. Present Continuation Options
|
||||
|
||||
After presenting current progress, ask:
|
||||
"Ready to continue with Step {nextStepNumber}: {nextStepTitle}?
|
||||
|
||||
[C] Continue to Step {nextStepNumber}"
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ All previous input documents successfully reloaded
|
||||
✅ Current workflow state accurately analyzed and presented
|
||||
✅ User confirms understanding of progress
|
||||
✅ Correct next step identified and prepared for loading
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Discovering new input documents instead of reloading existing ones
|
||||
❌ Modifying content from already completed steps
|
||||
❌ Loading wrong next step based on `lastStep` value
|
||||
❌ Proceeding without user confirmation of current state
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## WORKFLOW ALREADY COMPLETE?
|
||||
|
||||
If `lastStep` indicates the final step is completed:
|
||||
"Great news! It looks like we've already completed the UX design workflow for {{project_name}}.
|
||||
|
||||
The final UX design specification is ready at {planning_artifacts}/ux-design-specification.md with all sections completed through step {finalStepNumber}.
|
||||
|
||||
The complete UX design includes visual foundations, user flows, and design specifications ready for implementation.
|
||||
|
||||
Would you like me to:
|
||||
|
||||
- Review the completed UX design specification with you
|
||||
- Suggest next workflow steps (like wireframe generation or architecture)
|
||||
- Start a new UX design revision
|
||||
|
||||
What would be most helpful?"
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user confirms they're ready to continue, load the appropriate next step file based on the `lastStep` value from frontmatter.
|
||||
|
||||
Remember: Do NOT load the next step until user explicitly selects [C] to continue!
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
# Step 2: Project Understanding
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
|
||||
- 📋 YOU ARE A UX FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on understanding project context and user needs
|
||||
- 🎯 COLLABORATIVE discovery, not assumption-based design
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating project understanding content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step to the end of the list of stepsCompleted.
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper project insights
|
||||
- **P (Party Mode)**: Bring multiple perspectives to understand project context
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Invoke the `bmad-advanced-elicitation` skill
|
||||
- When 'P' selected: Invoke the `bmad-party-mode` skill
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from step 1 are available
|
||||
- Input documents (PRD, briefs, epics) already loaded are in memory
|
||||
- No additional data files needed for this step
|
||||
- Focus on project and user understanding
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Understand the project context, target users, and what makes this product special from a UX perspective.
|
||||
|
||||
## PROJECT DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Review Loaded Context
|
||||
|
||||
Start by analyzing what we know from the loaded documents:
|
||||
"Based on the project documentation we have loaded, let me confirm what I'm understanding about {{project_name}}.
|
||||
|
||||
**From the documents:**
|
||||
{summary of key insights from loaded PRD, briefs, and other context documents}
|
||||
|
||||
**Target Users:**
|
||||
{summary of user information from loaded documents}
|
||||
|
||||
**Key Features/Goals:**
|
||||
{summary of main features and goals from loaded documents}
|
||||
|
||||
Does this match your understanding? Are there any corrections or additions you'd like to make?"
|
||||
|
||||
### 2. Fill Context Gaps (If no documents or gaps exist)
|
||||
|
||||
If no documents were loaded or key information is missing:
|
||||
"Since we don't have complete documentation, let's start with the essentials:
|
||||
|
||||
**What are you building?** (Describe your product in 1-2 sentences)
|
||||
|
||||
**Who is this for?** (Describe your ideal user or target audience)
|
||||
|
||||
**What makes this special or different?** (What's the unique value proposition?)
|
||||
|
||||
**What's the main thing users will do with this?** (Core user action or goal)"
|
||||
|
||||
### 3. Explore User Context Deeper
|
||||
|
||||
Dive into user understanding:
|
||||
"Let me understand your users better to inform the UX design:
|
||||
|
||||
**User Context Questions:**
|
||||
|
||||
- What problem are users trying to solve?
|
||||
- What frustrates them with current solutions?
|
||||
- What would make them say 'this is exactly what I needed'?
|
||||
- How tech-savvy are your target users?
|
||||
- What devices will they use most?
|
||||
- When/where will they use this product?"
|
||||
|
||||
### 4. Identify UX Design Challenges
|
||||
|
||||
Surface the key UX challenges to address:
|
||||
"From what we've discussed, I'm seeing some key UX design considerations:
|
||||
|
||||
**Design Challenges:**
|
||||
|
||||
- [Identify 2-3 key UX challenges based on project type and user needs]
|
||||
- [Note any platform-specific considerations]
|
||||
- [Highlight any complex user flows or interactions]
|
||||
|
||||
**Design Opportunities:**
|
||||
|
||||
- [Identify 2-3 areas where great UX could create competitive advantage]
|
||||
- [Note any opportunities for innovative UX patterns]
|
||||
|
||||
Does this capture the key UX considerations we need to address?"
|
||||
|
||||
### 5. Generate Project Understanding Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Executive Summary
|
||||
|
||||
### Project Vision
|
||||
|
||||
[Project vision summary based on conversation]
|
||||
|
||||
### Target Users
|
||||
|
||||
[Target user descriptions based on conversation]
|
||||
|
||||
### Key Design Challenges
|
||||
|
||||
[Key UX challenges identified based on conversation]
|
||||
|
||||
### Design Opportunities
|
||||
|
||||
[Design opportunities identified based on conversation]
|
||||
```
|
||||
|
||||
### 6. Present Content and Menu
|
||||
|
||||
Show the generated project understanding content and present choices:
|
||||
"I've documented our understanding of {{project_name}} from a UX perspective. This will guide all our design decisions moving forward.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 5]
|
||||
|
||||
**What would you like to do?**
|
||||
[C] Continue - Save this to the document and move to core experience definition"
|
||||
|
||||
### 7. Handle Menu Selection
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{planning_artifacts}/ux-design-specification.md`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2]`
|
||||
- Load `./step-03-core-experience.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document. Only after the content is saved to document, read fully and follow: `./step-03-core-experience.md`.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ All available context documents reviewed and synthesized
|
||||
✅ Project vision clearly articulated
|
||||
✅ Target users well understood
|
||||
✅ Key UX challenges identified
|
||||
✅ Design opportunities surfaced
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Not reviewing loaded context documents thoroughly
|
||||
❌ Making assumptions about users without asking
|
||||
❌ Missing key UX challenges that will impact design
|
||||
❌ Not identifying design opportunities
|
||||
❌ Generating generic content without real project insight
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
Remember: Do NOT proceed to step-03 until user explicitly selects 'C' from the menu and content is saved!
|
||||
|
|
@ -1,217 +0,0 @@
|
|||
# Step 3: Core Experience Definition
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
- 🛑 NEVER generate content without user input
|
||||
|
||||
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
||||
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
||||
- ✅ ALWAYS treat this as collaborative discovery between UX facilitator and stakeholder
|
||||
- 📋 YOU ARE A UX FACILITATOR, not a content generator
|
||||
- 💬 FOCUS on defining the core user experience and platform
|
||||
- 🎯 COLLABORATIVE discovery, not assumption-based design
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
- ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- 🎯 Show your analysis before taking any action
|
||||
- ⚠️ Present A/P/C menu after generating core experience content
|
||||
- 💾 ONLY save when user chooses C (Continue)
|
||||
- 📖 Update output file frontmatter, adding this step to the end of the list of stepsCompleted.
|
||||
- 🚫 FORBIDDEN to load next step until C is selected
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
This step will generate content and present choices:
|
||||
|
||||
- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper experience insights
|
||||
- **P (Party Mode)**: Bring multiple perspectives to define optimal user experience
|
||||
- **C (Continue)**: Save the content to the document and proceed to next step
|
||||
|
||||
## PROTOCOL INTEGRATION:
|
||||
|
||||
- When 'A' selected: Invoke the `bmad-advanced-elicitation` skill
|
||||
- When 'P' selected: Invoke the `bmad-party-mode` skill
|
||||
- PROTOCOLS always return to this step's A/P/C menu
|
||||
- User accepts/rejects protocol changes before proceeding
|
||||
|
||||
## CONTEXT BOUNDARIES:
|
||||
|
||||
- Current document and frontmatter from previous steps are available
|
||||
- Project understanding from step 2 informs this step
|
||||
- No additional data files needed for this step
|
||||
- Focus on core experience and platform decisions
|
||||
|
||||
## YOUR TASK:
|
||||
|
||||
Define the core user experience, platform requirements, and what makes the interaction effortless.
|
||||
|
||||
## CORE EXPERIENCE DISCOVERY SEQUENCE:
|
||||
|
||||
### 1. Define Core User Action
|
||||
|
||||
Start by identifying the most important user interaction:
|
||||
"Now let's dig into the heart of the user experience for {{project_name}}.
|
||||
|
||||
**Core Experience Questions:**
|
||||
|
||||
- What's the ONE thing users will do most frequently?
|
||||
- What user action is absolutely critical to get right?
|
||||
- What should be completely effortless for users?
|
||||
- If we nail one interaction, everything else follows - what is it?
|
||||
|
||||
Think about the core loop or primary action that defines your product's value."
|
||||
|
||||
### 2. Explore Platform Requirements
|
||||
|
||||
Determine where and how users will interact:
|
||||
"Let's define the platform context for {{project_name}}:
|
||||
|
||||
**Platform Questions:**
|
||||
|
||||
- Web, mobile app, desktop, or multiple platforms?
|
||||
- Will this be primarily touch-based or mouse/keyboard?
|
||||
- Any specific platform requirements or constraints?
|
||||
- Do we need to consider offline functionality?
|
||||
- Any device-specific capabilities we should leverage?"
|
||||
|
||||
### 3. Identify Effortless Interactions
|
||||
|
||||
Surface what should feel magical or completely seamless:
|
||||
"**Effortless Experience Design:**
|
||||
|
||||
- What user actions should feel completely natural and require zero thought?
|
||||
- Where do users currently struggle with similar products?
|
||||
- What interaction, if made effortless, would create delight?
|
||||
- What should happen automatically without user intervention?
|
||||
- Where can we eliminate steps that competitors require?"
|
||||
|
||||
### 4. Define Critical Success Moments
|
||||
|
||||
Identify the moments that determine success or failure:
|
||||
"**Critical Success Moments:**
|
||||
|
||||
- What's the moment where users realize 'this is better'?
|
||||
- When does the user feel successful or accomplished?
|
||||
- What interaction, if failed, would ruin the experience?
|
||||
- What are the make-or-break user flows?
|
||||
- Where does first-time user success happen?"
|
||||
|
||||
### 5. Synthesize Experience Principles
|
||||
|
||||
Extract guiding principles from the conversation:
|
||||
"Based on our discussion, I'm hearing these core experience principles for {{project_name}}:
|
||||
|
||||
**Experience Principles:**
|
||||
|
||||
- [Principle 1 based on core action focus]
|
||||
- [Principle 2 based on effortless interactions]
|
||||
- [Principle 3 based on platform considerations]
|
||||
- [Principle 4 based on critical success moments]
|
||||
|
||||
These principles will guide all our UX decisions. Do these capture what's most important?"
|
||||
|
||||
### 6. Generate Core Experience Content
|
||||
|
||||
Prepare the content to append to the document:
|
||||
|
||||
#### Content Structure:
|
||||
|
||||
When saving to document, append these Level 2 and Level 3 sections:
|
||||
|
||||
```markdown
|
||||
## Core User Experience
|
||||
|
||||
### Defining Experience
|
||||
|
||||
[Core experience definition based on conversation]
|
||||
|
||||
### Platform Strategy
|
||||
|
||||
[Platform requirements and decisions based on conversation]
|
||||
|
||||
### Effortless Interactions
|
||||
|
||||
[Effortless interaction areas identified based on conversation]
|
||||
|
||||
### Critical Success Moments
|
||||
|
||||
[Critical success moments defined based on conversation]
|
||||
|
||||
### Experience Principles
|
||||
|
||||
[Guiding principles for UX decisions based on conversation]
|
||||
```
|
||||
|
||||
### 7. Present Content and Menu
|
||||
|
||||
Show the generated core experience content and present choices:
|
||||
"I've defined the core user experience for {{project_name}} based on our conversation. This establishes the foundation for all our UX design decisions.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 6]
|
||||
|
||||
**What would you like to do?**
|
||||
[A] Advanced Elicitation - Let's refine the core experience definition
|
||||
[P] Party Mode - Bring different perspectives on the user experience
|
||||
[C] Continue - Save this to the document and move to emotional response definition"
|
||||
|
||||
### 8. Handle Menu Selection
|
||||
|
||||
#### If 'A' (Advanced Elicitation):
|
||||
|
||||
- Invoke the `bmad-advanced-elicitation` skill with the current core experience content
|
||||
- Process the enhanced experience insights that come back
|
||||
- Ask user: "Accept these improvements to the core experience definition? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'P' (Party Mode):
|
||||
|
||||
- Invoke the `bmad-party-mode` skill with the current core experience definition
|
||||
- Process the collaborative experience improvements that come back
|
||||
- Ask user: "Accept these changes to the core experience definition? (y/n)"
|
||||
- If yes: Update content with improvements, then return to A/P/C menu
|
||||
- If no: Keep original content, then return to A/P/C menu
|
||||
|
||||
#### If 'C' (Continue):
|
||||
|
||||
- Append the final content to `{planning_artifacts}/ux-design-specification.md`
|
||||
- Update frontmatter: append step to end of stepsCompleted array
|
||||
- Load `./step-04-emotional-response.md`
|
||||
|
||||
## APPEND TO DOCUMENT:
|
||||
|
||||
When user selects 'C', append the content directly to the document using the structure from step 6.
|
||||
|
||||
## SUCCESS METRICS:
|
||||
|
||||
✅ Core user action clearly identified and defined
|
||||
✅ Platform requirements thoroughly explored
|
||||
✅ Effortless interaction areas identified
|
||||
✅ Critical success moments mapped out
|
||||
✅ Experience principles established as guiding framework
|
||||
✅ A/P/C menu presented and handled correctly
|
||||
✅ Content properly appended to document when C selected
|
||||
|
||||
## FAILURE MODES:
|
||||
|
||||
❌ Missing the core user action that defines the product
|
||||
❌ Not properly considering platform requirements
|
||||
❌ Overlooking what should be effortless for users
|
||||
❌ Not identifying critical make-or-break interactions
|
||||
❌ Experience principles too generic or not actionable
|
||||
❌ Not presenting A/P/C menu after content generation
|
||||
❌ Appending content without user selecting 'C'
|
||||
|
||||
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
||||
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
||||
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
||||
|
||||
## NEXT STEP:
|
||||
|
||||
After user selects 'C' and content is saved to document, load `./step-04-emotional-response.md` to define desired emotional responses.
|
||||
|
||||
Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue