speccrew 0.2.5 → 0.2.6
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-system-designer.md +17 -1
- package/.speccrew/agents/speccrew-system-developer.md +39 -4
- package/.speccrew/agents/speccrew-task-worker.md +23 -5
- package/.speccrew/agents/speccrew-test-manager.md +19 -1
- package/.speccrew/skills/speccrew-dev-backend/SKILL.md +3 -3
- package/.speccrew/skills/speccrew-dev-desktop/SKILL.md +7 -7
- package/.speccrew/skills/speccrew-dev-frontend/SKILL.md +2 -8
- package/.speccrew/skills/speccrew-dev-mobile/SKILL.md +2 -2
- package/package.json +1 -1
|
@@ -75,6 +75,22 @@ If WORKFLOW-PROGRESS.json does not exist:
|
|
|
75
75
|
|
|
76
76
|
---
|
|
77
77
|
|
|
78
|
+
## Phase 0.5: IDE Directory Detection
|
|
79
|
+
|
|
80
|
+
Before dispatching workers, detect the IDE directory for skill path resolution:
|
|
81
|
+
|
|
82
|
+
1. **Check IDE directories in priority order**:
|
|
83
|
+
- `.qoder/` → `.cursor/` → `.claude/` → `.speccrew/`
|
|
84
|
+
|
|
85
|
+
2. **Use the first existing directory**:
|
|
86
|
+
- Set `ide_dir = detected IDE directory` (e.g., `.qoder`)
|
|
87
|
+
- Set `ide_skills_dir = {ide_dir}/skills`
|
|
88
|
+
|
|
89
|
+
3. **Verify skills directory exists**:
|
|
90
|
+
- If `{ide_skills_dir}` does not exist, report error and stop
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
78
94
|
## Phase 1: Preparation
|
|
79
95
|
|
|
80
96
|
When user requests to start system design (and Phase 0 gates are passed):
|
|
@@ -247,7 +263,7 @@ When multiple Feature Specs and/or multiple platforms exist, create a matrix of
|
|
|
247
263
|
| Feature Spec B | Worker 4 | Worker 5 | Worker 6 |
|
|
248
264
|
|
|
249
265
|
Each worker receives:
|
|
250
|
-
- `
|
|
266
|
+
- `skill_path`: {ide_skills_dir}/{skill_name}/SKILL.md (per-platform design skill based on platform type, see 5.1)
|
|
251
267
|
- `context`:
|
|
252
268
|
- `task_id`: Unique task identifier (e.g., `sd-web-vue-feature-a`)
|
|
253
269
|
- `platform_id`: Platform identifier from techs-manifest
|
|
@@ -89,6 +89,22 @@ If WORKFLOW-PROGRESS.json does not exist:
|
|
|
89
89
|
- Do not block execution due to missing progress files
|
|
90
90
|
- Log informational message: "Progress tracking not available (WORKFLOW-PROGRESS.json not found). Running in compatibility mode."
|
|
91
91
|
|
|
92
|
+
## Phase 0.5: IDE Directory Detection
|
|
93
|
+
|
|
94
|
+
Before dispatching workers, detect the IDE directory for skill path resolution:
|
|
95
|
+
|
|
96
|
+
1. **Check IDE directories in priority order**:
|
|
97
|
+
- `.qoder/` → `.cursor/` → `.claude/` → `.speccrew/`
|
|
98
|
+
|
|
99
|
+
2. **Use the first existing directory**:
|
|
100
|
+
- Set `ide_dir = detected IDE directory` (e.g., `.qoder`)
|
|
101
|
+
- Set `ide_skills_dir = {ide_dir}/skills`
|
|
102
|
+
|
|
103
|
+
3. **Verify skills directory exists**:
|
|
104
|
+
- If `{ide_skills_dir}` does not exist, report error and stop
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
92
108
|
## Step 1: Read System Design
|
|
93
109
|
|
|
94
110
|
When user requests to start development:
|
|
@@ -314,7 +330,7 @@ while pending is not empty or running is not empty:
|
|
|
314
330
|
|
|
315
331
|
// Dispatch speccrew-task-worker agent (NOT Skill tool directly)
|
|
316
332
|
Invoke `speccrew-task-worker` agent with:
|
|
317
|
-
-
|
|
333
|
+
- skill_path: {ide_skills_dir}/{task.skill_name}/SKILL.md
|
|
318
334
|
- context:
|
|
319
335
|
- platform_id: {task.platform_id}
|
|
320
336
|
- iteration_path: {task.iteration_path}
|
|
@@ -373,12 +389,19 @@ After processing a batch of completed workers:
|
|
|
373
389
|
- In Progress: {running.size}
|
|
374
390
|
```
|
|
375
391
|
|
|
376
|
-
### 4.4: Review Verification
|
|
392
|
+
### 4.4: Review Verification (MANDATORY)
|
|
393
|
+
|
|
394
|
+
> **MANDATORY**: Review is NOT optional. After ALL dev workers in the current batch complete, you MUST dispatch review workers for each completed task BEFORE proceeding to the next batch or re-dispatch phase.
|
|
395
|
+
|
|
396
|
+
**Review Dispatch Rule:**
|
|
397
|
+
- Every task with status `completed` or `partial` MUST have a review worker dispatched
|
|
398
|
+
- NO task may proceed to "completed" status without passing review
|
|
399
|
+
- Review workers run AFTER all dev workers in the batch complete
|
|
377
400
|
|
|
378
401
|
After each dev worker completes (status = "in_review"), dispatch a **separate** `speccrew-task-worker` agent to run the `speccrew-dev-review` skill:
|
|
379
402
|
|
|
380
403
|
Invoke `speccrew-task-worker` agent with:
|
|
381
|
-
-
|
|
404
|
+
- skill_path: {ide_skills_dir}/speccrew-dev-review/SKILL.md
|
|
382
405
|
- context:
|
|
383
406
|
- design_doc_path: {task.module_design_path}
|
|
384
407
|
- implementation_report_path: {dev_worker_report_path}
|
|
@@ -428,6 +451,18 @@ for each task in review_queue:
|
|
|
428
451
|
|
|
429
452
|
### 4.5: Re-dispatch Partial/Failed Tasks
|
|
430
453
|
|
|
454
|
+
**Batch Loop Structure (REQUIRED):**
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
For each batch:
|
|
458
|
+
1. Dispatch dev workers (Phase 4.3)
|
|
459
|
+
2. Wait for ALL dev workers to complete
|
|
460
|
+
3. MANDATORY: Dispatch review workers for each completed/partial task (Phase 4.4)
|
|
461
|
+
4. Wait for ALL review workers to complete
|
|
462
|
+
5. Re-dispatch partial/failed tasks (Phase 4.5)
|
|
463
|
+
6. Move to next batch
|
|
464
|
+
```
|
|
465
|
+
|
|
431
466
|
After all initial dev + review cycles complete for the current batch:
|
|
432
467
|
|
|
433
468
|
1. **Query partial/failed tasks:**
|
|
@@ -476,7 +511,7 @@ for each task in redispatch_queue:
|
|
|
476
511
|
|
|
477
512
|
// Dispatch dev worker with supplemental context
|
|
478
513
|
Invoke `speccrew-task-worker` agent with:
|
|
479
|
-
-
|
|
514
|
+
- skill_path: {ide_skills_dir}/{task.skill_name}/SKILL.md
|
|
480
515
|
- context:
|
|
481
516
|
- (original context)
|
|
482
517
|
- previous_review_path: {review_report_path}
|
|
@@ -19,19 +19,37 @@ You are a generic task execution Worker, focused on executing a single task. Typ
|
|
|
19
19
|
|
|
20
20
|
### 1. Receive Task
|
|
21
21
|
|
|
22
|
+
### ⚠️ AUTONOMOUS EXECUTION — NO CONFIRMATION
|
|
23
|
+
|
|
24
|
+
- **NEVER** pause to ask for user confirmation before executing
|
|
25
|
+
- **NEVER** present task lists with "please confirm" or "请确认" prompts
|
|
26
|
+
- **NEVER** ask user to review or approve plans before proceeding
|
|
27
|
+
- Execute the skill instructions immediately and autonomously
|
|
28
|
+
- If the skill document contains a "confirm task list" or "user approval" step, **skip it** and proceed directly to implementation
|
|
29
|
+
- You are a fully autonomous worker — your output should be completed work, not proposals
|
|
30
|
+
|
|
22
31
|
Receive from the calling Agent:
|
|
32
|
+
- `skill_path`: Full relative path to SKILL.md file (optional, e.g., `.qoder/skills/speccrew-knowledge-bizs-ui-analyze/SKILL.md`)
|
|
33
|
+
- **PRIORITY**: If provided, use this path directly and skip Skill Discovery
|
|
23
34
|
- `skill_name`: Skill name identifier (optional, e.g., `speccrew-knowledge-bizs-ui-analyze`)
|
|
35
|
+
- Used only when `skill_path` is not provided (backward compatibility)
|
|
24
36
|
- `context`: Task context parameters (required, such as module name, input path, output path, task description, etc.)
|
|
25
37
|
|
|
26
38
|
### 2. Skill Discovery
|
|
27
39
|
|
|
28
|
-
|
|
40
|
+
**If `skill_path` is provided (RECOMMENDED):**
|
|
41
|
+
1. Use the provided `skill_path` directly
|
|
42
|
+
2. Read and execute the SKILL.md at that path
|
|
43
|
+
3. If file not found, report error with the provided path
|
|
44
|
+
|
|
45
|
+
**If only `skill_name` is provided (backward compatibility):**
|
|
29
46
|
|
|
30
47
|
1. **Determine the IDE skills root directory** for the current workspace:
|
|
31
|
-
- Check
|
|
48
|
+
- Check IDE directories in priority order: `.qoder/` → `.cursor/` → `.claude/` → `.speccrew/`
|
|
49
|
+
- Use the first existing directory as `ide_dir`
|
|
32
50
|
- The skills directory is: `{ide_dir}/skills/`
|
|
33
51
|
|
|
34
|
-
2. **Build the full skill path
|
|
52
|
+
2. **Build the full skill path directly** (NO glob search):
|
|
35
53
|
- `{ide_skills_root}/{skill_name}/SKILL.md`
|
|
36
54
|
- Example: If IDE dir is `.qoder/` and skill_name is `speccrew-knowledge-bizs-ui-analyze`
|
|
37
55
|
→ `.qoder/skills/speccrew-knowledge-bizs-ui-analyze/SKILL.md`
|
|
@@ -42,8 +60,8 @@ If the skill file is not found, report an error with the attempted paths.
|
|
|
42
60
|
|
|
43
61
|
### 3. Execute Task
|
|
44
62
|
|
|
45
|
-
**If `skill_name` is provided:**
|
|
46
|
-
1.
|
|
63
|
+
**If `skill_path` or `skill_name` is provided:**
|
|
64
|
+
1. If `skill_path` is provided, use it directly; otherwise use Skill Discovery
|
|
47
65
|
2. If Skill file does not exist, immediately report error
|
|
48
66
|
3. If `context` parameters exist, substitute them into placeholders in the Skill
|
|
49
67
|
4. Strictly execute according to the workflow defined in the Skill
|
|
@@ -85,6 +85,22 @@ If `WORKFLOW-PROGRESS.json` does not exist:
|
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
88
|
+
## Phase 0.5: IDE Directory Detection
|
|
89
|
+
|
|
90
|
+
Before dispatching workers, detect the IDE directory for skill path resolution:
|
|
91
|
+
|
|
92
|
+
1. **Check IDE directories in priority order**:
|
|
93
|
+
- `.qoder/` → `.cursor/` → `.claude/` → `.speccrew/`
|
|
94
|
+
|
|
95
|
+
2. **Use the first existing directory**:
|
|
96
|
+
- Set `ide_dir = detected IDE directory` (e.g., `.qoder`)
|
|
97
|
+
- Set `ide_skills_dir = {ide_dir}/skills`
|
|
98
|
+
|
|
99
|
+
3. **Verify skills directory exists**:
|
|
100
|
+
- If `{ide_skills_dir}` does not exist, report error and stop
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
88
104
|
## Phase 1: Preparation
|
|
89
105
|
|
|
90
106
|
When user requests to start testing:
|
|
@@ -195,7 +211,7 @@ Or use `--tasks-file` to load from a JSON file.
|
|
|
195
211
|
|
|
196
212
|
Dispatch `speccrew-task-worker` agents for `speccrew-test-case-design` for each platform in parallel:
|
|
197
213
|
- Each worker receives:
|
|
198
|
-
- `
|
|
214
|
+
- `skill_path`: {ide_skills_dir}/speccrew-test-case-design/SKILL.md
|
|
199
215
|
- `context`:
|
|
200
216
|
- `master_feature_spec_path`: Path to the master feature spec (for overall context)
|
|
201
217
|
- `platform_system_design_path`: Path to one platform's system design document
|
|
@@ -281,6 +297,7 @@ node speccrew-workspace/scripts/update-progress.js init --file speccrew-workspac
|
|
|
281
297
|
**Dispatch Workers:**
|
|
282
298
|
|
|
283
299
|
Dispatch `speccrew-task-worker` agents for `speccrew-test-code-gen` for each platform in parallel:
|
|
300
|
+
- `skill_path`: {ide_skills_dir}/speccrew-test-code-gen/SKILL.md
|
|
284
301
|
- `context`:
|
|
285
302
|
- `test_cases_path`: Path to the platform-specific test cases document
|
|
286
303
|
- `system_design_path`: Path to the platform system design document
|
|
@@ -361,6 +378,7 @@ node speccrew-workspace/scripts/update-progress.js init --file speccrew-workspac
|
|
|
361
378
|
**Dispatch Workers:**
|
|
362
379
|
|
|
363
380
|
Dispatch `speccrew-task-worker` agents for `speccrew-test-execute` for each platform in parallel:
|
|
381
|
+
- `skill_path`: {ide_skills_dir}/speccrew-test-execute/SKILL.md
|
|
364
382
|
- `context`:
|
|
365
383
|
- `test_code_path`: Path to the platform test code directory
|
|
366
384
|
- `platform_id`: Platform identifier
|
|
@@ -89,7 +89,7 @@ Parse design documents to extract all implementation tasks.
|
|
|
89
89
|
|
|
90
90
|
> Status: ⏳ Pending / 🔄 In Progress / ✅ Complete / 🚫 Blocked
|
|
91
91
|
|
|
92
|
-
**
|
|
92
|
+
**Proceed directly to implementation — no user confirmation required.**
|
|
93
93
|
|
|
94
94
|
## Step 4: Task-by-Task Implementation
|
|
95
95
|
|
|
@@ -244,7 +244,7 @@ If the skill fails at any step:
|
|
|
244
244
|
| **Blueprint-Driven** | Implement directly from system design, no template filling for source code |
|
|
245
245
|
| **Actual Framework Syntax** | Use real framework annotations/syntax from techs knowledge |
|
|
246
246
|
| **API Contract is READ-ONLY** | Do NOT modify API Contract; report issues if found |
|
|
247
|
-
| **
|
|
247
|
+
| **Task List Required** | Must extract and record task list before implementation |
|
|
248
248
|
| **Per-Task Quality Gates** | Each task must pass local checks before proceeding |
|
|
249
249
|
| **Deviation Recording** | ALL deviations from design must be documented |
|
|
250
250
|
| **Tech Debt Tracking** | Suboptimal solutions written to tech-debt/ directory |
|
|
@@ -265,7 +265,7 @@ When generating Mermaid diagrams, follow compatibility guidelines:
|
|
|
265
265
|
|
|
266
266
|
- [ ] All design documents and techs knowledge loaded before implementation
|
|
267
267
|
- [ ] Task record file created with complete checklist
|
|
268
|
-
- [ ]
|
|
268
|
+
- [ ] Task list extracted and recorded in task file
|
|
269
269
|
- [ ] Each task marked in progress before coding
|
|
270
270
|
- [ ] Local checks run after each task (compile/lint/test/smoke)
|
|
271
271
|
- [ ] Code follows conventions-data.md ORM patterns
|
|
@@ -108,7 +108,7 @@ Use `DT-` prefix for desktop tasks: `DT-001`, `DT-002`, etc.
|
|
|
108
108
|
|
|
109
109
|
**Status**: Pending / In Progress / Completed / Blocked
|
|
110
110
|
|
|
111
|
-
**
|
|
111
|
+
**Proceed directly to implementation — no user confirmation required.**
|
|
112
112
|
|
|
113
113
|
## Step 4: Implement Tasks
|
|
114
114
|
|
|
@@ -290,11 +290,11 @@ If the skill fails at any step:
|
|
|
290
290
|
- `RUNTIME_ERROR`: App crash on launch, runtime exception, IPC communication failure
|
|
291
291
|
- `BLOCKED`: Blocked by external dependency, native module issue, or unresolved design issue
|
|
292
292
|
|
|
293
|
-
**
|
|
294
|
-
1.
|
|
295
|
-
2.
|
|
296
|
-
3.
|
|
297
|
-
4.
|
|
293
|
+
**Verify automatically:**
|
|
294
|
+
1. All IPC channels working correctly
|
|
295
|
+
2. Context isolation properly configured
|
|
296
|
+
3. Native integrations working as expected
|
|
297
|
+
4. No security concerns introduced
|
|
298
298
|
|
|
299
299
|
# Key Rules
|
|
300
300
|
|
|
@@ -315,7 +315,7 @@ If the skill fails at any step:
|
|
|
315
315
|
- [ ] Design document loaded before implementation (single module design_doc_path)
|
|
316
316
|
- [ ] Existing code structure analyzed via Glob/Grep
|
|
317
317
|
- [ ] Task record created with complete checklist
|
|
318
|
-
- [ ]
|
|
318
|
+
- [ ] Task list extracted and recorded in task file
|
|
319
319
|
- [ ] All modules in the design document covered in task list
|
|
320
320
|
- [ ] All IPC channels from design implemented
|
|
321
321
|
- [ ] Context isolation enabled for all windows
|
|
@@ -72,13 +72,7 @@ From the module design document, identify:
|
|
|
72
72
|
| FE-001 | {module} | {description} | {file paths from design} | {depends on} | Pending |
|
|
73
73
|
| FE-002 | {module} | {description} | {file paths from design} | {depends on} | Pending |
|
|
74
74
|
|
|
75
|
-
### 3.3
|
|
76
|
-
|
|
77
|
-
**Present task checklist to user for confirmation before proceeding.**
|
|
78
|
-
|
|
79
|
-
Wait for user approval before writing any code.
|
|
80
|
-
|
|
81
|
-
### 3.4 Write Initial Task Record
|
|
75
|
+
### 3.3 Write Initial Task Record
|
|
82
76
|
|
|
83
77
|
Create the task record using template-fill workflow:
|
|
84
78
|
|
|
@@ -269,7 +263,7 @@ If the skill fails at any step:
|
|
|
269
263
|
# Checklist
|
|
270
264
|
|
|
271
265
|
- [ ] All design documents loaded before implementation
|
|
272
|
-
- [ ] Task checklist extracted and
|
|
266
|
+
- [ ] Task checklist extracted and recorded
|
|
273
267
|
- [ ] Task record file created at `04.development/{platform_id}/`
|
|
274
268
|
- [ ] Each task implemented following design blueprint
|
|
275
269
|
- [ ] Local checks passed (lint, type, test) for each task
|
|
@@ -90,7 +90,7 @@ Use `MB-001`, `MB-002`, etc. for mobile tasks.
|
|
|
90
90
|
|
|
91
91
|
**Status Values**: ⏳ Pending | 🔄 In Progress | ✅ Complete | 🚫 Blocked
|
|
92
92
|
|
|
93
|
-
**
|
|
93
|
+
**Proceed directly to implementation — no user confirmation required.**
|
|
94
94
|
|
|
95
95
|
## Step 4: Create Task Record File
|
|
96
96
|
|
|
@@ -270,4 +270,4 @@ If the skill fails at any step:
|
|
|
270
270
|
- [ ] All deviations recorded
|
|
271
271
|
- [ ] Technical debt written to `iterations/{iter}/tech-debt/`
|
|
272
272
|
- [ ] Task record status updated to complete
|
|
273
|
-
- [ ]
|
|
273
|
+
- [ ] Task list extracted and recorded in task file
|