Comprehensive developer toolkit providing reusable skills for Java/Spring Boot, TypeScript/NestJS/React/Next.js, Python, PHP, AWS CloudFormation, AI/RAG, DevOps, and more.
90
90%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
Provides guided brainstorming to transform ideas into pure functional specifications (WHAT, not HOW). Focus on business logic, use cases, and acceptance criteria — no code, frameworks, or technical patterns.
This command produces a functional specification — a document that describes WHAT the system should do, without HOW it will be implemented.
The new workflow:
Idea → Scope Assessment → Functional Specification (docs/specs/[id]/) → Architecture & Ontology → Tasks → Implementation → Review → Cleanup → Done
(Phase 1.5) (WHAT, not HOW) (docs/specs/) (spec-to-tasks)
If scope is TOO LARGE:
Idea → Split into Spec A, Spec B, Spec C → Brainstorm each separately → Multiple focused specificationsOutput: docs/specs/[id]/YYYY-MM-DD--feature-name.md
Preferred naming is YYYY-MM-DD--feature-name.md. If the spec folder already uses legacy *-specs.md files, keep the existing convention instead of mixing both formats.
Where [id] is a unique identifier in format NNN-feature-name (e.g., 001-hotel-search-aggregation).
| Aspect | Functional Specification (WHAT) | Technical Design (HOW) |
|---|---|---|
| Focus | Business rules, user behaviors | Frameworks, patterns, code |
| Language | Natural language | Technical terminology |
| Examples | "User can reset password via email" | "Use Spring Security with JWT" |
| Output | docs/specs/[id]/ | docs/plans/ (deprecated) |
Use this command when starting a new feature to define clear functional requirements before any technical decisions.
/specs:brainstorm [idea-description]After generating the functional specification, continue with:
/specs:spec-to-tasks docs/specs/[id]/| Argument | Required | Description |
|---|---|---|
idea-description | No | Description of the idea or feature to brainstorm |
The command will automatically gather context information when needed:
idea-description
You are helping a developer transform an idea into a fully formed design. Follow a systematic approach: understand the project context, explore the idea through targeted questions, explore existing code, propose alternative approaches, present the design incrementally, generate professional documentation, review the document, and recommend the next development command.
Goal: Understand the current project state and the initial idea
Initial idea: $ARGUMENTS
Actions:
Create todo list with all phases
Explore the current project state (for context only - do NOT include in specification):
If the idea is unclear, ask the user for:
Determine workflow tier based on idea complexity:
/specs:quick-spec for faster turnaroundGoal: Assess idea complexity early and guide user to split if scope is too large for a single specification
Actions:
Estimate implementation scope based on the idea description and context from Phase 1:
Classify scope size using these indicators:
Small Scope (proceed normally - will generate 3-8 tasks):
Medium Scope (proceed normally - will generate 8-15 tasks):
Large Scope (WARNING - will likely generate >15 tasks - see step 3):
If Large Scope detected:
Scope Assessment: Large
Your idea covers multiple functional domains and would likely generate more than 15 implementation tasks.
This is too large for a single specification and implementation cycle.
Recommended approach: Create 2 or more focused specifications, each with clear scope.
Benefits of splitting:
- Each specification has a clear, testable functional boundary
- Implementation cycles are manageable and focused
- Easier to prioritize and deliver incrementally
- Better traceability from requirements to codeIdentify natural split points in the idea:
Use AskUserQuestion to present split options:
I recommend splitting this idea into [N] focused specifications:
Option 1: Split by Functional Domain
- Spec A: [domain name] - [brief description, core functionality]
- Spec B: [domain name] - [brief description, core functionality]
- Spec C: [domain name] - [brief description, if applicable]
Option 2: Split by Priority/Phase
- Spec A: Core functionality (must-have for initial release) - [list key features]
- Spec B: Extended features (phase 2) - [list key features]
How would you like to proceed?Options via AskUserQuestion:
If user chooses to split:
If user chooses "continue anyway":
If Small or Medium Scope: Proceed to Phase 2 without interruption
Goal: Deeply understand the idea through structured dialogue
Run this phase only if the initial request still has meaningful ambiguity after Phase 1.
Actions:
Example structured questions:
Goal: Present 2-3 different functional approaches with trade-offs (WHAT, not HOW)
Actions:
Based on the refined idea, develop 2-3 distinct approaches focusing on BEHAVIOR:
For each approach, describe ONLY functional aspects:
CRITICAL: Do NOT mention any technical details:
If there are materially different scope options, use AskUserQuestion to present them:
If one approach is clearly dominant, select it, record the rationale, and proceed without an extra gate
After approach selection, log the decision:
decision-log.md in Phase 6Goal: Understand existing codebase for context only — do NOT influence the specification with technical decisions
NOTE: This phase is OPTIONAL. Skip if not needed. The functional specification should be technology-agnostic.
Actions:
Task(
description: "Explore codebase for integration context",
prompt: "Explore the codebase to understand what existing systems, APIs, or data structures the new feature must integrate with.
Focus on:
1. Existing APIs or interfaces the feature must use
2. Shared data structures or models
3. Existing business rules that apply
Return:
- List of integration requirements (capabilities needed, not implementation)
- Do NOT suggest frameworks, patterns, or technical solutions",
subagent_type: "developer-kit:general-code-explorer"
)Goal: Present the functional specification in validated sections
DO NOT START WITHOUT APPROACH APPROVAL
Actions:
Once the approach is selected, present the functional specification in sections of 200-300 words each
Incorporate any integration requirements from Phase 4
Cover the following areas in separate sections:
Section 1: Business Context
Section 2: Functional Requirements
Section 3: User Interactions
Section 4: Acceptance Criteria
Section 5: Integration Requirements
CRITICAL: Throughout all sections, NEVER mention:
Validate only at meaningful checkpoints:
If no major ambiguity is detected, proceed directly to Phase 6 and collect feedback on the complete draft
Goal: Generate professional functional specification document
Actions:
Compile all validated specification sections
Generate unique spec ID:
docs/specs/ to determine next sequence numberNNN-feature-slug (e.g., 001-hotel-search-aggregation)006-feature-nameCreate spec folder: docs/specs/[id]/
CRITICAL: Save the original user request:
user-request.md in docs/specs/[id]/ containing:
spec-to-tasks to verify all requirements are captured# User Request
**Original Input**: [what the user asked for]
**Key Requirements Mentioned**:
- [requirement 1]
- [requirement 2]
**Constraints**: [any constraints mentioned]Use the Task tool to launch the document-generator-expert subagent:
Task(
description: "Generate functional specification",
prompt: "Generate a professional functional specification document based on the following validated specification:
**Feature Title**: [title]
**Date**: [current date]
**Spec ID**: [id] (e.g., 001-hotel-search-aggregation)
**Business Context**:
- Problem solved: [from Section 1]
- Target users: [from Section 1]
- System fit: [from Section 1]
**Functional Requirements**:
- User stories: [from Section 2]
- Business rules: [from Section 2]
- Data requirements: [from Section 2]
- External capabilities: [from Section 2]
**User Interactions**:
- User flows: [from Section 3]
- Alternative paths: [from Section 3]
- Error scenarios: [from Section 3]
**Acceptance Criteria**:
- Testable criteria: [from Section 4]
- Success conditions: [from Section 4]
- Edge cases: [from Section 4]
**Integration Requirements**:
- Systems to integrate: [from Section 5]
- Data exchange: [from Section 5]
**Out of Scope**: [list]
**Open Questions**: [list]
Create a comprehensive, well-formatted functional specification and save it to:
docs/specs/[id]/YYYY-MM-DD--feature-name.md
IMPORTANT:
- This is a FUNCTIONAL specification, NOT a technical design
- Do NOT mention any frameworks, libraries, or tools
- Do NOT include code or pseudo-code
- Focus on WHAT the system should do, not HOW
- Use professional markdown structure",
subagent_type: "developer-kit:document-generator-expert"
)Wait for the document generator to complete
Verify the document was created successfully in docs/specs/[id]/
CRITICAL: Save brainstorming context files for later use by spec-to-tasks:
brainstorming-notes.md in docs/specs/[id]/ with:
devkit.spec-to-tasks to ensure technical details are NOT lost8.5. Create decision-log.md for decision audit trail:
decision-log.md in docs/specs/[id]/ with the following format:
# Decision Log: [Feature Name]
| ID | Date | Task | Decision | Alternatives | Impact | Decided By |
|----|------|------|----------|--------------|--------|------------|
## DEC-001: Approach Selection
- **Date**: [current date YYYY-MM-DD]
- **Task**: Brainstorming
- **Phase**: Approach Selection
- **Context**: Selection of functional approach for feature specification
- **Decision**: [Approach chosen - A/B/C]
- **Alternatives Considered**: [Brief description of approaches presented]
- **Impact**: Specification structure, scope boundaries, acceptance criteria
- **Decided By**: user selection8.6. Initialize or enrich the project ontology (docs/specs/ontology.md):
Domain terms identified during brainstorming are part of the functional understanding (Ubiquitous Language). This step captures them in a shared, project-level ontology file.
Check if docs/specs/ontology.md exists:
If the file does NOT exist:
During brainstorming, the following domain terms emerged:
- [Term 1]: [proposed definition]
- [Term 2]: [proposed definition]
- ...
Should I create the project ontology (docs/specs/ontology.md) with these terms?docs/specs/ontology.md using this template:
# Project Ontology — Ubiquitous Language
**Created**: [current date YYYY-MM-DD]
**Last Updated**: [current date YYYY-MM-DD]
## Domain Glossary
| Term | Definition | Bounded Context |
|------|-----------|-----------------|
| [Term 1] | [Definition] | [Context where this term applies] |
| [Term 2] | [Definition] | [Context where this term applies] |
## Bounded Contexts
| Context | Description | Key Terms |
|---------|-------------|-----------|
| [Context 1] | [Description] | [Terms specific to this context] |
## Conceptual Mapping
[Relationships between key domain entities — to be refined during task generation]If the file ALREADY exists:
docs/specs/ontology.mdLast Updated dateNote: The ontology is a living document. It will be further refined by /specs:spec-to-tasks when technical decisions are made.
Goal: Review the generated functional specification for quality and completeness
IMPORTANT: The functional specification should be technology-agnostic (WHAT), but technical details discussed during
brainstorming are preserved separately in brainstorming-notes.md for use by spec-to-tasks.
Actions:
Task(
description: "Review functional specification quality",
prompt: "Review the functional specification at docs/specs/[id]/YYYY-MM-DD--feature-name.md for:
1. **Completeness**: All required sections are present (Business Context, Functional Requirements, User Interactions, Acceptance Criteria, Integration Requirements, Out of Scope, Open Questions)
2. **Functional Focus**: Verify the specification is purely functional:
- NO mention of frameworks, libraries, or tools
- NO technical patterns or architectural styles
- NO code or pseudo-code
- Focuses on WHAT, not HOW
3. **Quality**: Content is clear, specific, and actionable
4. **Testability**: Acceptance criteria are clear and testable
5. **Formatting**: Proper markdown structure, consistent formatting
6. **Clarity**: Language is professional, concise, and unambiguous
Provide:
- Overall assessment (Excellent / Good / Needs Revision)
- List of any missing sections or content
- Specific issues found (if any)
- Any technical details that should be removed
- Recommendations for improvement (if needed)",
subagent_type: "developer-kit:general-code-reviewer"
)Once the agent returns, synthesize the review findings
Use the AskUserQuestion tool to present the review findings:
Present options based on agent assessment:
If revisions are needed:
Once approved, mark documentation phase complete
Goal: Recommend the appropriate next command in the workflow
Actions:
The functional specification is complete. The next step is to convert it to executable tasks:
For converting specification to tasks: Recommend /specs:spec-to-tasks
--lang=[language] docs/specs/[id]/Use the AskUserQuestion tool to present the recommendation:
Present options:
Include the pre-filled command:
Include the pre-filled commands:
# Recommended: Run spec-quality-check first, then generate tasks
/specs:spec-quality-check docs/specs/[id]/
/specs:spec-to-tasks --lang=[java|spring|typescript|nestjs|react|python|general] docs/specs/[id]/
# Alternative: Skip review and generate tasks directly
/specs:spec-to-tasks --lang=[java|spring|typescript|nestjs|react|python|general] docs/specs/[id]/
``` - The functional specification has been saved at `docs/specs/[id]/YYYY-MM-DD--feature-name.md`
- The task list will be saved at `docs/specs/[id]/YYYY-MM-DD--feature-name--tasks.md`
- Individual tasks will be in `docs/specs/[id]/tasks/TASK-XXX.md`
---
## Phase 9: Summary
**Goal**: Document what was accomplished
**Actions**:
1. Mark all todos complete
2. Summarize:
- **Original Idea**: What was brainstormed
- **Scope Assessment**: Small / Medium / Large (and user choice if large)
- **Scope Split Decision**: [If applicable: "User chose to split into N specifications - focusing on Spec A: [name]" OR "User chose to continue with single specification despite large scope warning"]
- **Approach Selected**: Which approach was chosen and why
- **Integration Context**: Key integration requirements (if any)
- **Functional Specification Created**: Key aspects of the specification
- **Spec ID**: `[id]` (e.g., `001-hotel-search-aggregation`)
- **Document Location**: `docs/specs/[id]/YYYY-MM-DD--feature-name.md`
- **Specification Review**: Review outcome and any revisions made
- **Recommended Next Step**:
- If scope was split: "Complete this specification's implementation, then run /specs:brainstorm for Spec B: [name]"
- Otherwise: "Generate task list with /specs:spec-to-tasks"
---
## Integration with Development Commands
This brainstorming command produces a **functional specification** that feeds into the new modular workflow:
### New Output Flow/specs:brainstorm ↓ Phase 4: Optional Codebase Exploration (for integration context only) ↓ Phase 5: Functional Specification Presentation (validated incrementally) ↓ Phase 6: Documentation (document-generator-expert agent) + Ontology initialization (docs/specs/ontology.md) ↓ Phase 7: Specification Review (quality verification) ↓ [Creates: docs/specs/[id]/YYYY-MM-DD--feature-name.md] [Creates/Updates: docs/specs/ontology.md (domain terms)] ↓ [Recommends: devkit.spec-to-tasks] ↓ /specs:spec-to-tasks --lang=[language] docs/specs/[id]/ ↓ [Ensures: docs/specs/architecture.md exists] [Refines: docs/specs/ontology.md] [Creates: docs/specs/[id]/YYYY-MM-DD--feature-name--tasks.md] [Creates: docs/specs/[id]/tasks/TASK-XXX.md] ↓ /specs:task-implementation --lang=[language] --task="docs/specs/[id]/tasks/TASK-XXX.md" ↓ [Implements single task]
### Specification as Reference
The functional specification created by this command serves as:
1. **Reference during implementation**: The development commands can read the specification for context
2. **Communication tool**: Can be shared with team members for review
3. **Documentation**: Becomes part of project's functional specification history
4. **Task generation input**: Used by `devkit.spec-to-tasks` to create executable tasks
5. **Organized storage**: All related files (spec, tasks, individual tasks) are grouped in `docs/specs/[id]/`
### Re-entering Brainstorming
If implementation reveals specification issues, you can re-run `/specs:brainstorm`:
- The previous specification will be preserved in its folder
- A new specification will be created with the current date
- You can reference the previous specification during the new brainstorming session
## Todo Management
Throughout the process, maintain a todo list like:[ ] Phase 1: Context Discovery [ ] Phase 1.5: Complexity Assessment & Scope Validation (split if scope too large) [ ] Phase 2: Idea Refinement [ ] Phase 3: Functional Approach Exploration [ ] Phase 4: Contextual Codebase Exploration (Optional) [ ] Phase 5: Functional Specification Presentation [ ] Section 1: Business Context [ ] Section 2: Functional Requirements [ ] Section 3: User Interactions [ ] Section 4: Acceptance Criteria [ ] Section 5: Integration Requirements [ ] Phase 6: Functional Specification Generation [ ] Phase 6.1: Ontology Initialization/Enrichment (docs/specs/ontology.md) [ ] Phase 7: Specification Review [ ] Phase 8: Next Steps Recommendation [ ] Phase 9: Summary
Update the status as you progress through each phase and section.
**CRITICAL**: Phase 1.5 MUST assess scope size before proceeding:
- If scope is too large (>15 estimated tasks), guide user to split into multiple specifications
- Present split options clearly (by domain or by priority)
- If user chooses to split: focus ONLY on first spec, recommend brainstorming for remaining specs
- If user chooses to continue anyway: log warning and note potential rejection by spec-to-tasks
---
**Note**: This command follows a collaborative, iterative approach with specialist agents to ensure designs are:
- Based on actual codebase exploration (not assumptions)
- Well-thought-out and validated incrementally
- Documented professionally with specialist assistance
- Reviewed for quality before proceeding
- Ready for implementation with clear next steps
---
## Examples
### Example 1: Simple Feature Idea
```bash
/specs:brainstorm Add user authentication with JWT tokens/specs:brainstorm Implement real-time notifications using WebSockets/specs:brainstorm Refactor the payment processing module to be more maintainable/specs:brainstorm Design a fix for the race condition in order processing/specs:brainstorm Design a caching strategy to reduce API response times/specs:brainstorm Integrate Stripe payment processing for subscriptions# Step 1: Brainstorm and generate functional specification
/specs:brainstorm Design a microservices architecture for the reporting module
# Step 2: Convert specification to tasks
/specs:spec-to-tasks --lang=spring docs/specs/001-reporting-module/
# Step 3: Implement specific tasks
/specs:task-implementation --lang=spring --task="docs/specs/001-reporting-module/tasks/TASK-001.md"
/specs:task-implementation --lang=spring --task="docs/specs/001-reporting-module/tasks/TASK-002.md"This separates WHAT (functional specification) from HOW (implementation), following the "divide et impera" principle.
docs
plugins
developer-kit-ai
developer-kit-aws
agents
docs
skills
aws
aws-cli-beast
aws-cost-optimization
aws-drawio-architecture-diagrams
aws-sam-bootstrap
aws-cloudformation
aws-cloudformation-auto-scaling
aws-cloudformation-bedrock
aws-cloudformation-cloudfront
aws-cloudformation-cloudwatch
aws-cloudformation-dynamodb
aws-cloudformation-ec2
aws-cloudformation-ecs
aws-cloudformation-elasticache
references
aws-cloudformation-iam
references
aws-cloudformation-lambda
aws-cloudformation-rds
aws-cloudformation-s3
aws-cloudformation-security
aws-cloudformation-task-ecs-deploy-gh
aws-cloudformation-vpc
references
developer-kit-core
agents
commands
skills
developer-kit-devops
developer-kit-java
agents
commands
docs
skills
aws-lambda-java-integration
aws-rds-spring-boot-integration
aws-sdk-java-v2-bedrock
aws-sdk-java-v2-core
aws-sdk-java-v2-dynamodb
aws-sdk-java-v2-kms
aws-sdk-java-v2-lambda
aws-sdk-java-v2-messaging
aws-sdk-java-v2-rds
aws-sdk-java-v2-s3
aws-sdk-java-v2-secrets-manager
clean-architecture
graalvm-native-image
langchain4j-ai-services-patterns
references
langchain4j-mcp-server-patterns
references
langchain4j-rag-implementation-patterns
references
langchain4j-spring-boot-integration
langchain4j-testing-strategies
langchain4j-tool-function-calling-patterns
langchain4j-vector-stores-configuration
references
qdrant
references
spring-ai-mcp-server-patterns
spring-boot-actuator
spring-boot-cache
spring-boot-crud-patterns
spring-boot-dependency-injection
spring-boot-event-driven-patterns
spring-boot-openapi-documentation
spring-boot-project-creator
spring-boot-resilience4j
spring-boot-rest-api-standards
spring-boot-saga-pattern
spring-boot-security-jwt
assets
references
scripts
spring-boot-test-patterns
spring-data-jpa
references
spring-data-neo4j
references
unit-test-application-events
unit-test-bean-validation
unit-test-boundary-conditions
unit-test-caching
unit-test-config-properties
references
unit-test-controller-layer
unit-test-exception-handler
references
unit-test-json-serialization
unit-test-mapper-converter
references
unit-test-parameterized
unit-test-scheduled-async
references
unit-test-service-layer
references
unit-test-utility-methods
unit-test-wiremock-rest-api
references
developer-kit-php
developer-kit-project-management
developer-kit-python
developer-kit-specs
commands
docs
hooks
test-templates
tests
skills
developer-kit-tools
developer-kit-typescript
agents
docs
hooks
rules
skills
aws-cdk
aws-lambda-typescript-integration
better-auth
clean-architecture
drizzle-orm-patterns
dynamodb-toolbox-patterns
references
nestjs
nestjs-best-practices
nestjs-code-review
nestjs-drizzle-crud-generator
nextjs-app-router
nextjs-authentication
nextjs-code-review
nextjs-data-fetching
nextjs-deployment
nextjs-performance
nx-monorepo
react-code-review
react-patterns
shadcn-ui
tailwind-css-patterns
tailwind-design-system
references
turborepo-monorepo
typescript-docs
typescript-security-review
zod-validation-utilities
references
github-spec-kit