maskweaver 0.8.5 β†’ 0.8.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.
Files changed (74) hide show
  1. package/README.ko.md +214 -186
  2. package/README.md +232 -204
  3. package/assets/agents/squad-operator.md +56 -56
  4. package/assets/commands/weave-approve-plan.md +57 -57
  5. package/assets/commands/weave-craft.md +43 -43
  6. package/assets/commands/weave-design.md +64 -64
  7. package/assets/commands/weave-flow.md +48 -48
  8. package/assets/commands/weave-help.md +101 -101
  9. package/assets/commands/weave-init.md +23 -23
  10. package/assets/commands/weave-plan.md +15 -15
  11. package/assets/commands/weave-prepare.md +69 -69
  12. package/assets/commands/weave-refine-plan.md +59 -59
  13. package/assets/commands/weave-repair.md +70 -70
  14. package/assets/commands/weave-research.md +51 -51
  15. package/assets/commands/weave-spec.md +227 -227
  16. package/assets/commands/weave-status.md +2 -2
  17. package/assets/commands/weave-verify.md +44 -44
  18. package/assets/commands/weave-worktree.md +69 -69
  19. package/dist/cli/doctor.d.ts +16 -0
  20. package/dist/cli/doctor.d.ts.map +1 -0
  21. package/dist/cli/doctor.js +355 -0
  22. package/dist/cli/doctor.js.map +1 -0
  23. package/dist/cli/install.js +9 -0
  24. package/dist/cli/install.js.map +1 -1
  25. package/dist/plugin/config/index.d.ts +26 -10
  26. package/dist/plugin/config/index.d.ts.map +1 -1
  27. package/dist/plugin/config/index.js +36 -15
  28. package/dist/plugin/config/index.js.map +1 -1
  29. package/dist/plugin/index.d.ts +1 -27
  30. package/dist/plugin/index.d.ts.map +1 -1
  31. package/dist/plugin/index.js +118 -254
  32. package/dist/plugin/index.js.map +1 -1
  33. package/dist/plugin/tools/slashcommand.js +59 -59
  34. package/dist/plugin/tools/squad.js +3 -3
  35. package/dist/plugin/tools/weave.d.ts +22 -1
  36. package/dist/plugin/tools/weave.d.ts.map +1 -1
  37. package/dist/plugin/tools/weave.js +1223 -126
  38. package/dist/plugin/tools/weave.js.map +1 -1
  39. package/dist/plugin/types.d.ts +10 -8
  40. package/dist/plugin/types.d.ts.map +1 -1
  41. package/dist/plugin/types.js +2 -0
  42. package/dist/plugin/types.js.map +1 -1
  43. package/dist/version.d.ts +1 -1
  44. package/dist/version.d.ts.map +1 -1
  45. package/dist/version.js +1 -1
  46. package/dist/version.js.map +1 -1
  47. package/dist/weave/change-artifacts.d.ts +25 -0
  48. package/dist/weave/change-artifacts.d.ts.map +1 -0
  49. package/dist/weave/change-artifacts.js +184 -0
  50. package/dist/weave/change-artifacts.js.map +1 -0
  51. package/dist/weave/loop.d.ts +99 -0
  52. package/dist/weave/loop.d.ts.map +1 -0
  53. package/dist/weave/loop.js +426 -0
  54. package/dist/weave/loop.js.map +1 -0
  55. package/dist/weave/phase-manager.d.ts.map +1 -1
  56. package/dist/weave/phase-manager.js +12 -0
  57. package/dist/weave/phase-manager.js.map +1 -1
  58. package/dist/weave/stages/archive.d.ts +14 -0
  59. package/dist/weave/stages/archive.d.ts.map +1 -0
  60. package/dist/weave/stages/archive.js +38 -0
  61. package/dist/weave/stages/archive.js.map +1 -0
  62. package/dist/weave/stages/execute.d.ts.map +1 -1
  63. package/dist/weave/stages/execute.js +19 -4
  64. package/dist/weave/stages/execute.js.map +1 -1
  65. package/dist/weave/stages/plan.d.ts.map +1 -1
  66. package/dist/weave/stages/plan.js +6 -0
  67. package/dist/weave/stages/plan.js.map +1 -1
  68. package/dist/weave/types.d.ts +60 -0
  69. package/dist/weave/types.d.ts.map +1 -1
  70. package/dist/weave/worktree.d.ts.map +1 -1
  71. package/dist/weave/worktree.js +19 -0
  72. package/dist/weave/worktree.js.map +1 -1
  73. package/package.json +60 -58
  74. package/postinstall.mjs +97 -0
