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.
@@ -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
- - `skill_name`: Per-platform design skill based on platform type (see 5.1)
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
- - skill_name: {task.skill_name}
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
- - skill_name: `speccrew-dev-review`
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
- - skill_name: {task.skill_name}
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
- When you receive a `skill_name` parameter, resolve the full skill path by:
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 which IDE directory exists in the project root: `.qoder/`, `.cursor/`, `.vscode/`, `.idea/`, `.speccrew/` etc.
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. Use Skill Discovery to resolve the full skill path
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
- - `skill_name`: `speccrew-test-case-design`
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
- **Checkpoint A: Present task checklist to user for confirmation before proceeding.**
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
- | **Checkpoint A Required** | Must confirm task list with user before implementation |
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
- - [ ] Checkpoint A passed: task list confirmed with user
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
- **Checkpoint A: Present task extraction summary to user for confirmation.**
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
- **Ask user to confirm:**
294
- 1. Are all IPC channels working correctly?
295
- 2. Is context isolation properly configured?
296
- 3. Do native integrations work as expected?
297
- 4. Are there any security concerns?
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
- - [ ] Checkpoint A passed: task extraction confirmed with user
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 Checkpoint: User Confirmation
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 confirmed by user
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
- **Checkpoint A: Present task extraction summary to user for confirmation.**
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
- - [ ] Checkpoint A passed: task extraction confirmed with user
273
+ - [ ] Task list extracted and recorded in task file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccrew",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Spec-Driven Development toolkit for AI-powered IDEs",
5
5
  "author": "charlesmu99",
6
6
  "repository": {