speccrew 0.2.7 → 0.3.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.
Files changed (26) hide show
  1. package/.speccrew/agents/speccrew-feature-designer.md +220 -27
  2. package/.speccrew/agents/speccrew-system-designer.md +237 -31
  3. package/.speccrew/agents/speccrew-system-developer.md +44 -10
  4. package/.speccrew/skills/speccrew-dev-backend/SKILL.md +15 -1
  5. package/.speccrew/skills/speccrew-dev-desktop/SKILL.md +36 -7
  6. package/.speccrew/skills/speccrew-dev-review/SKILL.md +16 -7
  7. package/.speccrew/skills/speccrew-fd-api-contract/SKILL.md +150 -35
  8. package/.speccrew/skills/speccrew-fd-feature-design/SKILL.md +140 -18
  9. package/.speccrew/skills/speccrew-fd-feature-design/templates/FEATURE-SPEC-TEMPLATE.md +4 -1
  10. package/.speccrew/skills/speccrew-knowledge-bizs-api-analyze/SKILL.md +29 -15
  11. package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/SKILL.md +51 -6
  12. package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze/SKILL.md +18 -20
  13. package/.speccrew/skills/speccrew-knowledge-module-summarize/SKILL.md +7 -10
  14. package/.speccrew/skills/speccrew-knowledge-system-summarize/SKILL.md +19 -23
  15. package/.speccrew/skills/speccrew-knowledge-techs-dispatch/SKILL.md +151 -153
  16. package/.speccrew/skills/speccrew-knowledge-techs-generate/SKILL.md +23 -63
  17. package/.speccrew/skills/speccrew-knowledge-techs-index/SKILL.md +32 -68
  18. package/.speccrew/skills/speccrew-knowledge-techs-ui-analyze/SKILL.md +6 -2
  19. package/.speccrew/skills/speccrew-pm-requirement-analysis/SKILL.md +32 -0
  20. package/.speccrew/skills/speccrew-pm-requirement-analysis/templates/PRD-TEMPLATE.md +16 -1
  21. package/.speccrew/skills/speccrew-sd-backend/SKILL.md +33 -6
  22. package/.speccrew/skills/speccrew-sd-frontend/SKILL.md +25 -5
  23. package/.speccrew/skills/speccrew-test-case-design/SKILL.md +17 -0
  24. package/.speccrew/skills/speccrew-test-code-gen/SKILL.md +20 -3
  25. package/.speccrew/skills/speccrew-test-execute/SKILL.md +8 -0
  26. package/package.json +1 -1
@@ -73,22 +73,22 @@ If resuming from an interrupted session:
73
73
 
74
74
  4. **User Confirmation**: Show resume point and ask "Continue from this checkpoint?"
75
75
 
76
- ### 0.3 Check Dispatch Resume (Multi-Platform Recovery)
76
+ ### 0.3 Check Dispatch Resume (Feature-Granular Recovery)
77
77
 
78
- If the feature involves multiple frontend platforms:
78
+ If the iteration involves multiple Features:
79
79
 
80
80
  1. **Read `DISPATCH-PROGRESS.json` summary** (if file exists):
81
81
  ```bash
82
- node speccrew-workspace/scripts/update-progress.js read --file speccrew-workspace/iterations/{iteration-id}/02.feature-design/DISPATCH-PROGRESS.json --summary
82
+ node speccrew-workspace/scripts/update-progress.js read --file speccrew-workspace/iterations/{iteration}/02.feature-design/DISPATCH-PROGRESS.json --summary
83
83
  ```
84
84
  - If the file does not exist → No dispatch in progress, proceed normally
85
85
 