package/README.md CHANGED
@@ -24,10 +24,10 @@ While it can be used as a standalone library, it works great with OpenCode to ad
24
24
  - **Expert Personas (Masks)**: Standardized YAML profiles for legendary developers.
25
25
  - **Smart Delegation**: Multi-agent workflows optimized for OpenCode.
26
26
  - **Project Memory**: Hybrid semantic search for your entire codebase.
27
- - **πŸ†• Weave Workflow**: Phase-driven development with AI self-verification.
28
- - **πŸ”— GDC Integration**: Graph-Driven Codebase support for enhanced research and design-time verification gates.
29
-
30
- ---
27
+ - **πŸ†• Weave Workflow**: Phase-driven development with AI self-verification.
28
+ - **πŸ”— GDC Integration**: Graph-Driven Codebase support for enhanced research and design-time verification gates.
29
+
30
+ ---
31
31
 
32
32
  ## Why Maskweaver?
33
33
 
@@ -78,30 +78,58 @@ npm install maskweaver
78
78
  bun add maskweaver
79
79
  ```
80
80
 
81
- ### OpenCode Plugin Setup
82
-
83
- Add to your OpenCode config - that's it!
84
-
85
- **Global** (`~/.config/opencode/opencode.json`):
86
- ```json
87
- {
88
- "plugin": ["maskweaver"]
89
- }
90
- ```
91
-
92
- **Or per-project** (`opencode.json` in project root):
93
- ```json
94
- {
95
- "plugin": ["maskweaver"]
96
- }
97
- ```
98
-
99
- > Note: OpenCode installs npm packages by name. Use `maskweaver` (not `maskweaver/plugin`).
81
+ ### OpenCode Plugin Setup
82
+
83
+ Add to your OpenCode config - that's it!
84
+
85
+ **Global** (`~/.config/opencode/opencode.json`):
86
+ ```json
87
+ {
88
+ "plugin": ["maskweaver"]
89
+ }
90
+ ```
91
+
92
+ **Or per-project** (`opencode.json` in project root):
93
+ ```json
94
+ {
95
+ "plugin": ["maskweaver"]
96
+ }
97
+ ```
98
+
99
+ > Note: OpenCode installs npm packages by name. Use `maskweaver` (not `maskweaver/plugin`).
100
100
 
101
101
  OpenCode automatically installs the plugin to `~/.cache/opencode/node_modules/` on startup.
102
102
 
103
103
  **Windows:** `%USERPROFILE%\.config\opencode\opencode.json`
104
104
 
105
+ ### Completion Sound (Optional)
106
+
107
+ Maskweaver can play a notification sound when generation finishes (`session.idle`).
108
+
109
+ Create `.opencode/maskweaver.json` (project) or `~/.config/opencode/maskweaver.json` (global):
110
+
111
+ ```jsonc
112
+ {
113
+ "notifications": {
114
+ "completionSound": {
115
+ "enabled": true
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ Turn it off:
122
+
123
+ ```jsonc
124
+ {
125
+ "notifications": {
126
+ "completionSound": {
127
+ "enabled": false
128
+ }
129
+ }
130
+ }
131
+ ```
132
+
105
133
  ### Checking Installed Version
106
134
 
107
135
  Multiple ways to verify your Maskweaver version:
@@ -181,58 +209,58 @@ Smart subagents for cost-efficient multi-agent workflows:
181
209
  | `@dummy-human` | Balanced | πŸ’°πŸ’° | Code writing, reviews, general work |
182
210
  | `@dummy-premium` | Powerful | πŸ’°πŸ’°πŸ’° | Architecture, complex debugging |
183
211
 
184
- ### 🧡 Weave Workflow
185
-
186
- **Phase-Driven Development** β€” "AI verifies, Human validates"
187
-
188
- Weave is Maskweaver's flagship workflow. It breaks work into testable phases, auto-selects expert masks, and provides structured verification before handoff.
189
-
190
- #### Commands
191
-
192
- | Command | Description |
193
- |---------|-------------|
194
- | `/weave init` | Initialize Weave (once per repo) |
195
- | `/weave research [docs]` | Deep-read docs + workspace context and generate persistent `tasks/research.md` |
196
- | `/weave prepare [docs]` | (Manual path) Generate research + baseline spec + phase plan (auto-split if oversized) |
197
- | `/weave refine-plan` | Apply structured plan notes (`tasks/plan-notes.md`) to active plan |
198
- | `/weave approve-plan` | Explicit human approval gate before implementation |
199
- | `/weave flow [docs]` | (Recommended) One-command path: prepare -> auto-approve -> craft -> verify -> finalize |
200
- | `/weave spec [docs]` | Generate baseline spec only (optional) |
201
- | `/weave design [docs]` | Analyze requirements β†’ Generate phase plan (`/weave plan` alias, auto-split if oversized) |
202
- | `/weave craft [P#]` | Prepare phase execution context and guidance |
203
- | `/weave verify` | Run build/test verification (auto-detect) |
204
- | `/weave worktree ...` | Manage git worktrees for parallel work |
205
- | `/weave status` | View project progress and stats |
206
- | `/weave help` | Show documentation |
207
-
208
- > Tip: In OpenCode chat you can use `/weave ...` commands, and they map to the underlying `weave command=...` tool calls.
209
-
210
- #### Workflow
211
-
212
- ```
213
- 0. INIT (once): /weave init
214
- ↓
215
- 1. ONE-COMMAND (recommended): /weave flow docs/
216
- - runs: prepare -> auto-approve -> craft -> verify -> finalize
217
- ↓
218
- (or manual path)
219
- ↓
220
- 2. PLAN (manual path): /weave prepare docs/
221
- - or: /weave research docs/ β†’ /weave spec docs/ β†’ /weave design docs/
222
- ↓
223
- 3. REFINE (optional): /weave refine-plan
224
- - apply annotation notes from tasks/plan-notes.md
225
- ↓
226
- 4. APPROVAL GATE: /weave approve-plan
227
- - required before craft execution
228
- ↓
229
- 5. CRAFT: /weave craft
230
- - Generates an execution plan and next actions
231
- - Implement/verify changes, then finalize with approve-plan
232
- - Use `/weave verify` anytime for build/test checks
233
- ↓
234
- 6. HANDOFF: You validate UX/intent and move to next phase
235
- ```
212
+ ### 🧡 Weave Workflow
213
+
214
+ **Phase-Driven Development** β€” "AI verifies, Human validates"
215
+
216
+ Weave is Maskweaver's flagship workflow. It breaks work into testable phases, auto-selects expert masks, and provides structured verification before handoff.
217
+
218
+ #### Commands
219
+
220
+ | Command | Description |
221
+ |---------|-------------|
222
+ | `/weave init` | Initialize Weave (once per repo) |
223
+ | `/weave research [docs]` | Deep-read docs + workspace context and generate persistent `tasks/research.md` |
224
+ | `/weave prepare [docs]` | (Manual path) Generate research + baseline spec + phase plan (auto-split if oversized) |
225
+ | `/weave refine-plan` | Apply structured plan notes (`tasks/plan-notes.md`) to active plan |
226
+ | `/weave approve-plan` | Explicit human approval gate before implementation |
227
+ | `/weave flow [docs]` | (Recommended) One-command path: prepare -> auto-approve -> craft -> verify -> finalize |
228
+ | `/weave spec [docs]` | Generate baseline spec only (optional) |
229
+ | `/weave design [docs]` | Analyze requirements β†’ Generate phase plan (`/weave plan` alias, auto-split if oversized) |
230
+ | `/weave craft [P#]` | Prepare phase execution context and guidance |
231
+ | `/weave verify` | Run build/test verification (auto-detect) |
232
+ | `/weave worktree ...` | Manage git worktrees for parallel work |
233
+ | `/weave status` | View project progress and stats |
234
+ | `/weave help` | Show documentation |
235
+
236
+ > Tip: In OpenCode chat you can use `/weave ...` commands, and they map to the underlying `weave command=...` tool calls.
237
+
238
+ #### Workflow
239
+
240
+ ```
241
+ 0. INIT (once): /weave init
242
+ ↓
243
+ 1. ONE-COMMAND (recommended): /weave flow docs/
244
+ - runs: prepare -> auto-approve -> craft -> verify -> finalize
245
+ ↓
246
+ (or manual path)
247
+ ↓
248
+ 2. PLAN (manual path): /weave prepare docs/
249
+ - or: /weave research docs/ β†’ /weave spec docs/ β†’ /weave design docs/
250
+ ↓
251
+ 3. REFINE (optional): /weave refine-plan
252
+ - apply annotation notes from tasks/plan-notes.md
253
+ ↓
254
+ 4. APPROVAL GATE: /weave approve-plan
255
+ - required before craft execution
256
+ ↓
257
+ 5. CRAFT: /weave craft
258
+ - Generates an execution plan and next actions
259
+ - Implement/verify changes, then finalize with approve-plan
260
+ - Use `/weave verify` anytime for build/test checks
261
+ ↓
262
+ 6. HANDOFF: You validate UX/intent and move to next phase
263
+ ```
236
264
 
237
265
  #### Multi-Layer AI Verification
238
266
 
@@ -247,55 +275,55 @@ Before handing off to you, AI runs these verification layers:
247
275
  | 5️⃣ E2E Tests | Test | **Playwright** |
248
276
  | 6️⃣ Screenshot | Visual | Playwright / browser capture |
249
277
  | 7️⃣ API Check | API | `fetch` health checks |
250
- | 8️⃣ A11y | Accessibility | `axe-core` |
251
- | 0️⃣ GDC Check | Design | `gdc check --machine` |
252
-
253
- #### GDC Integration (Graph-Driven Codebase)
254
-
255
- Weave integrates with [GDC](https://github.com/ulgerang/gdc) (Graph-Driven Codebase) to enhance research quality and add design-time verification gates:
256
-
257
- **Research Enhancement:**
258
- - Automatic `.gdc` workspace detection
259
- - `weave init` probe chain (`version`/`sync`/`check`/`stats`) for quick integration health check
260
- - GDC `stats`, `graph`, and `check` results embedded in `tasks/research.md`
261
- - Dependency blast radius analysis from graph edges
262
- - Candidate reuse nodes matched against feature keywords
263
- - New report sections: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
264
-
265
- **Execution Enhancements:**
266
- - `weave craft` can generate node context files via `gdc extract` and link them in `tasks/todo.md`
267
- - `weave status` includes GDC node/check metrics (`total/implemented/tested`, issue summary)
268
- - `weave worktree create` can bootstrap `.gdc/config.yaml` and `.gdc/nodes/**` (without `.gdc/graph.db`)
269
-
270
- **Pre-Verify Gate:**
271
- When GDC is detected, `weave verify` and `weave flow` automatically run:
272
- 1. `gdc sync --machine` - Sync specs with implementation
273
- 2. `gdc check --machine` - Validate spec/implementation alignment
274
-
275
- Blocking errors from GDC check will halt verification (configurable via `strictVerify` mode).
276
-
277
- **Configuration** (`maskweaver.config.json`):
278
- ```json
279
- {
280
- "gdc": {
281
- "enabled": "auto",
282
- "strictVerify": false,
283
- "autoSyncOnPrepare": true,
284
- "extractContext": {
285
- "withImpl": true,
286
- "withTests": true,
287
- "withCallers": true
288
- }
289
- }
290
- }
291
- ```
292
-
293
- - `enabled`: `true` | `false` | `"auto"` (default: auto-detect from `.gdc` directory)
294
- - `strictVerify`: If `true`, GDC check failures block verification; if `false`, continues with warning
295
- - `autoSyncOnPrepare`: Run `gdc sync` during `weave prepare`
296
- - `extractContext`: Controls `gdc extract` evidence flags during `weave craft`
297
-
298
- #### Autonomous Mask Selection
278
+ | 8️⃣ A11y | Accessibility | `axe-core` |
279
+ | 0️⃣ GDC Check | Design | `gdc check --machine` |
280
+
281
+ #### GDC Integration (Graph-Driven Codebase)
282
+
283
+ Weave integrates with [GDC](https://github.com/ulgerang/gdc) (Graph-Driven Codebase) to enhance research quality and add design-time verification gates:
284
+
285
+ **Research Enhancement:**
286
+ - Automatic `.gdc` workspace detection
287
+ - `weave init` probe chain (`version`/`sync`/`check`/`stats`) for quick integration health check
288
+ - GDC `stats`, `graph`, and `check` results embedded in `tasks/research.md`
289
+ - Dependency blast radius analysis from graph edges
290
+ - Candidate reuse nodes matched against feature keywords
291
+ - New report sections: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
292
+
293
+ **Execution Enhancements:**
294
+ - `weave craft` can generate node context files via `gdc extract` and link them in `tasks/todo.md`
295
+ - `weave status` includes GDC node/check metrics (`total/implemented/tested`, issue summary)
296
+ - `weave worktree create` can bootstrap `.gdc/config.yaml` and `.gdc/nodes/**` (without `.gdc/graph.db`)
297
+
298
+ **Pre-Verify Gate:**
299
+ When GDC is detected, `weave verify` and `weave flow` automatically run:
300
+ 1. `gdc sync --machine` - Sync specs with implementation
301
+ 2. `gdc check --machine` - Validate spec/implementation alignment
302
+
303
+ Blocking errors from GDC check will halt verification (configurable via `strictVerify` mode).
304
+
305
+ **Configuration** (`maskweaver.config.json`):
306
+ ```json
307
+ {
308
+ "gdc": {
309
+ "enabled": "auto",
310
+ "strictVerify": false,
311
+ "autoSyncOnPrepare": true,
312
+ "extractContext": {
313
+ "withImpl": true,
314
+ "withTests": true,
315
+ "withCallers": true
316
+ }
317
+ }
318
+ }
319
+ ```
320
+
321
+ - `enabled`: `true` | `false` | `"auto"` (default: auto-detect from `.gdc` directory)
322
+ - `strictVerify`: If `true`, GDC check failures block verification; if `false`, continues with warning
323
+ - `autoSyncOnPrepare`: Run `gdc sync` during `weave prepare`
324
+ - `extractContext`: Controls `gdc extract` evidence flags during `weave craft`
325
+
326
+ #### Autonomous Mask Selection
299
327
 
300
328
  The AI automatically picks the best expert for each task:
301
329
 
@@ -399,51 +427,51 @@ import { MaskLoader } from 'maskweaver/core';
399
427
  import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
400
428
  ```
401
429
 
402
- **Modules:**
403
- - `maskweaver/core` - Mask loading, validation (YAML/JSON)
404
- - `maskweaver/memory` - Embeddings + vector search (5 providers)
405
- - `maskweaver/context` - Feature-based work tracking
406
- - `maskweaver/verify` - Cross-mask code review
407
- - `maskweaver/retrospect` - Session effectiveness analysis
408
- - `maskweaver/weave` - Phase-driven development workflow
409
- - `maskweaver/gdc` - GDC (Graph-Driven Codebase) integration utilities
410
- - `maskweaver/plugin` - OpenCode plugin entry point
430
+ **Modules:**
431
+ - `maskweaver/core` - Mask loading, validation (YAML/JSON)
432
+ - `maskweaver/memory` - Embeddings + vector search (5 providers)
433
+ - `maskweaver/context` - Feature-based work tracking
434
+ - `maskweaver/verify` - Cross-mask code review
435
+ - `maskweaver/retrospect` - Session effectiveness analysis
436
+ - `maskweaver/weave` - Phase-driven development workflow
437
+ - `maskweaver/gdc` - GDC (Graph-Driven Codebase) integration utilities
438
+ - `maskweaver/plugin` - OpenCode plugin entry point
411
439
 
412
440
  ---
413
441
 
414
- ## 🧡 Weave Usage Guide
415
-
416
- ### Step 0: Initialize (Once)
417
-
418
- ```bash
419
- /weave init
420
- ```
421
-
422
- ### Step 1: Create a Plan (Flow Recommended)
423
-
424
- Fastest path (one command):
425
-
426
- ```bash
427
- /weave flow docs/
428
- ```
429
-
430
- This runs `prepare -> auto-approve -> craft -> verify -> finalize` in one shot.
431
-
432
- Manual happy path (research + spec + plan in one command):
433
-
434
- ```bash
435
- /weave prepare docs/
436
- /weave approve-plan
437
- ```
438
-
439
- Or run the full pipeline separately:
440
-
441
- ```bash
442
- /weave research docs/
443
- /weave spec docs/
444
- /weave design docs/
445
- /weave approve-plan
446
- ```
442
+ ## 🧡 Weave Usage Guide
443
+
444
+ ### Step 0: Initialize (Once)
445
+
446
+ ```bash
447
+ /weave init
448
+ ```
449
+
450
+ ### Step 1: Create a Plan (Flow Recommended)
451
+
452
+ Fastest path (one command):
453
+
454
+ ```bash
455
+ /weave flow docs/
456
+ ```
457
+
458
+ This runs `prepare -> auto-approve -> craft -> verify -> finalize` in one shot.
459
+
460
+ Manual happy path (research + spec + plan in one command):
461
+
462
+ ```bash
463
+ /weave prepare docs/
464
+ /weave approve-plan
465
+ ```
466
+
467
+ Or run the full pipeline separately:
468
+
469
+ ```bash
470
+ /weave research docs/
471
+ /weave spec docs/
472
+ /weave design docs/
473
+ /weave approve-plan
474
+ ```
447
475
 
448
476
  The AI will:
449
477
  1. Read all documents in the path
@@ -468,43 +496,43 @@ Build a modern emotion diary app with AI-powered insights
468
496
  Is this plan okay? Let me know if changes are needed.
469
497
  ```
470
498
 
471
- ### Step 2: Approve the Plan (Required)
472
-
473
- ```bash
474
- /weave approve-plan
475
- ```
476
-
477
- ### Step 3: Craft a Phase (Auto-select if omitted)
478
-
479
- Start with the first phase:
480
-
481
- ```bash
482
- /weave craft
483
- ```
484
-
485
- `/weave craft` returns execution context for the phase. Implement changes, then rerun `/weave craft` if you want to refresh the plan view.
486
-
487
- ### Step 4: Continue Implementation
488
-
489
- ```txt
490
- weave command=craft phaseId="P1"
491
- weave command=verify
492
- ```
493
-
494
- One-command resume:
495
-
496
- ```txt
497
- weave command=flow
498
- ```
499
-
500
- ### Step 5: Finalize the Phase
501
-
502
- ```txt
503
- weave command=verify
504
- weave command=approve-plan
505
- ```
506
-
507
- ### Step 6: Handoff & Validate
499
+ ### Step 2: Approve the Plan (Required)
500
+
501
+ ```bash
502
+ /weave approve-plan
503
+ ```
504
+
505
+ ### Step 3: Craft a Phase (Auto-select if omitted)
506
+
507
+ Start with the first phase:
508
+
509
+ ```bash
510
+ /weave craft
511
+ ```
512
+
513
+ `/weave craft` returns execution context for the phase. Implement changes, then rerun `/weave craft` if you want to refresh the plan view.
514
+
515
+ ### Step 4: Continue Implementation
516
+
517
+ ```txt
518
+ weave command=craft phaseId="P1"
519
+ weave command=verify
520
+ ```
521
+
522
+ One-command resume:
523
+
524
+ ```txt
525
+ weave command=flow
526
+ ```
527
+
528
+ ### Step 5: Finalize the Phase
529
+
530
+ ```txt
531
+ weave command=verify
532
+ weave command=approve-plan
533
+ ```
534
+
535
+ ### Step 6: Handoff & Validate
508
536
 
509
537
  When all verifications pass:
510
538
 
@@ -533,7 +561,7 @@ http://localhost:5173
533
561
  **[Approve]** **[Request Changes]** **[Later]**
534
562
  ```
535
563
 
536
- ### Step 6: Check Status Anytime
564
+ ### Step 6: Check Status Anytime
537
565
 
538
566
  ```bash
539
567
  /weave status
@@ -133,56 +133,56 @@ permission:
133
133
  3. **μ§„ν–‰ 관리**: task μƒνƒœ λͺ¨λ‹ˆν„°λ§ 및 μ—…λ°μ΄νŠΈ
134
134
  4. **κ²°κ³Ό 톡합**: μ›Œμ»€ κ²°κ³Όλ₯Ό μˆ˜μ§‘ν•˜κ³  κ°€λ©΄μˆ μ‚¬μ—κ²Œ 보고
135
135
 
136
- ## μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ
137
-
138
- ### squad 도ꡬ
139
- - `squad({ action: "assign", squadId, description, assignee, priority })` - task ν• λ‹Ή
140
- - `squad({ action: "update", squadId, taskId, status })` - μƒνƒœ μ—…λ°μ΄νŠΈ
141
- - `squad({ action: "complete", squadId, taskId, success, output })` - μ™„λ£Œ 처리
142
- - `squad({ action: "status", squadId })` - ν˜„μž¬ μƒνƒœ 쑰회
143
- - `squad({ action: "watchdog", dryRun: true })` - 건강 체크
144
- - `squad({ action: "models" })` - **λͺ¨λΈ ν’€ μƒνƒœ 쑰회** (κ°€μš© 슬둯, λŠ₯λ ₯, λ™μ‹œμ‹€ν–‰ ν˜„ν™©)
145
-
146
- ### Task 도ꡬ
147
- - 더미인간 μ†Œν™˜ κ°€λŠ₯ (λ‹€λ₯Έ μ›Œμ»€μ—κ²Œ μœ„μž„)
148
-
149
- ## λͺ¨λΈ ν’€ 기반 μ›Œμ»€ ν• λ‹Ή
150
-
151
- ### λͺ¨λΈ ν’€ μ‹œμŠ€ν…œ
152
- μ‚¬μš©μžμ˜ AI ꡬ독 λͺ¨λΈλ“€μ€ **ν’€(pool)**둜 κ΄€λ¦¬λ©λ‹ˆλ‹€. 각 λͺ¨λΈμ€:
153
- - **λ™μ‹œμ‹€ν–‰ μ œν•œ**: `maxConcurrent` κ°œκΉŒμ§€λ§Œ λ™μ‹œμ— μ‚¬μš© κ°€λŠ₯
154
- - **λŠ₯λ ₯ νƒœκ·Έ**: λͺ¨λΈλ§ˆλ‹€ μž˜ν•˜λŠ” λΆ„μ•Όκ°€ 닀름 (coding, architecture, debugging λ“±)
155
- - **λΉ„μš© λ“±κΈ‰**: low / medium / high
156
-
157
- ### μž‘μ—… ν• λ‹Ή μ „ λͺ¨λΈ 확인
158
- μž‘μ—… ν• λ‹Ή μ „ λ°˜λ“œμ‹œ `squad({ action: "models" })`둜 κ°€μš© λͺ¨λΈμ„ ν™•μΈν•˜μ„Έμš”:
159
- ```
160
- squad({ action: "models" })
161
- β†’ {
162
- totalCapacity: 6,
163
- totalAvailable: 4,
164
- models: [
165
- { id: "gemini-flash", agentName: "dummy-gemini-flash", tier: "flash",
166
- maxConcurrent: 5, activeCount: 1, remainingSlots: 4, capabilities: [...] },
167
- { id: "claude-opus", agentName: "dummy-claude-opus", tier: "premium",
168
- maxConcurrent: 1, activeCount: 1, remainingSlots: 0, available: false },
169
- ]
170
- }
171
- ```
172
-
173
- ### ν• λ‹Ή μ „λž΅
174
- 1. **λͺ¨λΈ 확인**: `squad({ action: "models" })`둜 κ°€μš© ν˜„ν™© νŒŒμ•…
175
- 2. **μž‘μ—… λ§€μΉ­**: μž‘μ—…μ˜ λ³΅μž‘λ„μ™€ νŠΉμ„±μ— λ§žλŠ” λͺ¨λΈ 선택
176
- - λ‹¨μˆœ μž‘μ—… (파일 정리, ν¬λ§€νŒ…) β†’ flash ν‹°μ–΄ λͺ¨λΈ
177
- - 일반 μ½”λ”© β†’ human ν‹°μ–΄ λͺ¨λΈ
178
- - λ³΅μž‘ν•œ 섀계/디버깅 β†’ premium ν‹°μ–΄ λͺ¨λΈ
179
- 3. **λ™μ‹œμ‹€ν–‰ κ³ λ €**: ν•΄λ‹Ή λͺ¨λΈμ˜ `remainingSlots`이 0이면 λ‹€λ₯Έ λͺ¨λΈ μ‚¬μš©
180
- 4. **fallback**: μ›ν•˜λŠ” ν‹°μ–΄κ°€ 꽉 찼으면 λΉ„μŠ·ν•œ λŠ₯λ ₯의 λ‹€λ₯Έ λͺ¨λΈ μ‚¬μš©
181
-
182
- ### assignee μ§€μ • 방식
183
- `assignee` ν•„λ“œμ— **μ—μ΄μ „νŠΈ 이름**을 μ‚¬μš©ν•©λ‹ˆλ‹€:
184
- - ν’€ λͺ¨λΈ: `"dummy-{λͺ¨λΈid}"` (예: `"dummy-gemini-flash"`, `"dummy-claude-opus"`)
185
- - λ ˆκ±°μ‹œ: `"dummy-flash"`, `"dummy-human"`, `"dummy-premium"`
136
+ ## μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ
137
+
138
+ ### squad 도ꡬ
139
+ - `squad({ action: "assign", squadId, description, assignee, priority })` - task ν• λ‹Ή
140
+ - `squad({ action: "update", squadId, taskId, status })` - μƒνƒœ μ—…λ°μ΄νŠΈ
141
+ - `squad({ action: "complete", squadId, taskId, success, output })` - μ™„λ£Œ 처리
142
+ - `squad({ action: "status", squadId })` - ν˜„μž¬ μƒνƒœ 쑰회
143
+ - `squad({ action: "watchdog", dryRun: true })` - 건강 체크
144
+ - `squad({ action: "models" })` - **λͺ¨λΈ ν’€ μƒνƒœ 쑰회** (κ°€μš© 슬둯, λŠ₯λ ₯, λ™μ‹œμ‹€ν–‰ ν˜„ν™©)
145
+
146
+ ### Task 도ꡬ
147
+ - 더미인간 μ†Œν™˜ κ°€λŠ₯ (λ‹€λ₯Έ μ›Œμ»€μ—κ²Œ μœ„μž„)
148
+
149
+ ## λͺ¨λΈ ν’€ 기반 μ›Œμ»€ ν• λ‹Ή
150
+
151
+ ### λͺ¨λΈ ν’€ μ‹œμŠ€ν…œ
152
+ μ‚¬μš©μžμ˜ AI ꡬ독 λͺ¨λΈλ“€μ€ **ν’€(pool)**둜 κ΄€λ¦¬λ©λ‹ˆλ‹€. 각 λͺ¨λΈμ€:
153
+ - **λ™μ‹œμ‹€ν–‰ μ œν•œ**: `maxConcurrent` κ°œκΉŒμ§€λ§Œ λ™μ‹œμ— μ‚¬μš© κ°€λŠ₯
154
+ - **λŠ₯λ ₯ νƒœκ·Έ**: λͺ¨λΈλ§ˆλ‹€ μž˜ν•˜λŠ” λΆ„μ•Όκ°€ 닀름 (coding, architecture, debugging λ“±)
155
+ - **λΉ„μš© λ“±κΈ‰**: low / medium / high
156
+
157
+ ### μž‘μ—… ν• λ‹Ή μ „ λͺ¨λΈ 확인
158
+ μž‘μ—… ν• λ‹Ή μ „ λ°˜λ“œμ‹œ `squad({ action: "models" })`둜 κ°€μš© λͺ¨λΈμ„ ν™•μΈν•˜μ„Έμš”:
159
+ ```
160
+ squad({ action: "models" })
161
+ β†’ {
162
+ totalCapacity: 6,
163
+ totalAvailable: 4,
164
+ models: [
165
+ { id: "gemini-flash", agentName: "dummy-gemini-flash", tier: "flash",
166
+ maxConcurrent: 5, activeCount: 1, remainingSlots: 4, capabilities: [...] },
167
+ { id: "claude-opus", agentName: "dummy-claude-opus", tier: "premium",
168
+ maxConcurrent: 1, activeCount: 1, remainingSlots: 0, available: false },
169
+ ]
170
+ }
171
+ ```
172
+
173
+ ### ν• λ‹Ή μ „λž΅
174
+ 1. **λͺ¨λΈ 확인**: `squad({ action: "models" })`둜 κ°€μš© ν˜„ν™© νŒŒμ•…
175
+ 2. **μž‘μ—… λ§€μΉ­**: μž‘μ—…μ˜ λ³΅μž‘λ„μ™€ νŠΉμ„±μ— λ§žλŠ” λͺ¨λΈ 선택
176
+ - λ‹¨μˆœ μž‘μ—… (파일 정리, ν¬λ§€νŒ…) β†’ flash ν‹°μ–΄ λͺ¨λΈ
177
+ - 일반 μ½”λ”© β†’ human ν‹°μ–΄ λͺ¨λΈ
178
+ - λ³΅μž‘ν•œ 섀계/디버깅 β†’ premium ν‹°μ–΄ λͺ¨λΈ
179
+ 3. **λ™μ‹œμ‹€ν–‰ κ³ λ €**: ν•΄λ‹Ή λͺ¨λΈμ˜ `remainingSlots`이 0이면 λ‹€λ₯Έ λͺ¨λΈ μ‚¬μš©
180
+ 4. **fallback**: μ›ν•˜λŠ” ν‹°μ–΄κ°€ 꽉 찼으면 λΉ„μŠ·ν•œ λŠ₯λ ₯의 λ‹€λ₯Έ λͺ¨λΈ μ‚¬μš©
181
+
182
+ ### assignee μ§€μ • 방식
183
+ `assignee` ν•„λ“œμ— **μ—μ΄μ „νŠΈ 이름**을 μ‚¬μš©ν•©λ‹ˆλ‹€:
184
+ - ν’€ λͺ¨λΈ: `"dummy-{λͺ¨λΈid}"` (예: `"dummy-gemini-flash"`, `"dummy-claude-opus"`)
185
+ - λ ˆκ±°μ‹œ: `"dummy-flash"`, `"dummy-human"`, `"dummy-premium"`
186
186
 
187
187
  ## μ›Œν¬ν”Œλ‘œμš°
188
188
 
@@ -229,9 +229,9 @@ squad({ action: "plan", squadId })
229
229
  - μ‹€νŒ¨ν•œ task 및 원인 (μžˆλŠ” 경우)
230
230
  - 총 μ†Œμš” μ‹œκ°„
231
231
 
232
- ## μ œμ•½μ‚¬ν•­
233
-
234
- - ν•œ λ²ˆμ— μ΅œλŒ€ 5개 μ›Œμ»€ 관리
235
- - taskλ‹Ή μ΅œλŒ€ 5λΆ„ νƒ€μž„μ•„μ›ƒ
236
- - μ‹€νŒ¨ μ‹œ μž¬μ‹œλ„ 1회
237
- - **λͺ¨λΈλ³„ λ™μ‹œμ‹€ν–‰ μ œν•œ μ€€μˆ˜** (λ°˜λ“œμ‹œ `squad({ action: "models" })`둜 확인 ν›„ ν• λ‹Ή)
232
+ ## μ œμ•½μ‚¬ν•­
233
+
234
+ - ν•œ λ²ˆμ— μ΅œλŒ€ 5개 μ›Œμ»€ 관리
235
+ - taskλ‹Ή μ΅œλŒ€ 5λΆ„ νƒ€μž„μ•„μ›ƒ
236
+ - μ‹€νŒ¨ μ‹œ μž¬μ‹œλ„ 1회
237
+ - **λͺ¨λΈλ³„ λ™μ‹œμ‹€ν–‰ μ œν•œ μ€€μˆ˜** (λ°˜λ“œμ‹œ `squad({ action: "models" })`둜 확인 ν›„ ν• λ‹Ή)