maskweaver 0.8.2 → 0.8.3
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/README.ko.md +14 -33
- package/README.md +13 -32
- package/assets/commands/weave-craft.md +26 -398
- package/assets/commands/weave-flow.md +13 -30
- package/assets/commands/weave-help.md +4 -4
- package/assets/commands/weave-prepare.md +1 -1
- package/assets/commands/weave-refine-plan.md +0 -1
- package/assets/commands/weave-status.md +2 -7
- package/dist/plugin/tools/slashcommand.js +6 -6
- package/dist/plugin/tools/slashcommand.js.map +1 -1
- package/dist/plugin/tools/weave.d.ts +0 -2
- package/dist/plugin/tools/weave.d.ts.map +1 -1
- package/dist/plugin/tools/weave.js +87 -817
- package/dist/plugin/tools/weave.js.map +1 -1
- package/dist/weave/stages/execute.d.ts.map +1 -1
- package/dist/weave/stages/execute.js +6 -7
- package/dist/weave/stages/execute.js.map +1 -1
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -165,7 +165,7 @@ profile:
|
|
|
165
165
|
|
|
166
166
|
**Phase 기반 개발** — "AI가 검증하고, 유저가 확인한다"
|
|
167
167
|
|
|
168
|
-
Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가능한 Phase로 나누고, 전문가 마스크를 자동 선택하며,
|
|
168
|
+
Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가능한 Phase로 나누고, 전문가 마스크를 자동 선택하며, 유저 전달 전 구조화된 검증 단계를 제공합니다.
|
|
169
169
|
|
|
170
170
|
#### 명령어
|
|
171
171
|
|
|
@@ -176,10 +176,10 @@ Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가
|
|
|
176
176
|
| `/weave prepare [docs]` | (수동 경로) research + baseline spec + phase plan 생성 (큰 계획은 자동 분할) |
|
|
177
177
|
| `/weave refine-plan` | `tasks/plan-notes.md` 지시문을 active plan에 반영 |
|
|
178
178
|
| `/weave approve-plan` | 구현 전 사람이 계획 승인(게이트) |
|
|
179
|
-
| `/weave flow [docs]` | (권장) 원커맨드 경로: prepare -> approve
|
|
179
|
+
| `/weave flow [docs]` | (권장) 원커맨드 경로: prepare -> auto-approve -> craft -> verify -> finalize |
|
|
180
180
|
| `/weave spec [docs]` | baseline spec만 생성 (선택) |
|
|
181
181
|
| `/weave design [docs]` | 요구사항 분석 → Phase 계획 생성 (`/weave plan`은 별칭/호환, 큰 계획은 자동 분할) |
|
|
182
|
-
| `/weave craft [P#]` | Phase 실행
|
|
182
|
+
| `/weave craft [P#]` | Phase 실행 컨텍스트/가이드 생성 |
|
|
183
183
|
| `/weave verify` | 빌드/테스트 검증 실행 (자동 감지) |
|
|
184
184
|
| `/weave worktree ...` | git worktree 기반 병렬 작업 관리 |
|
|
185
185
|
| `/weave status` | 프로젝트 진행 상황 및 통계 확인 |
|
|
@@ -193,7 +193,7 @@ Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가
|
|
|
193
193
|
0. INIT (1회): /weave init
|
|
194
194
|
↓
|
|
195
195
|
1. 원커맨드(권장): /weave flow docs/
|
|
196
|
-
- 실행: prepare -> approve
|
|
196
|
+
- 실행: prepare -> auto-approve -> craft -> verify -> finalize
|
|
197
197
|
↓
|
|
198
198
|
(또는 수동 경로)
|
|
199
199
|
↓
|
|
@@ -207,9 +207,9 @@ Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가
|
|
|
207
207
|
- craft 실행 전 필수 승인
|
|
208
208
|
↓
|
|
209
209
|
5. CRAFT: /weave craft
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
- Phase 실행 계획과 다음 액션 안내 생성
|
|
211
|
+
- 구현/검증 후 approve-plan으로 phase 완료 처리
|
|
212
|
+
- `/weave verify`로 빌드/테스트 검증 가능
|
|
213
213
|
↓
|
|
214
214
|
6. HANDOFF: 유저가 UX/의도 확인 후 다음 Phase로 진행
|
|
215
215
|
```
|
|
@@ -360,7 +360,7 @@ import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
|
|
|
360
360
|
/weave flow docs/
|
|
361
361
|
```
|
|
362
362
|
|
|
363
|
-
한 번에 `prepare -> approve
|
|
363
|
+
한 번에 `prepare -> auto-approve -> craft -> verify -> finalize`까지 실행합니다.
|
|
364
364
|
|
|
365
365
|
수동 happy path (research + spec + plan 한 번에):
|
|
366
366
|
|
|
@@ -415,47 +415,28 @@ AI 인사이트가 포함된 현대적 감정 일기 앱 구축
|
|
|
415
415
|
/weave craft
|
|
416
416
|
```
|
|
417
417
|
|
|
418
|
-
`/weave craft`는 실행
|
|
418
|
+
`/weave craft`는 phase 실행 컨텍스트를 생성합니다(phase 미지정 시 다음 phase 자동 선택). 구현 반영 후 같은 명령으로 계획을 다시 확인할 수 있습니다.
|
|
419
419
|
|
|
420
|
-
### 4단계:
|
|
420
|
+
### 4단계: 구현 진행
|
|
421
421
|
|
|
422
422
|
```txt
|
|
423
423
|
weave command=craft phaseId="P1"
|
|
424
|
-
weave command=
|
|
424
|
+
weave command=verify
|
|
425
425
|
```
|
|
426
426
|
|
|
427
|
-
원커맨드로
|
|
427
|
+
원커맨드로 이어서 진행하려면:
|
|
428
428
|
|
|
429
429
|
```txt
|
|
430
430
|
weave command=flow
|
|
431
431
|
```
|
|
432
432
|
|
|
433
|
-
### 5단계:
|
|
433
|
+
### 5단계: Phase 완료 처리
|
|
434
434
|
|
|
435
435
|
```txt
|
|
436
436
|
weave command=verify
|
|
437
|
-
weave command=
|
|
437
|
+
weave command=approve-plan
|
|
438
438
|
```
|
|
439
439
|
|
|
440
|
-
진행 상황 출력:
|
|
441
|
-
```markdown
|
|
442
|
-
### Task 진행 상황
|
|
443
|
-
|
|
444
|
-
#### Task 1: EmotionButton 컴포넌트
|
|
445
|
-
- [x] 마스크: 🧪 켄트 벡
|
|
446
|
-
- [x] 테스트 작성
|
|
447
|
-
- [x] 구현
|
|
448
|
-
- [x] 검증 완료 ✅
|
|
449
|
-
|
|
450
|
-
#### Task 2: 상태 관리
|
|
451
|
-
- [x] 마스크: ⚛️ 댄 아브라모프
|
|
452
|
-
- [x] 테스트 작성
|
|
453
|
-
- [x] 구현
|
|
454
|
-
- [ ] 검증 중 🔄 (재시도 2/5)
|
|
455
|
-
- 💡 유사 솔루션 발견: "React 상태 타이밍 이슈"
|
|
456
|
-
- 수정: useEffect 의존성 배열 추가
|
|
457
|
-
```
|
|
458
|
-
|
|
459
440
|
### 6단계: 핸드오프 & 검증
|
|
460
441
|
|
|
461
442
|
모든 검증이 통과되면:
|
package/README.md
CHANGED
|
@@ -184,7 +184,7 @@ Smart subagents for cost-efficient multi-agent workflows:
|
|
|
184
184
|
|
|
185
185
|
**Phase-Driven Development** — "AI verifies, Human validates"
|
|
186
186
|
|
|
187
|
-
Weave is Maskweaver's flagship workflow. It breaks work into testable phases, auto-selects expert masks, and
|
|
187
|
+
Weave is Maskweaver's flagship workflow. It breaks work into testable phases, auto-selects expert masks, and provides structured verification before handoff.
|
|
188
188
|
|
|
189
189
|
#### Commands
|
|
190
190
|
|
|
@@ -195,10 +195,10 @@ Weave is Maskweaver's flagship workflow. It breaks work into testable phases, au
|
|
|
195
195
|
| `/weave prepare [docs]` | (Manual path) Generate research + baseline spec + phase plan (auto-split if oversized) |
|
|
196
196
|
| `/weave refine-plan` | Apply structured plan notes (`tasks/plan-notes.md`) to active plan |
|
|
197
197
|
| `/weave approve-plan` | Explicit human approval gate before implementation |
|
|
198
|
-
| `/weave flow [docs]` | (Recommended) One-command path: prepare -> approve
|
|
198
|
+
| `/weave flow [docs]` | (Recommended) One-command path: prepare -> auto-approve -> craft -> verify -> finalize |
|
|
199
199
|
| `/weave spec [docs]` | Generate baseline spec only (optional) |
|
|
200
200
|
| `/weave design [docs]` | Analyze requirements → Generate phase plan (`/weave plan` alias, auto-split if oversized) |
|
|
201
|
-
| `/weave craft [P#]` |
|
|
201
|
+
| `/weave craft [P#]` | Prepare phase execution context and guidance |
|
|
202
202
|
| `/weave verify` | Run build/test verification (auto-detect) |
|
|
203
203
|
| `/weave worktree ...` | Manage git worktrees for parallel work |
|
|
204
204
|
| `/weave status` | View project progress and stats |
|
|
@@ -212,7 +212,7 @@ Weave is Maskweaver's flagship workflow. It breaks work into testable phases, au
|
|
|
212
212
|
0. INIT (once): /weave init
|
|
213
213
|
↓
|
|
214
214
|
1. ONE-COMMAND (recommended): /weave flow docs/
|
|
215
|
-
- runs: prepare -> approve
|
|
215
|
+
- runs: prepare -> auto-approve -> craft -> verify -> finalize
|
|
216
216
|
↓
|
|
217
217
|
(or manual path)
|
|
218
218
|
↓
|
|
@@ -226,9 +226,9 @@ Weave is Maskweaver's flagship workflow. It breaks work into testable phases, au
|
|
|
226
226
|
- required before craft execution
|
|
227
227
|
↓
|
|
228
228
|
5. CRAFT: /weave craft
|
|
229
|
-
- Generates an execution plan
|
|
230
|
-
-
|
|
231
|
-
-
|
|
229
|
+
- Generates an execution plan and next actions
|
|
230
|
+
- Implement/verify changes, then finalize with approve-plan
|
|
231
|
+
- Use `/weave verify` anytime for build/test checks
|
|
232
232
|
↓
|
|
233
233
|
6. HANDOFF: You validate UX/intent and move to next phase
|
|
234
234
|
```
|
|
@@ -379,7 +379,7 @@ Fastest path (one command):
|
|
|
379
379
|
/weave flow docs/
|
|
380
380
|
```
|
|
381
381
|
|
|
382
|
-
This runs `prepare -> approve
|
|
382
|
+
This runs `prepare -> auto-approve -> craft -> verify -> finalize` in one shot.
|
|
383
383
|
|
|
384
384
|
Manual happy path (research + spec + plan in one command):
|
|
385
385
|
|
|
@@ -434,13 +434,13 @@ Start with the first phase:
|
|
|
434
434
|
/weave craft
|
|
435
435
|
```
|
|
436
436
|
|
|
437
|
-
`/weave craft` returns
|
|
437
|
+
`/weave craft` returns execution context for the phase. Implement changes, then rerun `/weave craft` if you want to refresh the plan view.
|
|
438
438
|
|
|
439
|
-
### Step 4: Continue
|
|
439
|
+
### Step 4: Continue Implementation
|
|
440
440
|
|
|
441
441
|
```txt
|
|
442
442
|
weave command=craft phaseId="P1"
|
|
443
|
-
weave command=
|
|
443
|
+
weave command=verify
|
|
444
444
|
```
|
|
445
445
|
|
|
446
446
|
One-command resume:
|
|
@@ -449,32 +449,13 @@ One-command resume:
|
|
|
449
449
|
weave command=flow
|
|
450
450
|
```
|
|
451
451
|
|
|
452
|
-
### Step 5:
|
|
452
|
+
### Step 5: Finalize the Phase
|
|
453
453
|
|
|
454
454
|
```txt
|
|
455
455
|
weave command=verify
|
|
456
|
-
weave command=
|
|
456
|
+
weave command=approve-plan
|
|
457
457
|
```
|
|
458
458
|
|
|
459
|
-
Progress output:
|
|
460
|
-
```markdown
|
|
461
|
-
### Task Progress
|
|
462
|
-
|
|
463
|
-
#### Task 1: EmotionButton Component
|
|
464
|
-
- [x] Mask: 🧪 Kent Beck
|
|
465
|
-
- [x] Tests written
|
|
466
|
-
- [x] Implementation
|
|
467
|
-
- [x] Verified ✅
|
|
468
|
-
|
|
469
|
-
#### Task 2: State Management
|
|
470
|
-
- [x] Mask: ⚛️ Dan Abramov
|
|
471
|
-
- [x] Tests written
|
|
472
|
-
- [x] Implementation
|
|
473
|
-
- [ ] Verifying 🔄 (retry 2/5)
|
|
474
|
-
- 💡 Similar solution found: "React state timing issue"
|
|
475
|
-
- Fix: Added useEffect dependency array
|
|
476
|
-
```
|
|
477
|
-
|
|
478
459
|
### Step 6: Handoff & Validate
|
|
479
460
|
|
|
480
461
|
When all verifications pass:
|
|
@@ -1,415 +1,43 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Phase 실행 (
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# /weave-craft - Phase 실행
|
|
6
|
-
|
|
7
|
-
## 개요
|
|
8
|
-
|
|
9
|
-
**활성 플랜**의 특정 Phase를 실행합니다.
|
|
10
|
-
AI가 자동으로 검증 루프를 돌리고, 완료되면 유저에게 전달합니다.
|
|
11
|
-
|
|
12
|
-
**사용법**: `/weave-craft $ARGUMENTS`
|
|
13
|
-
- `$ARGUMENTS` = 선택적 Phase ID (예: `P1`, `P2`)
|
|
14
|
-
- 비우면 다음 실행 가능한 Phase를 자동 선택합니다.
|
|
1
|
+
---
|
|
2
|
+
description: Phase 실행 준비 (실행 컨텍스트 생성)
|
|
3
|
+
---
|
|
15
4
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
**Maskweaver 통합**:
|
|
19
|
-
- **Masks**: Task별 전문가 마스크 자동 선택
|
|
20
|
-
- **Global Knowledge**: 과거 트러블슈팅 경험 검색/기록
|
|
21
|
-
- **Verify**: 다층 AI 자동 검증 시스템
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 사전 조건: 활성 플랜 확인
|
|
26
|
-
|
|
27
|
-
실행 전 반드시:
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
1. .opencode/weave/state.yaml 읽기
|
|
31
|
-
2. active_plan 값 확인
|
|
32
|
-
3. .opencode/weave/plans/{active_plan}.yaml 읽기
|
|
33
|
-
4. 해당 Phase 상태 확인
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**활성 플랜이 없는 경우**:
|
|
37
|
-
```markdown
|
|
38
|
-
❌ 활성 플랜이 없습니다.
|
|
39
|
-
|
|
40
|
-
플랜을 먼저 만들어주세요: `/weave-design [docs]`
|
|
41
|
-
또는 기존 플랜을 선택하세요: `/weave-switch`
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**요청한 Phase가 없는 경우**:
|
|
45
|
-
```markdown
|
|
46
|
-
❌ 플랜 `emotion-diary`에 Phase P7이 없습니다.
|
|
47
|
-
|
|
48
|
-
사용 가능한 Phase:
|
|
49
|
-
- P1: 감정 선택 UI ✅
|
|
50
|
-
- P2: 감정 저장 🔄
|
|
51
|
-
- P3: 히스토리 뷰 ⏳
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 실행 흐름
|
|
5
|
+
# /weave-craft - Phase 실행 준비
|
|
57
6
|
|
|
58
|
-
|
|
59
|
-
0. LOAD PLAN (활성 플랜 + Phase 정보 로드)
|
|
60
|
-
↓
|
|
61
|
-
1. GENERATE EXECUTION PLAN (자동 분석)
|
|
62
|
-
├─ 각 Task의 복잡도 판단 (simple/standard/complex)
|
|
63
|
-
├─ 에이전트 티어 선택 (flash/human/premium)
|
|
64
|
-
├─ 전문가 마스크 자동 선택
|
|
65
|
-
├─ 글로벌 지식에서 트러블슈팅 힌트 검색
|
|
66
|
-
└─ 병렬 실행 가능 여부 분석
|
|
67
|
-
↓
|
|
68
|
-
2. DELEGATE (실행 계획에 따라 작업 위임)
|
|
69
|
-
├─ simple → dummy-flash (빠르고 저렴)
|
|
70
|
-
├─ standard → dummy-human (범용)
|
|
71
|
-
└─ complex → dummy-premium (강력한 추론)
|
|
72
|
-
↓
|
|
73
|
-
3. BUILD + SELF-VERIFY LOOP
|
|
74
|
-
├─ 각 Task에 대해:
|
|
75
|
-
│ ├─ 적합한 마스크 자동 선택
|
|
76
|
-
│ ├─ 테스트 먼저 (Red)
|
|
77
|
-
│ ├─ 최소 구현 (Green)
|
|
78
|
-
│ ├─ 정리 (Refactor)
|
|
79
|
-
│ └─ AI 자동 검증 → PASS/FAIL
|
|
80
|
-
│ ├─ PASS → `weave craft ...` 재실행으로 상태 업데이트 (옵션: quick verify/commit)
|
|
81
|
-
│ └─ FAIL → 실패 기록 + 글로벌 지식 검색 → 수정 → `weave craft ...` 재실행
|
|
82
|
-
└─ 5회 초과 → 유저에게 도움 요청
|
|
83
|
-
↓
|
|
84
|
-
4. UPDATE PLAN (Phase 상태 업데이트)
|
|
85
|
-
↓
|
|
86
|
-
5. USER HANDOFF (검증 완료 → 유저 테스트)
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
> 참고: task loop 완료 후 `weave craft`가 phase 목표를 마지막으로 확인하고,
|
|
90
|
-
> full verify까지 통과하면 phase를 자동으로 completed 처리합니다.
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## Step 0: LOAD PLAN
|
|
95
|
-
|
|
96
|
-
```yaml
|
|
97
|
-
# 1. state.yaml에서 활성 플랜 확인
|
|
98
|
-
active_plan: "emotion-diary"
|
|
99
|
-
|
|
100
|
-
# 2. plans/emotion-diary.yaml에서 Phase 정보 로드
|
|
101
|
-
# 3. Phase 상태가 pending 또는 in_progress인지 확인
|
|
102
|
-
# 4. completed인 Phase를 재실행하려면 유저에게 확인
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Expert Summoning Strategy for Execution (Core)
|
|
108
|
-
|
|
109
|
-
### Principle: The Right Expert for Each Task
|
|
110
|
-
|
|
111
|
-
You are the **Mask Weaver**. During execution, your role is to **orchestrate experts**, not to do everything yourself. Each domain has its master — summon them.
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
### 1. Task Complexity → Execution Strategy
|
|
116
|
-
|
|
117
|
-
**The Orchestrator automatically assesses task complexity and selects the agent tier.**
|
|
7
|
+
## 개요
|
|
118
8
|
|
|
119
|
-
|
|
9
|
+
`/weave-craft`는 활성 플랜의 Phase를 실행 가능한 상태로 준비합니다.
|
|
120
10
|
|
|
121
|
-
|
|
122
|
-
|
|
11
|
+
- 대상 phase 자동 선택(또는 직접 지정)
|
|
12
|
+
- phase 상태/실행 계획 로드
|
|
13
|
+
- 구현에 필요한 다음 액션 안내
|
|
123
14
|
|
|
124
|
-
|
|
125
|
-
| # | Task | Complexity | Agent Tier | Mask |
|
|
126
|
-
|---|-------------------|-----------|------------|---------------|
|
|
127
|
-
| 1 | Update imports | simple | flash | auto |
|
|
128
|
-
| 2 | Build component | standard | human | dan-abramov |
|
|
129
|
-
| 3 | Auth refactoring | complex | premium | martin-fowler |
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
**Agent Tier Selection Rules:**
|
|
15
|
+
> 이 명령은 과거 자동 루프를 돌리지 않습니다.
|
|
133
16
|
|
|
134
|
-
|
|
135
|
-
|-----------|------------|----------|
|
|
136
|
-
| simple | `dummy-flash` | File renames, import fixes, formatting, config changes, lint fixes |
|
|
137
|
-
| standard | `dummy-human` | Component implementation, API endpoints, tests, validation |
|
|
138
|
-
| complex | `dummy-premium` | Architecture refactoring, debugging, auth, state management, performance |
|
|
17
|
+
## 사용법
|
|
139
18
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
Examples:
|
|
144
|
-
- Simple file creation
|
|
145
|
-
- Minor styling adjustments
|
|
146
|
-
- Configuration changes
|
|
147
|
-
- Straightforward bug fixes
|
|
148
|
-
|
|
149
|
-
→ You handle these quickly without delegation.
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
#### Summon Expert (Complex Single Task)
|
|
153
|
-
|
|
154
|
-
For **substantial implementation work**, summon the domain expert:
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
Complex Business Logic:
|
|
158
|
-
|
|
159
|
-
Task(dummy-human):
|
|
160
|
-
Mask: Kent Beck
|
|
161
|
-
Task: "Implement the payment validation logic using TDD.
|
|
162
|
-
Write tests first, cover edge cases, keep it simple."
|
|
163
|
-
|
|
164
|
-
Complex State Management:
|
|
165
|
-
|
|
166
|
-
Task(dummy-human):
|
|
167
|
-
Mask: Dan Abramov
|
|
168
|
-
Task: "Design the global state architecture for this feature.
|
|
169
|
-
Consider React patterns and performant updates."
|
|
170
|
-
|
|
171
|
-
Performance-Critical Code:
|
|
172
|
-
|
|
173
|
-
Task(dummy-human):
|
|
174
|
-
Mask: Linus Torvalds
|
|
175
|
-
Task: "Optimize this data processing function.
|
|
176
|
-
Focus on memory efficiency and computational complexity."
|
|
177
|
-
|
|
178
|
-
→ You receive the completed work and integrate it.
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
#### Squad Parallel Execution (Multiple Independent Tasks)
|
|
182
|
-
|
|
183
|
-
When a Phase has **several independent tasks**, run them in parallel:
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
Phase with Frontend + Backend + Tests:
|
|
187
|
-
|
|
188
|
-
Mask Weaver:
|
|
189
|
-
1. squad start → "Phase P1 Parallel Execution"
|
|
190
|
-
2. squad squad (ui-squad) → "Dan Abramov: Build the React components"
|
|
191
|
-
3. squad squad (api-squad) → "Martin Fowler: Implement the API layer"
|
|
192
|
-
4. squad squad (test-squad) → "Kent Beck: Write comprehensive test suite"
|
|
193
|
-
|
|
194
|
-
→ Collect all results → Integrate → Run unified verification
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
### 2. Expert Selection Guide
|
|
200
|
-
|
|
201
|
-
| Task Type | Summon | Why |
|
|
202
|
-
|-----------|--------|-----|
|
|
203
|
-
| Business logic, algorithms | **Kent Beck** | TDD ensures correctness, simplicity |
|
|
204
|
-
| React components, state | **Dan Abramov** | React patterns, hooks, performance |
|
|
205
|
-
| API design, services | **Martin Fowler** | Clean architecture, separation |
|
|
206
|
-
| Performance optimization | **Linus Torvalds** | System-level efficiency |
|
|
207
|
-
| Database, queries | **Martin Fowler** | Data modeling, query patterns |
|
|
208
|
-
| ML/AI features | **Andrew Ng** | ML best practices |
|
|
209
|
-
| DevOps, infrastructure | **Linus Torvalds** | Pragmatic tooling |
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
### 3. Execution Decision Flow
|
|
214
|
-
|
|
215
|
-
```
|
|
216
|
-
Execution Plan Generated (automatic)
|
|
217
|
-
↓
|
|
218
|
-
For each task in plan:
|
|
219
|
-
↓
|
|
220
|
-
Check Agent Tier:
|
|
221
|
-
├─ flash (simple) → Handle directly or Task(dummy-flash)
|
|
222
|
-
├─ human (standard) → Task(dummy-human) with mask
|
|
223
|
-
└─ premium (complex) → Task(dummy-premium) with mask
|
|
224
|
-
↓
|
|
225
|
-
Multiple independent tasks in same wave?
|
|
226
|
-
├─ YES → Run in parallel (Squad system)
|
|
227
|
-
└─ NO → Run sequentially
|
|
19
|
+
```txt
|
|
20
|
+
/weave-craft $ARGUMENTS
|
|
228
21
|
```
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
### 4. Expert Rotation on Failure
|
|
233
|
-
|
|
234
|
-
If you're **stuck on the same error twice**, try a different perspective:
|
|
235
|
-
|
|
236
|
-
```
|
|
237
|
-
Stuck on React state bug:
|
|
238
|
-
- First attempt: Dan Abramov approach
|
|
239
|
-
- Still failing → Summon Kent Beck
|
|
240
|
-
"Review this from a TDD perspective"
|
|
241
|
-
|
|
242
|
-
Stuck on performance issue:
|
|
243
|
-
- First attempt: Linus Torvalds approach
|
|
244
|
-
- Still failing → Summon Martin Fowler
|
|
245
|
-
"Maybe this is an architecture problem, not just optimization."
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## AI 자동 검증 시스템 (Multi-Layer)
|
|
251
|
-
|
|
252
|
-
| Layer | 검증 유형 | 도구 | 실패 시 동작 |
|
|
253
|
-
|-------|----------|------|-------------|
|
|
254
|
-
| 1 | TypeCheck | `tsc --noEmit` | 재시도 (코드 수정) |
|
|
255
|
-
| 2 | Lint | `npm run lint` | 재시도 (코드 수정) |
|
|
256
|
-
| 3 | Build | `npm run build` | 재시도 (코드 수정) |
|
|
257
|
-
| 4 | Unit Tests | `npm test` | 재시도 (테스트/코드 수정) |
|
|
258
|
-
| 5 | E2E Tests | `playwright test` | 재시도 (앱/테스트 수정) |
|
|
259
|
-
| 6 | Screenshot | Playwright / browser | 시각적 확인 |
|
|
260
|
-
| 7 | API Check | `fetch` / `curl` | 재시도 (서버/라우트 수정) |
|
|
261
|
-
| 8 | A11y | axe-core / Lighthouse | 재시도 (접근성 개선) |
|
|
262
|
-
|
|
263
|
-
### 검증 재시도 루프
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
검증 실행
|
|
267
|
-
↓
|
|
268
|
-
실패?
|
|
269
|
-
├─ YES → 글로벌 지식에서 유사 해결책 검색
|
|
270
|
-
│ → 해결책 적용
|
|
271
|
-
│ → 재시도 카운터 < 5? → 다시 검증
|
|
272
|
-
│ → 5회 초과 → 유저에게 도움 요청
|
|
273
|
-
└─ NO → 다음 Layer
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Step 4: UPDATE PLAN
|
|
279
|
-
|
|
280
|
-
Phase 완료 시 플랜 파일을 업데이트합니다.
|
|
281
|
-
|
|
282
|
-
> ⚠️ **YAML 작성 규칙 (반드시 준수)**
|
|
283
|
-
>
|
|
284
|
-
> 플랜 YAML을 직접 수정할 때, `done_when` 등 문자열 값은 반드시 아래 규칙을 따릅니다:
|
|
285
|
-
>
|
|
286
|
-
> - **짧은 값** (한 줄): double-quote 사용 → `done_when: "로그인 기능 동작"`
|
|
287
|
-
> - **긴 값** (여러 줄): block scalar(`|`) 사용 → `done_when: |` 후 들여쓰기된 내용
|
|
288
|
-
> - **❌ 절대 금지**: double-quote(`"`)로 시작한 문자열을 다른 줄에서 닫는 것
|
|
289
|
-
>
|
|
290
|
-
> **핵심**: `"` 로 시작했으면 **같은 줄에서** `"` 로 닫기. 줄바꿈이 필요하면 `|` 사용.
|
|
291
|
-
|
|
292
|
-
```yaml
|
|
293
|
-
# .opencode/weave/plans/{active_plan}.yaml 내 해당 Phase 업데이트:
|
|
294
|
-
phases:
|
|
295
|
-
- id: "P1"
|
|
296
|
-
status: "completed" # pending → in_progress → completed
|
|
297
|
-
done_when: "유저가 감정을 선택할 수 있다" # 짧으면 한 줄 quote
|
|
298
|
-
started_at: "2026-02-06T10:30:00"
|
|
299
|
-
completed_at: "2026-02-06T13:00:00"
|
|
300
|
-
masks_used:
|
|
301
|
-
- name: "kent-beck"
|
|
302
|
-
tasks: 2
|
|
303
|
-
effectiveness: 0.9
|
|
304
|
-
- name: "dan-abramov"
|
|
305
|
-
tasks: 1
|
|
306
|
-
effectiveness: 0.85
|
|
307
|
-
retry_count: 1
|
|
308
|
-
issues:
|
|
309
|
-
- "JSON 직렬화 오류 → useEffect 의존성 추가로 해결"
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
---
|
|
313
|
-
|
|
314
|
-
## 유저 핸드오프
|
|
315
|
-
|
|
316
|
-
모든 Task 통과 후:
|
|
317
|
-
|
|
318
|
-
### 1. AI 사전 체험 (Virtual User Test)
|
|
319
|
-
|
|
320
|
-
코드 검증이 끝나면, **가상의 대상 사용자 페르소나**를 만들어 주관적 항목을 먼저 평가한다.
|
|
321
22
|
|
|
322
|
-
|
|
23
|
+
- `$ARGUMENTS` = 선택적 Phase ID (`P1`, `P2` 등)
|
|
323
24
|
|
|
324
|
-
|
|
25
|
+
예시:
|
|
325
26
|
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
context: "퇴근 후 하루를 정리하며 감정 기록" # 사용 맥락
|
|
330
|
-
goals: "간단하고 빠르게 오늘의 감정을 남기고 싶다"
|
|
331
|
-
tech_level: "일반 사용자" # 기술 수준
|
|
27
|
+
```txt
|
|
28
|
+
/weave-craft
|
|
29
|
+
/weave-craft P1
|
|
332
30
|
```
|
|
333
31
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
페르소나 관점에서 다음을 평가한다:
|
|
337
|
-
|
|
338
|
-
| 항목 | 평가 관점 |
|
|
339
|
-
|------|----------|
|
|
340
|
-
| **느낌/톤** | UI 분위기가 프로젝트 의도와 맞는가? (스크린샷 기반) |
|
|
341
|
-
| **사용 흐름** | 핵심 동작이 직관적으로 완료되는가? (클릭 수, 동선) |
|
|
342
|
-
| **기능 일치** | 플랜에 정의된 기능이 실제로 동작하는가? |
|
|
343
|
-
| **첫인상** | 처음 본 사용자가 헤매지 않을까? |
|
|
344
|
-
|
|
345
|
-
#### 평가 방법
|
|
346
|
-
|
|
347
|
-
- **스크린샷 촬영**: 브라우저로 주요 화면을 캡처하여 시각적으로 확인
|
|
348
|
-
- **동선 시뮬레이션**: 핵심 시나리오를 실제로 클릭하며 체험
|
|
349
|
-
- **플랜 대조**: 원래 요구사항과 구현 결과를 항목별로 비교
|
|
350
|
-
|
|
351
|
-
### 2. 핸드오프 메시지 형식
|
|
352
|
-
|
|
353
|
-
```markdown
|
|
354
|
-
## ✅ Phase P1 검증 완료!
|
|
355
|
-
|
|
356
|
-
**플랜**: `emotion-diary`
|
|
357
|
-
|
|
358
|
-
### AI 자동 테스트 결과
|
|
359
|
-
| 테스트 | 결과 |
|
|
360
|
-
|--------|------|
|
|
361
|
-
| Build | ✅ 성공 |
|
|
362
|
-
| Unit Tests | ✅ 15/15 |
|
|
363
|
-
| Lint | ✅ 통과 |
|
|
364
|
-
|
|
365
|
-
### 사용된 마스크
|
|
366
|
-
- Kent Beck (테스트)
|
|
367
|
-
- Dan Abramov (React 컴포넌트)
|
|
368
|
-
|
|
369
|
-
### 접속
|
|
370
|
-
http://localhost:5173
|
|
371
|
-
|
|
372
|
-
### AI 사전 체험 결과
|
|
373
|
-
|
|
374
|
-
> 💡 **"직장인 김지수 (30대)"** 관점으로 먼저 사용해봤습니다.
|
|
375
|
-
> 한번 확인해보세요.
|
|
376
|
-
|
|
377
|
-
| 항목 | AI 평가 | 비고 |
|
|
378
|
-
|------|---------|------|
|
|
379
|
-
| 느낌/톤 | ✅ 부드러운 파스텔 톤이 감정 기록 앱에 적합해 보입니다 | 스크린샷 첨부 |
|
|
380
|
-
| 사용 흐름 | ⚠️ 감정 선택 → 저장까지 3탭인데, 2탭이면 더 자연스러울 것 같습니다 | 중간 확인 화면 생략 검토 |
|
|
381
|
-
| 기능 일치 | ✅ 감정 선택 UI가 플랜대로 동작합니다 | - |
|
|
382
|
-
| 첫인상 | ✅ 아이콘만으로 감정이 구분됩니다 | - |
|
|
383
|
-
|
|
384
|
-
> 위 내용은 AI가 가상 사용자로서 판단한 것입니다.
|
|
385
|
-
> 실제 느낌과 다를 수 있으니 직접 확인 부탁드립니다.
|
|
32
|
+
## 내부 호출
|
|
386
33
|
|
|
387
|
-
|
|
34
|
+
```txt
|
|
35
|
+
weave command=craft phaseId="$ARGUMENTS"
|
|
388
36
|
```
|
|
389
37
|
|
|
390
|
-
|
|
38
|
+
## 권장 흐름
|
|
391
39
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
---
|
|
398
|
-
|
|
399
|
-
## 코드 품질 체크
|
|
400
|
-
|
|
401
|
-
각 Task 완료 시 적용:
|
|
402
|
-
|
|
403
|
-
```yaml
|
|
404
|
-
SOLID:
|
|
405
|
-
- "한 함수/클래스가 여러 일을 하지 않는가?"
|
|
406
|
-
- "새 기능 추가 시 기존 코드 수정 최소화?"
|
|
407
|
-
|
|
408
|
-
KISS:
|
|
409
|
-
- "더 간단한 방법이 있는가?"
|
|
410
|
-
- "불필요한 추상화가 있는가?"
|
|
411
|
-
|
|
412
|
-
DRY:
|
|
413
|
-
- "같은 코드가 반복되는가?"
|
|
414
|
-
- "공통 함수로 추출할 것이 있는가?"
|
|
415
|
-
```
|
|
40
|
+
1. `weave command=craft`로 phase 실행 컨텍스트 준비
|
|
41
|
+
2. 코드 구현/위임 수행
|
|
42
|
+
3. `weave command=verify`로 검증
|
|
43
|
+
4. `weave command=approve-plan`으로 phase 확정
|