From atv-starter-kit
Explores feature ideas and requirements via collaborative dialogue, then generates a right-sized requirements document for planning. Use for vague requests, brainstorming, or scoping ambiguous problems.
npx claudepluginhub all-the-vibes/atv-starterkit --plugin atv-starter-kitThis skill uses the workspace's default tool permissions.
**Note: The current year is 2026.** Use this when dating requirements documents.
Brainstorms feature requirements through collaborative dialogue, clarifying scope, options, and decisions before generating a right-sized requirements document for planning.
Collaboratively explores feature requirements and options through dialogue, producing a right-sized requirements document for implementation planning. Use for vague ideas, brainstorming, or scoping ambitious requests.
Assesses task complexity upfront (quick/standard/full) and brainstorms with adaptive depth: ~2 exchanges for bugs, full PRD for complex features. Use for unclear requirements or new ideas.
Share bugs, ideas, or general feedback.
Note: The current year is 2026. Use this when dating requirements documents.
Brainstorming helps answer WHAT to build through collaborative dialogue. It precedes /ce-plan, which answers HOW to build it.
The durable output of this workflow is a requirements document. In other workflows this might be called a lightweight PRD or feature brief. In compound engineering, keep the workflow name brainstorm, but make the written artifact strong enough that planning does not need to invent product behavior, scope boundaries, or success criteria.
This skill does not implement code. It explores, clarifies, and documents decisions for later planning or execution.
IMPORTANT: All file references in generated documents must use repo-relative paths (e.g., src/models/user.rb), never absolute paths. Absolute paths break portability across machines, worktrees, and teammates.
ask_user in Copilot CLI). Otherwise, present numbered options in chat and wait for the user's reply before proceeding.src/models/user.rb), never absolute paths. Absolute paths make documents non-portable across machines and teammates.<feature_description> #$ARGUMENTS </feature_description>
If the feature description above is empty, ask the user: "What would you like to explore? Please describe the feature, problem, or improvement you're thinking about."
Do not proceed until you have a feature description from the user.
If the user references an existing brainstorm topic or document, or there is an obvious recent matching *-requirements.md file in docs/brainstorms/:
Clear requirements indicators:
If requirements are already clear: Keep the interaction brief. Confirm understanding and present concise next-step options rather than forcing a long brainstorm. Only write a short requirements document when a durable handoff to planning or later review would be valuable. Skip Phase 1.1 and 1.2 entirely — go straight to Phase 1.3 or Phase 3.
Use the feature description plus a light repo scan to classify the work:
If the scope is unclear, ask one targeted question to disambiguate and then proceed.
Scan the repo before substantive brainstorming. Match depth to scope:
Lightweight — Search for the topic, check if something similar already exists, and move on.
Standard and Deep — Two passes:
Constraint Check — Check project instruction files (AGENTS.md) for workflow, product, or scope constraints that affect the brainstorm. If these add nothing, move on.
Topic Scan — Search for relevant terms. Read the most relevant existing artifact if one exists (brainstorm, plan, spec, skill, feature doc). Skim adjacent examples covering similar behavior.
If nothing obvious appears after a short scan, say so and continue. Two rules govern technical depth during the scan:
Verify before claiming — When the brainstorm touches checkable infrastructure (database tables, routes, config files, dependencies, model definitions), read the relevant source files to confirm what actually exists. Any claim that something is absent — a missing table, an endpoint that doesn't exist, a dependency not in the Gemfile, a config option with no current support — must be verified against the codebase first; if not verified, label it as an unverified assumption. This applies to every brainstorm regardless of topic.
Defer design decisions to planning — Implementation details like schemas, migration strategies, endpoint structure, or deployment topology belong in planning, not here — unless the brainstorm is itself about a technical or architectural decision, in which case those details are the subject of the brainstorm and should be explored.
Before generating approaches, challenge the request to catch misframing. Match depth to scope:
Lightweight:
Standard:
Deep — Standard questions plus:
Use the platform's blocking question tool when available (see Interaction Rules). Otherwise, present numbered options in chat and wait for the user's reply before proceeding.
Guidelines:
Exit condition: Continue until the idea is clear OR the user explicitly wants to proceed.
If multiple plausible directions remain, propose 2-3 concrete approaches based on research and conversation. Otherwise state the recommended direction directly.
When useful, include one deliberately higher-upside alternative:
For each approach, provide:
Lead with your recommendation and explain why. Prefer simpler solutions when added complexity creates real carrying cost, but do not reject low-cost, high-value polish just because it is not strictly necessary.
If one approach is clearly best and alternatives are not meaningful, skip the menu and state the recommendation directly.
If relevant, call out whether the choice is:
Write or update a requirements document only when the conversation produced durable decisions worth preserving.
This document should behave like a lightweight PRD without PRD ceremony. Include what planning needs to execute well, and skip sections that add no value for the scope.
The requirements document is for product definition and scope control. Do not include implementation details such as libraries, schemas, endpoints, file layouts, or code structure unless the brainstorm is inherently technical and those details are themselves the subject of the decision.
Required content for non-trivial work:
Include when materially useful:
Document structure: Use this template and omit clearly inapplicable optional sections:
---
date: YYYY-MM-DD
topic: <kebab-case-topic>
---
# <Topic Title>
## Problem Frame
[Who is affected, what is changing, and why it matters]
## Requirements
**[Group Header]**
- R1. [Concrete requirement in this group]
- R2. [Concrete requirement in this group]
**[Group Header]**
- R3. [Concrete requirement in this group]
## Success Criteria
- [How we will know this solved the right problem]
## Scope Boundaries
- [Deliberate non-goal or exclusion]
## Key Decisions
- [Decision]: [Rationale]
## Dependencies / Assumptions
- [Only include if material]
## Outstanding Questions
### Resolve Before Planning
- [Affects R1][User decision] [Question that must be answered before planning can proceed]
### Deferred to Planning
- [Affects R2][Technical] [Question that should be answered during planning or codebase exploration]
- [Affects R2][Needs research] [Question that likely requires research during planning]
## Next Steps
[If `Resolve Before Planning` is empty: `→ /ce-plan` for structured implementation planning]
[If `Resolve Before Planning` is not empty: `→ Resume /ce-brainstorm` to resolve blocking questions before planning]
Visual communication — Include a visual aid when the requirements would be significantly easier to understand with one. Visual aids are conditional on content patterns, not on depth classification — a Lightweight brainstorm about a complex workflow may warrant a diagram; a Deep brainstorm about a straightforward feature may not.
When to include:
| Requirements describe... | Visual aid | Placement |
|---|---|---|
| A multi-step user workflow or process | Mermaid flow diagram or ASCII flow with annotations | After Problem Frame, or under its own ## User Flow heading for substantial flows (>10 nodes) |
| 3+ behavioral modes, variants, or states | Markdown comparison table | Within the Requirements section |
| 3+ interacting participants (user roles, system components, external services) | Mermaid or ASCII relationship diagram | After Problem Frame, or under its own ## Architecture heading |
| Multiple competing approaches being compared | Comparison table | Within Phase 2 approach exploration |
When to skip:
ce-plan)Format selection:
TB (top-to-bottom) direction so diagrams stay narrow in both rendered and source form. Source should be readable as fallback in diff views and terminals.After generating a visual aid, verify it accurately represents the prose requirements — correct sequence, no missing branches, no merged steps. Diagrams without code to validate against carry higher inaccuracy risk than code-backed diagrams.
For Standard and Deep brainstorms, a requirements document is usually warranted.
For Lightweight brainstorms, keep the document compact. Skip document creation when the user only needs brief alignment and no durable decisions need to be preserved.
For very small requirements docs with only 1-3 simple requirements, plain bullet requirements are acceptable. For Standard and Deep requirements docs, use stable IDs like R1, R2, R3 so planning and later review can refer to them unambiguously.
When requirements span multiple distinct concerns, group them under bold topic headers within the Requirements section. The trigger for grouping is distinct logical areas, not item count — even four requirements benefit from headers if they cover three different topics. Group by logical theme (e.g., "Packaging", "Migration and Compatibility", "Contributor Workflow"), not by the order they were discussed. Requirements keep their original stable IDs — numbering does not restart per group. A requirement belongs to whichever group it fits best; do not duplicate it across groups. Skip grouping only when all requirements are about the same thing.
When the work is simple, combine sections rather than padding them. A short requirements document is better than a bloated one.
Before finalizing, check:
ce-plan still have to invent if this brainstorm ended now?If planning would need to invent product behavior, scope boundaries, or success criteria, the brainstorm is not complete yet.
Ensure docs/brainstorms/ directory exists before writing.
If a document contains outstanding questions:
Resolve Before Planning only for questions that truly block planningResolve Before Planning is non-empty, keep working those questions during the brainstorm by defaultDeferred to Planning question before proceedingDeferred to Planning when they are better answered there[Needs research] when the planner should likely investigate the question rather than answer it from repo context aloneWhen a requirements document was created or updated, run the document-review skill on it before presenting handoff options. Pass the document path as the argument.
If document-review returns findings that were auto-applied, note them briefly when presenting handoff options. If residual P0/P1 findings were surfaced, mention them so the user can decide whether to address them before proceeding.
When document-review returns "Review complete", proceed to Phase 4.
Present next steps using the platform's blocking question tool when available (see Interaction Rules). Otherwise present numbered options in chat and end the turn.
If Resolve Before Planning contains any items:
Deferred to Planning questionProceed to planning or Proceed directly to work while Resolve Before Planning remains non-emptyQuestion when no blocking questions remain: "Brainstorm complete. What would you like to do next?"
Question when blocking questions remain and user wants to pause: "Brainstorm paused. Planning is blocked until the remaining questions are resolved. What would you like to do next?"
Present only the options that apply:
/ce-plan for structured implementation planningIf the direct-to-work gate is not satisfied, omit that option entirely.
If user selects "Proceed to planning (Recommended)":
Immediately run /ce-plan in the current session. Pass the requirements document path when one exists; otherwise pass a concise summary of the finalized brainstorm decisions. Do not print the closing summary first.
If user selects "Proceed directly to work":
Immediately run /ce-work in the current session using the finalized brainstorm output as context. If a compact requirements document exists, pass its path. Do not print the closing summary first.
If user selects "Share to Proof":
CONTENT=$(cat docs/brainstorms/YYYY-MM-DD-<topic>-requirements.md)
TITLE="Requirements: <topic title>"
RESPONSE=$(curl -s -X POST https://www.proofeditor.ai/share/markdown \
-H "Content-Type: application/json" \
-d "$(jq -n --arg title "$TITLE" --arg markdown "$CONTENT" --arg by "ai:compound" '{title: $title, markdown: $markdown, by: $by}')")
PROOF_URL=$(echo "$RESPONSE" | jq -r '.tokenUrl')
Display the URL prominently: View & collaborate in Proof: <PROOF_URL>
If the curl fails, skip silently. Then return to the Phase 4 options.
If user selects "Ask more questions": Return to Phase 1.3 (Collaborative Dialogue) and continue asking the user questions one at a time to further refine the design. Probe deeper into edge cases, constraints, preferences, or areas not yet explored. Continue until the user is satisfied, then return to Phase 4. Do not show the closing summary yet.
If user selects "Run additional document review":
Load the document-review skill and apply it to the requirements document for another pass.
When document-review returns "Review complete", return to the normal Phase 4 options and present only the options that still apply. Do not show the closing summary yet.
Use the closing summary only when this run of the workflow is ending or handing off, not when returning to the Phase 4 options.
When complete and ready for planning, display:
Brainstorm complete!
Requirements doc: docs/brainstorms/YYYY-MM-DD-<topic>-requirements.md # if one was created
Key decisions:
- [Decision 1]
- [Decision 2]
Recommended next step: `/ce-plan`
If the user pauses with Resolve Before Planning still populated, display:
Brainstorm paused.
Requirements doc: docs/brainstorms/YYYY-MM-DD-<topic>-requirements.md # if one was created
Planning is blocked by:
- [Blocking question 1]
- [Blocking question 2]
Resume with `/ce-brainstorm` when ready to resolve these before planning.