speccrew 0.6.11 → 0.6.13
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 +1 -1
- package/.speccrew/agents/speccrew-product-manager.md +92 -38
- package/.speccrew/agents/speccrew-system-designer.md +1 -1
- package/.speccrew/agents/speccrew-system-developer.md +1 -1
- package/.speccrew/agents/speccrew-team-leader.md +1 -1
- package/.speccrew/agents/speccrew-test-manager.md +1 -1
- package/.speccrew/skills/speccrew-knowledge-bizs-dispatch/SKILL.md +74 -62
- package/.speccrew/skills/speccrew-knowledge-bizs-init-features/SKILL.md +4 -2
- package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js +7 -7
- package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/apply-module-mapping.js +1 -1
- package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/reindex-modules.js +38 -38
- package/.speccrew/skills/speccrew-knowledge-techs-dispatch/SKILL.md +86 -42
- package/.speccrew/skills/speccrew-pm-module-initializer/SKILL.md +113 -114
- package/lib/commands/doctor.js +7 -7
- package/lib/commands/init.js +35 -35
- package/lib/commands/list.js +8 -8
- package/lib/commands/uninstall.js +20 -20
- package/lib/commands/update.js +41 -41
- package/lib/ide-adapters.js +47 -47
- package/lib/utils.js +12 -12
- package/package.json +1 -1
- package/workspace-template/scripts/update-progress.js +148 -147
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: speccrew-feature-designer
|
|
3
3
|
description: SpecCrew Feature Designer. Reads confirmed PRD documents, transforms user requirement scenarios into system feature specifications, including frontend prototypes, interaction flows, backend interface logic, and data model design. Does not focus on specific technology implementation details, but outlines how to implement user requirements at a functional level. Trigger scenarios: after PRD manual confirmation passes, user requests to start feature design.
|
|
4
|
-
tools: Read, Write, Glob, Grep, Bash
|
|
4
|
+
tools: Read, Write, Glob, Grep, Bash, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Role Positioning
|
|
@@ -202,6 +202,7 @@ After IDE detection, compute and store all absolute paths as workflow context va
|
|
|
202
202
|
|
|
203
203
|
| Variable | Derivation | Example |
|
|
204
204
|
|----------|-----------|---------|
|
|
205
|
+
| `source_path` | Project source root (from `.speccrewrc` config or user provided) | `d:/dev/litemes` |
|
|
205
206
|
| `workspace_path` | Project root + `/speccrew-workspace` | `d:/dev/litemes/speccrew-workspace` |
|
|
206
207
|
| `sync_state_bizs_dir` | `{workspace_path}/knowledges/base/sync-state/knowledge-bizs` | `d:/dev/litemes/speccrew-workspace/knowledges/base/sync-state/knowledge-bizs` |
|
|
207
208
|
| `iterations_dir` | `{workspace_path}/iterations` | `d:/dev/litemes/speccrew-workspace/iterations` |
|
|
@@ -304,8 +305,8 @@ Feature inventory exists but detailed analysis may be incomplete.
|
|
|
304
305
|
- agent: speccrew-task-worker
|
|
305
306
|
- task: Execute speccrew-pm-module-matcher skill
|
|
306
307
|
- context:
|
|
307
|
-
|
|
308
|
-
|
|
308
|
+
skill: speccrew-pm-module-matcher
|
|
309
|
+
sync_state_bizs_dir: {sync_state_bizs_dir}
|
|
309
310
|
```
|
|
310
311
|
|
|
311
312
|
2. **Worker returns** matched modules with confidence levels
|
|
@@ -328,12 +329,8 @@ Feature inventory exists but detailed analysis may be incomplete.
|
|
|
328
329
|
```
|
|
329
330
|
|
|
330
331
|
4. **IF user confirms initialization**:
|
|
331
|
-
-
|
|
332
|
-
|
|
333
|
-
- Workers execute in parallel (one per module)
|
|
334
|
-
- Wait for all Workers to complete
|
|
335
|
-
- Collect initialization summaries as system context
|
|
336
|
-
- Proceed to Phase 2
|
|
332
|
+
- Execute Path B Steps 1-5 (see "MANDATORY -- Path C -> Path B Sequence" section below)
|
|
333
|
+
- After all Steps complete, proceed to Phase 2
|
|
337
334
|
|
|
338
335
|
5. **IF user declines**:
|
|
339
336
|
- Use features-*.json metadata as lightweight system context (module names + feature counts only)
|
|
@@ -408,38 +405,95 @@ No knowledge base exists. A lightweight feature inventory scan is triggered to d
|
|
|
408
405
|
- If status is now "lite" → **Execute Path B immediately** (see MANDATORY instruction below)
|
|
409
406
|
- If status is still "none" → Initialization failed, proceed to Step 4
|
|
410
407
|
|
|
411
|
-
> 🛑 **MANDATORY
|
|
408
|
+
> 🛑 **MANDATORY -- Path C -> Path B Sequence**:
|
|
412
409
|
> After init-features completes (features-*.json generated), you MUST immediately execute Path B:
|
|
413
|
-
> 1. Dispatch Worker with `speccrew-pm-module-matcher` skill to match requirement features against the generated features inventory
|
|
414
|
-
> 2. Based on matcher results, dispatch Worker with `speccrew-pm-module-initializer` skill to deep-initialize matched modules' knowledge base
|
|
415
|
-
> 3. Only after module initialization completes, proceed to Phase 2 (Requirement Clarification)
|
|
416
410
|
>
|
|
417
|
-
>
|
|
418
|
-
>
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
411
|
+
> **Path B Step 1: Module Matching**
|
|
412
|
+
> Dispatch Worker with `speccrew-pm-module-matcher` skill to match requirement features against the generated features inventory.
|
|
413
|
+
>
|
|
414
|
+
> **Agent Tool Invocation for Path B Step 1 (Matcher)**:
|
|
415
|
+
> ```
|
|
416
|
+
> Use the Agent tool to invoke speccrew-task-worker:
|
|
417
|
+
> - agent: speccrew-task-worker
|
|
418
|
+
> - task: Execute speccrew-pm-module-matcher skill
|
|
419
|
+
> - context:
|
|
420
|
+
> skill: speccrew-pm-module-matcher
|
|
421
|
+
> sync_state_bizs_dir: {sync_state_bizs_dir}
|
|
422
|
+
> requirement_summary: <brief summary of user's requirement>
|
|
423
|
+
> ```
|
|
424
|
+
>
|
|
425
|
+
> **Path B Step 2: Generate Analyze Task Plan**
|
|
426
|
+
> For EACH matched module, dispatch Worker with `speccrew-pm-module-initializer` skill.
|
|
427
|
+
> This Worker will output a task plan JSON (list of features to analyze + analyzer parameters).
|
|
428
|
+
>
|
|
429
|
+
> **Agent Tool Invocation for Path B Step 2 (Module Initializer)**:
|
|
430
|
+
> ```
|
|
431
|
+
> Use the Agent tool to invoke speccrew-task-worker:
|
|
432
|
+
> - agent: speccrew-task-worker
|
|
433
|
+
> - task: Execute speccrew-pm-module-initializer skill for module "{module.module_name}" on platform "{module.platform_id}"
|
|
434
|
+
> - context:
|
|
435
|
+
> skill: speccrew-pm-module-initializer
|
|
436
|
+
> source_path: {source_path}
|
|
437
|
+
> module_name: {module.module_name}
|
|
438
|
+
> platform_id: {module.platform_id}
|
|
439
|
+
> platform_type: {module.platform_type}
|
|
440
|
+
> platform_subtype: {module.platform_subtype}
|
|
441
|
+
> tech_stack: {module.tech_stack}
|
|
442
|
+
> features_file: {sync_state_bizs_dir}/features-{module.platform_id}.json
|
|
443
|
+
> output_path: {workspace_path}/knowledges
|
|
444
|
+
> completed_dir: {sync_state_bizs_dir}/completed
|
|
445
|
+
> sourceFile: features-{module.platform_id}.json
|
|
446
|
+
> language: {detected user language}
|
|
447
|
+
> workspace_path: {workspace_path}
|
|
448
|
+
> ```
|
|
449
|
+
>
|
|
450
|
+
> Wait for ALL module-initializer Workers to complete. Collect all task plan JSON outputs.
|
|
451
|
+
>
|
|
452
|
+
> **Path B Step 3: Execute Feature Analysis**
|
|
453
|
+
> Based on the task plans from Step 2, dispatch Worker for EACH pending feature.
|
|
454
|
+
>
|
|
455
|
+
> For backend features: dispatch Worker with `speccrew-knowledge-bizs-api-analyze` skill
|
|
456
|
+
> For web/mobile/desktop features: dispatch Worker with `speccrew-knowledge-bizs-ui-analyze` skill
|
|
457
|
+
>
|
|
458
|
+
> **Agent Tool Invocation for each feature**:
|
|
459
|
+
> ```
|
|
460
|
+
> Use the Agent tool to invoke speccrew-task-worker:
|
|
461
|
+
> - agent: speccrew-task-worker
|
|
462
|
+
> - task: Execute {analyzer_skill} for feature "{fileName}"
|
|
463
|
+
> - context:
|
|
464
|
+
> skill: {analyzer_skill}
|
|
465
|
+
> fileName: {task.fileName}
|
|
466
|
+
> sourcePath: {source_path}/{task.sourcePath}
|
|
467
|
+
> documentPath: {workspace_path}/{task.documentPath}
|
|
468
|
+
> module: {task.module}
|
|
469
|
+
> analyzed: false
|
|
470
|
+
> platform_type: {task.platform_type}
|
|
471
|
+
> platform_subtype: {task.platform_subtype}
|
|
472
|
+
> tech_stack: {task.tech_stack}
|
|
473
|
+
> language: {language}
|
|
474
|
+
> completed_dir: {sync_state_bizs_dir}/completed
|
|
475
|
+
> sourceFile: features-{platform_id}.json
|
|
476
|
+
> ```
|
|
477
|
+
>
|
|
478
|
+
> Wait for ALL analyze Workers to complete.
|
|
479
|
+
>
|
|
480
|
+
> **Path B Step 4: Generate Module Summaries**
|
|
481
|
+
> For each matched module, dispatch Worker with `speccrew-knowledge-module-summarize` skill:
|
|
482
|
+
> ```
|
|
483
|
+
> Use the Agent tool to invoke speccrew-task-worker:
|
|
484
|
+
> - agent: speccrew-task-worker
|
|
485
|
+
> - task: Execute speccrew-knowledge-module-summarize for module "{module_name}"
|
|
486
|
+
> - context:
|
|
487
|
+
> skill: speccrew-knowledge-module-summarize
|
|
488
|
+
> module_name: {module_name}
|
|
489
|
+
> module_path: {workspace_path}/knowledges/bizs/{platform_id}/{module_name}
|
|
490
|
+
> language: {language}
|
|
491
|
+
> ```
|
|
492
|
+
>
|
|
493
|
+
> **Path B Step 5: Update Features Status**
|
|
494
|
+
> After all analyze Workers complete, update each analyzed feature's `analyzed` field to `true` in the corresponding features-*.json file.
|
|
495
|
+
>
|
|
496
|
+
> Only after ALL Steps complete, proceed to Phase 2 (Requirement Clarification).
|
|
443
497
|
|
|
444
498
|
4. **IF feature inventory fails**:
|
|
445
499
|
- Report to user: "Project structure scan encountered issues: [specific error]. Continuing without knowledge base context."
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: speccrew-system-designer
|
|
3
3
|
description: SpecCrew System Designer. Reads confirmed Feature Spec and API Contract documents, loads technology knowledge base (techs), evaluates framework needs, and dispatches per-platform detailed design skills to generate system design documents that add technology-specific implementation details to the feature specification skeleton. Supports web, mobile, and desktop platforms. Trigger scenarios: after Feature Spec and API Contract are confirmed, user requests system design.
|
|
4
|
-
tools: Read, Write, Glob, Grep, Bash
|
|
4
|
+
tools: Read, Write, Glob, Grep, Bash, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Role Positioning
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: speccrew-system-developer
|
|
3
3
|
description: SpecCrew System Developer. Reads system design blueprints and coordinates cross-platform development task dispatch. Loads techs knowledge, verifies environment readiness, dispatches per-platform dev skills, performs integration checks, and delivers development completion reports. Supports web, mobile, desktop, and backend platforms.
|
|
4
|
-
tools: Read, Write, Glob, Grep, Bash
|
|
4
|
+
tools: Read, Write, Glob, Grep, Bash, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Quick Reference — Execution Flow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: speccrew-team-leader
|
|
3
3
|
description: SpecCrew team leader, entry-point scheduling Agent for AI engineering implementation. Identifies user intent and invokes corresponding Skill to execute. Trigger scenarios: project initialization, Agent optimization, Skill development, workflow diagnosis, knowledge base sync, AI collaboration system consultation. Business development requests (feature requirements, code modifications, bug fixes) are NOT within this Agent's scope. Use proactively when users mention AI engineering workflows, agent configuration, or project infrastructure.
|
|
4
|
-
tools: Read, Write, Glob, Grep, Bash
|
|
4
|
+
tools: Read, Write, Glob, Grep, Bash, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Quick Reference — Execution Flow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: speccrew-test-manager
|
|
3
3
|
description: SpecCrew Test Manager. Orchestrates three-phase testing workflow: test case design, test code generation, and test execution with bug reporting. Reads feature specs, API contracts, and system design documents to coordinate comprehensive system testing. Trigger scenarios: after development phase completes, user requests to start testing.
|
|
4
|
-
tools: Read, Write, Glob, Grep, Bash
|
|
4
|
+
tools: Read, Write, Glob, Grep, Bash, Agent
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Role Positioning
|
|
@@ -19,17 +19,17 @@ Stage 1: Feature Inventory Init
|
|
|
19
19
|
└─ 1b: Merge features
|
|
20
20
|
└─ 1c: Validate inventory
|
|
21
21
|
↓
|
|
22
|
-
Stage 2: Feature Analysis (
|
|
23
|
-
└─
|
|
24
|
-
└─ After
|
|
22
|
+
Stage 2: Feature Analysis (Task Preparation)
|
|
23
|
+
└─ Prepare api-analyze + ui-analyze task specifications per platform
|
|
24
|
+
└─ After analyze completes → prepare corresponding graph worker task specification
|
|
25
25
|
└─ Monitor completion markers
|
|
26
26
|
↓
|
|
27
|
-
Stage 3: Module Summarize (
|
|
28
|
-
└─ 3.0: module-summarize per module
|
|
29
|
-
└─ 3.5: UI style extraction
|
|
27
|
+
Stage 3: Module Summarize (Task Preparation)
|
|
28
|
+
└─ 3.0: Prepare module-summarize task specifications per module
|
|
29
|
+
└─ 3.5: Prepare UI style extraction task specifications
|
|
30
30
|
↓
|
|
31
|
-
Stage 4: System Summary
|
|
32
|
-
└─ system-summarize
|
|
31
|
+
Stage 4: System Summary (Task Preparation)
|
|
32
|
+
└─ Prepare system-summarize task specification
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## Language Adaptation
|
|
@@ -102,19 +102,19 @@ STAGE 1: Feature Inventory
|
|
|
102
102
|
STAGE 2: Feature Analysis (REPEAT until all features processed)
|
|
103
103
|
Step 0: Ensure completed_dir exists
|
|
104
104
|
Step 1: Get next batch of pending features
|
|
105
|
-
Step 2:
|
|
105
|
+
Step 2: Prepare analysis task specifications (API or UI analysis)
|
|
106
106
|
Step 3: Process batch results, update features.json, write graph
|
|
107
107
|
|
|
108
|
-
STAGE 3: Module Summarize (
|
|
108
|
+
STAGE 3: Module Summarize (task preparation per module)
|
|
109
109
|
FOR each module:
|
|
110
|
-
|
|
110
|
+
Prepare module-summarize task specification
|
|
111
111
|
|
|
112
|
-
STAGE 3.5: UI Style Pattern Extract (
|
|
112
|
+
STAGE 3.5: UI Style Pattern Extract (task preparation per frontend platform)
|
|
113
113
|
FOR each frontend platform:
|
|
114
|
-
|
|
114
|
+
Prepare ui-style-extract task specification
|
|
115
115
|
|
|
116
|
-
STAGE 4: System Summary
|
|
117
|
-
|
|
116
|
+
STAGE 4: System Summary (task preparation)
|
|
117
|
+
Prepare system-summarize task specification
|
|
118
118
|
|
|
119
119
|
OUTPUT: system-overview.md, graph data, module overviews
|
|
120
120
|
```
|
|
@@ -343,9 +343,9 @@ flowchart TB
|
|
|
343
343
|
|
|
344
344
|
## Stage 2: Feature Analysis (Batch Processing)
|
|
345
345
|
|
|
346
|
-
**Overview**: Process all pending features in batches. Each batch gets a set of features,
|
|
346
|
+
**Overview**: Process all pending features in batches. Each batch gets a set of features, prepares task specifications for Worker Agents to analyze them, then processes the results.
|
|
347
347
|
|
|
348
|
-
> **Script execution rule**: All script calls in Stage 2 are executed **directly by the dispatch agent** via `run_in_terminal`.
|
|
348
|
+
> **Script execution rule**: All script calls in Stage 2 are executed **directly by the dispatch agent** via `run_in_terminal`. Task specifications are prepared by this Skill; Worker dispatch is handled by the calling Agent (Team Leader).
|
|
349
349
|
|
|
350
350
|
**Skill Routing Table (by platformType):**
|
|
351
351
|
|
|
@@ -364,7 +364,7 @@ Repeat the following 3 steps until all features are processed:
|
|
|
364
364
|
|
|
365
365
|
**Step 0: Ensure completed directory exists (MANDATORY)**
|
|
366
366
|
|
|
367
|
-
Before
|
|
367
|
+
Before any Workers are dispatched by the calling Agent, you MUST ensure the `completed_dir` directory exists using Node.js (cross-platform compatible):
|
|
368
368
|
|
|
369
369
|
```bash
|
|
370
370
|
node -e "require('fs').mkdirSync('{completed_dir}', {recursive: true}); console.log('completed dir ready')"
|
|
@@ -386,31 +386,35 @@ node -e "require('fs').mkdirSync('{completed_dir}', {recursive: true}); console.
|
|
|
386
386
|
- If output `action` is `"done"` → All features processed. Exit Stage 2, proceed to Stage 3.
|
|
387
387
|
- If output `action` is `"process"` → The `batch` array contains features to analyze. Proceed to Step 2.
|
|
388
388
|
|
|
389
|
-
**Step 2:
|
|
389
|
+
**Step 2: Prepare Analysis Task Specifications**
|
|
390
390
|
|
|
391
|
-
|
|
391
|
+
> **NOTE**: Worker dispatch is handled by the calling Agent (Team Leader). This Skill only prepares the task plan and parameters.
|
|
392
392
|
|
|
393
|
-
For each feature in the `batch` array, prepare a
|
|
393
|
+
For each feature in the `batch` array, prepare a task specification:
|
|
394
394
|
- **Select skill** using the routing table at Stage 2 start
|
|
395
|
-
- **
|
|
396
|
-
- **Behavior constraint**:
|
|
395
|
+
- **Task parameters**: Prepare all feature fields plus `language`, `completed_dir`, `sourceFile`, `skill_path`
|
|
396
|
+
- **Behavior constraint**: Workers MUST NOT create any temporary scripts
|
|
397
397
|
|
|
398
|
-
**
|
|
399
|
-
1. Prepare ALL
|
|
400
|
-
2.
|
|
401
|
-
3.
|
|
398
|
+
**Task Preparation sequence**:
|
|
399
|
+
1. Prepare ALL task specifications for the current batch
|
|
400
|
+
2. Output the task specifications to the calling Agent
|
|
401
|
+
3. The calling Agent will dispatch Workers based on these specifications
|
|
402
402
|
4. Each Worker writes `.done` and `.graph.json` marker files to `completed_dir` upon completion
|
|
403
403
|
|
|
404
|
-
**
|
|
404
|
+
> **NOTE**: This Skill does NOT dispatch analyze workers. The calling Agent (Team Leader) dispatches workers based on the prepared task specifications.
|
|
405
405
|
|
|
406
|
-
|
|
406
|
+
**Step 2.5: Graph Worker Task Preparation**
|
|
407
|
+
|
|
408
|
+
> **NOTE**: Worker dispatch is handled by the calling Agent (Team Leader). This Skill only prepares the task plan and parameters.
|
|
409
|
+
|
|
410
|
+
After each analyze worker completes (writes `.done.json` marker), the calling Agent will dispatch the corresponding graph worker. This Skill prepares the task specifications:
|
|
407
411
|
|
|
408
412
|
| Analyze Worker | Graph Worker | Input |
|
|
409
413
|
|----------------|--------------|-------|
|
|
410
414
|
| `speccrew-knowledge-bizs-api-analyze` | `speccrew-knowledge-bizs-api-graph` | `documentPath` from analyze output |
|
|
411
415
|
| `speccrew-knowledge-bizs-ui-analyze` | `speccrew-knowledge-bizs-ui-graph` | `documentPath` from analyze output |
|
|
412
416
|
|
|
413
|
-
**Graph Worker Task
|
|
417
|
+
**Graph Worker Task Specification Format**:
|
|
414
418
|
|
|
415
419
|
**For API Graph Worker**:
|
|
416
420
|
```json
|
|
@@ -457,14 +461,14 @@ After each analyze worker completes (writes `.done.json` marker), immediately di
|
|
|
457
461
|
}
|
|
458
462
|
```
|
|
459
463
|
|
|
460
|
-
**
|
|
464
|
+
**Task Preparation Sequence**:
|
|
461
465
|
1. Scan `completed_dir` for new `.done.json` files from Step 2
|
|
462
|
-
2. For each completed analyze worker, prepare corresponding graph worker task
|
|
463
|
-
3.
|
|
464
|
-
4.
|
|
465
|
-
5. Each graph worker writes `.graph-done.json` marker to `completed_dir`
|
|
466
|
+
2. For each completed analyze worker, prepare corresponding graph worker task specification
|
|
467
|
+
3. Output the task specifications to the calling Agent
|
|
468
|
+
4. The calling Agent will dispatch graph workers based on these specifications
|
|
469
|
+
5. Each graph worker writes `.graph-done.json` marker to `completed_dir` upon completion
|
|
466
470
|
|
|
467
|
-
|
|
471
|
+
> **NOTE**: This Skill does NOT dispatch graph workers. The calling Agent (Team Leader) scans for `.done.json` markers and dispatches corresponding graph workers.
|
|
468
472
|
|
|
469
473
|
**Worker Task Prompt Format**:
|
|
470
474
|
|
|
@@ -699,7 +703,7 @@ Dispatch 采用完全无状态的文件驱动设计。如果执行过程中发
|
|
|
699
703
|
When dealing with modules containing more than **20 features**, consider the following:
|
|
700
704
|
|
|
701
705
|
- **Single Agent Limit**: A single Worker Agent can reliably process ~20 features per session due to context window constraints. Beyond this, context degradation may cause incomplete document generation.
|
|
702
|
-
- **Multi-Worker Strategy**: For modules with >20 features, dispatch multiple Worker Agents in parallel, each handling a non-overlapping subset of features (e.g., by batch index range).
|
|
706
|
+
- **Multi-Worker Strategy**: For modules with >20 features, the calling Agent should dispatch multiple Worker Agents in parallel, each handling a non-overlapping subset of features (e.g., by batch index range).
|
|
703
707
|
- **Resume Support**: The `get-next-batch` script naturally supports resume across sessions — it skips features that already have `.done` files. To resume after a session break, simply restart the Stage 2 loop.
|
|
704
708
|
- **Validation After Completion**: After all features are marked `analyzed=true`, run `process-batch-results` with `--validateDocs --syncStatePath "{sync_state_path}"` to verify document completeness.
|
|
705
709
|
|
|
@@ -707,49 +711,53 @@ When dealing with modules containing more than **20 features**, consider the fol
|
|
|
707
711
|
|
|
708
712
|
---
|
|
709
713
|
|
|
710
|
-
## Stage 3: Module Summarize (
|
|
714
|
+
## Stage 3: Module Summarize (Task Preparation)
|
|
711
715
|
|
|
712
|
-
**
|
|
716
|
+
> **NOTE**: Worker dispatch is handled by the calling Agent (Team Leader). This Skill only prepares the task plan and parameters.
|
|
717
|
+
|
|
718
|
+
**Goal**: Prepare task specifications for each module overview based on feature details.
|
|
713
719
|
|
|
714
720
|
**Prerequisite**: Stage 2 completed for the module (in full or incremental mode).
|
|
715
721
|
|
|
716
722
|
**Action (full mode)**:
|
|
717
723
|
- Read all `features-{platform}.json` files from `{sync_state_bizs_dir}/`
|
|
718
724
|
- For each platform, group features by `module` to identify unique modules
|
|
719
|
-
- For each module,
|
|
720
|
-
- Parameters to
|
|
725
|
+
- For each module, prepare a task specification for `skill_name: speccrew-knowledge-module-summarize`
|
|
726
|
+
- Parameters to include in task specification:
|
|
721
727
|
- `module_name`: Module code_name
|
|
722
728
|
- `module_path`: Path to module directory (e.g., `{workspace_path}/knowledges/bizs/{platform_id}/{module_name}/`)
|
|
723
729
|
- `workspace_path`: Absolute path to speccrew-workspace directory — **REQUIRED**
|
|
724
730
|
- `sync_state_bizs_dir`: Absolute path to sync-state/knowledge-bizs directory — **REQUIRED**
|
|
725
731
|
- `language`: User's language — **REQUIRED**
|
|
726
|
-
- **Behavior constraint**:
|
|
727
|
-
|
|
728
|
-
Expected Worker Return: `{ "status": "success|failed", "module_name": "...", "output_file": "...-overview.md", "message": "..." }`
|
|
732
|
+
- **Behavior constraint**: Workers MUST NOT create any temporary scripts or workaround files
|
|
729
733
|
|
|
730
734
|
**Action (incremental mode)**:
|
|
731
735
|
- Reuse module status from Stage 2 (NEW / CHANGED / DELETED / UNMODIFIED).
|
|
732
|
-
- Only
|
|
736
|
+
- Only prepare task specifications for modules with status **NEW** or **CHANGED**.
|
|
733
737
|
|
|
734
|
-
**
|
|
738
|
+
**Task Specifications** (grouped by platform):
|
|
735
739
|
```
|
|
736
740
|
Platform: Web Frontend (web)
|
|
737
|
-
|
|
738
|
-
|
|
741
|
+
Task 1: module="order", module_path="speccrew-workspace/knowledges/bizs/web/order/"
|
|
742
|
+
Task 2: module="payment", module_path="speccrew-workspace/knowledges/bizs/web/payment/"
|
|
739
743
|
|
|
740
744
|
Platform: Mobile App (mobile-flutter)
|
|
741
|
-
|
|
742
|
-
|
|
745
|
+
Task 3: module="order", module_path="speccrew-workspace/knowledges/bizs/mobile-flutter/order/"
|
|
746
|
+
Task 4: module="payment", module_path="speccrew-workspace/knowledges/bizs/mobile-flutter/payment/"
|
|
743
747
|
```
|
|
744
748
|
|
|
749
|
+
> **NOTE**: This Skill does NOT dispatch module summarize workers. The calling Agent (Team Leader) dispatches workers based on the prepared task specifications.
|
|
750
|
+
|
|
745
751
|
**Output per Module**:
|
|
746
752
|
- `{{module_name}}-overview.md` (complete version)
|
|
747
753
|
|
|
748
754
|
---
|
|
749
755
|
|
|
750
|
-
## Stage 3.5: UI Style Pattern Extract (
|
|
756
|
+
## Stage 3.5: UI Style Pattern Extract (Task Preparation)
|
|
757
|
+
|
|
758
|
+
> **NOTE**: Worker dispatch is handled by the calling Agent (Team Leader). This Skill only prepares the task plan and parameters.
|
|
751
759
|
|
|
752
|
-
**Goal**:
|
|
760
|
+
**Goal**: Prepare task specifications for extracting UI design patterns (page types, component patterns, layout patterns) from analyzed feature documents.
|
|
753
761
|
|
|
754
762
|
**Prerequisite**: All Stage 3 tasks completed.
|
|
755
763
|
|
|
@@ -761,8 +769,8 @@ Platform: Mobile App (mobile-flutter)
|
|
|
761
769
|
- Read all `features-{platform}.json` files from `{sync_state_bizs_dir}/`
|
|
762
770
|
- Filter platforms where platformType is web/mobile/desktop
|
|
763
771
|
- Determine platform_id (format: `{platformType}-{platformSubtype}`, e.g., `web-vue`, `mobile-uniapp`, `backend-system`)
|
|
764
|
-
- For each qualifying platform,
|
|
765
|
-
- Parameters to
|
|
772
|
+
- For each qualifying platform, prepare a task specification for `skill_name: speccrew-knowledge-bizs-ui-style-extract`
|
|
773
|
+
- Parameters to include in task specification:
|
|
766
774
|
- `platform_id`: Platform identifier
|
|
767
775
|
- `platform_type`: Platform type
|
|
768
776
|
- `feature_docs_path`: Feature document base path for that platform (e.g., `{workspace_path}/knowledges/bizs/{platform_id}`)
|
|
@@ -772,7 +780,7 @@ Platform: Mobile App (mobile-flutter)
|
|
|
772
780
|
- `workspace_path`: Absolute path to speccrew-workspace directory — **REQUIRED**
|
|
773
781
|
- `sync_state_bizs_dir`: Absolute path to sync-state/knowledge-bizs directory — **REQUIRED**
|
|
774
782
|
- `language`: User's language
|
|
775
|
-
- **Behavior constraint**:
|
|
783
|
+
- **Behavior constraint**: Workers MUST NOT create any temporary scripts or workaround files
|
|
776
784
|
|
|
777
785
|
**Cross-Pipeline Output**:
|
|
778
786
|
- This stage writes to techs knowledge base, not bizs knowledge base
|
|
@@ -780,7 +788,9 @@ Platform: Mobile App (mobile-flutter)
|
|
|
780
788
|
- Subdirectories: `page-types/`, `components/`, `layouts/`
|
|
781
789
|
- `ui-style-guide.md` and `styles/` are managed by techs pipeline, this stage does not modify them
|
|
782
790
|
|
|
783
|
-
**
|
|
791
|
+
**Task Specifications**: One task specification per frontend platform.
|
|
792
|
+
|
|
793
|
+
> **NOTE**: This Skill does NOT dispatch UI style extract workers. The calling Agent (Team Leader) dispatches workers based on the prepared task specifications.
|
|
784
794
|
|
|
785
795
|
**Output per Platform**:
|
|
786
796
|
```
|
|
@@ -797,24 +807,26 @@ Platform: Mobile App (mobile-flutter)
|
|
|
797
807
|
|
|
798
808
|
---
|
|
799
809
|
|
|
800
|
-
## Stage 4: System Summarize (
|
|
810
|
+
## Stage 4: System Summarize (Task Preparation)
|
|
811
|
+
|
|
812
|
+
> **NOTE**: Worker dispatch is handled by the calling Agent (Team Leader). This Skill only prepares the task plan and parameters.
|
|
801
813
|
|
|
802
|
-
**Goal**:
|
|
814
|
+
**Goal**: Prepare task specification for generating complete system-overview.md aggregating all platforms and modules.
|
|
803
815
|
|
|
804
816
|
**Prerequisite**: All Stage 3 tasks completed.
|
|
805
817
|
|
|
806
818
|
**Action**:
|
|
807
819
|
- Read all `features-{platform}.json` files from `{sync_state_bizs_dir}/` to get platform structure
|
|
808
|
-
-
|
|
809
|
-
- Parameters to
|
|
820
|
+
- Prepare a task specification for `skill_name: speccrew-knowledge-system-summarize`
|
|
821
|
+
- Parameters to include in task specification:
|
|
810
822
|
- `modules_path`: Path to knowledge base directory containing all platform modules (e.g., `{workspace_path}/knowledges/bizs/`)
|
|
811
823
|
- `output_path`: Output path for system-overview.md (e.g., `{workspace_path}/knowledges/bizs/`)
|
|
812
824
|
- `workspace_path`: Absolute path to speccrew-workspace directory — **REQUIRED**
|
|
813
825
|
- `sync_state_bizs_dir`: Absolute path to sync-state/knowledge-bizs directory — **REQUIRED**
|
|
814
826
|
- `language`: User's language — **REQUIRED**
|
|
815
|
-
- **Behavior constraint**:
|
|
827
|
+
- **Behavior constraint**: Workers MUST NOT create any temporary scripts or workaround files
|
|
816
828
|
|
|
817
|
-
|
|
829
|
+
> **NOTE**: This Skill does NOT dispatch system summarize workers. The calling Agent (Team Leader) dispatches workers based on the prepared task specification.
|
|
818
830
|
|
|
819
831
|
**Output**:
|
|
820
832
|
- `{workspace_path}/knowledges/bizs/system-overview.md` (complete with platform index and module hierarchy)
|
|
@@ -62,7 +62,9 @@ For each platform detected in Step 1, identify business module entry directories
|
|
|
62
62
|
|
|
63
63
|
**Option A: Invoke Skill (Recommended)**
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
Execute `speccrew-knowledge-bizs-identify-entries` skill with the following parameters:
|
|
66
|
+
|
|
67
|
+
> **NOTE**: Worker dispatch is handled by the calling Agent. This Skill only specifies the parameters needed.
|
|
66
68
|
|
|
67
69
|
| Parameter | Value |
|
|
68
70
|
|-----------|-------|
|
|
@@ -71,7 +73,7 @@ Dispatch Worker with `speccrew-knowledge-bizs-identify-entries` skill:
|
|
|
71
73
|
| `sync_state_bizs_dir` | `{sync_state_bizs_dir}` |
|
|
72
74
|
| `configs_dir` | `{configs_dir}` |
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
Expected output: `entry-dirs-{platform_id}.json` files in `{sync_state_bizs_dir}/`.
|
|
75
77
|
|
|
76
78
|
**Option B: Direct Execution**
|
|
77
79
|
|
package/.speccrew/skills/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js
CHANGED
|
@@ -852,21 +852,21 @@ function main() {
|
|
|
852
852
|
}
|
|
853
853
|
}
|
|
854
854
|
|
|
855
|
-
//
|
|
856
|
-
//
|
|
857
|
-
//
|
|
858
|
-
//
|
|
855
|
+
// Use directory path to build unique ID, avoid filename collisions
|
|
856
|
+
// Example: mail/account/index.vue → mail-account-index
|
|
857
|
+
// Example: mail/template/index.vue → mail-template-index
|
|
858
|
+
// Example: dict/index.vue → dict-index (keep compatible when no nesting)
|
|
859
859
|
let dirSegments = file.directory
|
|
860
860
|
? file.directory.replace(/[\/\\]/g, '-').replace(/^-+|-+$/g, '').replace(/-+/g, '-')
|
|
861
861
|
: '';
|
|
862
862
|
|
|
863
|
-
//
|
|
863
|
+
// Top-level files (directory = ".") should not include "."
|
|
864
864
|
if (dirSegments === '.' || dirSegments === './') {
|
|
865
865
|
dirSegments = '';
|
|
866
866
|
}
|
|
867
867
|
|
|
868
|
-
//
|
|
869
|
-
//
|
|
868
|
+
// If dirSegments already contains moduleName prefix, remove to avoid duplication
|
|
869
|
+
// Example: directory='mail/account', moduleName='mail' → dirSegments='account'
|
|
870
870
|
if (moduleName && dirSegments.startsWith(moduleName + '-')) {
|
|
871
871
|
dirSegments = dirSegments.slice(moduleName.length + 1);
|
|
872
872
|
} else if (moduleName && dirSegments === moduleName) {
|
package/.speccrew/skills/speccrew-knowledge-bizs-module-classify/scripts/apply-module-mapping.js
CHANGED
|
@@ -142,7 +142,7 @@ function main() {
|
|
|
142
142
|
reclassifiedCount++;
|
|
143
143
|
reclassifiedModules.add(oldModule);
|
|
144
144
|
|
|
145
|
-
// Rebuild documentPath
|
|
145
|
+
// Rebuild documentPath (use fileName instead of feature.id to avoid long filenames)
|
|
146
146
|
const newDocumentPath = `speccrew-workspace/knowledges/bizs/${platformId}/${newModule}/${feature.fileName}.md`;
|
|
147
147
|
|
|
148
148
|
return {
|