smart-spec-kit-mcp 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -60
- package/dist/cli.js +39 -20
- package/dist/cli.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tools/promptTools.d.ts +12 -0
- package/dist/tools/promptTools.d.ts.map +1 -0
- package/dist/tools/promptTools.js +524 -0
- package/dist/tools/promptTools.js.map +1 -0
- package/dist/utils/starterKitInstaller.d.ts +2 -1
- package/dist/utils/starterKitInstaller.d.ts.map +1 -1
- package/dist/utils/starterKitInstaller.js +51 -29
- package/dist/utils/starterKitInstaller.js.map +1 -1
- package/docs/DOCUMENTATION.md +379 -0
- package/docs/PACKAGING.md +323 -0
- package/package.json +2 -1
- package/starter-kit/copilot-instructions.md +96 -0
- package/starter-kit/prompts/clarify.md +73 -0
- package/starter-kit/prompts/implement.md +79 -0
- package/starter-kit/prompts/plan.md +69 -0
- package/starter-kit/prompts/specify.md +74 -0
- package/starter-kit/prompts/tasks.md +76 -0
- package/starter-kit/prompts/speckit.clarify.md +0 -129
- package/starter-kit/prompts/speckit.implement.md +0 -122
- package/starter-kit/prompts/speckit.init.md +0 -153
- package/starter-kit/prompts/speckit.plan.md +0 -145
- package/starter-kit/prompts/speckit.specify.md +0 -123
- package/starter-kit/prompts/speckit.tasks.md +0 -137
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Specify Prompt
|
|
2
|
+
|
|
3
|
+
You are creating a functional specification document. Follow this structured approach:
|
|
4
|
+
|
|
5
|
+
## 1. Analyze Requirements
|
|
6
|
+
|
|
7
|
+
Determine the source of requirements:
|
|
8
|
+
- **Azure DevOps Work Item**: If input contains an ADO ID (e.g., "#12345", "AB#12345")
|
|
9
|
+
- **Direct Description**: If input is a feature description
|
|
10
|
+
|
|
11
|
+
For the provided requirements, identify:
|
|
12
|
+
1. **Core user need** and business value
|
|
13
|
+
2. **Explicit requirements** - what was directly stated
|
|
14
|
+
3. **Implicit requirements** - reasonable inferences from context
|
|
15
|
+
4. **Assumptions** - things that need validation
|
|
16
|
+
5. **Risks and dependencies**
|
|
17
|
+
6. **Edge cases and error scenarios**
|
|
18
|
+
|
|
19
|
+
## 2. Generate Specification
|
|
20
|
+
|
|
21
|
+
Fill the template with:
|
|
22
|
+
|
|
23
|
+
### Metadata
|
|
24
|
+
- Title, date, version, status
|
|
25
|
+
- Link to source (ADO work item if applicable)
|
|
26
|
+
|
|
27
|
+
### Overview
|
|
28
|
+
- **Purpose**: The problem being solved
|
|
29
|
+
- **Scope**: What's in/out
|
|
30
|
+
- **Background**: Context and motivation
|
|
31
|
+
|
|
32
|
+
### Requirements
|
|
33
|
+
- Functional requirements with IDs and priorities (Must Have/Should Have/Could Have)
|
|
34
|
+
- Non-functional requirements (performance, security, etc.)
|
|
35
|
+
- Acceptance criteria in **Given/When/Then** format
|
|
36
|
+
|
|
37
|
+
### User Experience
|
|
38
|
+
- User personas
|
|
39
|
+
- User stories (As a... I want... So that...)
|
|
40
|
+
- User flow descriptions
|
|
41
|
+
|
|
42
|
+
### Technical Considerations
|
|
43
|
+
- Dependencies
|
|
44
|
+
- Constraints
|
|
45
|
+
- Data requirements
|
|
46
|
+
|
|
47
|
+
## 3. Handle Ambiguity
|
|
48
|
+
|
|
49
|
+
For unclear aspects:
|
|
50
|
+
- **Make informed guesses** based on context and industry standards
|
|
51
|
+
- **Document assumptions** in the Assumptions section
|
|
52
|
+
- **Limit clarifications**: Maximum 3 `[NEEDS CLARIFICATION]` markers for critical decisions only
|
|
53
|
+
|
|
54
|
+
Only use `[NEEDS CLARIFICATION]` when:
|
|
55
|
+
- The choice significantly impacts feature scope
|
|
56
|
+
- Multiple reasonable interpretations exist
|
|
57
|
+
- No reasonable default exists
|
|
58
|
+
|
|
59
|
+
## 4. Quality Checks
|
|
60
|
+
|
|
61
|
+
Before saving:
|
|
62
|
+
- Every requirement is testable and unambiguous
|
|
63
|
+
- Each requirement has a unique ID
|
|
64
|
+
- Acceptance criteria are in Given/When/Then format
|
|
65
|
+
- No undefined placeholders (except intentional `[NEEDS CLARIFICATION]`)
|
|
66
|
+
|
|
67
|
+
## 5. Output
|
|
68
|
+
|
|
69
|
+
Save to `specs/{context_id}-spec.md` and report:
|
|
70
|
+
- Path to created specification
|
|
71
|
+
- Summary of requirements captured
|
|
72
|
+
- List of assumptions made
|
|
73
|
+
- Any `[NEEDS CLARIFICATION]` items
|
|
74
|
+
- Next step: `speckit_plan` to create implementation plan
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Tasks Prompt
|
|
2
|
+
|
|
3
|
+
You are generating a detailed task breakdown from an implementation plan. Follow this structured approach:
|
|
4
|
+
|
|
5
|
+
## 1. Understand the Plan
|
|
6
|
+
|
|
7
|
+
Read and analyze:
|
|
8
|
+
- All phases and their objectives
|
|
9
|
+
- Deliverables per phase
|
|
10
|
+
- Dependencies between phases
|
|
11
|
+
- Technical decisions made
|
|
12
|
+
|
|
13
|
+
## 2. Task Decomposition Principles
|
|
14
|
+
|
|
15
|
+
Create tasks that are:
|
|
16
|
+
- **Atomic**: One clear deliverable
|
|
17
|
+
- **Actionable**: Clear what to do
|
|
18
|
+
- **Testable**: Has acceptance criteria
|
|
19
|
+
- **Sized**: Completable in 1-4 hours
|
|
20
|
+
|
|
21
|
+
## 3. Task Structure
|
|
22
|
+
|
|
23
|
+
For each task include:
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
### Task {ID}: {Short Title}
|
|
27
|
+
|
|
28
|
+
**Phase**: {phase name}
|
|
29
|
+
**Priority**: {P0-Critical / P1-High / P2-Medium / P3-Low}
|
|
30
|
+
**Estimate**: {1h / 2h / 4h}
|
|
31
|
+
**Dependencies**: {task IDs or "None"}
|
|
32
|
+
|
|
33
|
+
**Description**:
|
|
34
|
+
{What needs to be done}
|
|
35
|
+
|
|
36
|
+
**Acceptance Criteria**:
|
|
37
|
+
- [ ] {Criterion 1}
|
|
38
|
+
- [ ] {Criterion 2}
|
|
39
|
+
|
|
40
|
+
**Files to modify**:
|
|
41
|
+
- `path/to/file.ts`
|
|
42
|
+
|
|
43
|
+
**Status**: {Not Started / In Progress / Done}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 4. Task Categories
|
|
47
|
+
|
|
48
|
+
Group tasks by type:
|
|
49
|
+
- 🏗️ **Setup/Infrastructure**
|
|
50
|
+
- 📦 **Core Implementation**
|
|
51
|
+
- 🔌 **Integration**
|
|
52
|
+
- 🧪 **Testing**
|
|
53
|
+
- 📚 **Documentation**
|
|
54
|
+
- 🎨 **UI/UX** (if applicable)
|
|
55
|
+
|
|
56
|
+
## 5. Dependency Graph
|
|
57
|
+
|
|
58
|
+
Ensure:
|
|
59
|
+
- No circular dependencies
|
|
60
|
+
- Critical path is identified
|
|
61
|
+
- Parallel work opportunities are marked
|
|
62
|
+
|
|
63
|
+
## 6. Priority Guidelines
|
|
64
|
+
|
|
65
|
+
- **P0-Critical**: Blocks all other work
|
|
66
|
+
- **P1-High**: Core feature, must be done
|
|
67
|
+
- **P2-Medium**: Important but not blocking
|
|
68
|
+
- **P3-Low**: Nice to have, can defer
|
|
69
|
+
|
|
70
|
+
## 7. Output
|
|
71
|
+
|
|
72
|
+
Save to `specs/tasks.md` and report:
|
|
73
|
+
- Total tasks count
|
|
74
|
+
- Tasks per phase
|
|
75
|
+
- Critical path summary
|
|
76
|
+
- Next step: `speckit_implement` to start coding
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Identify underspecified areas in the specification and ask targeted clarification questions. Run before /speckit.plan.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /speckit.clarify - Clarify Requirements
|
|
6
|
-
|
|
7
|
-
## User Input
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
$ARGUMENTS
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
You **MUST** consider the user input before proceeding (if not empty).
|
|
14
|
-
|
|
15
|
-
## Outline
|
|
16
|
-
|
|
17
|
-
You are clarifying underspecified areas in the specification. Follow this workflow:
|
|
18
|
-
|
|
19
|
-
### 1. Load Specification
|
|
20
|
-
|
|
21
|
-
Find and read the specification file:
|
|
22
|
-
- Check `specs/` directory for recent spec files
|
|
23
|
-
- If user provides a spec path, use that
|
|
24
|
-
- If no spec found, inform user to run `/speckit.specify` first
|
|
25
|
-
|
|
26
|
-
### 2. Analyze for Gaps
|
|
27
|
-
|
|
28
|
-
Review the specification for:
|
|
29
|
-
|
|
30
|
-
**Critical Gaps** (must clarify):
|
|
31
|
-
- Ambiguous scope boundaries
|
|
32
|
-
- Undefined user roles/permissions
|
|
33
|
-
- Missing error handling behavior
|
|
34
|
-
- Unclear data validation rules
|
|
35
|
-
- Security requirements not addressed
|
|
36
|
-
|
|
37
|
-
**Important Gaps** (should clarify):
|
|
38
|
-
- Performance expectations
|
|
39
|
-
- Edge cases not covered
|
|
40
|
-
- Integration details
|
|
41
|
-
- UI/UX specifics
|
|
42
|
-
|
|
43
|
-
**Minor Gaps** (nice to clarify):
|
|
44
|
-
- Naming conventions
|
|
45
|
-
- Logging requirements
|
|
46
|
-
- Documentation needs
|
|
47
|
-
|
|
48
|
-
### 3. Generate Questions
|
|
49
|
-
|
|
50
|
-
Create a maximum of 5 highly targeted questions:
|
|
51
|
-
|
|
52
|
-
For each question:
|
|
53
|
-
1. **Question**: Clear, specific question
|
|
54
|
-
2. **Context**: Why this matters for implementation
|
|
55
|
-
3. **Options**: Provide 2-3 reasonable options with recommendations
|
|
56
|
-
4. **Default**: Suggest a default if no answer provided
|
|
57
|
-
|
|
58
|
-
**Question Format**:
|
|
59
|
-
```
|
|
60
|
-
### Question {N}: {Topic}
|
|
61
|
-
|
|
62
|
-
{Question text}
|
|
63
|
-
|
|
64
|
-
**Why it matters**: {Impact on implementation}
|
|
65
|
-
|
|
66
|
-
**Options**:
|
|
67
|
-
| Option | Description |
|
|
68
|
-
|--------|-------------|
|
|
69
|
-
| A (Recommended) | {Description} |
|
|
70
|
-
| B | {Description} |
|
|
71
|
-
| C | {Description} |
|
|
72
|
-
|
|
73
|
-
You can reply with the option letter, "recommended", or provide your own answer.
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 4. Interactive Clarification
|
|
77
|
-
|
|
78
|
-
Present questions one at a time:
|
|
79
|
-
1. Ask the question with options
|
|
80
|
-
2. Wait for user response
|
|
81
|
-
3. Record the answer
|
|
82
|
-
4. Update the specification with the clarification
|
|
83
|
-
|
|
84
|
-
For each answer:
|
|
85
|
-
- If user says "yes", "recommended", or "A" → use the recommended option
|
|
86
|
-
- If user provides a different answer → validate it fits the context
|
|
87
|
-
- If user says "skip" → note as "Deferred" and continue
|
|
88
|
-
|
|
89
|
-
### 5. Update Specification
|
|
90
|
-
|
|
91
|
-
Add a **Clarifications** section to the specification:
|
|
92
|
-
|
|
93
|
-
```markdown
|
|
94
|
-
## Clarifications
|
|
95
|
-
|
|
96
|
-
| # | Topic | Question | Answer | Date |
|
|
97
|
-
|---|-------|----------|--------|------|
|
|
98
|
-
| 1 | {Topic} | {Question summary} | {Answer} | {Date} |
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Also update relevant sections with the clarified information.
|
|
102
|
-
|
|
103
|
-
### 6. Report Completion
|
|
104
|
-
|
|
105
|
-
Output:
|
|
106
|
-
- Number of clarifications made
|
|
107
|
-
- Summary of decisions
|
|
108
|
-
- Any deferred items
|
|
109
|
-
- Next step: `/speckit.plan` to create implementation plan
|
|
110
|
-
|
|
111
|
-
## Question Generation Rules
|
|
112
|
-
|
|
113
|
-
**DO ask about**:
|
|
114
|
-
- Scope boundaries (what's explicitly in/out)
|
|
115
|
-
- User roles and their permissions
|
|
116
|
-
- Error states and recovery
|
|
117
|
-
- Data retention and privacy
|
|
118
|
-
- Performance requirements
|
|
119
|
-
|
|
120
|
-
**DON'T ask about**:
|
|
121
|
-
- Implementation details (that's for /speckit.plan)
|
|
122
|
-
- Obvious defaults (pagination, sorting, etc.)
|
|
123
|
-
- Tech stack choices (user provides in /speckit.plan)
|
|
124
|
-
|
|
125
|
-
## Handoffs
|
|
126
|
-
|
|
127
|
-
After completing clarifications:
|
|
128
|
-
- **Create plan**: `/speckit.plan` - Now ready to plan implementation
|
|
129
|
-
- **Re-specify**: `/speckit.specify` - If major changes needed
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Execute the implementation tasks from tasks.md. Implements the feature according to the plan.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /speckit.implement - Execute Implementation
|
|
6
|
-
|
|
7
|
-
## User Input
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
$ARGUMENTS
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
You **MUST** consider the user input before proceeding (if not empty).
|
|
14
|
-
|
|
15
|
-
## Outline
|
|
16
|
-
|
|
17
|
-
You are implementing the feature according to the task list. Follow this workflow:
|
|
18
|
-
|
|
19
|
-
### 1. Validate Prerequisites
|
|
20
|
-
|
|
21
|
-
Check that all required files exist:
|
|
22
|
-
- `specs/{feature}/spec.md` - Specification
|
|
23
|
-
- `specs/{feature}/plan.md` - Implementation plan
|
|
24
|
-
- `specs/{feature}/tasks.md` - Task breakdown
|
|
25
|
-
|
|
26
|
-
If any are missing, inform user which `/speckit.*` command to run.
|
|
27
|
-
|
|
28
|
-
### 2. Load Implementation Context
|
|
29
|
-
|
|
30
|
-
Read all design documents:
|
|
31
|
-
- **tasks.md**: Complete task list with execution order
|
|
32
|
-
- **plan.md**: Tech stack, architecture, file structure
|
|
33
|
-
- **data-model.md**: Entity definitions (if exists)
|
|
34
|
-
- **contracts/**: API specifications (if exists)
|
|
35
|
-
- **research.md**: Technical decisions (if exists)
|
|
36
|
-
|
|
37
|
-
### 3. Verify Project Setup
|
|
38
|
-
|
|
39
|
-
Check or create essential project files:
|
|
40
|
-
|
|
41
|
-
**Based on tech stack, verify:**
|
|
42
|
-
- Package management files (`package.json`, `requirements.txt`, `*.csproj`)
|
|
43
|
-
- Ignore files (`.gitignore`, `.dockerignore` if Docker used)
|
|
44
|
-
- Linting/formatting config (`.eslintrc`, `prettier.config.js`, etc.)
|
|
45
|
-
- TypeScript config if applicable
|
|
46
|
-
|
|
47
|
-
**Create if missing** - only ask user if multiple valid options exist.
|
|
48
|
-
|
|
49
|
-
### 4. Execute Tasks
|
|
50
|
-
|
|
51
|
-
Process tasks from `tasks.md` in order:
|
|
52
|
-
|
|
53
|
-
1. **Read the task** - Understand what needs to be done
|
|
54
|
-
2. **Check dependencies** - Verify prerequisite tasks are complete
|
|
55
|
-
3. **Implement** - Write the code following the plan
|
|
56
|
-
4. **Mark complete** - Check off the task in tasks.md
|
|
57
|
-
|
|
58
|
-
For each task:
|
|
59
|
-
```
|
|
60
|
-
📋 Task T{number}: {description}
|
|
61
|
-
📁 File: {file_path}
|
|
62
|
-
⏳ Status: In Progress...
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 5. Implementation Guidelines
|
|
66
|
-
|
|
67
|
-
**Code Quality**:
|
|
68
|
-
- Follow the code style specified in plan.md or project conventions
|
|
69
|
-
- Include appropriate comments and documentation
|
|
70
|
-
- Write tests if specified in the tasks
|
|
71
|
-
- Handle errors appropriately
|
|
72
|
-
|
|
73
|
-
**Progress Tracking**:
|
|
74
|
-
- Update task checkboxes as you complete them
|
|
75
|
-
- Note any blockers or issues encountered
|
|
76
|
-
- Suggest adjustments if tasks need modification
|
|
77
|
-
|
|
78
|
-
**Checkpoint Validation**:
|
|
79
|
-
- At each phase checkpoint, run the specified validation
|
|
80
|
-
- Report results before proceeding to next phase
|
|
81
|
-
|
|
82
|
-
### 6. Handle Blockers
|
|
83
|
-
|
|
84
|
-
If a task cannot be completed:
|
|
85
|
-
1. Document the blocker in the task
|
|
86
|
-
2. Check if it's a dependency issue
|
|
87
|
-
3. Ask user for clarification if needed
|
|
88
|
-
4. Skip and continue with non-blocked tasks
|
|
89
|
-
|
|
90
|
-
### 7. Report Progress
|
|
91
|
-
|
|
92
|
-
After each phase or upon request, report:
|
|
93
|
-
- Tasks completed
|
|
94
|
-
- Tasks remaining
|
|
95
|
-
- Any blockers encountered
|
|
96
|
-
- Code quality notes
|
|
97
|
-
- Next steps
|
|
98
|
-
|
|
99
|
-
## Execution Mode Options
|
|
100
|
-
|
|
101
|
-
User can specify in `$ARGUMENTS`:
|
|
102
|
-
|
|
103
|
-
- **Full implementation**: Complete all tasks
|
|
104
|
-
- **Phase only**: `--phase 3` - Complete only specified phase
|
|
105
|
-
- **Single task**: `--task T015` - Complete only specified task
|
|
106
|
-
- **Dry run**: `--dry-run` - Show what would be done without making changes
|
|
107
|
-
|
|
108
|
-
## Quality Checks
|
|
109
|
-
|
|
110
|
-
Before marking implementation complete:
|
|
111
|
-
- [ ] All tasks in tasks.md are checked off
|
|
112
|
-
- [ ] Code compiles/runs without errors
|
|
113
|
-
- [ ] Tests pass (if applicable)
|
|
114
|
-
- [ ] No TODO comments left unaddressed
|
|
115
|
-
- [ ] Documentation is updated
|
|
116
|
-
|
|
117
|
-
## Handoffs
|
|
118
|
-
|
|
119
|
-
After completing implementation:
|
|
120
|
-
- **Test the feature** - Run tests and verify functionality
|
|
121
|
-
- **Create PR** - Prepare pull request with summary
|
|
122
|
-
- **Update spec** - Mark specification as implemented
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Initialize Spec-Kit in the current project. Creates the .spec-kit folder structure with default workflows and templates.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /speckit.init - Initialize Project
|
|
6
|
-
|
|
7
|
-
## User Input
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
$ARGUMENTS
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Outline
|
|
14
|
-
|
|
15
|
-
You are initializing Spec-Kit in the current project. Follow this workflow:
|
|
16
|
-
|
|
17
|
-
### 1. Check Existing Setup
|
|
18
|
-
|
|
19
|
-
Check if `.spec-kit/` directory already exists:
|
|
20
|
-
- If exists and `--force` not specified, ask user if they want to overwrite
|
|
21
|
-
- If `--force` specified, proceed with overwrite
|
|
22
|
-
|
|
23
|
-
### 2. Create Directory Structure
|
|
24
|
-
|
|
25
|
-
Create the following structure:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
.spec-kit/
|
|
29
|
-
├── workflows/ # Custom workflow definitions
|
|
30
|
-
├── templates/ # Specification templates
|
|
31
|
-
└── memory/ # Project-specific context
|
|
32
|
-
└── constitution.md # Project principles
|
|
33
|
-
|
|
34
|
-
specs/ # Generated specifications go here
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### 3. Copy Default Templates
|
|
38
|
-
|
|
39
|
-
Create default templates in `.spec-kit/templates/`:
|
|
40
|
-
|
|
41
|
-
**functional-spec.md** - Feature specification template
|
|
42
|
-
**bugfix-report.md** - Bug fix specification template
|
|
43
|
-
**plan-template.md** - Implementation plan template
|
|
44
|
-
**tasks-template.md** - Task breakdown template
|
|
45
|
-
|
|
46
|
-
### 4. Create Constitution
|
|
47
|
-
|
|
48
|
-
Create `.spec-kit/memory/constitution.md` with project principles template:
|
|
49
|
-
|
|
50
|
-
```markdown
|
|
51
|
-
# Project Constitution
|
|
52
|
-
|
|
53
|
-
## Project Name
|
|
54
|
-
[TO FILL: Project name]
|
|
55
|
-
|
|
56
|
-
## Core Principles
|
|
57
|
-
|
|
58
|
-
### Principle 1: [TO FILL: Principle Name]
|
|
59
|
-
[TO FILL: Description of this principle]
|
|
60
|
-
|
|
61
|
-
**Rationale**: [TO FILL: Why this principle matters]
|
|
62
|
-
|
|
63
|
-
### Principle 2: Code Quality
|
|
64
|
-
All code must pass linting and have appropriate test coverage.
|
|
65
|
-
|
|
66
|
-
**Rationale**: Maintains consistency and reduces bugs.
|
|
67
|
-
|
|
68
|
-
### Principle 3: Documentation
|
|
69
|
-
All features must be documented before implementation begins.
|
|
70
|
-
|
|
71
|
-
**Rationale**: Ensures alignment and reduces rework.
|
|
72
|
-
|
|
73
|
-
## Tech Stack Guidelines
|
|
74
|
-
[TO FILL: Preferred technologies, frameworks, and patterns]
|
|
75
|
-
|
|
76
|
-
## Governance
|
|
77
|
-
- **Ratification Date**: [TO FILL]
|
|
78
|
-
- **Last Amended**: [TO FILL]
|
|
79
|
-
- **Version**: 1.0.0
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 5. Setup VS Code Configuration
|
|
83
|
-
|
|
84
|
-
If the project uses VS Code, suggest adding to `.vscode/settings.json`:
|
|
85
|
-
|
|
86
|
-
```json
|
|
87
|
-
{
|
|
88
|
-
"mcp": {
|
|
89
|
-
"servers": {
|
|
90
|
-
"spec-kit": {
|
|
91
|
-
"command": "npx",
|
|
92
|
-
"args": ["-y", "spec-kit-mcp"]
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### 6. Create Starter Workflow (Optional)
|
|
100
|
-
|
|
101
|
-
If user requests, create a custom workflow in `.spec-kit/workflows/`:
|
|
102
|
-
|
|
103
|
-
```yaml
|
|
104
|
-
name: custom-feature
|
|
105
|
-
displayName: "Custom Feature Workflow"
|
|
106
|
-
description: "Your custom workflow for this project"
|
|
107
|
-
template: functional-spec.md
|
|
108
|
-
|
|
109
|
-
steps:
|
|
110
|
-
- id: specify
|
|
111
|
-
name: "Create Specification"
|
|
112
|
-
action: call_agent
|
|
113
|
-
agent: SpecAgent
|
|
114
|
-
|
|
115
|
-
- id: plan
|
|
116
|
-
name: "Create Plan"
|
|
117
|
-
action: call_agent
|
|
118
|
-
agent: PlanAgent
|
|
119
|
-
|
|
120
|
-
- id: implement
|
|
121
|
-
name: "Implement"
|
|
122
|
-
action: call_agent
|
|
123
|
-
agent: SpecAgent
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### 7. Report Completion
|
|
127
|
-
|
|
128
|
-
Output:
|
|
129
|
-
```
|
|
130
|
-
✅ Spec-Kit initialized successfully!
|
|
131
|
-
|
|
132
|
-
Created:
|
|
133
|
-
📁 .spec-kit/workflows/ - Custom workflows
|
|
134
|
-
📁 .spec-kit/templates/ - Specification templates
|
|
135
|
-
📁 .spec-kit/memory/ - Project context
|
|
136
|
-
📁 specs/ - Specifications output
|
|
137
|
-
|
|
138
|
-
Next steps:
|
|
139
|
-
1. Edit .spec-kit/memory/constitution.md with your project principles
|
|
140
|
-
2. Run /speckit.specify to create your first specification
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Options
|
|
144
|
-
|
|
145
|
-
- `--force`: Overwrite existing .spec-kit directory
|
|
146
|
-
- `--minimal`: Create minimal structure without examples
|
|
147
|
-
- `--with-vscode`: Also configure VS Code MCP settings
|
|
148
|
-
|
|
149
|
-
## Handoffs
|
|
150
|
-
|
|
151
|
-
After initialization:
|
|
152
|
-
- **Set principles**: Edit `.spec-kit/memory/constitution.md`
|
|
153
|
-
- **Create spec**: `/speckit.specify` - Start creating specifications
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Create a technical implementation plan from a specification. Specify your tech stack and architecture choices.
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /speckit.plan - Create Implementation Plan
|
|
6
|
-
|
|
7
|
-
## User Input
|
|
8
|
-
|
|
9
|
-
```text
|
|
10
|
-
$ARGUMENTS
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
You **MUST** consider the user input before proceeding (if not empty).
|
|
14
|
-
|
|
15
|
-
## Outline
|
|
16
|
-
|
|
17
|
-
You are creating a technical implementation plan. Follow this workflow:
|
|
18
|
-
|
|
19
|
-
### 1. Setup Check
|
|
20
|
-
|
|
21
|
-
First, locate the specification:
|
|
22
|
-
- Check for recent spec files in `specs/` directory
|
|
23
|
-
- If user provides a spec path, use that
|
|
24
|
-
- If no spec found, inform user to run `/speckit.specify` first
|
|
25
|
-
|
|
26
|
-
### 2. Parse Tech Stack from Input
|
|
27
|
-
|
|
28
|
-
Extract technology choices from user input:
|
|
29
|
-
- **Language/Runtime**: Python, Node.js, .NET, etc.
|
|
30
|
-
- **Framework**: React, FastAPI, ASP.NET, etc.
|
|
31
|
-
- **Database**: PostgreSQL, MongoDB, etc.
|
|
32
|
-
- **Infrastructure**: Docker, Kubernetes, Azure, etc.
|
|
33
|
-
- **Other tools**: Testing frameworks, CI/CD, etc.
|
|
34
|
-
|
|
35
|
-
If tech stack not specified, ask the user to provide it.
|
|
36
|
-
|
|
37
|
-
### 3. Load Specification
|
|
38
|
-
|
|
39
|
-
Read the specification file and extract:
|
|
40
|
-
- Functional requirements
|
|
41
|
-
- Non-functional requirements
|
|
42
|
-
- User stories
|
|
43
|
-
- Dependencies
|
|
44
|
-
- Constraints
|
|
45
|
-
|
|
46
|
-
### 4. Generate Research Document (Phase 0)
|
|
47
|
-
|
|
48
|
-
Create `specs/{feature}/research.md` covering:
|
|
49
|
-
|
|
50
|
-
1. **Tech Stack Analysis**
|
|
51
|
-
- Evaluate chosen technologies against requirements
|
|
52
|
-
- Identify potential issues or limitations
|
|
53
|
-
- Research latest versions and best practices
|
|
54
|
-
|
|
55
|
-
2. **Architecture Options**
|
|
56
|
-
- Propose 2-3 architecture approaches
|
|
57
|
-
- Pros/cons for each
|
|
58
|
-
- Recommendation with justification
|
|
59
|
-
|
|
60
|
-
3. **Third-Party Dependencies**
|
|
61
|
-
- Required libraries and packages
|
|
62
|
-
- Version recommendations
|
|
63
|
-
- License considerations
|
|
64
|
-
|
|
65
|
-
4. **Technical Decisions Log**
|
|
66
|
-
- Decision records for key choices
|
|
67
|
-
- Alternatives considered
|
|
68
|
-
- Rationale for decisions
|
|
69
|
-
|
|
70
|
-
### 5. Generate Design Documents (Phase 1)
|
|
71
|
-
|
|
72
|
-
Create these documents in `specs/{feature}/`:
|
|
73
|
-
|
|
74
|
-
**data-model.md** (if applicable):
|
|
75
|
-
- Entity definitions
|
|
76
|
-
- Relationships
|
|
77
|
-
- Database schema
|
|
78
|
-
- Sample data
|
|
79
|
-
|
|
80
|
-
**contracts/** (if applicable):
|
|
81
|
-
- API specifications (OpenAPI/Swagger format)
|
|
82
|
-
- Message formats
|
|
83
|
-
- Interface definitions
|
|
84
|
-
|
|
85
|
-
**quickstart.md**:
|
|
86
|
-
- Development environment setup
|
|
87
|
-
- Build and run instructions
|
|
88
|
-
- Integration test scenarios
|
|
89
|
-
|
|
90
|
-
### 6. Generate Implementation Plan
|
|
91
|
-
|
|
92
|
-
Create `specs/{feature}/plan.md` with:
|
|
93
|
-
|
|
94
|
-
1. **Summary**
|
|
95
|
-
- Feature overview
|
|
96
|
-
- Tech stack summary
|
|
97
|
-
- Estimated complexity
|
|
98
|
-
|
|
99
|
-
2. **Technical Context**
|
|
100
|
-
- Architecture diagram (text-based)
|
|
101
|
-
- System components
|
|
102
|
-
- Integration points
|
|
103
|
-
|
|
104
|
-
3. **Project Structure**
|
|
105
|
-
- Directory layout
|
|
106
|
-
- Key files and their purposes
|
|
107
|
-
- Module organization
|
|
108
|
-
|
|
109
|
-
4. **Implementation Phases**
|
|
110
|
-
- Phase breakdown with dependencies
|
|
111
|
-
- Deliverables per phase
|
|
112
|
-
- Risk mitigation for each phase
|
|
113
|
-
|
|
114
|
-
5. **Quality Gates**
|
|
115
|
-
- Code review requirements
|
|
116
|
-
- Testing requirements
|
|
117
|
-
- Performance benchmarks
|
|
118
|
-
|
|
119
|
-
### 7. Report Completion
|
|
120
|
-
|
|
121
|
-
Output:
|
|
122
|
-
- Path to created plan files
|
|
123
|
-
- Summary of technical decisions
|
|
124
|
-
- List of any issues needing resolution
|
|
125
|
-
- Next step: `/speckit.tasks` to break down into actionable tasks
|
|
126
|
-
|
|
127
|
-
## Key Rules
|
|
128
|
-
|
|
129
|
-
### Plan Quality Checks
|
|
130
|
-
- Each phase should have clear entry/exit criteria
|
|
131
|
-
- Dependencies between phases must be explicit
|
|
132
|
-
- Estimates should account for testing and documentation
|
|
133
|
-
- Risks should have mitigation strategies
|
|
134
|
-
|
|
135
|
-
### Architecture Principles
|
|
136
|
-
- Favor simplicity over complexity
|
|
137
|
-
- Consider maintainability and testability
|
|
138
|
-
- Plan for observability (logging, monitoring)
|
|
139
|
-
- Document security considerations
|
|
140
|
-
|
|
141
|
-
## Handoffs
|
|
142
|
-
|
|
143
|
-
After completing the plan, suggest:
|
|
144
|
-
- **Generate tasks**: `/speckit.tasks` - Break plan into actionable tasks
|
|
145
|
-
- **Create checklist**: `/speckit.checklist` - Generate quality checklist
|