86
- 2. **List Platform Task Status**:
86
+ 2. **List Feature Task Status**:
87
87
  ```
88
88
  📊 Dispatch Status:
89
- ├── fd-web-vue: ✅ Completed
90
- ├── fd-mobile-uniapp: ⏳ Pending
91
- └── fd-web-react: ❌ Failed (error message)
89
+ ├── F-CRM-01 (Customer List): ✅ Completed
90
+ ├── F-CRM-02 (Customer Detail): ⏳ Pending
91
+ └── F-CRM-03 (Customer Search API): ❌ Failed (error message)
92
92
 
93
93
  Total: 3 | Completed: 1 | Failed: 1 | Pending: 1
94
94
  ```
@@ -98,9 +98,25 @@ If the feature involves multiple frontend platforms:
98
98
  - Re-execute tasks with `status == "failed"`
99
99
  - Execute tasks with `status == "pending"`
100
100
 
101
- 4. **User Confirmation**: Ask "Resume dispatch for pending/failed platforms?"
101
+ 4. **User Confirmation**: Ask "Resume dispatch for pending/failed Features?"
102
102
 
103
- ### 0.4 Backward Compatibility
103
+ ### 0.4 Backward Compatibility Note
104
+
105
+ **Dispatch Mode Detection**:
106
+
107
+ The agent automatically detects the appropriate dispatch mode based on PRD content:
108
+
109
+ - **Feature Breakdown present** → Feature-granular dispatch (new behavior)
110
+ - Each Feature in the breakdown table gets its own Feature Spec and API Contract
111
+ - File naming: `{feature-id}-{feature-name}-feature-spec.md`
112
+
113
+ - **Feature Breakdown missing** → Module-granular dispatch (legacy behavior)
114
+ - Each Sub-PRD gets one Feature Spec and API Contract
115
+ - File naming: `{module-name}-feature-spec.md`
116
+
117
+ This ensures backward compatibility with PRDs created before the Feature Breakdown feature was introduced.
118
+
119
+ ### 0.5 Backward Compatibility
104
120
 
105
121
  If `WORKFLOW-PROGRESS.json` does not exist:
106
122
  - Log: "⚠️ No workflow progress file found. Running in legacy mode."
@@ -144,6 +160,31 @@ Read all confirmed PRD documents specified by the user. PRD documents contain:
144
160
  - Business process flows
145
161
  - Acceptance criteria
146
162
 
163
+ ### Extract Feature Breakdown (Section 3.4)
164
+
165
+ After reading PRD documents, extract Feature Breakdown from each Sub-PRD:
166
+
167
+ 1. **Locate Section 3.4**: In each Sub-PRD, find the "Feature Breakdown" table under Section 3.4
168
+
169
+ 2. **Parse Feature Table**: Extract the following columns for each Feature:
170
+ - `Feature ID`: Unique identifier (e.g., `F-CRM-01`, `F-CRM-02`)
171
+ - `Feature Name`: Descriptive name (e.g., `Customer List Management`)
172
+ - `Type`: Either `Page+API` or `API-only`
173
+ - `Dependencies`: List of prerequisite Feature IDs (if any)
174
+
175
+ 3. **Build Feature Registry**: Consolidate all features across Sub-PRDs into a unified list:
176
+ ```
177
+ Feature Registry Example:
178
+ ├── F-CRM-01: Customer List Management (Page+API) - from sub-prd-customer.md
179
+ ├── F-CRM-02: Customer Detail View (Page+API) - from sub-prd-customer.md, depends on F-CRM-01
180
+ └── F-CRM-03: Customer Search API (API-only) - from sub-prd-customer.md
181
+ ```
182
+
183
+ 4. **Backward Compatibility Check**:
184
+ - If **Feature Breakdown exists**: Proceed with Feature-granular dispatch (new behavior)
185
+ - If **Feature Breakdown missing**: Fall back to Sub-PRD-granular dispatch (legacy behavior)
186
+ - Log the dispatch mode: "📋 Dispatch mode: Feature-granular" or "📋 Dispatch mode: Module-granular (legacy)"
187
+
147
188
  ### Discover Frontend Platforms
148
189
 
149
190
  Read `speccrew-workspace/knowledges/techs/techs-manifest.json` to identify all frontend platforms:
@@ -164,45 +205,160 @@ When involving related business domains, read `speccrew-workspace/knowledges/biz
164
205
 
165
206
  ## Phase 3: Design
166
207
 
167
- After knowledge loading is complete, design feature specifications based on the number of PRD documents:
208
+ After knowledge loading is complete, design feature specifications based on the dispatch mode:
209
+
210
+ ### 3.1 Dispatch Mode Decision
211
+
212
+ Based on Phase 2 Feature Breakdown extraction:
213
+
214
+ | Condition | Dispatch Mode | Behavior |
215
+ |-----------|---------------|----------|
216
+ | Feature Breakdown found with multiple Features | Feature-granular | Each Feature gets its own worker/skill invocation |
217
+ | Feature Breakdown found with single Feature | Direct skill | Invoke skill directly without worker |
218
+ | No Feature Breakdown (legacy PRD) | Module-granular | Each Sub-PRD gets one worker (backward compatible) |
219
+
220
+ ### 3.2 Feature-Granular Dispatch (New Behavior)
221
+
222
+ When Feature Breakdown is present, dispatch by Feature:
223
+
224
+ #### Single Feature (Direct Skill Invocation)
225
+ If the entire iteration has only **one Feature** in the registry:
226
+
227
+ Invoke Skill directly with parameters:
228
+ - Skill path: `speccrew-fd-feature-design/SKILL.md`
229
+ - Parameters:
230
+ - `prd_path`: Path to the PRD document (Master PRD if exists, otherwise the single PRD)
231
+ - `feature_id`: Feature ID (e.g., `F-CRM-01`)
232
+ - `feature_name`: Feature name (e.g., `Customer List Management`)
233
+ - `feature_type`: `Page+API` or `API-only`
234
+ - `output_path`: `speccrew-workspace/iterations/{iteration}/02.feature-design/{feature_id}-{feature-name-slug}-feature-spec.md`
235
+ - `frontend_platforms`: List of frontend platforms from techs-manifest
236
+
237
+ #### Multiple Features (Parallel Worker Dispatch)
238
+ If the iteration has **multiple Features** in the registry:
239
+
240
+ Invoke `speccrew-task-worker` agents in parallel, one per Feature:
241
+ - Each worker receives:
242
+ - `skill_path`: `speccrew-fd-feature-design/SKILL.md`
243
+ - `context`:
244
+ - `feature_id`: Feature ID (e.g., `F-CRM-01`)
245
+ - `feature_name`: Feature name (e.g., `Customer List Management`)
246
+ - `feature_type`: `Page+API` or `API-only`
247
+ - `master_prd_path`: Path to the Master PRD document (if exists)
248
+ - `source_prd_path`: Path to the Sub-PRD containing this Feature
249
+ - `prd_path`: Path to the Sub-PRD containing this Feature (same as source_prd_path, required by speccrew-fd-feature-design skill)
250
+ - `output_path`: `speccrew-workspace/iterations/{iteration}/02.feature-design/{feature_id}-{feature-name-slug}-feature-spec.md`
251
+ - `frontend_platforms`: List of frontend platforms from techs-manifest
252
+ - **Note**: `prd_path` and `source_prd_path` refer to the same Sub-PRD file. `prd_path` is the primary field required by the Feature Design skill.
253
+
254
+ - **Parallel execution pattern**:
255
+ - Worker 1: Feature F-CRM-01 → Feature Spec for Customer List
256
+ - Worker 2: Feature F-CRM-02 → Feature Spec for Customer Detail
257
+ - Worker N: Feature F-CRM-0N → Feature Spec for Feature N
258
+
259
+ - **Dependency handling**: Features with dependencies should note them, but all workers can execute simultaneously (each Feature Spec references its dependencies)
260
+
261
+ - **Output file naming convention**:
262
+ - Format: `{feature-id}-{feature-name-slug}-feature-spec.md`
263
+ - Example: `F-CRM-01-customer-list-feature-spec.md`
264
+ - Slug: lowercase, hyphens for spaces, no special characters
265
+
266
+ ### 3.3 Module-Granular Dispatch (Legacy Behavior)
168
267
 
169
- ### Single PRD Document
268
+ If **no Feature Breakdown** is found in PRD documents (legacy format), fall back to Sub-PRD granularity:
269
+
270
+ #### Single PRD Document
170
271
  Invoke Skill directly with parameters:
171
272
  - Skill path: `speccrew-fd-feature-design/SKILL.md`
172
273
  - Parameters:
173
274
  - `prd_path`: Path to the PRD document
174
- - `output_path`: Path for the feature specification document
175
- - `frontend_platforms`: List of frontend platforms from techs-manifest (e.g., `["web-vue", "mobile-uniapp"]`)
275
+ - `output_path`: `speccrew-workspace/iterations/{iteration}/02.feature-design/{module-name}-feature-spec.md`
276
+ - `frontend_platforms`: List of frontend platforms from techs-manifest
176
277
 
177
- ### Multiple PRD Documents (Master + Sub PRDs)
278
+ #### Multiple PRD Documents (Master + Sub PRDs)
178
279
  Invoke `speccrew-task-worker` agents in parallel:
179
280
  - Each worker receives:
180
281
  - `skill_path`: `speccrew-fd-feature-design/SKILL.md`
181
282
  - `context`:
182
283
  - `master_prd_path`: Path to the Master PRD document (for overall context)
183
284
  - `sub_prd_path`: Path to one Sub PRD document
184
- - `output_path`: Path for the feature specification document
285
+ - `output_path`: `speccrew-workspace/iterations/{iteration}/02.feature-design/{module-name}-feature-spec.md`
185
286
  - `frontend_platforms`: List of frontend platforms from techs-manifest
186
287
  - Parallel execution pattern:
187
288
  - Worker 1: Master PRD + Sub PRD 1 → Sub Feature Spec 1
188
289
  - Worker 2: Master PRD + Sub PRD 2 → Sub Feature Spec 2
189
290
  - Worker N: Master PRD + Sub PRD N → Sub Feature Spec N
190
- - Each worker has access to both Master PRD (for overall view) and one Sub PRD (for focused design)
191
- - All workers execute simultaneously to maximize efficiency
291
+
292
+ ### 3.4 Initialize Dispatch Progress Tracking
293
+
294
+ Before dispatching workers, initialize `DISPATCH-PROGRESS.json`:
295
+
296
+ ```bash
297
+ node speccrew-workspace/scripts/update-progress.js init-dispatch \
298
+ --file speccrew-workspace/iterations/{iteration}/02.feature-design/DISPATCH-PROGRESS.json \
299
+ --tasks "F-CRM-01,F-CRM-02,F-CRM-03"
300
+ ```
301
+
302
+ Each task entry records:
303
+ - `feature_id`: Feature identifier
304
+ - `feature_name`: Feature name
305
+ - `feature_type`: `Page+API` or `API-only`
306
+ - `source_prd`: Path to the source PRD document
307
+ - `status`: `pending` | `in_progress` | `completed` | `failed`
308
+ - `output_path`: Path to the generated Feature Spec
192
309
 
193
310
  ## Phase 4: API Contract Generation
194
311
 
195
312
  After Feature Spec documents are confirmed by user, generate API Contract documents.
196
313
 
197
- ### 4.1 Single Feature Spec
314
+ ### 4.1 Dispatch Mode Decision
198
315
 
316
+ Follow the same dispatch mode as Phase 3:
317
+
318
+ | Dispatch Mode | API Contract Strategy |
319
+ |---------------|----------------------|
320
+ | Feature-granular | Each Feature Spec generates one API Contract |
321
+ | Module-granular (legacy) | Each Feature Spec (by module) generates one API Contract |
322
+
323
+ ### 4.2 Feature-Granular API Contract (New Behavior)
324
+
325
+ #### Single Feature Spec
199
326
  Invoke API Contract skill directly:
200
327
  - Skill path: `speccrew-fd-api-contract/SKILL.md`
201
- - Input: The Feature Spec document generated in Phase 3
202
- - Output path: `speccrew-workspace/iterations/{number}-{type}-{name}/02.feature-design/[feature-name]-api-contract.md`
328
+ - Parameters:
329
+ - `feature_spec_path`: Path to the Feature Spec document
330
+ - `feature_id`: Feature ID (e.g., `F-CRM-01`)
331
+ - `feature_type`: `Page+API` or `API-only`
332
+ - `output_path`: `speccrew-workspace/iterations/{iteration}/02.feature-design/{feature_id}-{feature-name-slug}-api-contract.md`
333
+
334
+ **Note**: Both `Page+API` and `API-only` Features require API Contract documents.
335
+
336
+ #### Multiple Feature Specs (Parallel Worker Dispatch)
337
+ Invoke `speccrew-task-worker` agents in parallel:
338
+ - Each worker receives:
339
+ - `skill_path`: `speccrew-fd-api-contract/SKILL.md`
340
+ - `context`:
341
+ - `feature_spec_path`: Path to one Feature Spec document
342
+ - `feature_id`: Feature ID (e.g., `F-CRM-01`)
343
+ - `feature_type`: `Page+API` or `API-only`
344
+ - `output_path`: `speccrew-workspace/iterations/{iteration}/02.feature-design/{feature_id}-{feature-name-slug}-api-contract.md`
203
345
 
204
- ### 4.2 Multiple Feature Specs (Master + Sub)
346
+ - **Parallel execution**: One worker per Feature Spec document
347
+ - **Output file naming**:
348
+ - Format: `{feature-id}-{feature-name-slug}-api-contract.md`
349
+ - Example: `F-CRM-01-customer-list-api-contract.md`
205
350
 
351
+ ### 4.3 Module-Granular API Contract (Legacy Behavior)
352
+
353
+ If dispatch was done at module granularity (legacy PRD without Feature Breakdown):
354
+
355
+ #### Single Feature Spec
356
+ Invoke API Contract skill directly:
357
+ - Skill path: `speccrew-fd-api-contract/SKILL.md`
358
+ - Input: The Feature Spec document generated in Phase 3
359
+ - Output path: `speccrew-workspace/iterations/{iteration}/02.feature-design/{module-name}-api-contract.md`
360
+
361
+ #### Multiple Feature Specs (Master + Sub)
206
362
  Invoke `speccrew-task-worker` agents in parallel:
207
363
  - Each worker receives:
208
364
  - `skill_path`: `speccrew-fd-api-contract/SKILL.md`
@@ -211,21 +367,24 @@ Invoke `speccrew-task-worker` agents in parallel:
211
367
  - `output_path`: Path for the API Contract document
212
368
  - Parallel execution: one worker per Feature Spec document
213
369
 
214
- ### 4.3 Joint Confirmation
370
+ ### 4.4 Joint Confirmation
215
371
 
216
372
  After both Feature Spec and API Contract documents are ready, present summary to user:
217
- - List all Feature Spec documents with paths
373
+ - List all Feature Spec documents with paths (grouped by Feature or Module)
218
374
  - List all API Contract documents with paths
219
375
  - Request user confirmation before proceeding to system design phase
220
376
  - After confirmation, API Contract becomes the read-only baseline for downstream stages
221
377
 
222
- ### 4.4 Finalize Stage (Update Workflow Progress)
378
+ ### 4.5 Finalize Stage (Update Workflow Progress)
223
379
 
224
380
  After user confirms Joint Confirmation:
225
381
 
226
382
  1. **Update `WORKFLOW-PROGRESS.json`**:
227
383
  ```bash
