Help us improve
Share bugs, ideas, or general feedback.
From claude-agent-dev
Structured requirements discovery before implementation. Trigger on 'let's build', 'add a feature', 'we need a new', 'I want to implement', 'add X to', 'create a Y', ambiguous design, or unclear terminology — even when the user says 'just build it'. Proactively offer before any implementation begins. Prevents rework by catching problems early.
npx claudepluginhub j0hanz/claude-agent-dev-pluginHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-agent-dev:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Condition | Action |
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides systematic root-cause debugging when tests fail, builds break, or unexpected errors occur. Provides a structured triage checklist to preserve evidence, localize, and fix issues instead of guessing.
Share bugs, ideas, or general feedback.
| Condition | Action |
|---|---|
| "let's build X", "add a feature", "we need a new Y", "I want to implement Z", any new component or behavior | Run — even if user says "just build it" |
| Domain terminology ambiguous, foundational assumptions unvalidated | Run |
| User unsure how to approach a design problem | Run |
| Bug fix with clearly defined problem and root cause | Skip |
| Pure refactor with no behavior change | Skip |
| Documentation-only update | Skip |
| Design already explicitly approved, implementation is the next step | Skip |
rhythm: one question at a time — wait for each answer before asking the next.
Fast Track (resistant users): If the user declines brainstorming or insists on "just coding" after your first Phase 1 attempt:
codebase-scanner.| Thought | Reality |
|---|---|
| "The requirements are obvious" | Assumptions cause rework. Clarify anyway. |
| "I'll start simple and iterate" | Design approval comes first — see the gate below. |
| "We can figure out edge cases later" | Edge cases belong in the spec, not the debugger. |
| "This is too small to need design" | Small features accumulate into large regrets. |
| "The user said just build it" | Offer a quick brainstorm first. User can decline. |
| "Everyone knows what X means" | Ambiguous terms corrupt specs. Capture them in Phase 2. |
| "I'll define terms after we design" | Terminology conflicts surface in specs at the worst time. |
Design approval gate: Do not write any code, scaffolding, or invoke any implementation skill until the user has explicitly approved a design in Phase 4.
Spawn via Agent tool. Do not redo their work manually.
| Agent | File | When to spawn |
|---|---|---|
codebase-scanner | agents/codebase-scanner.md | Start of Phase 1, before asking any questions |
design-proposer | agents/design-proposer.md | Start of Phase 4, before presenting approaches |
Spawn codebase-scanner — pass the feature description exactly as stated. Wait for the Codebase Context Report.
Summarize your understanding in one paragraph, drawing from the report: what was found, what constraints exist, what Key Unknowns were flagged, and what you don't know yet. Ask the user to confirm.
scope-check: If discovery reveals the feature is >4x larger than expected, suggest splitting into phases.
domain-trigger: If steps 1–5 reveal ambiguous or conflicting terminology, run Phase 2 before continuing.
User says: "We need to add search to our product."
Your understanding statement: "I understand you need full-text search for your product so users can find data faster. Currently, I don't know: if you want real-time indexing, if search needs to be fuzzy, or if there are performance constraints. Do I have this right?"
Skip if domain terminology is clear and consistent throughout code, docs, and user language.
Definition is clear when:
Not clear if: Definition relies on "everyone knows what this means" or varies by team.
Invoke when: same term has multiple meanings, team and code use different names for the same concept, user asks "what do we call X?", or docs are inconsistent.
Fundamental disagreement: If domain experts disagree on WHAT we're building, document both positions and escalate before proceeding to Phase 4.
For each ambiguous term:
3-turn rule: If 3 questions fail to define a term clearly, mark it TBD with an owner and move on.
Output format for captured terms:
[Canonical Term]: [Definition]. Aliases: [alias1, alias2]
(TBD: [Question] — Owner: [Role/Person])
Conflict resolution: [how overlapping usages were resolved]
Offer to write findings to glossary.md or CONTEXT.md at Phase 5 transition.
Pick 1–2 techniques based on conversation signals. Do not run all five as a script.
| Situation | Use This | Reason |
|---|---|---|
| User says "just build it" or requirements seem obvious | Why (Five Whys) | Uncovers hidden motivation |
| Large scope or complex dependencies | Premortem | Surfaces organizational/technical risks |
| Success criteria vague ("just make it fast") | Success Logic | Clarifies acceptance criteria |
| Feature creep risk or unclear boundaries | Anti-Scope | Defines what we're explicitly NOT building |
| Feature handles sensitive data or user permissions | Trust Breach | Identifies security/privacy vulnerabilities |
Depth check: After 1–2 techniques, ask: "Are there other risks or unknowns that could derail this?"
Hard limit: 4 questions total within Phase 3. Unresolved questions become TBD items with an owner.
Compress the Codebase Context Report before spawning:
python <skill-dir>/scripts/compress_report.py <path-to-report.json>
# or pipe directly:
echo '<report-json>' | python <skill-dir>/scripts/compress_report.py
If the script fails, pass the raw report as-is.
Spawn design-proposer with a context packet containing:
Present the design proposals in sections. Validate each section before continuing.
Design approval gate: Ask: "Which approach should we move forward with and why?"
Wait for explicit commitment:
Ambiguous responses ("sounds good") → clarify which specific approach they're choosing.
glossary.md or CONTEXT.md. If there are Open TBDs, offer to save them to TODO.md or a tracker./plan or write code automatically. Conclude: "You can now use /plan to generate a detailed implementation plan based on this brief. Would you like me to start that for you?"Required output format:
## Design Brief
**Chosen approach:** [Approach letter + name, e.g., "Approach B — Event-sourced queue"]
**Why:** [Key tradeoff in 1-2 sentences; what this gains and what it costs]
**Architecture:**
- [Component 1: responsibility]
- [Component 2: responsibility]
- [Key data flow between them]
**Success criteria:** [Observable signals — what user/system will do differently]
**Open TBDs:** [Unresolved items with owner and due date, or "None"]
When to use:
Prefer planning skill when requirements are clear. Prefer direct implementation when requirements and approach are both decided.
Troubleshooting: