@intentsolutionsio/sprint 1.0.0 → 1.0.3
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 +11 -1
- package/agents/allpurpose-agent.md +11 -0
- package/agents/cicd-agent.md +4 -0
- package/agents/nextjs-dev.md +4 -0
- package/agents/nextjs-diagnostics-agent.md +12 -0
- package/agents/project-architect.md +25 -0
- package/agents/python-dev.md +8 -0
- package/agents/qa-test-agent.md +2 -0
- package/agents/ui-test-agent.md +18 -0
- package/agents/website-designer.md +7 -0
- package/commands/clean.md +8 -0
- package/commands/generate-map.md +5 -0
- package/commands/new.md +7 -0
- package/commands/setup.md +19 -0
- package/commands/sprint.md +38 -16
- package/commands/test.md +13 -2
- package/package.json +1 -1
- package/skills/agent-patterns/SKILL.md +18 -5
- package/skills/agent-patterns/references/examples.md +17 -0
- package/skills/agent-patterns/references/ui-test-report.md +8 -1
- package/skills/api-contract/SKILL.md +16 -5
- package/skills/api-contract/references/best-practices.md +3 -1
- package/skills/api-contract/references/errors.md +1 -1
- package/skills/api-contract/references/examples.md +16 -1
- package/skills/api-contract/references/pagination.md +2 -1
- package/skills/api-contract/references/typescript-interfaces.md +2 -1
- package/skills/api-contract/references/writing-endpoints.md +4 -1
- package/skills/spec-writing/SKILL.md +14 -5
- package/skills/spec-writing/references/examples.md +7 -0
- package/skills/spec-writing/references/testing-configuration.md +6 -1
- package/skills/sprint-workflow/SKILL.md +16 -5
- package/skills/sprint-workflow/references/examples.md +17 -0
- package/skills/sprint-workflow/references/sprint-phases.md +7 -1
|
@@ -10,31 +10,37 @@ You design conversion-focused static websites.
|
|
|
10
10
|
You work under a sprint orchestrator and a project-architect agent.
|
|
11
11
|
|
|
12
12
|
You NEVER:
|
|
13
|
+
|
|
13
14
|
- spawn other agents
|
|
14
15
|
- modify `.claude/sprint/[index]/status.md`
|
|
15
16
|
- modify `.claude/project-map.md`
|
|
16
17
|
- reference sprints in code, comments, or commits (sprints are ephemeral internal workflow)
|
|
17
18
|
|
|
18
19
|
You ONLY:
|
|
20
|
+
|
|
19
21
|
- read website specs from `.claude/sprint/[index]/`
|
|
20
22
|
- implement the website
|
|
21
23
|
- return a single structured IMPLEMENTATION REPORT in your reply
|
|
22
24
|
|
|
23
25
|
## Tasks
|
|
26
|
+
|
|
24
27
|
Read from `.claude/sprint/[index]/website-specs.md` or `frontend-specs.md`
|
|
25
28
|
|
|
26
29
|
## Approach
|
|
30
|
+
|
|
27
31
|
- Understand business: problem, audience, differentiators, primary CTA
|
|
28
32
|
- Read `.claude/project-goals.md` for context
|
|
29
33
|
- Prioritize clear messaging over visual complexity
|
|
30
34
|
- Design for conversion funnel
|
|
31
35
|
|
|
32
36
|
## Output
|
|
37
|
+
|
|
33
38
|
- List files changed
|
|
34
39
|
- List design decisions made
|
|
35
40
|
- Maximum 50 lines
|
|
36
41
|
|
|
37
42
|
## Best Practices
|
|
43
|
+
|
|
38
44
|
- SEO optimization (meta tags, semantic HTML)
|
|
39
45
|
- Clear CTAs above the fold
|
|
40
46
|
- Fast loading (minimal dependencies)
|
|
@@ -42,6 +48,7 @@ Read from `.claude/sprint/[index]/website-specs.md` or `frontend-specs.md`
|
|
|
42
48
|
- Accessibility (WCAG standards)
|
|
43
49
|
|
|
44
50
|
## What NOT to do
|
|
51
|
+
|
|
45
52
|
- No verbose documentation
|
|
46
53
|
- No methodology files
|
|
47
54
|
|
package/commands/clean.md
CHANGED
|
@@ -11,12 +11,14 @@ You are cleaning up old sprint directories.
|
|
|
11
11
|
## IMPORTANT WARNING
|
|
12
12
|
|
|
13
13
|
**Sprint directories contain valuable artifacts:**
|
|
14
|
+
|
|
14
15
|
- Specification files (api-contract.md, backend-specs.md, etc.)
|
|
15
16
|
- Implementation reports from agents
|
|
16
17
|
- Status summaries
|
|
17
18
|
- Test reports
|
|
18
19
|
|
|
19
20
|
**The user is responsible for:**
|
|
21
|
+
|
|
20
22
|
- Creating checkpoints (git commits) before cleanup
|
|
21
23
|
- Backing up important sprint data
|
|
22
24
|
- Deciding which sprints to keep
|
|
@@ -30,6 +32,7 @@ ls -la .claude/sprint/
|
|
|
30
32
|
```
|
|
31
33
|
|
|
32
34
|
Show the user:
|
|
35
|
+
|
|
33
36
|
- Sprint directories found
|
|
34
37
|
- Last modified dates
|
|
35
38
|
- Size of each directory
|
|
@@ -39,6 +42,7 @@ Show the user:
|
|
|
39
42
|
Ask the user which sprints to clean:
|
|
40
43
|
|
|
41
44
|
**Options:**
|
|
45
|
+
|
|
42
46
|
1. **Clean all** - Remove all sprint directories
|
|
43
47
|
2. **Keep latest** - Remove all except the most recent sprint
|
|
44
48
|
3. **Keep N latest** - Remove all except the N most recent sprints
|
|
@@ -75,22 +79,26 @@ Continue anyway? (y/N)
|
|
|
75
79
|
Based on user choice:
|
|
76
80
|
|
|
77
81
|
**Clean all:**
|
|
82
|
+
|
|
78
83
|
```bash
|
|
79
84
|
rm -rf .claude/sprint/*/
|
|
80
85
|
```
|
|
81
86
|
|
|
82
87
|
**Keep latest:**
|
|
88
|
+
|
|
83
89
|
```bash
|
|
84
90
|
LATEST=$(ls -d .claude/sprint/*/ | sort -V | tail -1)
|
|
85
91
|
find .claude/sprint/ -mindepth 1 -maxdepth 1 -type d ! -path "$LATEST" -exec rm -rf {} +
|
|
86
92
|
```
|
|
87
93
|
|
|
88
94
|
**Keep N latest:**
|
|
95
|
+
|
|
89
96
|
```bash
|
|
90
97
|
ls -d .claude/sprint/*/ | sort -V | head -n -[N] | xargs rm -rf
|
|
91
98
|
```
|
|
92
99
|
|
|
93
100
|
**Select specific:**
|
|
101
|
+
|
|
94
102
|
```bash
|
|
95
103
|
rm -rf .claude/sprint/[selected]/
|
|
96
104
|
```
|
package/commands/generate-map.md
CHANGED
|
@@ -74,10 +74,12 @@ Create/overwrite `.claude/project-map.md` with this structure:
|
|
|
74
74
|
## Project Structure
|
|
75
75
|
|
|
76
76
|
```
|
|
77
|
+
|
|
77
78
|
/
|
|
78
79
|
├── backend/ # [description]
|
|
79
80
|
├── frontend/ # [description]
|
|
80
81
|
├── ...
|
|
82
|
+
|
|
81
83
|
```
|
|
82
84
|
|
|
83
85
|
## API Surface
|
|
@@ -113,11 +115,13 @@ Key components: [list]
|
|
|
113
115
|
```
|
|
114
116
|
|
|
115
117
|
### Docker Services
|
|
118
|
+
|
|
116
119
|
| Service | Port | Description |
|
|
117
120
|
|---------|------|-------------|
|
|
118
121
|
| ... | ... | ... |
|
|
119
122
|
|
|
120
123
|
### Environment Variables
|
|
124
|
+
|
|
121
125
|
| Variable | Purpose | Required |
|
|
122
126
|
|----------|---------|----------|
|
|
123
127
|
| ... | ... | ... |
|
|
@@ -142,6 +146,7 @@ Key components: [list]
|
|
|
142
146
|
|
|
143
147
|
- [Limitation 1]
|
|
144
148
|
- [Limitation 2]
|
|
149
|
+
|
|
145
150
|
```
|
|
146
151
|
|
|
147
152
|
## Guidelines
|
package/commands/new.md
CHANGED
|
@@ -13,6 +13,7 @@ You are bootstrapping a new sprint for the user.
|
|
|
13
13
|
### Step 1: Determine Sprint Index
|
|
14
14
|
|
|
15
15
|
Find the next sprint number:
|
|
16
|
+
|
|
16
17
|
```bash
|
|
17
18
|
# Get current highest sprint number
|
|
18
19
|
LAST=$(ls -d .claude/sprint/*/ 2>/dev/null | sort -V | tail -1 | grep -oE '[0-9]+' | tail -1)
|
|
@@ -37,6 +38,7 @@ Ask the user for sprint details. Present this as a structured question:
|
|
|
37
38
|
**What would you like to build in this sprint?**
|
|
38
39
|
|
|
39
40
|
Options to clarify:
|
|
41
|
+
|
|
40
42
|
1. **Goal**: What's the main objective? (1-2 sentences)
|
|
41
43
|
2. **Scope**: What specific features or fixes?
|
|
42
44
|
3. **Testing**:
|
|
@@ -92,6 +94,7 @@ If the user provides a one-liner goal, create the sprint immediately:
|
|
|
92
94
|
Example: `/sprint:new Add user authentication with OAuth`
|
|
93
95
|
|
|
94
96
|
Creates:
|
|
97
|
+
|
|
95
98
|
```markdown
|
|
96
99
|
# Sprint [N] Specifications
|
|
97
100
|
|
|
@@ -112,6 +115,7 @@ Add user authentication with OAuth
|
|
|
112
115
|
Offer templates for common sprint types:
|
|
113
116
|
|
|
114
117
|
### Feature Sprint
|
|
118
|
+
|
|
115
119
|
```markdown
|
|
116
120
|
# Sprint [N] Specifications
|
|
117
121
|
|
|
@@ -131,6 +135,7 @@ Offer templates for common sprint types:
|
|
|
131
135
|
```
|
|
132
136
|
|
|
133
137
|
### Bug Fix Sprint
|
|
138
|
+
|
|
134
139
|
```markdown
|
|
135
140
|
# Sprint [N] Specifications
|
|
136
141
|
|
|
@@ -149,6 +154,7 @@ Fix [bug description]
|
|
|
149
154
|
```
|
|
150
155
|
|
|
151
156
|
### Refactoring Sprint
|
|
157
|
+
|
|
152
158
|
```markdown
|
|
153
159
|
# Sprint [N] Specifications
|
|
154
160
|
|
|
@@ -168,6 +174,7 @@ Refactor [component/system]
|
|
|
168
174
|
## Output
|
|
169
175
|
|
|
170
176
|
Report to user:
|
|
177
|
+
|
|
171
178
|
- Sprint number and directory created
|
|
172
179
|
- Summary of specs.md content
|
|
173
180
|
- Next steps to proceed
|
package/commands/setup.md
CHANGED
|
@@ -17,6 +17,7 @@ Initialize a project for use with Sprint by creating the two "Second Brain" docu
|
|
|
17
17
|
## Overview
|
|
18
18
|
|
|
19
19
|
This command interactively creates:
|
|
20
|
+
|
|
20
21
|
1. `.claude/project-goals.md` - Business vision and objectives (user-maintained)
|
|
21
22
|
2. `.claude/project-map.md` - Technical architecture (architect-maintained)
|
|
22
23
|
|
|
@@ -32,6 +33,7 @@ test -f .claude/project-map.md && echo "MAP_EXISTS" || echo "NO_MAP"
|
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
If files exist, ask the user:
|
|
36
|
+
|
|
35
37
|
- Overwrite existing files?
|
|
36
38
|
- Skip existing and create only missing?
|
|
37
39
|
- Abort setup?
|
|
@@ -49,20 +51,25 @@ mkdir -p .claude
|
|
|
49
51
|
Use AskUserQuestion to gather business context:
|
|
50
52
|
|
|
51
53
|
**Question 1: Product Vision**
|
|
54
|
+
|
|
52
55
|
- "What is this project? Describe it in 1-2 sentences."
|
|
53
56
|
|
|
54
57
|
**Question 2: Target Users**
|
|
58
|
+
|
|
55
59
|
- "Who are the target users?"
|
|
56
60
|
- Options: "Developers", "End consumers", "Internal team", "Other"
|
|
57
61
|
|
|
58
62
|
**Question 3: Key Features**
|
|
63
|
+
|
|
59
64
|
- "What are the 3-5 most important features or capabilities?"
|
|
60
65
|
|
|
61
66
|
**Question 4: Success Metrics**
|
|
67
|
+
|
|
62
68
|
- "How will you measure success?"
|
|
63
69
|
- Options: "User adoption", "Revenue", "Performance metrics", "Other"
|
|
64
70
|
|
|
65
71
|
**Question 5: Constraints**
|
|
72
|
+
|
|
66
73
|
- "Any important constraints or requirements?"
|
|
67
74
|
- Examples: compliance, performance, technology restrictions
|
|
68
75
|
|
|
@@ -116,6 +123,7 @@ test -f Cargo.toml && echo "RUST"
|
|
|
116
123
|
```
|
|
117
124
|
|
|
118
125
|
Read key files to understand the project:
|
|
126
|
+
|
|
119
127
|
- README.md (if exists)
|
|
120
128
|
- package.json / pyproject.toml / etc.
|
|
121
129
|
- Docker configuration
|
|
@@ -126,16 +134,20 @@ Read key files to understand the project:
|
|
|
126
134
|
Ask clarifying questions based on scan results:
|
|
127
135
|
|
|
128
136
|
**Question: Tech Stack Confirmation**
|
|
137
|
+
|
|
129
138
|
- "I detected [frameworks]. Is this correct?"
|
|
130
139
|
- Allow corrections
|
|
131
140
|
|
|
132
141
|
**Question: Architecture Style**
|
|
142
|
+
|
|
133
143
|
- Options: "Monolith", "Microservices", "Serverless", "Monorepo", "Other"
|
|
134
144
|
|
|
135
145
|
**Question: Database**
|
|
146
|
+
|
|
136
147
|
- Options: "PostgreSQL", "MySQL", "MongoDB", "SQLite", "None/Other"
|
|
137
148
|
|
|
138
149
|
**Question: Deployment**
|
|
150
|
+
|
|
139
151
|
- Options: "Docker", "Kubernetes", "Serverless", "Traditional hosting", "Not yet decided"
|
|
140
152
|
|
|
141
153
|
### Step 7: Generate project-map.md
|
|
@@ -163,7 +175,9 @@ Create `.claude/project-map.md` with discovered and confirmed information:
|
|
|
163
175
|
## Project Structure
|
|
164
176
|
|
|
165
177
|
```
|
|
178
|
+
|
|
166
179
|
[directory tree of main folders]
|
|
180
|
+
|
|
167
181
|
```
|
|
168
182
|
|
|
169
183
|
## Key Components
|
|
@@ -198,11 +212,13 @@ Create `.claude/project-map.md` with discovered and confirmed information:
|
|
|
198
212
|
### Step 8: Offer First Sprint
|
|
199
213
|
|
|
200
214
|
Ask the user:
|
|
215
|
+
|
|
201
216
|
- "Would you like to create your first sprint now?"
|
|
202
217
|
|
|
203
218
|
If yes, prompt for sprint goal and run `/sprint:new` logic.
|
|
204
219
|
|
|
205
220
|
If no, provide next steps:
|
|
221
|
+
|
|
206
222
|
```
|
|
207
223
|
Setup complete!
|
|
208
224
|
|
|
@@ -217,6 +233,7 @@ Next steps:
|
|
|
217
233
|
### No Codebase Detected
|
|
218
234
|
|
|
219
235
|
If the directory appears empty or has no recognizable project structure:
|
|
236
|
+
|
|
220
237
|
- Ask if this is a new project
|
|
221
238
|
- Offer to create a minimal project-map.md for greenfield development
|
|
222
239
|
- Suggest running setup again after initial code is written
|
|
@@ -224,12 +241,14 @@ If the directory appears empty or has no recognizable project structure:
|
|
|
224
241
|
### Permission Issues
|
|
225
242
|
|
|
226
243
|
If unable to write to .claude/:
|
|
244
|
+
|
|
227
245
|
- Report the error clearly
|
|
228
246
|
- Suggest checking directory permissions
|
|
229
247
|
|
|
230
248
|
## Output
|
|
231
249
|
|
|
232
250
|
On completion, display:
|
|
251
|
+
|
|
233
252
|
```
|
|
234
253
|
✓ Created .claude/project-goals.md
|
|
235
254
|
✓ Created .claude/project-map.md
|
package/commands/sprint.md
CHANGED
|
@@ -24,6 +24,7 @@ PHASE 5 - Finalization
|
|
|
24
24
|
## Step 1: Locate Sprint and Determine State
|
|
25
25
|
|
|
26
26
|
Find the highest sprint index in the current project:
|
|
27
|
+
|
|
27
28
|
```bash
|
|
28
29
|
ls -d .claude/sprint/*/ 2>/dev/null | sort -V | tail -1
|
|
29
30
|
```
|
|
@@ -31,6 +32,7 @@ ls -d .claude/sprint/*/ 2>/dev/null | sort -V | tail -1
|
|
|
31
32
|
The result should be something like `.claude/sprint/3/` - this is your **sprint directory**.
|
|
32
33
|
|
|
33
34
|
Check what files exist:
|
|
35
|
+
|
|
34
36
|
```bash
|
|
35
37
|
test -f .claude/sprint/[N]/specs.md && echo "SPECS_EXISTS"
|
|
36
38
|
test -f .claude/sprint/[N]/status.md && echo "STATUS_EXISTS"
|
|
@@ -40,9 +42,11 @@ test -f .claude/sprint/[N]/manual-test-report.md && echo "MANUAL_REPORT_EXISTS"
|
|
|
40
42
|
### Case A: No sprint directory exists
|
|
41
43
|
|
|
42
44
|
Tell the user:
|
|
45
|
+
|
|
43
46
|
```
|
|
44
47
|
No sprint found. Create one first with /sprint:new
|
|
45
48
|
```
|
|
49
|
+
|
|
46
50
|
Stop here.
|
|
47
51
|
|
|
48
52
|
### Case B: specs.md exists but no status.md (Fresh sprint)
|
|
@@ -56,6 +60,7 @@ Read the status.md to understand current state. Then **ask the user what they wa
|
|
|
56
60
|
**If status.md indicates sprint is COMPLETE/DONE:**
|
|
57
61
|
|
|
58
62
|
Use AskUserQuestion tool:
|
|
63
|
+
|
|
59
64
|
```
|
|
60
65
|
Sprint [N] appears to be complete.
|
|
61
66
|
|
|
@@ -72,6 +77,7 @@ Options:
|
|
|
72
77
|
**If status.md indicates sprint is IN PROGRESS:**
|
|
73
78
|
|
|
74
79
|
Check for manual-test-report.md:
|
|
80
|
+
|
|
75
81
|
- If exists: Proceed to Step 2 (will use the report to inform architect)
|
|
76
82
|
- If not exists: Ask user:
|
|
77
83
|
|
|
@@ -95,6 +101,7 @@ ls .claude/sprint/[N]/*-report*.md 2>/dev/null
|
|
|
95
101
|
```
|
|
96
102
|
|
|
97
103
|
This includes:
|
|
104
|
+
|
|
98
105
|
- `manual-test-report.md` - From `/sprint:test` command (user observations)
|
|
99
106
|
- `backend-report-*.md` - From previous implementation iterations
|
|
100
107
|
- `frontend-report-*.md` - From previous implementation iterations
|
|
@@ -165,11 +172,13 @@ Initialize:
|
|
|
165
172
|
stage = "architecture"
|
|
166
173
|
|
|
167
174
|
Repeat the sprint cycle until:
|
|
175
|
+
|
|
168
176
|
- Architect completes Phase 5
|
|
169
177
|
|
|
170
178
|
You can now proceed to Phase 1 - Architect Planning
|
|
171
179
|
|
|
172
180
|
# PHASE 1 - Architect Planning
|
|
181
|
+
|
|
173
182
|
(stage = "architecture")
|
|
174
183
|
|
|
175
184
|
Increment iteration counter by 1.
|
|
@@ -193,17 +202,19 @@ Wait for the architect response.
|
|
|
193
202
|
stage = "implementation"
|
|
194
203
|
- Move to PHASE 2.
|
|
195
204
|
|
|
196
|
-
|
|
205
|
+
1. If the architect requests `qa-test-agent` or `ui-test-agent`:
|
|
206
|
+
|
|
197
207
|
- This means the architect believes implementation is ready for testing.
|
|
198
208
|
- Set:
|
|
199
209
|
stage = "qa"
|
|
200
210
|
- Move to PHASE 3.
|
|
201
211
|
|
|
202
212
|
1. If the architect says FINALIZE
|
|
203
|
-
- Jump to PHASE 5 - Finalization.
|
|
204
213
|
|
|
214
|
+
- Jump to PHASE 5 - Finalization.
|
|
205
215
|
|
|
206
216
|
# PHASE 2 - Implementation (Parallel agent implementers)
|
|
217
|
+
|
|
207
218
|
(stage = "implementation")
|
|
208
219
|
|
|
209
220
|
1. **Spawn requested agents in parallel**
|
|
@@ -214,6 +225,7 @@ Wait for the architect response.
|
|
|
214
225
|
Example prompts:
|
|
215
226
|
|
|
216
227
|
**For python-dev:**
|
|
228
|
+
|
|
217
229
|
```
|
|
218
230
|
Execute your standard sprint workflow for sprint [N].
|
|
219
231
|
|
|
@@ -225,6 +237,7 @@ Wait for the architect response.
|
|
|
225
237
|
```
|
|
226
238
|
|
|
227
239
|
**For nextjs-dev**
|
|
240
|
+
|
|
228
241
|
```
|
|
229
242
|
Execute your standard sprint workflow for sprint [N].
|
|
230
243
|
|
|
@@ -234,9 +247,10 @@ Wait for the architect response.
|
|
|
234
247
|
|
|
235
248
|
Perform your workflow and report using your mandatory output format.
|
|
236
249
|
```
|
|
250
|
+
|
|
237
251
|
(Apply similar templates for other implementation agents)
|
|
238
252
|
|
|
239
|
-
|
|
253
|
+
1. **Collect reports**
|
|
240
254
|
- Wait for all agents to complete
|
|
241
255
|
- Gather each agent's final report
|
|
242
256
|
|
|
@@ -261,6 +275,7 @@ After you collect an agent report, you MUST:
|
|
|
261
275
|
`.claude/sprint/[index]/[slug]-report-[iteration].md`
|
|
262
276
|
|
|
263
277
|
Examples:
|
|
278
|
+
|
|
264
279
|
- `.claude/sprint/3/backend-report-1.md`
|
|
265
280
|
- `.claude/sprint/3/frontend-report-1.md`
|
|
266
281
|
- `.claude/sprint/3/qa-report-2.md`
|
|
@@ -269,6 +284,7 @@ Examples:
|
|
|
269
284
|
- `.claude/sprint/3/cicd-report-1.md`
|
|
270
285
|
|
|
271
286
|
Then, when you call `project-architect` again, you:
|
|
287
|
+
|
|
272
288
|
- Include the report contents in your message (as you already do).
|
|
273
289
|
- Optionally mention which `[slug]-report-[iteration].md` files were created.
|
|
274
290
|
|
|
@@ -276,14 +292,15 @@ Agents never manage `[iteration]` or filenames. Only the orchestrator (you) does
|
|
|
276
292
|
|
|
277
293
|
1. **Return reports to architect**
|
|
278
294
|
- Spawn project-architect again (resume mode) with:
|
|
279
|
-
|
|
295
|
+
|
|
296
|
+
```text
|
|
280
297
|
Here are the reports from the agents you requested:
|
|
281
|
-
|
|
298
|
+
[all reports]
|
|
282
299
|
|
|
283
300
|
Analyze these reports and decide next steps.
|
|
284
301
|
```
|
|
285
|
-
2. Loop back to phase 1.
|
|
286
302
|
|
|
303
|
+
2. Loop back to phase 1.
|
|
287
304
|
|
|
288
305
|
# PHASE 3 - QA & UI Testing
|
|
289
306
|
|
|
@@ -312,6 +329,7 @@ If `ui-test-agent` was requested:
|
|
|
312
329
|
### Determine testing mode
|
|
313
330
|
|
|
314
331
|
Check specs.md for `UI Testing Mode`:
|
|
332
|
+
|
|
315
333
|
- If `UI Testing Mode: manual` -> set `testing_mode = "MANUAL"`
|
|
316
334
|
- Otherwise -> set `testing_mode = "AUTOMATED"`
|
|
317
335
|
|
|
@@ -367,9 +385,10 @@ If spawning multiple testing agents (ui-test + diagnostics), spawn them in the *
|
|
|
367
385
|
## Step 3: Collect and Save Reports
|
|
368
386
|
|
|
369
387
|
After all testing agents complete, save reports as:
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
388
|
+
|
|
389
|
+
- `.claude/sprint/[N]/qa-report-[iteration].md` (if qa-test-agent ran)
|
|
390
|
+
- `.claude/sprint/[N]/ui-test-report-[iteration].md` (if ui-test-agent ran)
|
|
391
|
+
- `.claude/sprint/[N]/nextjs-diagnostics-report-[iteration].md` (if nextjs-diagnostics-agent ran)
|
|
373
392
|
|
|
374
393
|
## Step 4: Send to Architect
|
|
375
394
|
|
|
@@ -390,7 +409,6 @@ Decide next steps based on these test results.
|
|
|
390
409
|
|
|
391
410
|
Set `stage = "architecture"` and loop back to PHASE 1.
|
|
392
411
|
|
|
393
|
-
|
|
394
412
|
# PHASE 4 - Architect Review & Iteration Control
|
|
395
413
|
|
|
396
414
|
In each architect review cycle, the architect may:
|
|
@@ -408,11 +426,15 @@ In each architect review cycle, the architect may:
|
|
|
408
426
|
|
|
409
427
|
After each architect review, update the iteration counter:
|
|
410
428
|
|
|
411
|
-
|
|
429
|
+
```text
|
|
430
|
+
iteration += 1
|
|
431
|
+
```
|
|
412
432
|
|
|
413
433
|
If:
|
|
414
434
|
|
|
415
|
-
|
|
435
|
+
```text
|
|
436
|
+
iteration > 5
|
|
437
|
+
```
|
|
416
438
|
|
|
417
439
|
Then:
|
|
418
440
|
|
|
@@ -422,9 +444,9 @@ Then:
|
|
|
422
444
|
Implementation or tests are still not passing.
|
|
423
445
|
|
|
424
446
|
Review .claude/sprint/[N]/ and provide guidance:
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
447
|
+
- Should we continue iterating?
|
|
448
|
+
- Should we adjust the specifications?
|
|
449
|
+
- Are there manual fixes required?
|
|
428
450
|
|
|
429
451
|
- Stop until the user provides new instructions.
|
|
430
452
|
|
|
@@ -447,6 +469,7 @@ When the architect signals that Phase 5 is complete:
|
|
|
447
469
|
2) **Clean up ephemeral reports:**
|
|
448
470
|
|
|
449
471
|
Delete manual test reports - they're no longer relevant after the sprint completes:
|
|
472
|
+
|
|
450
473
|
```bash
|
|
451
474
|
rm -f .claude/sprint/[N]/manual-test-report*.md
|
|
452
475
|
```
|
|
@@ -459,7 +482,6 @@ When the architect signals that Phase 5 is complete:
|
|
|
459
482
|
|
|
460
483
|
Terminate the sprint.
|
|
461
484
|
|
|
462
|
-
|
|
463
485
|
# KEY RULES
|
|
464
486
|
|
|
465
487
|
- Implementation agents (backend, frontend, db, cicd, etc.) MAY run in parallel.
|
package/commands/test.md
CHANGED
|
@@ -8,6 +8,7 @@ argument-hint: "[url]"
|
|
|
8
8
|
You are launching a manual UI testing session using Chrome browser.
|
|
9
9
|
|
|
10
10
|
This is a **standalone command** - it does NOT run the full sprint workflow. Use this when you want to:
|
|
11
|
+
|
|
11
12
|
- Quickly explore your app in a real browser
|
|
12
13
|
- Manually test features while console errors are captured
|
|
13
14
|
- Debug UI issues interactively
|
|
@@ -18,11 +19,13 @@ This is a **standalone command** - it does NOT run the full sprint workflow. Use
|
|
|
18
19
|
### Step 0: Locate Sprint Directory
|
|
19
20
|
|
|
20
21
|
Find the current sprint directory:
|
|
22
|
+
|
|
21
23
|
```bash
|
|
22
24
|
ls -d .claude/sprint/*/ 2>/dev/null | sort -V | tail -1
|
|
23
25
|
```
|
|
24
26
|
|
|
25
27
|
If no sprint exists, create the first one:
|
|
28
|
+
|
|
26
29
|
```bash
|
|
27
30
|
mkdir -p .claude/sprint/1
|
|
28
31
|
```
|
|
@@ -32,6 +35,7 @@ Store the sprint directory path (e.g., `.claude/sprint/1/`) for saving the repor
|
|
|
32
35
|
### Step 1: Determine Frontend URL
|
|
33
36
|
|
|
34
37
|
Check for URL in this order:
|
|
38
|
+
|
|
35
39
|
1. Command argument (e.g., `/sprint:test http://localhost:8080`)
|
|
36
40
|
2. `.claude/project-map.md` - look for frontend URL
|
|
37
41
|
3. Default: `http://localhost:3000`
|
|
@@ -69,6 +73,7 @@ Call: mcp__claude-in-chrome__computer
|
|
|
69
73
|
```
|
|
70
74
|
|
|
71
75
|
Report to user:
|
|
76
|
+
|
|
72
77
|
```
|
|
73
78
|
Browser opened at [URL]
|
|
74
79
|
|
|
@@ -93,6 +98,7 @@ If errors are found, briefly note them but don't interrupt the user's flow.
|
|
|
93
98
|
### Step 6: Wait for User to Finish
|
|
94
99
|
|
|
95
100
|
The user will indicate they're done testing by saying something like:
|
|
101
|
+
|
|
96
102
|
- "done"
|
|
97
103
|
- "finish"
|
|
98
104
|
- "stop testing"
|
|
@@ -103,19 +109,22 @@ The user will indicate they're done testing by saying something like:
|
|
|
103
109
|
When the user signals completion:
|
|
104
110
|
|
|
105
111
|
1. Take final screenshot:
|
|
112
|
+
|
|
106
113
|
```
|
|
107
114
|
Call: mcp__claude-in-chrome__computer
|
|
108
115
|
- action: "screenshot"
|
|
109
116
|
- tabId: [tabId]
|
|
110
117
|
```
|
|
111
118
|
|
|
112
|
-
|
|
119
|
+
1. Get all console messages:
|
|
120
|
+
|
|
113
121
|
```
|
|
114
122
|
Call: mcp__claude-in-chrome__read_console_messages
|
|
115
123
|
- tabId: [tabId]
|
|
116
124
|
```
|
|
117
125
|
|
|
118
|
-
|
|
126
|
+
1. Optionally get network requests if relevant:
|
|
127
|
+
|
|
119
128
|
```
|
|
120
129
|
Call: mcp__claude-in-chrome__read_network_requests
|
|
121
130
|
- tabId: [tabId]
|
|
@@ -154,6 +163,7 @@ Generate a report with this structure:
|
|
|
154
163
|
Write the report to: `.claude/sprint/[N]/manual-test-report.md`
|
|
155
164
|
|
|
156
165
|
If a previous `manual-test-report.md` exists, append a timestamp suffix:
|
|
166
|
+
|
|
157
167
|
- `.claude/sprint/[N]/manual-test-report-[timestamp].md`
|
|
158
168
|
|
|
159
169
|
**Inform the user:**
|
|
@@ -168,6 +178,7 @@ The architect will use it to understand what needs to be fixed.
|
|
|
168
178
|
## Error Handling
|
|
169
179
|
|
|
170
180
|
If the browser fails to open or navigate:
|
|
181
|
+
|
|
171
182
|
- Report the error to the user
|
|
172
183
|
- Suggest checking if the app is running
|
|
173
184
|
- Provide the URL that was attempted
|
package/package.json
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-patterns
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: 'Execute this skill should be used when the user asks about "SPAWN REQUEST
|
|
4
|
+
format", "agent reports", "agent coordination", "parallel agents", "report format",
|
|
5
|
+
"agent communication", or needs to understand how agents coordinate within the sprint
|
|
6
|
+
system. Use when appropriate context detected. Trigger with relevant phrases based
|
|
7
|
+
on skill purpose.
|
|
8
|
+
|
|
9
|
+
'
|
|
5
10
|
allowed-tools: Read
|
|
6
11
|
version: 1.0.0
|
|
7
12
|
author: Damien Laine <damien.laine@gmail.com>
|
|
8
13
|
license: MIT
|
|
9
|
-
|
|
10
|
-
|
|
14
|
+
tags:
|
|
15
|
+
- community
|
|
16
|
+
- agent-patterns
|
|
17
|
+
compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
|
|
11
18
|
---
|
|
12
19
|
# Agent Patterns
|
|
13
20
|
|
|
@@ -25,6 +32,7 @@ Agent Patterns defines the coordination protocol for multi-agent sprint executio
|
|
|
25
32
|
## Instructions
|
|
26
33
|
|
|
27
34
|
1. Structure every agent spawn using the SPAWN REQUEST format. Include the agent name, the specification file it should read, and any scope constraints:
|
|
35
|
+
|
|
28
36
|
```
|
|
29
37
|
SPAWN REQUEST
|
|
30
38
|
Agent: python-dev
|
|
@@ -32,6 +40,7 @@ Agent Patterns defines the coordination protocol for multi-agent sprint executio
|
|
|
32
40
|
Contract: .claude/sprint/1/api-contract.md
|
|
33
41
|
Scope: Authentication endpoints only
|
|
34
42
|
```
|
|
43
|
+
|
|
35
44
|
2. Ensure each spawned agent receives only the files relevant to its scope. Pass the `api-contract.md` as a shared interface so backend and frontend agents stay synchronized.
|
|
36
45
|
3. Collect structured reports from every agent upon completion. Each report must include: work completed, files modified, tests added, and conformity status against the specification.
|
|
37
46
|
4. When running agents in parallel, partition work by domain boundary (e.g., backend vs. frontend vs. CI/CD). Never assign overlapping file paths to concurrent agents.
|
|
@@ -58,6 +67,7 @@ Agent Patterns defines the coordination protocol for multi-agent sprint executio
|
|
|
58
67
|
## Examples
|
|
59
68
|
|
|
60
69
|
**Spawning parallel implementation agents:**
|
|
70
|
+
|
|
61
71
|
```
|
|
62
72
|
SPAWN REQUEST
|
|
63
73
|
Agent: python-dev
|
|
@@ -69,9 +79,11 @@ Agent: nextjs-dev
|
|
|
69
79
|
Specs: .claude/sprint/1/frontend-specs.md
|
|
70
80
|
Contract: .claude/sprint/1/api-contract.md
|
|
71
81
|
```
|
|
82
|
+
|
|
72
83
|
Both agents share the same `api-contract.md` to ensure API compatibility.
|
|
73
84
|
|
|
74
85
|
**Structured agent report format:**
|
|
86
|
+
|
|
75
87
|
```
|
|
76
88
|
AGENT REPORT
|
|
77
89
|
Agent: python-dev
|
|
@@ -83,6 +95,7 @@ Notes: JWT token expiry set to 24h per spec
|
|
|
83
95
|
```
|
|
84
96
|
|
|
85
97
|
**Testing agent coordination:**
|
|
98
|
+
|
|
86
99
|
```
|
|
87
100
|
SPAWN REQUEST
|
|
88
101
|
Agent: qa-test-agent
|
|
@@ -100,4 +113,4 @@ Run After: qa-test-agent
|
|
|
100
113
|
- `${CLAUDE_SKILL_DIR}/references/ui-test-report.md` -- Structured UI test report format with coverage and failure tracking
|
|
101
114
|
- Sprint workflow skill for phase lifecycle context
|
|
102
115
|
- API contract skill for shared interface design
|
|
103
|
-
- Sprint plugin README for agent architecture overview
|
|
116
|
+
- Sprint plugin README for agent architecture overview
|