Help us improve
Share bugs, ideas, or general feedback.
From aichemist
Use this BEFORE any creative work — creating features, building components, adding functionality, or modifying existing behavior. Explores user intent, requirements, and design through structured dialogue before any implementation begins. Trigger phrases: "I want to build", "let's add", "how should I implement", "I'm thinking of", "new feature", "let's create", "design this", "help me plan", "should I use X or Y".
npx claudepluginhub anras573/aichemist --plugin aichemistHow this skill is triggered — by the user, by Claude, or both
Slash command
/aichemist:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help turn ideas into fully-formed designs through structured dialogue. Understand what's being built, explore the right approach, then document the design before any implementation begins.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Help turn ideas into fully-formed designs through structured dialogue. Understand what's being built, explore the right approach, then document the design before any implementation begins.
Do NOT write any code, scaffold any project, invoke any implementation agent, or take any implementation action until you have presented a design and the user has explicitly approved it. This applies regardless of perceived simplicity.Every request goes through this process. A single utility function, a config change, a small refactor — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple things), but you must present it and get approval before touching code.
Complete these steps in order:
docs/specs/ if needed, save to docs/specs/YYYY-MM-DD-<topic>.md, commit to gitBefore asking any questions, understand what exists:
CLAUDE.md, AGENTS.md, .github/copilot-instructions.md, README.mdBefore asking detailed questions, assess whether the request is appropriately scoped.
If the request covers multiple independent subsystems (e.g. "build a platform with auth, billing, notifications, and a dashboard"), flag it immediately:
"This covers several independent pieces. Let's decompose before diving into any one part. The main components I see are: [list]. What order should we tackle them?"
Each sub-project then gets its own brainstorm → spec → implementation cycle.
Ask one question at a time. Prefer multiple choice where possible — easier to answer than open-ended.
Focus on:
Present 2–3 distinct approaches with honest trade-offs. Lead with your recommendation and explain why.
Example structure:
Option A (recommended): [description]. Pro: [X]. Con: [Y]. Option B: [description]. Pro: [X]. Con: [Y]. Option C: [description]. Pro: [X]. Con: [Y].
I'd go with A because [reasoning]. What do you think?
Once you have enough to design, present it section by section. After each section, ask if it looks right before continuing.
Scale each section to its complexity — a few sentences for simple things, more detail for nuanced areas.
Cover:
Design for isolation: Each unit should have one clear purpose and communicate through well-defined interfaces. Ask yourself: can someone understand what this unit does without reading its internals? Can you change the internals without breaking consumers? If not, the boundaries need work. Smaller, well-bounded units are also easier to reason about and implement correctly.
Working in existing codebases: Follow existing patterns. Where the existing code has problems that affect this work (a file that's grown too large, tangled responsibilities), include targeted improvements as part of the design. Don't propose unrelated refactoring.
After the user approves the design, confirm before writing anything:
Write operations (confirmation required):
| Operation | Confirmation prompt |
|---|---|
| Write spec file | "Ready to write the spec to docs/specs/YYYY-MM-DD-<topic>.md. Shall I proceed?" |
| Git commit | "Commit the spec with message docs: add <topic> design spec?" |
Only proceed with each operation after receiving explicit confirmation.
Path: docs/specs/YYYY-MM-DD-<topic>.md
Spec structure:
# <Topic>
## Problem
[What are we solving and why]
## Approach
[The chosen approach and rationale]
## Design
[Architecture, components, data flow]
## Error Handling
[What can go wrong and how it's handled]
## Testing
[What to test and how]
## Out of Scope
[What was explicitly excluded]
Commit the spec:
mkdir -p docs/specs
git add docs/specs/YYYY-MM-DD-<topic>.md
git commit -m "docs: add <topic> design spec"
Then ask the user to review the committed file before proceeding:
"Spec committed to
docs/specs/YYYY-MM-DD-<topic>.md. Take a look and let me know if anything needs changing before we start implementing."
Once the user approves the spec, proceed to implementation using the appropriate agents for the work ahead (e.g. .NET Agent for C# work, TypeScript/React Agent for frontend, DDD Agent for domain modelling). For general tasks with no specialized agent, continue in the current conversation.
Do NOT start implementation before reaching this step.