prfaq-beagle
Use when the user wants to pressure-test a product, internal-tool, or OSS concept against Amazon's Working Backwards PRFAQ gauntlet before committing to a spec. Triggers on: \"work backwards\", \"write a PRFAQ\", \"press release first\", \"is this idea worth building\", \"pressure-test this concept\", \"filter this before brainstorm\", \"is this a real product\". Also catches solution-first pitches (\"I want to build X that does Y\") and technology-first pitches (\"use AI to...\") that need customer-first filtering. Produces a binary pass/fail verdict, not a polished doc. Hardcore coaching — direct, skeptical, concrete. On pass, hands off to brainstorm-beagle with a concept brief. Does NOT write code, plan implementation, scaffold projects, or draft specs.
git clone --depth 1 https://github.com/existential-birds/beagle /tmp/prfaq-beagle && cp -r /tmp/prfaq-beagle/plugins/beagle-analysis/skills/prfaq-beagle ~/.claude/skills/prfaq-beagleSKILL.md
# PRFAQ: The Concept Filter (Working Backwards) A hardcore Working Backwards coach. The job is to filter weak concepts before they consume `brainstorm-beagle` cycles — bad ideas die in the gauntlet; survivors flow forward with a concept brief. Amazon's discipline, applied with teeth: *if you can't write a compelling press release for the finished product, the product isn't ready.* <hard_gate> This skill is a filter, not a refinement tool. Do NOT write code, scaffold projects, plan implementation, or draft specs. Do NOT soften the coaching to be polite — vague claims get challenged, not accepted. The gauntlet IS the filter; skipping steps destroys the filter. Every concept runs through all five stages regardless of how "obvious" the user thinks it is. </hard_gate> ## When to use - The user has a product, internal-tool, or OSS idea and wants to know if it's worth committing to a spec. - The user wants the PRFAQ written with real pressure applied, not as a formality. - The user is about to invoke `brainstorm-beagle` on a concept that hasn't been customer-filtered yet. ## When NOT to use - The user has a concrete spec already and wants to start building → `brainstorm-beagle` or implementation planning. - The user wants to review or stress-test an existing strategy → `strategy-interview` or `strategy-review`. - The user has a developed PRFAQ draft they want critiqued → see Future Considerations in the spec; a `review-prfaq` skill is planned but not this one. ## Workflow Five stages, in order. Each stage has a transition gate; no skipping forward. ``` Ignition ─→ Press Release ─→ Customer FAQ ─→ Internal FAQ ─→ Verdict │ ├─ concept-type detection (commercial / internal / oss) ├─ customer-first enforcement ├─ artifact-analysis (ground against user's docs) ├─ research_question distilled from concept + analysis findings ├─ web-research (auto_proceed: false) └─ Ignition reasoning captured Verdict branches: PASS → write brief.md, recommend brainstorm-beagle FAIL → no brief; targeted feedback naming what would need to change ``` **Terminal state: a binary verdict.** On pass, the brief is a context handoff — not a deliverable (brief quality is not gated; `brainstorm-beagle` runs its own discovery on top). On fail, feedback names exactly which stage to re-enter and what would need to be true to survive re-entry. ## Gates (objective pass conditions) Do not advance until the **Pass when** line is satisfied (these restate critical transitions as checkable stops—see stage sections for full coaching). | Step | Pass when | |------|-----------| | **Resume fork** | If `.beagle/concepts/<slug>/prfaq.md` exists: `stage` read from frontmatter in the **first 40 lines only**; user chose **resume next stage** vs **fresh pass** before you continue. | | **After artifact-analysis** | Invocation finished; `analysis/report.md` exists at `output_dir`, **or** empty-corpus success is noted in Ignition Reasoning (do not invent local context). | | **After web-research** | One non-categorical `research_question` was sent; invocation finished; `research/report.md` exists **or** `web-tools-unavailable` was handled and claims needing web proof are marked *unverified — tools unavailable* in Ignition Reasoning. | | **Ignition → Press Release (1e)** | `prfaq.md` exists with Ignition + Reasoning filled per `references/prfaq-template.md`; user **explicitly confirmed** the recap matches (or you fixed `prfaq.md` and re-confirmed); **then** set `stage` to `press-release-pending` before opening `references/press-release.md`. | | **Final verdict** | PASS: Stage 5 rubric in `references/verdict.md` met → `brief.md` written + `stage: pass`. FAIL: Verdict section complete + `stage: fail` + no `brief.md`—no middle outcomes. | ## Concept folder layout All artifacts for a concept live under `.beagle/concepts/<slug>/`: ``` .beagle/concepts/<slug>/ ├── prfaq.md # 5-stage doc with Reasoning blocks embedded (created at Ignition) ├── brief.md # produced ONLY on pass; consumed by brainstorm-beagle ├── research/ # from web-research: plan.md, findings/, report.md └── analysis/ # from artifact-analysis: plan.md, findings/, report.md ``` The folder is shared across the concept-forging pipeline. `brainstorm-beagle`, when run after PRFAQ, writes its spec to `.beagle/concepts/<slug>/spec.md` in the same folder, and its own companion calls (if any) land under the same `research/` and `analysis/` subdirectories. ### Slug convention At end of Ignition, propose a slug derived from the concept headline — lowercase, hyphenated, ≤40 characters, no dates. Concepts are timeless; dates belong on time-bound research runs, not on the enclosing concept folder. Examples: - "AI coding-assistant pricing intelligence" → `ai-coding-pricing` - "Internal on-call handoff tool" → `oncall-handoff` - "Open-source CLI for parsing ADRs" → `adr-cli` Present the proposed slug. The user can accept or override with their own string. ## Resume-from-stage On activation, check for `.beagle/concepts/<slug>/prfaq.md`. If it exists: 1. Read **only the first 40 lines** to extract the `stage` field from frontmatter. Do NOT re-read the full doc. 2. Offer resumption: *"I see `<slug>` is at stage `<N>: <name>`. Resume from stage `<N+1>`, or start a fresh pass?"* 3. On resume: load the next stage's reference file and pick up from there. 4. Prior `research/` and `analysis/` outputs are **reused by default**. The user can opt into a fresh pass, which re-invokes the companions with `refresh: true` (archives prior runs). If no prfaq.md exists, start at Ignition. ## Stage 1: Ignition Ignition is the forge. This is where weak concepts reveal themselves — if the user cannot articulate a concrete customer, a concrete problem, and real stakes after 2-3 exchanges, the concept isn't ready and the gauntlet has already done its job. ### 1a. Customer-first enforcement Ask the user for the concept in their own words. Then redirect based
tag and push a release after the release PR is merged
create a release PR (auto-detects previous tag)
Guides architectural decisions for Deep Agents applications. Use when deciding between Deep Agents vs alternatives, choosing backend strategies, designing subagent systems, or selecting middleware approaches.
Reviews Deep Agents code for bugs, anti-patterns, and improvements. Use when reviewing code that uses create_deep_agent, backends, subagents, middleware, or human-in-the-loop patterns. Catches common configuration and usage mistakes.
Implements agents using Deep Agents. Use when building agents with create_deep_agent, configuring backends, defining subagents, adding middleware, or setting up human-in-the-loop workflows.
Guides architectural decisions for LangGraph applications. Use when deciding between LangGraph vs alternatives, choosing state management strategies, designing multi-agent systems, or selecting persistence and streaming approaches.
Reviews LangGraph code for bugs, anti-patterns, and improvements. Use when reviewing code that uses StateGraph, nodes, edges, checkpointing, or other LangGraph features. Catches common mistakes in state management, graph structure, and async patterns.
Implements stateful agent graphs using LangGraph. Use when building graphs, adding nodes/edges, defining state schemas, implementing checkpointing, handling interrupts, or creating multi-agent systems with LangGraph.