npx claudepluginhub duthaho/claudekit --plugin claudekitThis skill uses the workspace's default tool permissions.
- Designing new features with unclear requirements
Guides collaborative brainstorming to refine fuzzy requirements, explore implementation alternatives, and form designs before coding.
Refines rough ideas into fully-formed designs via phased process: Socratic questioning for understanding, alternative exploration with trade-offs, and incremental validation before coding.
Transforms vague ideas into clear, validated designs via structured dialogue before implementing features, architecture changes, or behavior modifications.
Share bugs, ideas, or general feedback.
executing-plans insteadActivation: user's topic is a new product or standalone initiative, not a feature inside an existing codebase.
Detection signals:
Gate question (first clarifier, always):
Is this (a) a feature inside an existing codebase, or (b) a new product / standalone idea?
- (b) → Startup Mode replaces Phase 1 (Understanding)
- (a) → normal Phase 1
Six forcing questions (asked one at a time, per existing conventions):
Output gate (after Q6) — produce a traffic-light assessment per question (🟢/🟡/🔴) plus a recommendation:
After Startup Mode: continue with the existing Phase 2 (Exploration) and Phase 3 (Design Presentation). YAGNI, multiple-choice questioning, and design-doc output are unchanged.
Goal: Clarify requirements through sequential questioning.
Rules:
Example:
BAD: "What authentication method do you want, and should we support SSO,
and what about password requirements?"
GOOD: "Which authentication method should we use?
a) Username/password only
b) OAuth (Google, GitHub)
c) Both options"
Goal: Present alternatives with clear trade-offs.
Process:
Format:
## Approach 1: [Name] (Recommended)
[Description]
- Pros: [Benefits]
- Cons: [Drawbacks]
## Approach 2: [Name]
[Description]
- Pros: [Benefits]
- Cons: [Drawbacks]
Which approach aligns better with your goals?
Goal: Present validated design in digestible chunks.
Rules:
Sections to Cover:
Remove unnecessary features aggressively:
Sequential questioning produces better results:
When possible, provide structured options:
Save location: After design validation, write the design document to:
docs/claudekit/specs/YYYY-MM-DD-<topic>-design.md
Create the docs/claudekit/specs/ directory if it does not exist. Use today's date (YYYY-MM-DD) and a short, kebab-case topic slug.
Document to timestamped markdown:
# Design: [Feature Name]
Date: [YYYY-MM-DD]
## Summary
[2-3 sentences]
## Architecture
[Architecture decisions]
## Components
[Component breakdown]
## Data Flow
[How data moves through system]
## Error Handling
[Error scenarios and handling]
## Testing Strategy
[Testing approach]
## Open Questions
[Any remaining unknowns]
After design is validated:
writing-plans skill for detailed task breakdownexecuting-plans skill for implementationThis skill leverages MCP servers for enhanced brainstorming:
Use Sequential Thinking for structured exploration:
- Track design options as thought sequences
- Build confidence in recommendations incrementally
- Allow for revisions as user provides feedback
- Document reasoning chain for design decisions
Persist design decisions across sessions:
- Store design concepts as entities
- Create relations between components
- Recall user preferences from previous sessions
- Build project design knowledge over time
For informed technology choices:
- Fetch current library documentation
- Compare capabilities accurately
- Ground recommendations in real data
These show what Phase 2 (Exploration) output looks like for different domains:
## Approach 1: REST + JWT Bearer Auth (Recommended)
POST /api/orders with Pydantic v2 validation, async SQLAlchemy.
- Pros: Simple, cacheable, great OpenAPI docs via FastAPI
- Cons: Multiple round-trips for nested resources
## Approach 2: GraphQL + API Key Auth
Single /graphql endpoint with Strawberry, API key in header.
- Pros: Flexible queries, single round-trip for nested data
- Cons: Caching harder, team unfamiliar with Strawberry
**Decision**: REST — team knows it, OpenAPI auto-docs save time,
nested resources not needed for this feature.
## Approach 1: TanStack Table + URL Params (Recommended)
Server component fetches data, client component for interactions.
Sort/filter state in URL search params (shareable links).
- Pros: Bookmarkable state, SSR-friendly, no global store needed
- Cons: URL parsing boilerplate
## Approach 2: Zustand Store + SWR
Client-only with SWR for fetching, Zustand for table state.
- Pros: Simple state management, familiar pattern
- Cons: Not SSR-friendly, state lost on refresh
**Decision**: TanStack Table + URL params — users need to share
filtered views, and it works with Next.js App Router.
## Approach 1: Shared Table + tenant_id + RLS (Recommended)
Single `orders` table with `tenant_id` column, PostgreSQL RLS policies.
- Pros: Simple migrations, single connection pool, no schema sprawl
- Cons: Must never forget WHERE tenant_id = ? (RLS prevents this)
## Approach 2: Schema-per-tenant
Each tenant gets own PostgreSQL schema, selected via search_path.
- Pros: Strong isolation, easy per-tenant backup/restore
- Cons: Migration complexity grows linearly with tenants
**Decision**: Shared table + RLS — we have <100 tenants, RLS gives
isolation guarantees without migration pain.
writing-plans -- After brainstorming produces a validated design, use writing-plans to create a detailed implementation plansequential-thinking -- For complex problems that benefit from structured step-by-step reasoning during the brainstorming process