speccrew 0.1.12 → 0.2.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/.speccrew/agents/speccrew-feature-designer.md +120 -0
- package/.speccrew/agents/speccrew-product-manager.md +54 -0
- package/.speccrew/agents/speccrew-system-designer.md +150 -14
- package/.speccrew/agents/speccrew-system-developer.md +309 -37
- package/.speccrew/agents/speccrew-task-worker.md +43 -0
- package/.speccrew/agents/speccrew-team-leader.md +108 -11
- package/.speccrew/agents/speccrew-test-manager.md +278 -0
- package/.speccrew/skills/speccrew-dev-backend/SKILL.md +44 -0
- package/.speccrew/skills/speccrew-dev-desktop/SKILL.md +44 -0
- package/.speccrew/skills/speccrew-dev-frontend/SKILL.md +44 -0
- package/.speccrew/skills/speccrew-dev-mobile/SKILL.md +44 -0
- package/.speccrew/skills/speccrew-fd-api-contract/SKILL.md +70 -0
- package/.speccrew/skills/speccrew-fd-feature-design/SKILL.md +158 -0
- package/.speccrew/skills/speccrew-pm-requirement-analysis/SKILL.md +65 -0
- package/.speccrew/skills/speccrew-sd-backend/SKILL.md +38 -0
- package/.speccrew/skills/speccrew-sd-desktop/SKILL.md +38 -0
- package/.speccrew/skills/speccrew-sd-frontend/SKILL.md +38 -0
- package/.speccrew/skills/speccrew-sd-mobile/SKILL.md +38 -0
- package/.speccrew/skills/speccrew-test-case-design/SKILL.md +33 -0
- package/.speccrew/skills/speccrew-test-code-gen/SKILL.md +34 -0
- package/.speccrew/skills/speccrew-test-execute/SKILL.md +34 -0
- package/README.ar.md +70 -3
- package/README.bn.md +52 -0
- package/README.bs.md +70 -3
- package/README.da.md +70 -3
- package/README.de.md +70 -3
- package/README.el.md +52 -0
- package/README.en.md +69 -2
- package/README.es.md +70 -3
- package/README.fr.md +70 -3
- package/README.it.md +70 -3
- package/README.ja.md +70 -3
- package/README.ko.md +70 -3
- package/README.md +69 -2
- package/README.no.md +70 -3
- package/README.pl.md +70 -3
- package/README.pt-BR.md +70 -3
- package/README.ru.md +70 -3
- package/README.th.md +69 -2
- package/README.tr.md +69 -2
- package/README.uk.md +69 -2
- package/README.vi.md +52 -0
- package/README.zh-TW.md +70 -3
- package/docs/GETTING-STARTED.ar.md +78 -4
- package/docs/GETTING-STARTED.bn.md +78 -4
- package/docs/GETTING-STARTED.bs.md +78 -4
- package/docs/GETTING-STARTED.da.md +78 -4
- package/docs/GETTING-STARTED.de.md +78 -4
- package/docs/GETTING-STARTED.el.md +78 -4
- package/docs/GETTING-STARTED.en.md +78 -4
- package/docs/GETTING-STARTED.es.md +78 -4
- package/docs/GETTING-STARTED.fr.md +78 -4
- package/docs/GETTING-STARTED.it.md +78 -4
- package/docs/GETTING-STARTED.ja.md +79 -5
- package/docs/GETTING-STARTED.ko.md +79 -5
- package/docs/GETTING-STARTED.md +78 -4
- package/docs/GETTING-STARTED.no.md +78 -4
- package/docs/GETTING-STARTED.pl.md +78 -4
- package/docs/GETTING-STARTED.pt-BR.md +78 -4
- package/docs/GETTING-STARTED.ru.md +78 -4
- package/docs/GETTING-STARTED.th.md +79 -5
- package/docs/GETTING-STARTED.tr.md +78 -4
- package/docs/GETTING-STARTED.uk.md +78 -4
- package/docs/GETTING-STARTED.vi.md +79 -5
- package/docs/GETTING-STARTED.zh-TW.md +79 -5
- package/package.json +1 -1
- package/.speccrew/skills/speccrew-create-agents/SKILL.md +0 -98
- package/.speccrew/skills/speccrew-create-agents/templates/agents/designer-agent.md +0 -54
- package/.speccrew/skills/speccrew-create-agents/templates/agents/dev-agent.md +0 -79
- package/.speccrew/skills/speccrew-create-agents/templates/agents/test-agent.md +0 -80
- package/.speccrew/skills/speccrew-project-diagnosis/SKILL.md +0 -233
- package/.speccrew/skills/speccrew-project-diagnosis/templates/DIAGNOSIS-REPORT-TEMPLATE.md +0 -202
- package/.speccrew/skills/speccrew-workflow-diagnose/SKILL.md +0 -155
- package/workspace-template/docs/solutions/Agent/346/212/200/350/203/275/345/256/232/344/271/211+/351/234/200/346/261/202/346/226/207/346/241/243+UML/344/275/277/347/224/250/346/250/241/346/235/277/357/274/210ISA-95/345/205/255/346/256/265/345/274/217/350/236/215/345/220/210/347/211/210/357/274/211.md +0 -586
- package/workspace-template/docs/solutions/harness.md +0 -410
|
@@ -15,6 +15,75 @@ Your core task is: based on the System Design (HOW to build), execute and coordi
|
|
|
15
15
|
|
|
16
16
|
# Workflow
|
|
17
17
|
|
|
18
|
+
## Step 0: Workflow Progress Management
|
|
19
|
+
|
|
20
|
+
### Phase 0.1: Stage Gate — Verify Upstream Completion
|
|
21
|
+
|
|
22
|
+
Before starting development, verify upstream stage completion:
|
|
23
|
+
|
|
24
|
+
1. **Read WORKFLOW-PROGRESS.json** from workspace root:
|
|
25
|
+
- Path: `speccrew-workspace/WORKFLOW-PROGRESS.json`
|
|
26
|
+
|
|
27
|
+
2. **Verify System Design stage status**:
|
|
28
|
+
- Check `stages.03_system_design.status == "confirmed"`
|
|
29
|
+
- If status is not "confirmed": **STOP** and report:
|
|
30
|
+
> "System Design stage has not been confirmed. Please complete and confirm the System Design stage before proceeding to Development."
|
|
31
|
+
|
|
32
|
+
3. **Update Development stage status**:
|
|
33
|
+
- Set `stages.04_development.status` to `"in_progress"`
|
|
34
|
+
- Record `started_at` with current timestamp (ISO 8601 format)
|
|
35
|
+
- Write updated WORKFLOW-PROGRESS.json
|
|
36
|
+
|
|
37
|
+
### Phase 0.2: Check Resume State
|
|
38
|
+
|
|
39
|
+
Check for existing checkpoint state to support resume:
|
|
40
|
+
|
|
41
|
+
1. **Read .checkpoints.json** (if exists):
|
|
42
|
+
- Path: `speccrew-workspace/iterations/{current}/04.development/.checkpoints.json`
|
|
43
|
+
|
|
44
|
+
2. **Determine resume point based on passed checkpoints**:
|
|
45
|
+
|
|
46
|
+
| Checkpoint State | Action |
|
|
47
|
+
|------------------|--------|
|
|
48
|
+
| `environment_precheck.passed == true` | Skip Step 3 (Environment Pre-check) |
|
|
49
|
+
| `task_list_review.passed == true` | Skip task list confirmation, proceed directly to dispatch |
|
|
50
|
+
| `delivery_report.passed == true` | **STOP** — entire stage already completed |
|
|
51
|
+
|
|
52
|
+
3. **If .checkpoints.json does not exist**: Proceed with full workflow (no resume)
|
|
53
|
+
|
|
54
|
+
### Phase 0.3: Check Dispatch Resume (Module-Level Resume)
|
|
55
|
+
|
|
56
|
+
Check for existing dispatch progress to support module-level retry:
|
|
57
|
+
|
|
58
|
+
1. **Read DISPATCH-PROGRESS.json** (if exists):
|
|
59
|
+
- Path: `speccrew-workspace/iterations/{current}/04.development/DISPATCH-PROGRESS.json`
|
|
60
|
+
|
|
61
|
+
2. **Calculate task statistics**:
|
|
62
|
+
- Total tasks: `tasks.length`
|
|
63
|
+
- Completed: `tasks.filter(t => t.status == "completed").length`
|
|
64
|
+
- Failed: `tasks.filter(t => t.status == "failed").length`
|
|
65
|
+
- Pending: `tasks.filter(t => t.status == "pending").length`
|
|
66
|
+
|
|
67
|
+
3. **Present resume summary to user**:
|
|
68
|
+
```
|
|
69
|
+
Development Dispatch Resume Summary:
|
|
70
|
+
- Total Modules: {total}
|
|
71
|
+
- Completed: {completed}
|
|
72
|
+
- Failed: {failed}
|
|
73
|
+
- Pending: {pending}
|
|
74
|
+
|
|
75
|
+
Will skip completed modules and only dispatch pending/failed tasks.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
4. **If DISPATCH-PROGRESS.json does not exist**: Will create fresh dispatch progress
|
|
79
|
+
|
|
80
|
+
### Phase 0.4: Backward Compatibility
|
|
81
|
+
|
|
82
|
+
If WORKFLOW-PROGRESS.json does not exist:
|
|
83
|
+
- Proceed with original workflow logic
|
|
84
|
+
- Do not block execution due to missing progress files
|
|
85
|
+
- Log informational message: "Progress tracking not available (WORKFLOW-PROGRESS.json not found). Running in compatibility mode."
|
|
86
|
+
|
|
18
87
|
## Step 1: Read System Design
|
|
19
88
|
|
|
20
89
|
When user requests to start development:
|
|
@@ -87,7 +156,25 @@ Verify required services are accessible:
|
|
|
87
156
|
- Message queues (RabbitMQ, Kafka, etc.)
|
|
88
157
|
- External API endpoints if critical
|
|
89
158
|
|
|
90
|
-
### 3.4 Pre-check
|
|
159
|
+
### 3.4 Pre-check Success Handling
|
|
160
|
+
|
|
161
|
+
If all pre-checks pass:
|
|
162
|
+
1. **Write checkpoint to .checkpoints.json**:
|
|
163
|
+
```json
|
|
164
|
+
{
|
|
165
|
+
"stage": "04_development",
|
|
166
|
+
"checkpoints": {
|
|
167
|
+
"environment_precheck": {
|
|
168
|
+
"passed": true,
|
|
169
|
+
"confirmed_at": "2026-01-15T10:30:00Z",
|
|
170
|
+
"description": "Runtime environment verification"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
2. Create .checkpoints.json if it doesn't exist, or update existing file
|
|
176
|
+
|
|
177
|
+
### 3.5 Pre-check Failure Handling
|
|
91
178
|
|
|
92
179
|
If any pre-check fails:
|
|
93
180
|
1. Report the specific failure to user with details
|
|
@@ -97,7 +184,43 @@ If any pre-check fails:
|
|
|
97
184
|
|
|
98
185
|
## Step 4: Dispatch Per-Module Dev Skills
|
|
99
186
|
|
|
100
|
-
> **IMPORTANT**: Use the **Skill tool**
|
|
187
|
+
> **IMPORTANT**: Use the **Skill tool** to dispatch dev skills for parallel execution.
|
|
188
|
+
|
|
189
|
+
### 4.0 Initialize DISPATCH-PROGRESS.json
|
|
190
|
+
|
|
191
|
+
Before dispatching tasks, create or read dispatch progress file:
|
|
192
|
+
|
|
193
|
+
1. **Check if DISPATCH-PROGRESS.json exists**:
|
|
194
|
+
- Path: `speccrew-workspace/iterations/{current}/04.development/DISPATCH-PROGRESS.json`
|
|
195
|
+
|
|
196
|
+
2. **If not exists — Create fresh dispatch progress**:
|
|
197
|
+
```json
|
|
198
|
+
{
|
|
199
|
+
"stage": "04_development",
|
|
200
|
+
"total": 0,
|
|
201
|
+
"completed": 0,
|
|
202
|
+
"failed": 0,
|
|
203
|
+
"pending": 0,
|
|
204
|
+
"tasks": []
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
3. **Build task list from Step 1.3** and populate DISPATCH-PROGRESS.json:
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"id": "dev-{platform_id}-{module-name}",
|
|
212
|
+
"platform": "{platform_id}",
|
|
213
|
+
"module": "{module_name}",
|
|
214
|
+
"skill": "{skill_name}",
|
|
215
|
+
"status": "pending",
|
|
216
|
+
"started_at": null,
|
|
217
|
+
"completed_at": null,
|
|
218
|
+
"output": null,
|
|
219
|
+
"error": null
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
4. **Update counts**: Set `total` to task list length, `pending` to same value
|
|
101
224
|
|
|
102
225
|
### 4.1 Determine Skill for Each Platform
|
|
103
226
|
|
|
@@ -138,40 +261,106 @@ for each platform_id:
|
|
|
138
261
|
- Task 23: `speccrew-dev-mobile` for `mobile-uniapp/crm-design.md`
|
|
139
262
|
- ...
|
|
140
263
|
|
|
141
|
-
### 4.
|
|
264
|
+
### 4.2a Checkpoint: Task List Review
|
|
265
|
+
|
|
266
|
+
**Present task list to user for confirmation**:
|
|
267
|
+
- Show total task count per platform
|
|
268
|
+
- Show module breakdown
|
|
269
|
+
- Wait for user confirmation
|
|
270
|
+
|
|
271
|
+
**After user confirms**:
|
|
272
|
+
1. **Write checkpoint to .checkpoints.json**:
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"checkpoints": {
|
|
276
|
+
"task_list_review": {
|
|
277
|
+
"passed": true,
|
|
278
|
+
"confirmed_at": "2026-01-15T10:35:00Z",
|
|
279
|
+
"description": "Development task list confirmed by user"
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
```
|
|
142
284
|
|
|
143
|
-
|
|
285
|
+
### 4.3 Dispatch Skills with Concurrency Limit
|
|
144
286
|
|
|
145
|
-
|
|
287
|
+
**Max concurrent child agents: 10**
|
|
288
|
+
|
|
289
|
+
Process `task_list` using a queue-based concurrency limit model:
|
|
146
290
|
|
|
147
291
|
```
|
|
148
292
|
MAX_CONCURRENT = 10
|
|
149
|
-
pending = [...task_list]
|
|
293
|
+
pending = [...task_list] // Only pending/failed tasks from DISPATCH-PROGRESS.json
|
|
294
|
+
running = {}
|
|
150
295
|
completed = []
|
|
151
296
|
|
|
152
|
-
while pending is not empty:
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
297
|
+
while pending is not empty or running is not empty:
|
|
298
|
+
while pending is not empty and running.size < MAX_CONCURRENT:
|
|
299
|
+
task = pending.pop()
|
|
300
|
+
|
|
301
|
+
// Update task status to "in_progress"
|
|
302
|
+
Update DISPATCH-PROGRESS.json:
|
|
303
|
+
- Set task.status = "in_progress"
|
|
304
|
+
- Set task.started_at = current timestamp
|
|
305
|
+
|
|
306
|
+
// Use Skill tool (not Agent tool)
|
|
307
|
+
skill_result = invoke Skill tool with:
|
|
308
|
+
- skill: {task.skill_name}
|
|
309
|
+
- args: |
|
|
310
|
+
platform_id: {task.platform_id}
|
|
311
|
+
iteration_path: {task.iteration_path}
|
|
312
|
+
design_doc_path: {task.module_design_path}
|
|
313
|
+
api_contract_path: {task.api_contract_path}
|
|
314
|
+
techs_knowledge_paths: {task.techs_knowledge_paths}
|
|
315
|
+
task_id: {task.id} // Pass task ID for completion report
|
|
316
|
+
|
|
317
|
+
running.add({task_id: task.id, skill_handle: skill_result})
|
|
318
|
+
|
|
319
|
+
wait until at least one skill in running completes
|
|
320
|
+
|
|
321
|
+
// Process completed skill result
|
|
322
|
+
for each finished skill in running:
|
|
323
|
+
Parse Task Completion Report from skill output
|
|
324
|
+
|
|
325
|
+
if report.status == "SUCCESS":
|
|
326
|
+
Update DISPATCH-PROGRESS.json:
|
|
327
|
+
- Set task.status = "completed"
|
|
328
|
+
- Set task.completed_at = current timestamp
|
|
329
|
+
- Set task.output = report.output_files
|
|
330
|
+
- Increment completed count, decrement pending count
|
|
331
|
+
else:
|
|
332
|
+
Update DISPATCH-PROGRESS.json:
|
|
333
|
+
- Set task.status = "failed"
|
|
334
|
+
- Set task.completed_at = current timestamp
|
|
335
|
+
- Set task.error = report.error
|
|
336
|
+
- Increment failed count, decrement pending count
|
|
337
|
+
|
|
338
|
+
move finished task from running to completed
|
|
165
339
|
```
|
|
166
340
|
|
|
167
341
|
**Dispatch rules:**
|
|
168
342
|
- Each skill invocation handles **one module** on **one platform** (not all modules)
|
|
169
|
-
- Pass `design_doc_path`
|
|
170
|
-
- Up to 10 skills execute simultaneously
|
|
171
|
-
-
|
|
172
|
-
-
|
|
343
|
+
- Pass complete context including `design_doc_path`, `skill_name`, platform info, and `task_id`
|
|
344
|
+
- Up to 10 skills execute simultaneously (concurrency limit)
|
|
345
|
+
- Update DISPATCH-PROGRESS.json **before** dispatch (status → "in_progress")
|
|
346
|
+
- Update DISPATCH-PROGRESS.json **after** completion based on Task Completion Report
|
|
347
|
+
- Track all dispatched tasks: completed / failed / pending counts
|
|
173
348
|
- If a skill fails, log the failure and continue with remaining tasks
|
|
174
|
-
- Wait for all
|
|
349
|
+
- Wait for all skills to complete before proceeding to Step 5 (Integration Check)
|
|
350
|
+
|
|
351
|
+
**Progress Update After Each Batch:**
|
|
352
|
+
After processing a batch of completed skills:
|
|
353
|
+
1. Read current DISPATCH-PROGRESS.json
|
|
354
|
+
2. Update counts: `completed`, `failed`, `pending`
|
|
355
|
+
3. Write updated DISPATCH-PROGRESS.json
|
|
356
|
+
4. Present progress summary to user:
|
|
357
|
+
```
|
|
358
|
+
Development Progress Update:
|
|
359
|
+
- Completed: {completed}/{total}
|
|
360
|
+
- Failed: {failed}
|
|
361
|
+
- Pending: {pending}
|
|
362
|
+
- In Progress: {running.size}
|
|
363
|
+
```
|
|
175
364
|
|
|
176
365
|
## Step 5: Integration Check
|
|
177
366
|
|
|
@@ -208,35 +397,118 @@ Document and report any integration issues found:
|
|
|
208
397
|
|
|
209
398
|
## Step 6: Delivery Report
|
|
210
399
|
|
|
211
|
-
Present comprehensive report
|
|
400
|
+
Present comprehensive report based on DISPATCH-PROGRESS.json:
|
|
401
|
+
|
|
402
|
+
### 6.1 Read Final Dispatch Progress
|
|
403
|
+
|
|
404
|
+
1. **Read DISPATCH-PROGRESS.json**:
|
|
405
|
+
- Path: `speccrew-workspace/iterations/{current}/04.development/DISPATCH-PROGRESS.json`
|
|
406
|
+
|
|
407
|
+
2. **Calculate final statistics**:
|
|
408
|
+
- Total: `tasks.length`
|
|
409
|
+
- Completed: `tasks.filter(t => t.status == "completed").length`
|
|
410
|
+
- Failed: `tasks.filter(t => t.status == "failed").length`
|
|
411
|
+
- Skipped: `tasks.filter(t => t.status == "skipped").length` (if any)
|
|
412
|
+
|
|
413
|
+
### 6.2 Per-Platform Summary
|
|
414
|
+
|
|
415
|
+
For each platform, group tasks and summarize:
|
|
416
|
+
```
|
|
417
|
+
Platform: {platform_id}
|
|
418
|
+
├── Completed: {count}
|
|
419
|
+
├── Failed: {count}
|
|
420
|
+
└── Output Location: 04.development/{platform_id}/
|
|
421
|
+
```
|
|
212
422
|
|
|
213
|
-
### 6.
|
|
423
|
+
### 6.3 Failed Tasks Report
|
|
214
424
|
|
|
215
|
-
|
|
216
|
-
- Tasks completed
|
|
217
|
-
- Tasks deviated (with reasons)
|
|
218
|
-
- Tasks blocked (with blockers)
|
|
219
|
-
- Files created/modified
|
|
425
|
+
If any tasks failed, list detailed information:
|
|
220
426
|
|
|
221
|
-
|
|
427
|
+
```
|
|
428
|
+
Failed Tasks:
|
|
429
|
+
├── Task: {task.id}
|
|
430
|
+
│ ├── Platform: {task.platform}
|
|
431
|
+
│ ├── Module: {task.module}
|
|
432
|
+
│ ├── Error: {task.error.description}
|
|
433
|
+
│ ├── Error Category: {task.error.category}
|
|
434
|
+
│ └── Recovery Hint: {task.error.recovery_hint}
|
|
435
|
+
└── ...
|
|
436
|
+
```
|
|
222
437
|
|
|
223
|
-
|
|
224
|
-
-
|
|
225
|
-
-
|
|
438
|
+
**Error Categories**:
|
|
439
|
+
- `DEPENDENCY_MISSING`: Required dependency not available
|
|
440
|
+
- `BUILD_FAILURE`: Compilation or build error
|
|
441
|
+
- `VALIDATION_ERROR`: Code validation failed
|
|
442
|
+
- `RUNTIME_ERROR`: Runtime exception
|
|
443
|
+
- `BLOCKED`: Blocked by external factor
|
|
226
444
|
|
|
227
|
-
### 6.
|
|
445
|
+
### 6.4 Overall Statistics
|
|
446
|
+
|
|
447
|
+
```
|
|
448
|
+
Development Stage Summary:
|
|
449
|
+
├── Total Modules: {total}
|
|
450
|
+
├── Completed: {completed} ({percentage}%)
|
|
451
|
+
├── Failed: {failed}
|
|
452
|
+
├── Skipped: {skipped}
|
|
453
|
+
├── Cross-platform Integration: {status}
|
|
454
|
+
└── Overall Status: {READY | CONDITIONAL | NOT READY}
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
### 6.5 Tech Debt Items
|
|
228
458
|
|
|
229
459
|
List tech debt recorded:
|
|
230
460
|
- Path: `iterations/{iter}/tech-debt/`
|
|
231
461
|
- Each item with: description, reason, suggested resolution
|
|
232
462
|
|
|
233
|
-
### 6.
|
|
463
|
+
### 6.6 Next Phase Readiness
|
|
234
464
|
|
|
235
465
|
Assess readiness for test phase:
|
|
236
466
|
- ✅ Ready: All tasks complete, integration verified
|
|
237
467
|
- ⚠️ Conditional: Minor issues to resolve before testing
|
|
238
468
|
- ❌ Not ready: Blockers must be resolved first
|
|
239
469
|
|
|
470
|
+
### 6.7 User Confirmation and Checkpoint Update
|
|
471
|
+
|
|
472
|
+
**Present delivery report to user and request confirmation.**
|
|
473
|
+
|
|
474
|
+
**After user confirms delivery**:
|
|
475
|
+
|
|
476
|
+
1. **Update .checkpoints.json**:
|
|
477
|
+
```json
|
|
478
|
+
{
|
|
479
|
+
"checkpoints": {
|
|
480
|
+
"delivery_report": {
|
|
481
|
+
"passed": true,
|
|
482
|
+
"confirmed_at": "2026-01-15T14:00:00Z",
|
|
483
|
+
"description": "Final delivery report"
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
2. **Update WORKFLOW-PROGRESS.json**:
|
|
490
|
+
```json
|
|
491
|
+
{
|
|
492
|
+
"current_stage": "05_system_test",
|
|
493
|
+
"stages": {
|
|
494
|
+
"04_development": {
|
|
495
|
+
"status": "confirmed",
|
|
496
|
+
"started_at": "...",
|
|
497
|
+
"completed_at": "2026-01-15T14:00:00Z",
|
|
498
|
+
"confirmed_at": "2026-01-15T14:00:00Z",
|
|
499
|
+
"outputs": [
|
|
500
|
+
"04.development/{platform_id}/{module}/"
|
|
501
|
+
]
|
|
502
|
+
},
|
|
503
|
+
"05_system_test": {
|
|
504
|
+
"status": "pending"
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
3. **Confirm stage transition**: Report to user that development stage is complete and system is ready for testing phase.
|
|
511
|
+
|
|
240
512
|
# Pipeline Position
|
|
241
513
|
|
|
242
514
|
**Upstream**: System Designer (receives `03.system-design/` output)
|
|
@@ -61,6 +61,49 @@ Report to the calling Agent:
|
|
|
61
61
|
- Output results or file paths
|
|
62
62
|
- Issues encountered (if any)
|
|
63
63
|
|
|
64
|
+
### 5. Completion Report
|
|
65
|
+
|
|
66
|
+
**MUST** output a structured completion report after finishing each assigned task. This report enables the calling Agent (e.g., System Designer, System Developer, Test Manager) to accurately update DISPATCH-PROGRESS.json.
|
|
67
|
+
|
|
68
|
+
#### Success Report Format
|
|
69
|
+
|
|
70
|
+
When the task completes successfully, output:
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
## Task Completion Report
|
|
74
|
+
- **Status**: SUCCESS
|
|
75
|
+
- **Task ID**: <task_id from dispatch>
|
|
76
|
+
- **Platform**: <platform_id>
|
|
77
|
+
- **Module**: <module_name> (if applicable)
|
|
78
|
+
- **Output Files**:
|
|
79
|
+
- <relative_path_to_output_file_1>
|
|
80
|
+
- <relative_path_to_output_file_2>
|
|
81
|
+
- **Summary**: <one-line description of what was done>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### Failure Report Format
|
|
85
|
+
|
|
86
|
+
When the task fails or is blocked, output:
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
## Task Completion Report
|
|
90
|
+
- **Status**: FAILED
|
|
91
|
+
- **Task ID**: <task_id from dispatch>
|
|
92
|
+
- **Platform**: <platform_id>
|
|
93
|
+
- **Module**: <module_name> (if applicable)
|
|
94
|
+
- **Error**: <structured error description>
|
|
95
|
+
- **Error Category**: <one of: DEPENDENCY_MISSING | BUILD_FAILURE | VALIDATION_ERROR | RUNTIME_ERROR | BLOCKED>
|
|
96
|
+
- **Partial Outputs**: <list of any files generated before failure, or "None">
|
|
97
|
+
- **Recovery Hint**: <suggestion for how to fix and retry>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### Report Requirements
|
|
101
|
+
|
|
102
|
+
- MUST output a completion report after each assigned task
|
|
103
|
+
- If multiple subtasks are assigned, report each one independently
|
|
104
|
+
- The calling Agent will parse these reports to update DISPATCH-PROGRESS.json
|
|
105
|
+
- Ensure Task ID matches the ID received from the dispatch context
|
|
106
|
+
|
|
64
107
|
## Constraints
|
|
65
108
|
|
|
66
109
|
**MUST DO:**
|
|
@@ -33,11 +33,8 @@ You understand the complete AI engineering closed loop: **speccrew-pm → speccr
|
|
|
33
33
|
|
|
34
34
|
| Skill | Trigger Scenario | Function |
|
|
35
35
|
|-------|------------------|----------|
|
|
36
|
-
| `speccrew-project-diagnosis` | "diagnose project", "evaluate tech stack", "analyze project structure" | Analyze project structure, diagnose technology stack, output standardized diagnosis report |
|
|
37
|
-
| `speccrew-create-agents` | "create Agent", "generate agents", "update agents" | Create or update tech-stack-specific Agents and project-level Skills based on diagnosis report |
|
|
38
36
|
| `speccrew-create-workspace` | "create workspace", "initialize workspace", "generate workspace structure" | Create speccrew-workspace directory structure, documentation directories, knowledge bases, and deliverable templates |
|
|
39
37
|
| `speccrew-skill-develop` | "create Skill", "update Skill", "add repetitive operation" | Create or update Skills based on repetitive operation patterns |
|
|
40
|
-
| `speccrew-workflow-diagnose` | "workflow stuck", "diagnose problem", "AI engineering workflow issue" | Analyze issues in AI engineering workflow and provide solutions |
|
|
41
38
|
| `speccrew-knowledge-bizs-dispatch` | "initialize bizs knowledge base", "generate business knowledge", "dispatch bizs knowledge tasks" | Dispatch **bizs** knowledge base generation with 4-stage pipeline (Feature Inventory → Feature Analysis → Module Summarize → System Summary) |
|
|
42
39
|
| `speccrew-knowledge-techs-dispatch` | "initialize techs knowledge base", "generate tech knowledge", "dispatch techs knowledge tasks" | Dispatch **techs** knowledge base generation with 3-stage pipeline (Platform Detection → Tech Doc Generation → Root Index) |
|
|
43
40
|
|
|
@@ -49,30 +46,125 @@ You understand the complete AI engineering closed loop: **speccrew-pm → speccr
|
|
|
49
46
|
|
|
50
47
|
# Workflow
|
|
51
48
|
|
|
52
|
-
##
|
|
49
|
+
## Phase 0: Pipeline Progress Awareness (Auto-Orchestration)
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
Before processing user requests, check the active iteration's workflow progress to enable context-aware scheduling and breakpoint resumption.
|
|
52
|
+
|
|
53
|
+
### 0.1 Read WORKFLOW-PROGRESS.json
|
|
54
|
+
|
|
55
|
+
Check if `iterations/{active-iter}/WORKFLOW-PROGRESS.json` exists. If not found, proceed to Phase 1 (backward compatible).
|
|
56
|
+
|
|
57
|
+
### 0.2 Display Pipeline Status
|
|
58
|
+
|
|
59
|
+
Parse and display the pipeline status in a visual format:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Pipeline Status: {iteration}
|
|
63
|
+
01 PRD: {icon} {status}
|
|
64
|
+
02 Feature Design: {icon} {status} {checkpoint_info}
|
|
65
|
+
03 System Design: {icon} {status} {dispatch_info}
|
|
66
|
+
04 Development: {icon} {status} {dispatch_info}
|
|
67
|
+
05 System Test: {icon} {status}
|
|
68
|
+
|
|
69
|
+
Legend: ✅ Confirmed 🔄 In Progress ⏳ Pending ⚠️ Failed
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Status Icons:**
|
|
73
|
+
- `confirmed` → ✅
|
|
74
|
+
- `completed` → ✔️ (awaiting confirmation)
|
|
75
|
+
- `in_progress` → 🔄
|
|
76
|
+
- `pending` → ⏳
|
|
77
|
+
- `failed` → ⚠️
|
|
78
|
+
|
|
79
|
+
### 0.3 Checkpoint Details for In-Progress Stages
|
|
80
|
+
|
|
81
|
+
For stages with `status: in_progress`, read `.checkpoints.json` from the stage directory:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Checkpoint Progress for {stage}:
|
|
85
|
+
✓ {checkpoint_name}: {description}
|
|
86
|
+
⏳ {checkpoint_name}: {description}
|
|
87
|
+
✗ {checkpoint_name}: {description}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### 0.4 Dispatch Progress for Parallel Stages
|
|
91
|
+
|
|
92
|
+
For stages with `DISPATCH-PROGRESS.json`, display task statistics:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
Dispatch Progress for {stage}:
|
|
96
|
+
Total: {total} | Completed: {completed} | Failed: {failed} | Pending: {pending}
|
|
97
|
+
|
|
98
|
+
Failed Tasks:
|
|
99
|
+
- [{platform}/{module}] {skill}: {error_summary}
|
|
100
|
+
|
|
101
|
+
Pending Tasks:
|
|
102
|
+
- [{platform}/{module}] {skill}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 0.5 Auto-Orchestration Decision
|
|
106
|
+
|
|
107
|
+
**If user requests "auto" / "自动推进" / "continue" / "resume":**
|
|
108
|
+
|
|
109
|
+
1. Identify the current active stage (first `in_progress` or earliest `pending` after confirmed stages)
|
|
110
|
+
2. Determine the appropriate Skill to invoke based on stage mapping:
|
|
111
|
+
|
|
112
|
+
| Stage | Skill to Invoke | Notes |
|
|
113
|
+
|-------|-----------------|-------|
|
|
114
|
+
| 01_prd | Prompt user to talk to PM Agent | Business requirements handled by PM |
|
|
115
|
+
| 02_feature_design | Prompt user to talk to Feature Designer | Feature design handled by dedicated Agent |
|
|
116
|
+
| 03_system_design | `speccrew-system-designer` | Tech-stack specific, dynamically created |
|
|
117
|
+
| 04_development | `speccrew-system-developer` | Tech-stack specific, dynamically created |
|
|
118
|
+
| 05_system_test | `speccrew-test-manager` | Test phase management |
|
|
119
|
+
|
|
120
|
+
3. **For in_progress stages with failed tasks**: Suggest recovery options:
|
|
121
|
+
- Retry failed tasks
|
|
122
|
+
- Skip and continue
|
|
123
|
+
- Diagnose issues
|
|
124
|
+
|
|
125
|
+
4. **For confirmed stages**: Move to next pending stage automatically
|
|
126
|
+
|
|
127
|
+
**If user does NOT request auto mode:**
|
|
128
|
+
|
|
129
|
+
1. Display current pipeline status
|
|
130
|
+
2. Suggest next actions:
|
|
131
|
+
- "Type 'auto' to automatically proceed to next stage"
|
|
132
|
+
- "Specify which stage to focus on"
|
|
133
|
+
- "Ask for diagnosis if stage is failed"
|
|
134
|
+
|
|
135
|
+
### 0.6 Breakpoint Resumption Logic
|
|
136
|
+
|
|
137
|
+
| Scenario | Action |
|
|
138
|
+
|----------|--------|
|
|
139
|
+
| Stage `in_progress` with checkpoints | Resume from last unconfirmed checkpoint |
|
|
140
|
+
| Stage `in_progress` with failed dispatch tasks | Report failed tasks, suggest retry or diagnosis |
|
|
141
|
+
| Stage `failed` | Suggest manual intervention |
|
|
142
|
+
| All stages `confirmed` | Report pipeline completion |
|
|
143
|
+
| No WORKFLOW-PROGRESS.json | Proceed with Phase 1 (standard intent matching) |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Phase 1: Identify User Intent
|
|
148
|
+
|
|
149
|
+
Match user input to corresponding Skill (executed if no active pipeline or after Phase 0 completion):
|
|
55
150
|
|
|
56
|
-
- **Project initialization related** → Invoke `speccrew-project-diagnosis`
|
|
57
|
-
- **Agent creation/update related** → Invoke `speccrew-create-agents`
|
|
58
151
|
- **Workspace structure creation related** → Invoke `speccrew-create-workspace`
|
|
59
152
|
- **Skill development related** → Invoke `speccrew-skill-develop`
|
|
60
|
-
- **Workflow diagnosis related** → Invoke `speccrew-workflow-diagnose`
|
|
61
153
|
- **Bizs knowledge base related** → Invoke `speccrew-knowledge-bizs-dispatch`
|
|
62
154
|
- **Techs knowledge base related** → Invoke `speccrew-knowledge-techs-dispatch`
|
|
63
155
|
- **Testing phase / System test related** → Invoke `speccrew-test-manager`
|
|
64
156
|
|
|
65
|
-
## 2
|
|
157
|
+
## Phase 2: Invoke Corresponding Skill
|
|
66
158
|
|
|
67
159
|
Find and read `{skill-name}/SKILL.md` file content in the skills directory, strictly follow steps defined in Skill to execute. If creating or improving Skill files is needed, use Write capability to write to the skills directory.
|
|
68
160
|
|
|
69
|
-
## 3
|
|
161
|
+
## Phase 3: When Intent Cannot Be Matched
|
|
70
162
|
|
|
71
163
|
If user intent cannot be clearly matched to any Skill:
|
|
72
164
|
1. Explain available Skills and their applicable scenarios to user
|
|
73
165
|
2. Ask user to clarify requirements, do not guess and execute
|
|
74
166
|
|
|
75
|
-
## 4
|
|
167
|
+
## Phase 4: Output Execution Results
|
|
76
168
|
|
|
77
169
|
Report execution results to user, and suggest next steps.
|
|
78
170
|
|
|
@@ -82,6 +174,10 @@ Report execution results to user, and suggest next steps.
|
|
|
82
174
|
- Accurately identify user intent and invoke correct Skill
|
|
83
175
|
- Check if Skill file exists before execution
|
|
84
176
|
- Report results to user after execution completes
|
|
177
|
+
- **Read WORKFLOW-PROGRESS.json at the start of each session** to enable context-aware scheduling
|
|
178
|
+
- **Use Skill tool** (not Agent tool) to invoke Skills for pipeline orchestration
|
|
179
|
+
- Display pipeline status visually when WORKFLOW-PROGRESS.json exists
|
|
180
|
+
- Support both auto-orchestration mode (when user requests "auto") and manual mode
|
|
85
181
|
|
|
86
182
|
**Must NOT Do:**
|
|
87
183
|
- Do not directly execute specific steps in Skill (must read Skill file first)
|
|
@@ -89,4 +185,5 @@ Report execution results to user, and suggest next steps.
|
|
|
89
185
|
- Do not mix responsibilities of multiple Skills
|
|
90
186
|
- Do not trigger business process Skills (PRD, Solution, Design, Dev related), these are loaded by corresponding role Agents themselves
|
|
91
187
|
- Do not handle business development requests (feature requirements, code modifications, bug fixes), should prompt user to talk directly to Qoder
|
|
188
|
+
- Do not delete or modify WORKFLOW-PROGRESS.json directly (read-only for status display)
|
|
92
189
|
|