refactor(ux): consolidate BMAD skills, update design system, and clean up Prisma generated client
This commit is contained in:
55
.agent/skills/bmad-prfaq/references/customer-faq.md
Normal file
55
.agent/skills/bmad-prfaq/references/customer-faq.md
Normal file
@@ -0,0 +1,55 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Coaching stance:** Be direct, challenge vague thinking, but offer concrete alternatives when the user is stuck — tough love, not tough silence.
|
||||
**Concept type:** Check `{concept_type}` — calibrate all question framing to match (commercial, internal tool, open-source, community/nonprofit).
|
||||
|
||||
# Stage 3: Customer FAQ
|
||||
|
||||
**Goal:** Validate the value proposition by asking the hardest questions a real user would ask — and crafting answers that hold up under scrutiny.
|
||||
|
||||
## The Devil's Advocate
|
||||
|
||||
You are now the customer. Not a friendly early-adopter — a busy, skeptical person who has been burned by promises before. You've read the press release. Now you have questions.
|
||||
|
||||
**Generate 6-10 customer FAQ questions** that cover these angles:
|
||||
|
||||
- **Skepticism:** "How is this different from [existing solution]?" / "Why should I switch from what I use today?"
|
||||
- **Trust:** "What happens to my data?" / "What if this shuts down?" / "Who's behind this?"
|
||||
- **Practical concerns:** "How much does it cost?" / "How long does it take to get started?" / "Does it work with [thing I already use]?"
|
||||
- **Edge cases:** "What if I need to [uncommon but real scenario]?" / "Does it work for [adjacent use case]?"
|
||||
- **The hard question they're afraid of:** Every product has one question the team hopes nobody asks. Find it and ask it.
|
||||
|
||||
**Don't generate softball questions.** "How do I sign up?" is not a FAQ — it's a CTA. Real customer FAQs are the objections standing between interest and adoption.
|
||||
|
||||
**Calibrate to concept type.** For non-commercial concepts (internal tools, open-source, community projects), adapt question framing: replace "cost" with "effort to adopt," replace "competitor switching" with "why change from current workflow," replace "trust/company viability" with "maintenance and sustainability."
|
||||
|
||||
## Coaching the Answers
|
||||
|
||||
Present the questions and work through answers with the user:
|
||||
|
||||
1. **Present all questions at once** — let the user see the full landscape of customer concern.
|
||||
2. **Work through answers together.** The user drafts (or you draft and they react). For each answer:
|
||||
- Is it honest? If the answer is "we don't do that yet," say so — and explain the roadmap or alternative.
|
||||
- Is it specific? "We have enterprise-grade security" is not an answer. What certifications? What encryption? What SLA?
|
||||
- Would a customer believe it? Marketing language in FAQ answers destroys credibility.
|
||||
3. **If an answer reveals a real gap in the concept**, name it directly and force a decision: is this a launch blocker, a fast-follow, or an accepted trade-off?
|
||||
4. **The user can add their own questions too.** Often they know the scary questions better than anyone.
|
||||
|
||||
## Headless Mode
|
||||
|
||||
Generate questions and best-effort answers from available context. Flag answers with low confidence so a human can review.
|
||||
|
||||
## Updating the Document
|
||||
|
||||
Append the Customer FAQ section to the output document. Update frontmatter: `status: "customer-faq"`, `stage: 3`, `updated` timestamp.
|
||||
|
||||
## Coaching Notes Capture
|
||||
|
||||
Before moving on, append a `<!-- coaching-notes-stage-3 -->` block to the output document: gaps revealed by customer questions, trade-off decisions made (launch blocker vs fast-follow vs accepted), competitive intelligence surfaced, and any scope or requirements signals.
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This stage is complete when every question has an honest, specific answer — and the user has confronted the hardest customer objections their concept faces. No softballs survived.
|
||||
|
||||
Route to `./internal-faq.md`.
|
||||
51
.agent/skills/bmad-prfaq/references/internal-faq.md
Normal file
51
.agent/skills/bmad-prfaq/references/internal-faq.md
Normal file
@@ -0,0 +1,51 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Coaching stance:** Be direct, challenge vague thinking, but offer concrete alternatives when the user is stuck — tough love, not tough silence.
|
||||
**Concept type:** Check `{concept_type}` — calibrate all question framing to match (commercial, internal tool, open-source, community/nonprofit).
|
||||
|
||||
# Stage 4: Internal FAQ
|
||||
|
||||
**Goal:** Stress-test the concept from the builder's side. The customer FAQ asked "should I use this?" The internal FAQ asks "can we actually pull this off — and should we?"
|
||||
|
||||
## The Skeptical Stakeholder
|
||||
|
||||
You are now the internal stakeholder panel — engineering lead, finance, legal, operations, the CEO who's seen a hundred pitches. The press release was inspiring. Now prove it's real.
|
||||
|
||||
**Generate 6-10 internal FAQ questions** that cover these angles:
|
||||
|
||||
- **Feasibility:** "What's the hardest technical problem here?" / "What do we not know how to build yet?" / "What are the key dependencies and risks?"
|
||||
- **Business viability:** "What does the unit economics look like?" / "How do we acquire the first 100 customers?" / "What's the competitive moat — and how durable is it?"
|
||||
- **Resource reality:** "What does the team need to look like?" / "What's the realistic timeline to a usable product?" / "What do we have to say no to in order to do this?"
|
||||
- **Risk:** "What kills this?" / "What's the worst-case scenario if we ship and it doesn't work?" / "What regulatory or legal exposure exists?"
|
||||
- **Strategic fit:** "Why us? Why now?" / "What does this cannibalize?" / "If this succeeds, what does the company look like in 3 years?"
|
||||
- **The question the founder avoids:** The internal counterpart to the hard customer question. The thing that keeps them up at night but hasn't been said out loud.
|
||||
|
||||
**Calibrate questions to context.** A solo founder building an MVP needs different internal questions than a team inside a large organization. Don't ask about "board alignment" for a weekend project. Don't ask about "weekend viability" for an enterprise product. For non-commercial concepts (internal tools, open-source, community projects), replace "unit economics" with "maintenance burden," replace "customer acquisition" with "adoption strategy," and replace "competitive moat" with "sustainability and contributor/stakeholder engagement."
|
||||
|
||||
## Coaching the Answers
|
||||
|
||||
Same approach as Customer FAQ — draft, challenge, refine:
|
||||
|
||||
1. **Present all questions at once.**
|
||||
2. **Work through answers.** Demand specificity. "We'll figure it out" is not an answer. Neither is "we'll hire for that." What's the actual plan?
|
||||
3. **Honest unknowns are fine — unexamined unknowns are not.** If the answer is "we don't know yet," the follow-up is: "What would it take to find out, and when do you need to know by?"
|
||||
4. **Watch for hand-waving on resources and timeline.** These are the most commonly over-optimistic answers. Push for concrete scoping.
|
||||
|
||||
## Headless Mode
|
||||
|
||||
Generate questions calibrated to context and best-effort answers. Flag high-risk areas and unknowns prominently.
|
||||
|
||||
## Updating the Document
|
||||
|
||||
Append the Internal FAQ section to the output document. Update frontmatter: `status: "internal-faq"`, `stage: 4`, `updated` timestamp.
|
||||
|
||||
## Coaching Notes Capture
|
||||
|
||||
Before moving on, append a `<!-- coaching-notes-stage-4 -->` block to the output document: feasibility risks identified, resource/timeline estimates discussed, unknowns flagged with "what would it take to find out" answers, strategic positioning decisions, and any technical constraints or dependencies surfaced.
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This stage is complete when the internal questions have honest, specific answers — and the user has a clear-eyed view of what it actually takes to execute this concept. Optimism is fine. Delusion is not.
|
||||
|
||||
Route to `./verdict.md`.
|
||||
60
.agent/skills/bmad-prfaq/references/press-release.md
Normal file
60
.agent/skills/bmad-prfaq/references/press-release.md
Normal file
@@ -0,0 +1,60 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Coaching stance:** Be direct, challenge vague thinking, but offer concrete alternatives when the user is stuck — tough love, not tough silence.
|
||||
|
||||
# Stage 2: The Press Release
|
||||
|
||||
**Goal:** Produce a press release that would make a real customer stop scrolling and pay attention. Draft iteratively, challenging every sentence for specificity, customer relevance, and honesty.
|
||||
|
||||
**Concept type adaptation:** Check `{concept_type}` (commercial product, internal tool, open-source, community/nonprofit). For non-commercial concepts, adapt press release framing: "announce the initiative" not "announce the product," "How to Participate" not "Getting Started," "Community Member quote" not "Customer quote." The structure stays — the language shifts to match the audience.
|
||||
|
||||
## The Forge
|
||||
|
||||
The press release is the heart of Working Backwards. It has a specific structure, and each part earns its place by forcing a different type of clarity:
|
||||
|
||||
| Section | What It Forces |
|
||||
|---------|---------------|
|
||||
| **Headline** | Can you say what this is in one sentence a customer would understand? |
|
||||
| **Subheadline** | Who benefits and what changes for them? |
|
||||
| **Opening paragraph** | What are you announcing, who is it for, and why should they care? |
|
||||
| **Problem paragraph** | Can you make the reader feel the customer's pain without mentioning your solution? |
|
||||
| **Solution paragraph** | What changes for the customer? (Not: what did you build.) |
|
||||
| **Leader quote** | What's the vision beyond the feature list? |
|
||||
| **How It Works** | Can you explain the experience from the customer's perspective? |
|
||||
| **Customer quote** | Would a real person say this? Does it sound human? |
|
||||
| **Getting Started** | Is the path to value clear and concrete? |
|
||||
|
||||
## Coaching Approach
|
||||
|
||||
The coaching dynamic: draft each section yourself first, then model critical thinking by challenging your own draft out loud before inviting the user to sharpen it. Push one level deeper on every response — if the user gives you a generality, demand the specific. The cycle is: draft → self-challenge → invite → deepen.
|
||||
|
||||
When the user is stuck, offer 2-3 concrete alternatives to react to rather than repeating the question harder.
|
||||
|
||||
## Quality Bars
|
||||
|
||||
These are the standards to hold the press release to. Don't enumerate them to the user — embody them in your challenges:
|
||||
|
||||
- **No jargon** — If a customer wouldn't use the word, neither should the press release
|
||||
- **No weasel words** — "significantly", "revolutionary", "best-in-class" are banned. Replace with specifics.
|
||||
- **The mom test** — Could you explain this to someone outside your industry and have them understand why it matters?
|
||||
- **The "so what?" test** — Every sentence should survive "so what?" If it can't, cut or sharpen it.
|
||||
- **Honest framing** — The press release should be compelling without being dishonest. If you're overselling, the customer FAQ will expose it.
|
||||
|
||||
## Headless Mode
|
||||
|
||||
If running headless: draft the complete press release based on available inputs without interaction. Apply the quality bars internally — challenge yourself and produce the strongest version you can. Write directly to the output document.
|
||||
|
||||
## Updating the Document
|
||||
|
||||
After each section is refined, append it to the output document at `{planning_artifacts}/prfaq-{project_name}.md`. Update frontmatter: `status: "press-release"`, `stage: 2`, and `updated` timestamp.
|
||||
|
||||
## Coaching Notes Capture
|
||||
|
||||
Before moving on, append a brief `<!-- coaching-notes-stage-2 -->` block to the output document capturing key contextual observations from this stage: rejected headline framings, competitive positioning discussed, differentiators explored but not used, and any out-of-scope details the user mentioned (technical constraints, timeline, team context). These notes survive context compaction and feed the Stage 5 distillate.
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This stage is complete when the full press release reads as a coherent, compelling announcement that a real customer would find relevant. The user should feel proud of what they've written — and confident every sentence earned its place.
|
||||
|
||||
Route to `./customer-faq.md`.
|
||||
79
.agent/skills/bmad-prfaq/references/verdict.md
Normal file
79
.agent/skills/bmad-prfaq/references/verdict.md
Normal file
@@ -0,0 +1,79 @@
|
||||
**Language:** Use `{communication_language}` for all output.
|
||||
**Output Language:** Use `{document_output_language}` for documents.
|
||||
**Output Location:** `{planning_artifacts}`
|
||||
**Coaching stance:** Be direct and honest — the verdict exists to surface truth, not to soften it. But frame every finding constructively.
|
||||
|
||||
# Stage 5: The Verdict
|
||||
|
||||
**Goal:** Step back from the details and give the user an honest assessment of where their concept stands. Finalize the PRFAQ document and produce the downstream distillate.
|
||||
|
||||
## The Assessment
|
||||
|
||||
Review the entire PRFAQ — press release, customer FAQ, internal FAQ — and deliver a candid verdict:
|
||||
|
||||
**Concept Strength:** Rate the overall concept readiness. Not a score — a narrative assessment. Where is the thinking sharp and where is it still soft? What survived the gauntlet and what barely held together?
|
||||
|
||||
**Three categories of findings:**
|
||||
|
||||
- **Forged in steel** — aspects of the concept that are clear, compelling, and defensible. The press release sections that would actually make a customer stop. The FAQ answers that are honest and convincing.
|
||||
- **Needs more heat** — areas that are promising but underdeveloped. The user has a direction but hasn't gone deep enough. These need more work before they're ready for a PRD.
|
||||
- **Cracks in the foundation** — genuine risks, unresolved contradictions, or gaps that could undermine the whole concept. Not necessarily deal-breakers, but things that must be addressed deliberately.
|
||||
|
||||
**Present the verdict directly.** Don't soften it. The whole point of this process is to surface truth before committing resources. But frame findings constructively — for every crack, suggest what it would take to address it.
|
||||
|
||||
## Finalize the Document
|
||||
|
||||
1. **Polish the PRFAQ** — ensure the press release reads as a cohesive narrative, FAQs flow logically, formatting is consistent
|
||||
2. **Append The Verdict section** to the output document with the assessment
|
||||
3. Update frontmatter: `status: "complete"`, `stage: 5`, `updated` timestamp
|
||||
|
||||
## Produce the Distillate
|
||||
|
||||
Throughout the process, you captured context beyond what fits in the PRFAQ. Source material for the distillate includes the `<!-- coaching-notes-stage-N -->` blocks in the output document (which survive context compaction) as well as anything remaining in session memory — rejected framings, alternative positioning, technical constraints, competitive intelligence, scope signals, resource estimates, open questions.
|
||||
|
||||
**Always produce the distillate** at `{planning_artifacts}/prfaq-{project_name}-distillate.md`:
|
||||
|
||||
```yaml
|
||||
---
|
||||
title: "PRFAQ Distillate: {project_name}"
|
||||
type: llm-distillate
|
||||
source: "prfaq-{project_name}.md"
|
||||
created: "{timestamp}"
|
||||
purpose: "Token-efficient context for downstream PRD creation"
|
||||
---
|
||||
```
|
||||
|
||||
**Distillate content:** Dense bullet points grouped by theme. Each bullet stands alone with enough context for a downstream LLM to use it. Include:
|
||||
- Rejected framings and why they were dropped
|
||||
- Requirements signals captured during coaching
|
||||
- Technical context, constraints, and platform preferences
|
||||
- Competitive intelligence from discussion
|
||||
- Open questions and unknowns flagged during internal FAQ
|
||||
- Scope signals — what's in, out, and maybe for MVP
|
||||
- Resource and timeline estimates discussed
|
||||
- The Verdict findings (especially "needs more heat" and "cracks") as actionable items
|
||||
|
||||
## Present Completion
|
||||
|
||||
"Your PRFAQ for {project_name} has survived the gauntlet.
|
||||
|
||||
**PRFAQ:** `{planning_artifacts}/prfaq-{project_name}.md`
|
||||
**Detail Pack:** `{planning_artifacts}/prfaq-{project_name}-distillate.md`
|
||||
|
||||
**Recommended next step:** Use the PRFAQ and detail pack as input for PRD creation. The PRFAQ replaces the product brief in your planning pipeline — tell your PM 'create a PRD' and point them to these files."
|
||||
|
||||
**Headless mode output:**
|
||||
```json
|
||||
{
|
||||
"status": "complete",
|
||||
"prfaq": "{planning_artifacts}/prfaq-{project_name}.md",
|
||||
"distillate": "{planning_artifacts}/prfaq-{project_name}-distillate.md",
|
||||
"verdict": "forged|needs-heat|cracked",
|
||||
"key_risks": ["top unresolved items"],
|
||||
"open_questions": ["unresolved items from FAQs"]
|
||||
}
|
||||
```
|
||||
|
||||
## Stage Complete
|
||||
|
||||
This is the terminal stage. If the user wants to revise, loop back to the relevant stage. Otherwise, the workflow is done.
|
||||
Reference in New Issue
Block a user