228
- node speccrew-workspace/scripts/update-progress.js update-workflow --file speccrew-workspace/iterations/{iteration-id}/WORKFLOW-PROGRESS.json --stage 02_feature_design --status confirmed --output "02.feature-design/[feature-name]-feature-spec.md,02.feature-design/[feature-name]-api-contract.md"
384
+ node speccrew-workspace/scripts/update-progress.js update-workflow \
385
+ --file speccrew-workspace/iterations/{iteration}/WORKFLOW-PROGRESS.json \
386
+ --stage 02_feature_design --status confirmed \
387
+ --output "02.feature-design/F-CRM-01-customer-list-feature-spec.md,02.feature-design/F-CRM-01-customer-list-api-contract.md,..."
229
388
  ```
230
389
 
231
390
  2. **Confirm Transition**:
@@ -236,8 +395,42 @@ After user confirms Joint Confirmation:
236
395
 
237
396
  | Deliverable | Path | Notes |
238
397
  |-------------|------|-------|
239
- | Feature Detail Design Document | `speccrew-workspace/iterations/{number}-{type}-{name}/02.feature-design/[feature-name]-feature-spec.md` | Based on template from `speccrew-fd-feature-design/templates/FEATURE-SPEC-TEMPLATE.md` |
240
- | API Contract Document | `speccrew-workspace/iterations/{number}-{type}-{name}/02.feature-design/[feature-name]-api-contract.md` | Based on template from `speccrew-fd-api-contract/templates/API-CONTRACT-TEMPLATE.md` |
398
+ | Feature Detail Design Document | `speccrew-workspace/iterations/{iteration}/02.feature-design/{feature-id}-{feature-name}-feature-spec.md` | New naming convention (Feature-granular) |
399
+ | Feature Detail Design Document (Legacy) | `speccrew-workspace/iterations/{iteration}/02.feature-design/{module-name}-feature-spec.md` | Legacy naming convention (Module-granular, for backward compatibility) |
400
+ | API Contract Document | `speccrew-workspace/iterations/{iteration}/02.feature-design/{feature-id}-{feature-name}-api-contract.md` | New naming convention (Feature-granular) |
401
+ | API Contract Document (Legacy) | `speccrew-workspace/iterations/{iteration}/02.feature-design/{module-name}-api-contract.md` | Legacy naming convention (Module-granular, for backward compatibility) |
402
+
403
+ ## Naming Convention
404
+
405
+ ### Feature-Granular Naming (New)
406
+
407
+ When Feature Breakdown is present in PRD:
408
+
409
+ **Format**: `{feature-id}-{feature-name-slug}-{document-type}.md`
410
+
411
+ - `feature-id`: From Feature Breakdown table (e.g., `F-CRM-01`)
412
+ - `feature-name-slug`: Feature name converted to lowercase with hyphens
413
+ - Example: `Customer List Management` → `customer-list-management` → shortened to `customer-list`
414
+ - `document-type`: Either `feature-spec` or `api-contract`
415
+
416
+ **Examples**:
417
+ - `F-CRM-01-customer-list-feature-spec.md`
418
+ - `F-CRM-01-customer-list-api-contract.md`
419
+ - `F-CRM-02-customer-detail-feature-spec.md`
420
+ - `F-ORD-01-order-create-feature-spec.md`
421
+
422
+ ### Module-Granular Naming (Legacy)
423
+
424
+ When Feature Breakdown is NOT present in PRD:
425
+
426
+ **Format**: `{module-name}-{document-type}.md`
427
+
428
+ - `module-name`: Derived from Sub-PRD filename or module identifier
429
+ - `document-type`: Either `feature-spec` or `api-contract`
430
+
431
+ **Examples**:
432
+ - `customer-feature-spec.md`
433
+ - `order-feature-spec.md`
241
434
 
242
435
  # Deliverable Content Structure
243
436