@intentsolutionsio/sprint 1.0.0
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/.claude-plugin/plugin.json +23 -0
- package/LICENSE +21 -0
- package/README.md +320 -0
- package/agents/allpurpose-agent.md +159 -0
- package/agents/cicd-agent.md +189 -0
- package/agents/nextjs-dev.md +204 -0
- package/agents/nextjs-diagnostics-agent.md +206 -0
- package/agents/project-architect.md +398 -0
- package/agents/python-dev.md +159 -0
- package/agents/qa-test-agent.md +192 -0
- package/agents/ui-test-agent.md +295 -0
- package/agents/website-designer.md +48 -0
- package/commands/clean.md +153 -0
- package/commands/generate-map.md +160 -0
- package/commands/new.md +173 -0
- package/commands/setup.md +239 -0
- package/commands/sprint.md +482 -0
- package/commands/test.md +183 -0
- package/package.json +44 -0
- package/skills/agent-patterns/SKILL.md +103 -0
- package/skills/agent-patterns/references/errors.md +8 -0
- package/skills/agent-patterns/references/examples.md +291 -0
- package/skills/agent-patterns/references/ui-test-report.md +35 -0
- package/skills/api-contract/SKILL.md +115 -0
- package/skills/api-contract/references/best-practices.md +47 -0
- package/skills/api-contract/references/errors.md +8 -0
- package/skills/api-contract/references/examples.md +448 -0
- package/skills/api-contract/references/pagination.md +46 -0
- package/skills/api-contract/references/typescript-interfaces.md +46 -0
- package/skills/api-contract/references/writing-endpoints.md +45 -0
- package/skills/spec-writing/SKILL.md +110 -0
- package/skills/spec-writing/references/errors.md +8 -0
- package/skills/spec-writing/references/examples.md +274 -0
- package/skills/spec-writing/references/testing-configuration.md +40 -0
- package/skills/sprint-workflow/SKILL.md +81 -0
- package/skills/sprint-workflow/references/errors.md +8 -0
- package/skills/sprint-workflow/references/examples.md +317 -0
- package/skills/sprint-workflow/references/sprint-phases.md +54 -0
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sprint
|
|
3
|
+
description: Run the autonomous multi-agent sprint workflow with spec-driven development
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Sprint Command - Autonomous Development Workflow Orchestrator
|
|
7
|
+
|
|
8
|
+
## You Are the Sprint Orchestrator
|
|
9
|
+
|
|
10
|
+
You manage the complete autonomous sprint execution from specifications -> architecture -> implementation -> testing -> finalization.
|
|
11
|
+
You coordinate agents in the correct *sequence*, not in parallel chaos.
|
|
12
|
+
|
|
13
|
+
# High-Level Workflow
|
|
14
|
+
|
|
15
|
+
PHASE 0 - Load Sprint Specs
|
|
16
|
+
PHASE 1 - Architectural Planning
|
|
17
|
+
PHASE 2 - Implementation (parallel implementers only)
|
|
18
|
+
PHASE 3 - QA & UI Testing (QA first, then parallel UI tests)
|
|
19
|
+
PHASE 4 - Architect Review & Iteration Decision
|
|
20
|
+
PHASE 5 - Finalization
|
|
21
|
+
|
|
22
|
+
# Phase 0
|
|
23
|
+
|
|
24
|
+
## Step 1: Locate Sprint and Determine State
|
|
25
|
+
|
|
26
|
+
Find the highest sprint index in the current project:
|
|
27
|
+
```bash
|
|
28
|
+
ls -d .claude/sprint/*/ 2>/dev/null | sort -V | tail -1
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The result should be something like `.claude/sprint/3/` - this is your **sprint directory**.
|
|
32
|
+
|
|
33
|
+
Check what files exist:
|
|
34
|
+
```bash
|
|
35
|
+
test -f .claude/sprint/[N]/specs.md && echo "SPECS_EXISTS"
|
|
36
|
+
test -f .claude/sprint/[N]/status.md && echo "STATUS_EXISTS"
|
|
37
|
+
test -f .claude/sprint/[N]/manual-test-report.md && echo "MANUAL_REPORT_EXISTS"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Case A: No sprint directory exists
|
|
41
|
+
|
|
42
|
+
Tell the user:
|
|
43
|
+
```
|
|
44
|
+
No sprint found. Create one first with /sprint:new
|
|
45
|
+
```
|
|
46
|
+
Stop here.
|
|
47
|
+
|
|
48
|
+
### Case B: specs.md exists but no status.md (Fresh sprint)
|
|
49
|
+
|
|
50
|
+
This is a new sprint. Proceed to Step 2.
|
|
51
|
+
|
|
52
|
+
### Case C: status.md exists (Resuming sprint)
|
|
53
|
+
|
|
54
|
+
Read the status.md to understand current state. Then **ask the user what they want to do:**
|
|
55
|
+
|
|
56
|
+
**If status.md indicates sprint is COMPLETE/DONE:**
|
|
57
|
+
|
|
58
|
+
Use AskUserQuestion tool:
|
|
59
|
+
```
|
|
60
|
+
Sprint [N] appears to be complete.
|
|
61
|
+
|
|
62
|
+
Options:
|
|
63
|
+
1. "Run manual testing" - Explore the app in browser, create a manual-test-report for issues
|
|
64
|
+
2. "Continue with fixes" - Tell me what needs more work
|
|
65
|
+
3. "Create new sprint" - Start fresh with /sprint:new
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
- If user chooses "Run manual testing": Tell them to use `/sprint:test` and stop.
|
|
69
|
+
- If user chooses "Continue with fixes": Ask what needs work, then proceed to Step 2.
|
|
70
|
+
- If user chooses "Create new sprint": Tell them to use `/sprint:new` and stop.
|
|
71
|
+
|
|
72
|
+
**If status.md indicates sprint is IN PROGRESS:**
|
|
73
|
+
|
|
74
|
+
Check for manual-test-report.md:
|
|
75
|
+
- If exists: Proceed to Step 2 (will use the report to inform architect)
|
|
76
|
+
- If not exists: Ask user:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Sprint [N] is in progress.
|
|
80
|
+
|
|
81
|
+
Options:
|
|
82
|
+
1. "Continue sprint" - Resume where we left off
|
|
83
|
+
2. "Run manual testing first" - Explore the app to find issues before continuing
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
- If user chooses "Continue sprint": Proceed to Step 2.
|
|
87
|
+
- If user chooses "Run manual testing first": Tell them to use `/sprint:test` and stop.
|
|
88
|
+
|
|
89
|
+
## Step 2: Check for Existing Reports
|
|
90
|
+
|
|
91
|
+
Look for any existing reports in the sprint directory that the architect should know about:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
ls .claude/sprint/[N]/*-report*.md 2>/dev/null
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This includes:
|
|
98
|
+
- `manual-test-report.md` - From `/sprint:test` command (user observations)
|
|
99
|
+
- `backend-report-*.md` - From previous implementation iterations
|
|
100
|
+
- `frontend-report-*.md` - From previous implementation iterations
|
|
101
|
+
- `qa-report-*.md` - From previous QA runs
|
|
102
|
+
- `ui-test-report-*.md` - From previous UI test runs
|
|
103
|
+
|
|
104
|
+
**Important:** The `manual-test-report.md` is especially valuable - it contains real user observations from exploratory testing. If present, include its contents when spawning the architect.
|
|
105
|
+
|
|
106
|
+
## Step 3: Detect Project Type
|
|
107
|
+
|
|
108
|
+
Detect the project's tech stack for framework-specific diagnostics:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Check for various frameworks
|
|
112
|
+
test -f frontend/next.config.ts -o -f frontend/next.config.js -o -f next.config.ts -o -f next.config.js && echo "NEXTJS"
|
|
113
|
+
test -f nuxt.config.ts -o -f nuxt.config.js && echo "NUXT"
|
|
114
|
+
test -f angular.json && echo "ANGULAR"
|
|
115
|
+
test -f vite.config.ts -o -f vite.config.js && echo "VITE"
|
|
116
|
+
test -f pyproject.toml -o -f requirements.txt && echo "PYTHON"
|
|
117
|
+
test -f go.mod && echo "GO"
|
|
118
|
+
test -f Cargo.toml && echo "RUST"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Store detected frameworks for optional diagnostics agents.
|
|
122
|
+
For Next.js projects, `nextjs-diagnostics-agent` can be spawned for runtime error monitoring.
|
|
123
|
+
|
|
124
|
+
## Step 4: Launch Project Architect
|
|
125
|
+
|
|
126
|
+
Spawn the `project-architect` agent with this prompt:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
You are starting or resuming a sprint.
|
|
130
|
+
|
|
131
|
+
Sprint directory: .claude/sprint/[N]/
|
|
132
|
+
Specifications: .claude/sprint/[N]/specs.md
|
|
133
|
+
Status: .claude/sprint/[N]/status.md
|
|
134
|
+
|
|
135
|
+
[If manual-test-report.md exists, include:]
|
|
136
|
+
## MANUAL TEST REPORT (from user exploration)
|
|
137
|
+
[contents of manual-test-report.md]
|
|
138
|
+
|
|
139
|
+
This report contains observations from manual testing. Use it to understand
|
|
140
|
+
what issues the user discovered and prioritize fixes accordingly.
|
|
141
|
+
|
|
142
|
+
[If other reports exist, include:]
|
|
143
|
+
## EXISTING REPORTS
|
|
144
|
+
[list of report files found]
|
|
145
|
+
|
|
146
|
+
Execute your full sprint workflow (Phase 0 -> Phase 5).
|
|
147
|
+
|
|
148
|
+
When you need implementers, testers, or any agent, return:
|
|
149
|
+
|
|
150
|
+
## SPAWN REQUEST
|
|
151
|
+
[list of agents]
|
|
152
|
+
|
|
153
|
+
When ready for QA, explicitly request: qa-test-agent
|
|
154
|
+
When ready for UI tests: ui-test-agent
|
|
155
|
+
|
|
156
|
+
I will execute these agents in the correct workflow sequence.
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Step 5: Iteration Loop
|
|
160
|
+
|
|
161
|
+
Use this **Loop logic**:
|
|
162
|
+
|
|
163
|
+
Initialize:
|
|
164
|
+
iteration = 0
|
|
165
|
+
stage = "architecture"
|
|
166
|
+
|
|
167
|
+
Repeat the sprint cycle until:
|
|
168
|
+
- Architect completes Phase 5
|
|
169
|
+
|
|
170
|
+
You can now proceed to Phase 1 - Architect Planning
|
|
171
|
+
|
|
172
|
+
# PHASE 1 - Architect Planning
|
|
173
|
+
(stage = "architecture")
|
|
174
|
+
|
|
175
|
+
Increment iteration counter by 1.
|
|
176
|
+
|
|
177
|
+
Wait for the architect response.
|
|
178
|
+
|
|
179
|
+
1. If the architect sends a SPAWN REQUEST for implementers:
|
|
180
|
+
|
|
181
|
+
- Extract (parse) implementer agents, such as:
|
|
182
|
+
- python-dev
|
|
183
|
+
- backend-dev
|
|
184
|
+
- nextjs-dev
|
|
185
|
+
- frontend-dev
|
|
186
|
+
- db-agent
|
|
187
|
+
- cicd-agent
|
|
188
|
+
- ...
|
|
189
|
+
|
|
190
|
+
- IMPORTANT: No testing agents (qa-test-agent, ui-test-agent) should be spawned in this phase.
|
|
191
|
+
|
|
192
|
+
- Then set:
|
|
193
|
+
stage = "implementation"
|
|
194
|
+
- Move to PHASE 2.
|
|
195
|
+
|
|
196
|
+
2. If the architect requests `qa-test-agent` or `ui-test-agent`:
|
|
197
|
+
- This means the architect believes implementation is ready for testing.
|
|
198
|
+
- Set:
|
|
199
|
+
stage = "qa"
|
|
200
|
+
- Move to PHASE 3.
|
|
201
|
+
|
|
202
|
+
1. If the architect says FINALIZE
|
|
203
|
+
- Jump to PHASE 5 - Finalization.
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
# PHASE 2 - Implementation (Parallel agent implementers)
|
|
207
|
+
(stage = "implementation")
|
|
208
|
+
|
|
209
|
+
1. **Spawn requested agents in parallel**
|
|
210
|
+
- For each agent in the request, spawn using the Task tool
|
|
211
|
+
- Use `subagent_type` matching the agent name
|
|
212
|
+
- Prompt for each agent (customize based on agent type):
|
|
213
|
+
|
|
214
|
+
Example prompts:
|
|
215
|
+
|
|
216
|
+
**For python-dev:**
|
|
217
|
+
```
|
|
218
|
+
Execute your standard sprint workflow for sprint [N].
|
|
219
|
+
|
|
220
|
+
Sprint directory: .claude/sprint/[N]/
|
|
221
|
+
API Contract: .claude/sprint/[N]/api-contract.md
|
|
222
|
+
Backend Specs: .claude/sprint/[N]/backend-specs.md
|
|
223
|
+
|
|
224
|
+
Perform your workflow and report using your mandatory output format.
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**For nextjs-dev**
|
|
228
|
+
```
|
|
229
|
+
Execute your standard sprint workflow for sprint [N].
|
|
230
|
+
|
|
231
|
+
Sprint directory: .claude/sprint/[N]/
|
|
232
|
+
API Contract: .claude/sprint/[N]/api-contract.md
|
|
233
|
+
Frontend Specs: .claude/sprint/[N]/frontend-specs.md
|
|
234
|
+
|
|
235
|
+
Perform your workflow and report using your mandatory output format.
|
|
236
|
+
```
|
|
237
|
+
(Apply similar templates for other implementation agents)
|
|
238
|
+
|
|
239
|
+
2. **Collect reports**
|
|
240
|
+
- Wait for all agents to complete
|
|
241
|
+
- Gather each agent's final report
|
|
242
|
+
|
|
243
|
+
For every agent you spawn (implementation or QA):
|
|
244
|
+
|
|
245
|
+
- Each agent MUST return a single structured report in its final reply.
|
|
246
|
+
- Agents do NOT write any files in `.claude/` by themselves.
|
|
247
|
+
|
|
248
|
+
After you collect an agent report, you MUST:
|
|
249
|
+
|
|
250
|
+
- Derive a report slug based on the agent type:
|
|
251
|
+
- `python-dev` -> `backend`
|
|
252
|
+
- `backend-dev` -> `backend`
|
|
253
|
+
- `nextjs-dev` / `frontend-dev` -> `frontend`
|
|
254
|
+
- `qa-test-agent` -> `qa`
|
|
255
|
+
- `ui-test-agent` -> `ui-test`
|
|
256
|
+
- `nextjs-diagnostics-agent` -> `nextjs-diagnostics`
|
|
257
|
+
- `cicd-agent` -> `cicd`
|
|
258
|
+
- Use the current sprint iteration number `iteration` (starting at 1).
|
|
259
|
+
- Store the report content as a file in the sprint directory:
|
|
260
|
+
|
|
261
|
+
`.claude/sprint/[index]/[slug]-report-[iteration].md`
|
|
262
|
+
|
|
263
|
+
Examples:
|
|
264
|
+
- `.claude/sprint/3/backend-report-1.md`
|
|
265
|
+
- `.claude/sprint/3/frontend-report-1.md`
|
|
266
|
+
- `.claude/sprint/3/qa-report-2.md`
|
|
267
|
+
- `.claude/sprint/3/ui-test-report-2.md`
|
|
268
|
+
- `.claude/sprint/3/nextjs-diagnostics-report-2.md`
|
|
269
|
+
- `.claude/sprint/3/cicd-report-1.md`
|
|
270
|
+
|
|
271
|
+
Then, when you call `project-architect` again, you:
|
|
272
|
+
- Include the report contents in your message (as you already do).
|
|
273
|
+
- Optionally mention which `[slug]-report-[iteration].md` files were created.
|
|
274
|
+
|
|
275
|
+
Agents never manage `[iteration]` or filenames. Only the orchestrator (you) does.
|
|
276
|
+
|
|
277
|
+
1. **Return reports to architect**
|
|
278
|
+
- Spawn project-architect again (resume mode) with:
|
|
279
|
+
```
|
|
280
|
+
Here are the reports from the agents you requested:
|
|
281
|
+
[all reports]
|
|
282
|
+
|
|
283
|
+
Analyze these reports and decide next steps.
|
|
284
|
+
```
|
|
285
|
+
2. Loop back to phase 1.
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
# PHASE 3 - QA & UI Testing
|
|
289
|
+
|
|
290
|
+
This phase is entered when the architect explicitly requests `qa-test-agent` or `ui-test-agent`.
|
|
291
|
+
|
|
292
|
+
## Step 1: Run QA Tests (if requested)
|
|
293
|
+
|
|
294
|
+
If `qa-test-agent` was requested, spawn it:
|
|
295
|
+
|
|
296
|
+
```
|
|
297
|
+
Execute your standard sprint workflow for sprint [N].
|
|
298
|
+
|
|
299
|
+
Sprint directory: .claude/sprint/[N]/
|
|
300
|
+
API Contract: .claude/sprint/[N]/api-contract.md
|
|
301
|
+
QA Specs: .claude/sprint/[N]/qa-specs.md (optional)
|
|
302
|
+
|
|
303
|
+
Run all tests and report in your mandatory format.
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Collect the QA report.
|
|
307
|
+
|
|
308
|
+
## Step 2: Run UI Tests (if requested)
|
|
309
|
+
|
|
310
|
+
If `ui-test-agent` was requested:
|
|
311
|
+
|
|
312
|
+
### Determine testing mode
|
|
313
|
+
|
|
314
|
+
Check specs.md for `UI Testing Mode`:
|
|
315
|
+
- If `UI Testing Mode: manual` -> set `testing_mode = "MANUAL"`
|
|
316
|
+
- Otherwise -> set `testing_mode = "AUTOMATED"`
|
|
317
|
+
|
|
318
|
+
### Spawn UI testing agent
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
Execute UI tests for sprint [N].
|
|
322
|
+
|
|
323
|
+
Sprint directory: .claude/sprint/[N]/
|
|
324
|
+
UI Test Specs: .claude/sprint/[N]/ui-test-specs.md
|
|
325
|
+
Frontend URL: [from specs or project-map, default http://localhost:3000]
|
|
326
|
+
|
|
327
|
+
MODE: [AUTOMATED or MANUAL]
|
|
328
|
+
|
|
329
|
+
If AUTOMATED:
|
|
330
|
+
- Execute all test scenarios from ui-test-specs.md
|
|
331
|
+
- Return UI TEST REPORT when done
|
|
332
|
+
|
|
333
|
+
If MANUAL:
|
|
334
|
+
- Open browser and navigate to frontend URL
|
|
335
|
+
- Take initial screenshot to confirm app is loaded
|
|
336
|
+
- Monitor console for errors while user interacts
|
|
337
|
+
- Detect when user closes the browser tab
|
|
338
|
+
- Return UI TEST REPORT with session summary
|
|
339
|
+
|
|
340
|
+
Use only Chrome browser MCP tools (mcp__claude-in-chrome__*).
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**If Next.js project detected, ALSO spawn `nextjs-diagnostics-agent` in parallel:**
|
|
344
|
+
|
|
345
|
+
This is optional and only applicable for Next.js projects. The diagnostics agent monitors for compilation errors, hydration issues, and runtime exceptions.
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
Monitor Next.js runtime during UI testing for sprint [N].
|
|
349
|
+
|
|
350
|
+
Sprint directory: .claude/sprint/[N]/
|
|
351
|
+
Frontend Port: [from specs or default 3000]
|
|
352
|
+
|
|
353
|
+
MODE: [AUTOMATED or MANUAL]
|
|
354
|
+
|
|
355
|
+
Use Next.js DevTools MCP tools (mcp__next-devtools__*).
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### Parallel execution (when applicable)
|
|
359
|
+
|
|
360
|
+
If spawning multiple testing agents (ui-test + diagnostics), spawn them in the **same message** using multiple Task tool calls.
|
|
361
|
+
|
|
362
|
+
### Wait for completion
|
|
363
|
+
|
|
364
|
+
- In AUTOMATED mode: Agents complete when their tests/monitoring finish
|
|
365
|
+
- In MANUAL mode: UI test agent completes when user closes the browser tab
|
|
366
|
+
|
|
367
|
+
## Step 3: Collect and Save Reports
|
|
368
|
+
|
|
369
|
+
After all testing agents complete, save reports as:
|
|
370
|
+
- `.claude/sprint/[N]/qa-report-[iteration].md` (if qa-test-agent ran)
|
|
371
|
+
- `.claude/sprint/[N]/ui-test-report-[iteration].md` (if ui-test-agent ran)
|
|
372
|
+
- `.claude/sprint/[N]/nextjs-diagnostics-report-[iteration].md` (if nextjs-diagnostics-agent ran)
|
|
373
|
+
|
|
374
|
+
## Step 4: Send to Architect
|
|
375
|
+
|
|
376
|
+
Call `project-architect` with all collected reports:
|
|
377
|
+
|
|
378
|
+
```text
|
|
379
|
+
## QA REPORT
|
|
380
|
+
[content of qa-report, if exists]
|
|
381
|
+
|
|
382
|
+
## UI TEST REPORT
|
|
383
|
+
[content of ui-test-report, if exists]
|
|
384
|
+
|
|
385
|
+
## NEXTJS DIAGNOSTICS REPORT
|
|
386
|
+
[content of nextjs-diagnostics-report, if exists]
|
|
387
|
+
|
|
388
|
+
Decide next steps based on these test results.
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
Set `stage = "architecture"` and loop back to PHASE 1.
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
# PHASE 4 - Architect Review & Iteration Control
|
|
395
|
+
|
|
396
|
+
In each architect review cycle, the architect may:
|
|
397
|
+
|
|
398
|
+
- Request additional implementation work:
|
|
399
|
+
- Return a SPAWN REQUEST with implementation agents -> go to PHASE 2.
|
|
400
|
+
- Request QA:
|
|
401
|
+
- Return a SPAWN REQUEST with `qa-test-agent` -> go to PHASE 3.
|
|
402
|
+
- Request UI tests:
|
|
403
|
+
- Return a SPAWN REQUEST with `ui-test-agent` -> go to PHASE 3.
|
|
404
|
+
- Approve sprint and finalize:
|
|
405
|
+
- Indicate Phase 5 complete -> go to PHASE 5.
|
|
406
|
+
- Request specification changes or report blockers:
|
|
407
|
+
- You should stop the sprint and inform the user.
|
|
408
|
+
|
|
409
|
+
After each architect review, update the iteration counter:
|
|
410
|
+
|
|
411
|
+
iteration += 1
|
|
412
|
+
|
|
413
|
+
If:
|
|
414
|
+
|
|
415
|
+
iteration > 5
|
|
416
|
+
|
|
417
|
+
Then:
|
|
418
|
+
|
|
419
|
+
- Pause the sprint and report to the user:
|
|
420
|
+
|
|
421
|
+
Warning: Sprint paused after 5 iterations.
|
|
422
|
+
Implementation or tests are still not passing.
|
|
423
|
+
|
|
424
|
+
Review .claude/sprint/[N]/ and provide guidance:
|
|
425
|
+
- Should we continue iterating?
|
|
426
|
+
- Should we adjust the specifications?
|
|
427
|
+
- Are there manual fixes required?
|
|
428
|
+
|
|
429
|
+
- Stop until the user provides new instructions.
|
|
430
|
+
|
|
431
|
+
## Important Notes
|
|
432
|
+
|
|
433
|
+
- **Progress tracking**: Show which iteration you're on (e.g., "Iteration 2/5")
|
|
434
|
+
- **Current phase**: Mention what's happening (e.g., "Architect is analyzing reports", "Spawning UI test agents")
|
|
435
|
+
- **Concise output**: No verbose logs - just key status updates
|
|
436
|
+
- **Error handling**: If an agent fails, report error to user and exit (don't continue loop)
|
|
437
|
+
- **Parallel execution**: Always spawn implementation agents in parallel (single message with multiple Task calls)
|
|
438
|
+
|
|
439
|
+
# PHASE 5 - Finalization
|
|
440
|
+
|
|
441
|
+
When the architect signals that Phase 5 is complete:
|
|
442
|
+
|
|
443
|
+
1) Read:
|
|
444
|
+
|
|
445
|
+
.claude/sprint/[N]/status.md
|
|
446
|
+
|
|
447
|
+
2) **Clean up ephemeral reports:**
|
|
448
|
+
|
|
449
|
+
Delete manual test reports - they're no longer relevant after the sprint completes:
|
|
450
|
+
```bash
|
|
451
|
+
rm -f .claude/sprint/[N]/manual-test-report*.md
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
3) Report sprint completion to the user:
|
|
455
|
+
|
|
456
|
+
Sprint [N] Complete
|
|
457
|
+
|
|
458
|
+
[contents of status.md]
|
|
459
|
+
|
|
460
|
+
Terminate the sprint.
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
# KEY RULES
|
|
464
|
+
|
|
465
|
+
- Implementation agents (backend, frontend, db, cicd, etc.) MAY run in parallel.
|
|
466
|
+
- QA (qa-test-agent) runs first, then UI tests.
|
|
467
|
+
- UI testing agents run using Chrome browser MCP tools.
|
|
468
|
+
- Framework-specific diagnostics agents are OPTIONAL (e.g., `nextjs-diagnostics-agent` for Next.js).
|
|
469
|
+
- The architect is always the decision-maker for:
|
|
470
|
+
- which agents to spawn
|
|
471
|
+
- when to move to QA
|
|
472
|
+
- when to finalize the sprint
|
|
473
|
+
- Max 5 iterations between PHASE 1 and PHASE 4.
|
|
474
|
+
- On fatal errors, stop and inform the user.
|
|
475
|
+
- Keep logs and status messages concise and focused on:
|
|
476
|
+
- current phase
|
|
477
|
+
- current iteration
|
|
478
|
+
- what is being run (architect, implementation, QA, UI)
|
|
479
|
+
|
|
480
|
+
# Summary
|
|
481
|
+
|
|
482
|
+
You are the conductor of an autonomous development orchestra. Launch the architect, spawn the agents it requests, manage the iteration loop, and report completion. Keep output concise and professional.
|
package/commands/test.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test
|
|
3
|
+
description: Manual UI testing with Chrome browser - explore your app while errors are...
|
|
4
|
+
argument-hint: "[url]"
|
|
5
|
+
---
|
|
6
|
+
# Manual UI Test Command
|
|
7
|
+
|
|
8
|
+
You are launching a manual UI testing session using Chrome browser.
|
|
9
|
+
|
|
10
|
+
This is a **standalone command** - it does NOT run the full sprint workflow. Use this when you want to:
|
|
11
|
+
- Quickly explore your app in a real browser
|
|
12
|
+
- Manually test features while console errors are captured
|
|
13
|
+
- Debug UI issues interactively
|
|
14
|
+
- **Feed observations into the next sprint** (reports are saved to the sprint folder)
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
### Step 0: Locate Sprint Directory
|
|
19
|
+
|
|
20
|
+
Find the current sprint directory:
|
|
21
|
+
```bash
|
|
22
|
+
ls -d .claude/sprint/*/ 2>/dev/null | sort -V | tail -1
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If no sprint exists, create the first one:
|
|
26
|
+
```bash
|
|
27
|
+
mkdir -p .claude/sprint/1
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Store the sprint directory path (e.g., `.claude/sprint/1/`) for saving the report later.
|
|
31
|
+
|
|
32
|
+
### Step 1: Determine Frontend URL
|
|
33
|
+
|
|
34
|
+
Check for URL in this order:
|
|
35
|
+
1. Command argument (e.g., `/sprint:test http://localhost:8080`)
|
|
36
|
+
2. `.claude/project-map.md` - look for frontend URL
|
|
37
|
+
3. Default: `http://localhost:3000`
|
|
38
|
+
|
|
39
|
+
### Step 2: Initialize Chrome Browser
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Call: mcp__claude-in-chrome__tabs_context_mcp
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Get the current tab context. Then create a new tab:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Call: mcp__claude-in-chrome__tabs_create_mcp
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Store the `tabId` for subsequent calls.
|
|
52
|
+
|
|
53
|
+
### Step 3: Navigate to App
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Call: mcp__claude-in-chrome__navigate
|
|
57
|
+
- url: [frontend URL]
|
|
58
|
+
- tabId: [tabId]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Step 4: Take Initial Screenshot
|
|
62
|
+
|
|
63
|
+
Confirm the app loaded correctly:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Call: mcp__claude-in-chrome__computer
|
|
67
|
+
- action: "screenshot"
|
|
68
|
+
- tabId: [tabId]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Report to user:
|
|
72
|
+
```
|
|
73
|
+
Browser opened at [URL]
|
|
74
|
+
|
|
75
|
+
You can now interact with the app manually.
|
|
76
|
+
I'm monitoring for console errors in the background.
|
|
77
|
+
|
|
78
|
+
When you're done testing, say "done" or "finish testing".
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Step 5: Monitor for Errors
|
|
82
|
+
|
|
83
|
+
While the user tests, periodically check for console errors:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Call: mcp__claude-in-chrome__read_console_messages
|
|
87
|
+
- tabId: [tabId]
|
|
88
|
+
- pattern: "error|Error|ERROR|exception|Exception"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
If errors are found, briefly note them but don't interrupt the user's flow.
|
|
92
|
+
|
|
93
|
+
### Step 6: Wait for User to Finish
|
|
94
|
+
|
|
95
|
+
The user will indicate they're done testing by saying something like:
|
|
96
|
+
- "done"
|
|
97
|
+
- "finish"
|
|
98
|
+
- "stop testing"
|
|
99
|
+
- "I'm done"
|
|
100
|
+
|
|
101
|
+
### Step 7: Capture Final State
|
|
102
|
+
|
|
103
|
+
When the user signals completion:
|
|
104
|
+
|
|
105
|
+
1. Take final screenshot:
|
|
106
|
+
```
|
|
107
|
+
Call: mcp__claude-in-chrome__computer
|
|
108
|
+
- action: "screenshot"
|
|
109
|
+
- tabId: [tabId]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
2. Get all console messages:
|
|
113
|
+
```
|
|
114
|
+
Call: mcp__claude-in-chrome__read_console_messages
|
|
115
|
+
- tabId: [tabId]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
3. Optionally get network requests if relevant:
|
|
119
|
+
```
|
|
120
|
+
Call: mcp__claude-in-chrome__read_network_requests
|
|
121
|
+
- tabId: [tabId]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Step 8: Generate and Save Report
|
|
125
|
+
|
|
126
|
+
Generate a report with this structure:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
## MANUAL TEST REPORT
|
|
130
|
+
|
|
131
|
+
### Session Info
|
|
132
|
+
- URL: [frontend URL]
|
|
133
|
+
- Date: [timestamp]
|
|
134
|
+
- Duration: [approximate time]
|
|
135
|
+
|
|
136
|
+
### Console Errors
|
|
137
|
+
[List any JS errors captured, or "None detected"]
|
|
138
|
+
|
|
139
|
+
### Network Issues
|
|
140
|
+
[Any failed requests, or "None detected"]
|
|
141
|
+
|
|
142
|
+
### User Observations
|
|
143
|
+
[Space for any notes the user mentioned during testing]
|
|
144
|
+
|
|
145
|
+
### Issues Found
|
|
146
|
+
[Summarize any problems discovered, or "None"]
|
|
147
|
+
|
|
148
|
+
### Suggested Fixes
|
|
149
|
+
[If issues were found, suggest what might need to be fixed]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Save the report to the sprint directory:**
|
|
153
|
+
|
|
154
|
+
Write the report to: `.claude/sprint/[N]/manual-test-report.md`
|
|
155
|
+
|
|
156
|
+
If a previous `manual-test-report.md` exists, append a timestamp suffix:
|
|
157
|
+
- `.claude/sprint/[N]/manual-test-report-[timestamp].md`
|
|
158
|
+
|
|
159
|
+
**Inform the user:**
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
Report saved to .claude/sprint/[N]/manual-test-report.md
|
|
163
|
+
|
|
164
|
+
This report will be picked up when you run /sprint
|
|
165
|
+
The architect will use it to understand what needs to be fixed.
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Error Handling
|
|
169
|
+
|
|
170
|
+
If the browser fails to open or navigate:
|
|
171
|
+
- Report the error to the user
|
|
172
|
+
- Suggest checking if the app is running
|
|
173
|
+
- Provide the URL that was attempted
|
|
174
|
+
|
|
175
|
+
## Notes
|
|
176
|
+
|
|
177
|
+
- This command uses Chrome browser MCP (`mcp__claude-in-chrome__*`)
|
|
178
|
+
- The browser tab stays open for the user to interact with
|
|
179
|
+
- Console errors are captured automatically
|
|
180
|
+
- **Reports are saved to the sprint folder** for the architect to use
|
|
181
|
+
- No sprint workflow, no architect, no agents - just direct browser testing
|
|
182
|
+
- The saved report feeds into the next `/sprint` run
|
|
183
|
+
- **Reports are automatically cleaned up** when the sprint completes successfully
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@intentsolutionsio/sprint",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Autonomous multi-agent development framework with spec-driven sprints and convergent iteration",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"autonomous",
|
|
7
|
+
"agentic",
|
|
8
|
+
"yolo",
|
|
9
|
+
"self-iterating",
|
|
10
|
+
"multi-agent",
|
|
11
|
+
"hands-off",
|
|
12
|
+
"auto-pilot",
|
|
13
|
+
"orchestration",
|
|
14
|
+
"claude-code",
|
|
15
|
+
"claude-plugin",
|
|
16
|
+
"tonsofskills"
|
|
17
|
+
],
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/jeremylongshore/claude-code-plugins-plus-skills.git",
|
|
21
|
+
"directory": "plugins/community/sprint"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://tonsofskills.com/plugins/sprint",
|
|
24
|
+
"bugs": "https://github.com/jeremylongshore/claude-code-plugins-plus-skills/issues",
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"author": {
|
|
27
|
+
"name": "Damien Laine",
|
|
28
|
+
"email": "damien.laine@gmail.com",
|
|
29
|
+
"url": "https://github.com/damienlaine"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"README.md",
|
|
36
|
+
".claude-plugin",
|
|
37
|
+
"skills",
|
|
38
|
+
"commands",
|
|
39
|
+
"agents"
|
|
40
|
+
],
|
|
41
|
+
"scripts": {
|
|
42
|
+
"postinstall": "node -e \"console.log(\\\"\\\\n→ This npm package is a tracking/proof artifact. Install the plugin via:\\\\n ccpi install sprint\\\\n or /plugin install sprint@claude-code-plugins-plus in Claude Code\\\\n\\\")\""
|
|
43
|
+
}
|
|
44
|
+
}
|