speccrew 0.2.5 → 0.2.7

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:
@@ -179,6 +195,16 @@ If any pre-check fails:
179
195
 
180
196
  ## Step 4: Dispatch Per-Module Dev Skills
181
197
 
198
+ #### ⚠️ Stage 4 Directory Constraint
199
+
200
+ All development outputs MUST go under `iterations/{iter}/04.development/`.
201
+ - Task records: `04.development/{platform_id}/{module}-task.md`
202
+ - Review reports: `04.development/{platform_id}/{module}-review-report.md`
203
+ - Dispatch progress: `04.development/DISPATCH-PROGRESS.json`
204
+ - Checkpoints: `04.development/.checkpoints.json`
205
+
206
+ **FORBIDDEN directory names**: `04.dev-report/`, `04.dev-reports/`, `04.implementation/`, or any other variant.
207
+
182
208
  > ⛔ **NO DIRECT CODING**: System Developer MUST NOT use file creation/editing tools to write application code. Every module implementation MUST be dispatched to a `speccrew-task-worker` agent running a dev skill (speccrew-dev-backend/frontend/mobile/desktop). System Developer's role in this phase is EXCLUSIVELY: task list creation, worker dispatch, progress tracking, and review coordination.
183
209
 
184
210
  > **IMPORTANT**: Dispatch `speccrew-task-worker` agents (via Agent tool) for parallel module development. Do NOT call dev skills directly — each module MUST run in an independent Worker Agent for progress visibility and error isolation.
@@ -314,7 +340,7 @@ while pending is not empty or running is not empty:
314
340
 
315
341
  // Dispatch speccrew-task-worker agent (NOT Skill tool directly)
316
342
  Invoke `speccrew-task-worker` agent with:
317
- - skill_name: {task.skill_name}
343
+ - skill_path: {ide_skills_dir}/{task.skill_name}/SKILL.md
318
344
  - context:
319
345
  - platform_id: {task.platform_id}
320
346
  - iteration_path: {task.iteration_path}
@@ -373,12 +399,19 @@ After processing a batch of completed workers:
373
399
  - In Progress: {running.size}
374
400
  ```
375
401
 
376
- ### 4.4: Review Verification
402
+ ### 4.4: Review Verification (MANDATORY)
403
+
404
+ > **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.
405
+
406
+ **Review Dispatch Rule:**
407
+ - Every task with status `completed` or `partial` MUST have a review worker dispatched
408
+ - NO task may proceed to "completed" status without passing review
409
+ - Review workers run AFTER all dev workers in the batch complete
377
410
 
378
411
  After each dev worker completes (status = "in_review"), dispatch a **separate** `speccrew-task-worker` agent to run the `speccrew-dev-review` skill:
379
412
 
380
413
  Invoke `speccrew-task-worker` agent with:
381
- - skill_name: `speccrew-dev-review`
414
+ - skill_path: {ide_skills_dir}/speccrew-dev-review/SKILL.md
382
415
  - context:
383
416
  - design_doc_path: {task.module_design_path}
384
417
  - implementation_report_path: {dev_worker_report_path}
@@ -428,6 +461,18 @@ for each task in review_queue:
428
461
 
429
462
  ### 4.5: Re-dispatch Partial/Failed Tasks
430
463
 
464
+ **Batch Loop Structure (REQUIRED):**
465
+
466
+ ```
467
+ For each batch:
468
+ 1. Dispatch dev workers (Phase 4.3)
469
+ 2. Wait for ALL dev workers to complete
470
+ 3. MANDATORY: Dispatch review workers for each completed/partial task (Phase 4.4)
471
+ 4. Wait for ALL review workers to complete
472
+ 5. Re-dispatch partial/failed tasks (Phase 4.5)
473
+ 6. Move to next batch
474
+ ```
475
+
431
476
  After all initial dev + review cycles complete for the current batch:
432
477
 
433
478
  1. **Query partial/failed tasks:**
@@ -476,7 +521,7 @@ for each task in redispatch_queue:
476
521
 
477
522
  // Dispatch dev worker with supplemental context
478
523
  Invoke `speccrew-task-worker` agent with:
479
- - skill_name: {task.skill_name}
524
+ - skill_path: {ide_skills_dir}/{task.skill_name}/SKILL.md
480
525
  - context:
481
526
  - (original context)
482
527
  - 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
@@ -16,7 +16,7 @@ tools: Read, Grep, Glob
16
16
  | Parameter | Required | Description |
17
17
  |-----------|----------|-------------|
18
18
  | `design_doc_path` | Yes | Path to module design document (e.g., `03.system-design/module-designs/backend-spring/M6-employee-design.md`) |
19
- | `implementation_report_path` | Yes | Path to development report (e.g., `04.dev-reports/backend-spring/M6-employee-implementation-report.md`) |
19
+ | `implementation_report_path` | Yes | Path to development report (e.g., `04.development/backend-spring/M6-employee-implementation-report.md`) |
20
20
  | `source_root` | Yes | Root directory of source code to review |
21
21
  | `platform_id` | Yes | Platform identifier (backend-spring/web-vue/mobile-uniapp/desktop-tauri) |
22
22
  | `api_contract_path` | No | Path to API contract file for endpoint validation |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccrew",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "description": "Spec-Driven Development toolkit for AI-powered IDEs",
5
5
  "author": "charlesmu99",
6
6
  "repository": {
@@ -102,6 +102,21 @@ iterations/
102
102
  | 系统设计 | `03.system-design/` | 详细设计、数据库设计、接口设计 |
103
103
  | 开发 | `04.development/` | 代码实现、开发日志、技术债记录 |
104
104
  | 测试 | `05.test/` | 测试用例、测试报告 |
105
+
106
+ #### Stage 4 详细目录结构 (`04.development/`)
107
+
108
+ ```
109
+ 04.development/
110
+ ├── .checkpoints.json # Stage progress checkpoints
111
+ ├── DISPATCH-PROGRESS.json # Task dispatch and execution tracking
112
+ ├── {platform_id}/ # Grouped by platform (e.g., backend-spring, web-vue)
113
+ │ ├── {module}-task.md # Development task record (created by Dev Skill)
114
+ │ └── {module}-review-report.md # Code review report (created by Review Skill)
115
+ └── delivery-report.md # Final delivery summary
116
+ ```
117
+
118
+ > ⚠️ **MANDATORY**: All Stage 4 outputs MUST use `04.development/` as the top-level directory.
119
+ > The following variants are **FORBIDDEN**: `04.dev-report/`, `04.dev-reports/`, `04.implementation/`, or any other `04.*` name.
105
120
  | 交付 | `06.delivery/` | 部署文档、验收报告、交付清单 |
106
121
  ```
107
122