Use before any creative work - features, components, systems. Triggered by intent to build, NOT keyword matching. Trivial edits (under 3 steps, single file, no design decisions) are exempt.
From mbscodenpx claudepluginhub mbstools/mbscodeThis skill uses the workspace's default tool permissions.
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.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Turn ideas into fully formed designs through collaborative dialogue. Understand context, ask questions one at a time, present design, get approval, write spec.
<HARD-GATE> Do NOT write code, scaffold a project, or take implementation action until you have produced a design. Interactive sessions: get explicit user approval before implementation. Autonomous/non-interactive sessions: self-review the design, record assumptions, and proceed only if no open questions remain. </HARD-GATE>Every design decision goes through this process. If the task involves choosing between approaches, defining behavior, or creating new functionality — brainstorm it, even if it seems simple. "Simple" projects are where unexamined assumptions cause the most waste.
Exempt from brainstorming: Tasks requiring zero design decisions — renaming, fixing typos, adding comments, deleting files, updating config values. These are trivial edits (< 3 steps, single file) and proceed directly after gate checks.
Scale the process to the task size:
| Task Size | Design Depth | Questions | Spec |
|---|---|---|---|
| Small (single component, < 5 files) | Component + approach summary | 3-5 questions | Short spec, save to specs directory (per CONVENTIONS.md) |
| Medium (multi-component, 5-15 files) | Full architecture sections | 5-8 questions, one at a time | Full spec with components, testing, error handling |
| Large (15+ files or cross-system) | Decompose into sub-projects first | Scope decomposition before detail questions | One spec per sub-project |
Note: Trivial tasks (< 3 steps, single file, no design decisions) are exempt from brainstorming entirely — they proceed directly after gate checks.
You MUST complete these in order. Work through each step.
docs/specs/YYYY-MM-DD-<topic>-design.md; agree path with user if directory doesn't exist)mbscode:writing-plansHARD-GATE (interactive sessions): One question per message. You may bundle 2-3 closely related sub-questions (related = same component AND same design decision; e.g., "username format: email or custom? min length?") but NEVER ask about different topics in one message. If you catch yourself writing two unrelated questions, STOP and send only the first one.
Autonomous sessions: Compile all questions, answer them yourself using the Autonomous Decision Hierarchy (existing code patterns > CONVENTIONS.md > language idioms > community choice), and record your assumptions in the spec. If a question genuinely can't be answered from context, stop and report the blocker.
Prefer multiple choice:
Which auth approach should we use?
1. JWT tokens (Recommended — stateless, scales horizontally)
2. Session-based (simpler, but requires server-side state)
3. OAuth only (if this is purely a third-party auth wrapper)
Lead with your recommendation. Don't present neutral options — you have expertise. State which option you'd choose and WHY with a concrete reason. Then present alternatives.
When to ask open-ended: Only when the answer genuinely can't be predicted (e.g., "What's the primary use case?").
Stop asking when: You have enough to propose approaches. Ask until you can confidently define: inputs, outputs, error handling, and test strategy. Typically 3-5 questions.
Present 2-3 approaches. For EACH:
### Approach A: Modular Plugin Architecture (Recommended)
Each skill is an independent markdown file with YAML frontmatter.
**Why:** Zero coupling, any AI can read it, community can contribute independently.
**Trade-off:** No runtime validation — skill quality depends on writing discipline.
### Approach B: Typed Skill Schema
Skills are YAML/JSON with a strict schema validated at load time.
**Why:** Catches malformed skills before they reach the AI.
**Trade-off:** Higher barrier to contribution, schema maintenance overhead.
**My recommendation:** Approach A. The validation cost isn't worth it because
skills are read by AI, not executed. A bad skill wastes tokens; it doesn't crash.
Scale sections to their complexity. A few sentences if single-component. Up to 300 words if multi-component with trade-offs.
Ask after each section: "Does this look right so far?"
Cover these areas (skip if genuinely not applicable):
Design for isolation:
# <Feature Name> — Design Spec
## Goal
One sentence. What does this build?
## Architecture
How the system works. Components, data flow, key interactions.
## Components
### Component A: <Name>
**Purpose:** What it does
**Interface:** How other components use it
**Implementation notes:** Key decisions, constraints
### Component B: <Name>
...
## Error Handling
What can fail and how each failure is handled.
## Acceptance Criteria
Feature-level success conditions. These are NOT task-level — they describe end-to-end outcomes:
- Given [context], when [action], then [outcome].
## Testing Strategy
What to test and how. Which components need unit tests,
which need integration tests, what the acceptance criteria are.
## Open Questions
(Remove this section when all questions are resolved)
## Decisions Made
- [Decision]: [Chosen approach] because [reason]. Alternative: [rejected option] because [reason].
After writing the spec, review it yourself:
Fix issues inline. Then ask user to review the written file.
docs/specs/<filename>. Please review and let me know if you want changes."mbscode:writing-plans. Do NOT invoke any implementation skill.Proceed directly to implementation without invoking a skill — you have enough context from the design discussion. mbscode:verification-before-completion still applies before claiming done. If you created a feature branch, invoke mbscode:finishing-a-development-branch when done.
Triggered by: Intent to build something new (features, components, systems). Not keyword-based — evaluate user intent, not specific words.
Also invoked by: mbscode:systematic-debugging when a bug reveals a design issue
After completion: mbscode:writing-plans (non-trivial) or direct implementation + mbscode:finishing-a-development-branch (trivial, on feature branch)
| Thought | Reality |
|---|---|
| "I know what they want" | You don't. Ask. |
| "One approach is obviously right" | Present alternatives anyway — your human might see something you don't |
| "Let me just start coding" | Design first. Always. |
| "This design is too detailed" | Detailed design = fewer surprises during implementation |
| "They said 'just build it'" | "Build" is WHAT. Brainstorming determines HOW. |