maskweaver 0.8.16 → 0.9.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.
- package/README.ko.md +640 -657
- package/README.md +672 -689
- package/assets/commands/meta/commands.json +254 -0
- package/assets/commands/weave-agents.md +62 -0
- package/assets/commands/weave-approve.md +61 -0
- package/assets/commands/weave-build.md +99 -0
- package/assets/commands/weave-help.md +112 -158
- package/assets/commands/weave-interview.md +121 -0
- package/assets/commands/weave-map.md +109 -0
- package/assets/commands/weave-troubleshoot.md +57 -0
- package/dist/plugin/index.d.ts +5 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +20 -17
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/tools/command-registry.d.ts +51 -0
- package/dist/plugin/tools/command-registry.d.ts.map +1 -0
- package/dist/plugin/tools/command-registry.js +348 -0
- package/dist/plugin/tools/command-registry.js.map +1 -0
- package/dist/plugin/tools/slashcommand.d.ts +1 -1
- package/dist/plugin/tools/slashcommand.d.ts.map +1 -1
- package/dist/plugin/tools/slashcommand.js +47 -193
- package/dist/plugin/tools/slashcommand.js.map +1 -1
- package/dist/plugin/tools/weave.d.ts +14 -35
- package/dist/plugin/tools/weave.d.ts.map +1 -1
- package/dist/plugin/tools/weave.js +247 -213
- package/dist/plugin/tools/weave.js.map +1 -1
- package/package.json +142 -142
- package/assets/commands/weave-approve-plan.md +0 -57
- package/assets/commands/weave-design.md +0 -296
- package/assets/commands/weave-flow.md +0 -48
- package/assets/commands/weave-plan.md +0 -15
- package/assets/commands/weave-research.md +0 -51
- package/assets/commands/weave-spec.md +0 -227
- package/assets/commands/weave-switch.md +0 -170
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./commands.schema.json",
|
|
3
|
+
"schemaVersion": "1.0",
|
|
4
|
+
"lastUpdated": "2026-04-29",
|
|
5
|
+
"commands": [
|
|
6
|
+
{
|
|
7
|
+
"name": "init",
|
|
8
|
+
"aliases": [],
|
|
9
|
+
"deprecatedAliases": [],
|
|
10
|
+
"description": "Initialize weave workspace files and probe GDC integration",
|
|
11
|
+
"descriptionEn": "Initialize weave workspace files and probe GDC integration",
|
|
12
|
+
"category": "meta",
|
|
13
|
+
"args": [],
|
|
14
|
+
"mdFile": "weave-init.md",
|
|
15
|
+
"handler": "handleInit",
|
|
16
|
+
"examples": ["weave command=init"]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "map",
|
|
20
|
+
"aliases": [],
|
|
21
|
+
"deprecatedAliases": [],
|
|
22
|
+
"description": "코드베이스 구조 분석 + GDC 그래프 연동",
|
|
23
|
+
"descriptionEn": "Analyze codebase structure via GDC + Graphify (knowledge graph)",
|
|
24
|
+
"category": "analysis",
|
|
25
|
+
"args": [
|
|
26
|
+
{ "name": "deep", "type": "boolean", "default": false, "description": "Run deep analysis with graphify-windows skill" }
|
|
27
|
+
],
|
|
28
|
+
"mdFile": "weave-map.md",
|
|
29
|
+
"handler": "handleMap",
|
|
30
|
+
"examples": ["weave command=map", "weave command=map deep=true"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "interview",
|
|
34
|
+
"aliases": [],
|
|
35
|
+
"deprecatedAliases": [],
|
|
36
|
+
"description": "코드베이스 맵 기반 멀티스텝 요구사항 인터뷰",
|
|
37
|
+
"descriptionEn": "Multi-step question asking until clarity, with structural change detection",
|
|
38
|
+
"category": "analysis",
|
|
39
|
+
"args": [
|
|
40
|
+
{ "name": "docsPath", "type": "string", "required": false, "description": "Path to requirements documents" }
|
|
41
|
+
],
|
|
42
|
+
"mdFile": "weave-interview.md",
|
|
43
|
+
"handler": "handleInterview",
|
|
44
|
+
"examples": ["weave command=interview", "weave command=interview docsPath=\"docs/\""]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"name": "prepare",
|
|
48
|
+
"aliases": [],
|
|
49
|
+
"deprecatedAliases": [],
|
|
50
|
+
"description": "research + spec + plan을 한 번에 생성 (큰 계획은 자동 분할)",
|
|
51
|
+
"descriptionEn": "Create research + spec + plan with defaults (auto-splits oversized plans)",
|
|
52
|
+
"category": "planning",
|
|
53
|
+
"args": [
|
|
54
|
+
{ "name": "docsPath", "type": "string", "required": false, "description": "Path to requirements documents" },
|
|
55
|
+
{ "name": "planName", "type": "string", "required": false, "description": "Plan name (kebab-case)" },
|
|
56
|
+
{ "name": "splitPlans", "type": "boolean", "default": true, "description": "Auto-split oversized plans into multiple shard plan files" },
|
|
57
|
+
{ "name": "splitMaxPhases", "type": "number", "default": 3, "min": 2, "max": 8, "description": "Max phases per shard when splitPlans is enabled" },
|
|
58
|
+
{ "name": "splitMaxHours", "type": "number", "default": 10, "min": 4, "max": 40, "description": "Max estimated hours per shard when splitPlans is enabled" }
|
|
59
|
+
],
|
|
60
|
+
"mdFile": "weave-prepare.md",
|
|
61
|
+
"handler": "handlePrepare",
|
|
62
|
+
"examples": ["weave command=prepare docsPath=\"docs/\"", "weave command=prepare docsPath=\"docs/\" planName=\"emotion-diary\""]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "refine-plan",
|
|
66
|
+
"aliases": [],
|
|
67
|
+
"deprecatedAliases": [],
|
|
68
|
+
"description": "Apply structured plan-note directives to active plan",
|
|
69
|
+
"descriptionEn": "Apply structured plan-note directives to active plan",
|
|
70
|
+
"category": "planning",
|
|
71
|
+
"args": [
|
|
72
|
+
{ "name": "notesPath", "type": "string", "required": false, "description": "Path to structured plan notes (default: tasks/plan-notes.md)" },
|
|
73
|
+
{ "name": "applyNotes", "type": "boolean", "default": true, "description": "Auto-apply plan notes during approve" }
|
|
74
|
+
],
|
|
75
|
+
"mdFile": "weave-refine-plan.md",
|
|
76
|
+
"handler": "handleRefinePlan",
|
|
77
|
+
"examples": ["weave command=refine-plan"]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "approve",
|
|
81
|
+
"aliases": [],
|
|
82
|
+
"deprecatedAliases": [],
|
|
83
|
+
"description": "Plan 승인 게이트 통과 (구현 전 필수)",
|
|
84
|
+
"descriptionEn": "Approve the plan, or finalize a crafted phase when phaseId is provided",
|
|
85
|
+
"category": "planning",
|
|
86
|
+
"args": [
|
|
87
|
+
{ "name": "phaseId", "type": "string", "required": false, "description": "Phase ID to finalize (optional)" },
|
|
88
|
+
{ "name": "planReview", "type": "string", "required": false, "description": "Plan review summary text" },
|
|
89
|
+
{ "name": "applyNotes", "type": "boolean", "default": true, "description": "Auto-apply plan notes during approve" }
|
|
90
|
+
],
|
|
91
|
+
"mdFile": "weave-approve.md",
|
|
92
|
+
"handler": "handleApprove",
|
|
93
|
+
"examples": ["weave command=approve", "weave command=approve phaseId=\"P1\""]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "craft",
|
|
97
|
+
"aliases": [],
|
|
98
|
+
"deprecatedAliases": [],
|
|
99
|
+
"description": "단일 Phase 수동 실행 준비 (실행 컨텍스트 생성)",
|
|
100
|
+
"descriptionEn": "Prepare execution context for a phase (phase auto-select if omitted)",
|
|
101
|
+
"category": "execution",
|
|
102
|
+
"args": [
|
|
103
|
+
{ "name": "phaseId", "type": "string", "required": false, "description": "Phase ID (auto-select if omitted)" },
|
|
104
|
+
{ "name": "projectType", "type": "string", "required": false, "description": "Project type hint (react, nextjs, go, etc.)" }
|
|
105
|
+
],
|
|
106
|
+
"mdFile": "weave-craft.md",
|
|
107
|
+
"handler": "handleCraft",
|
|
108
|
+
"examples": ["weave command=craft", "weave command=craft phaseId=\"P1\""]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "build",
|
|
112
|
+
"aliases": [],
|
|
113
|
+
"deprecatedAliases": [],
|
|
114
|
+
"description": "자율 빌드 루프 실행 및 관리",
|
|
115
|
+
"descriptionEn": "Autonomous build loop — run, resume, or inspect builds",
|
|
116
|
+
"category": "execution",
|
|
117
|
+
"args": [
|
|
118
|
+
{ "name": "action", "type": "enum", "values": ["run", "status", "stop", "list", "resume", "sync"], "default": "run", "description": "Build sub-action" },
|
|
119
|
+
{ "name": "phaseIds", "type": "string", "required": false, "description": "Comma-separated phase IDs for run action" },
|
|
120
|
+
{ "name": "buildId", "type": "string", "required": false, "description": "Build ID for status/stop/resume/sync actions" },
|
|
121
|
+
{ "name": "maxRetries", "type": "number", "default": 3, "min": 1, "max": 10, "description": "Maximum retries per task (for run action)" },
|
|
122
|
+
{ "name": "maxIterations", "type": "number", "default": 1, "min": 1, "max": 20, "description": "Maximum loop iterations before blocking" },
|
|
123
|
+
{ "name": "maxNoProgress", "type": "number", "default": 1, "min": 0, "max": 10, "description": "Maximum repeated no-progress failures before blocking" }
|
|
124
|
+
],
|
|
125
|
+
"mdFile": "weave-build.md",
|
|
126
|
+
"handler": "handleBuild",
|
|
127
|
+
"examples": [
|
|
128
|
+
"weave command=build",
|
|
129
|
+
"weave command=build action=run phaseIds=\"P1,P2\"",
|
|
130
|
+
"weave command=build action=status buildId=\"build-20250428-a1b2\"",
|
|
131
|
+
"weave command=build action=resume buildId=\"build-20250428-a1b2\"",
|
|
132
|
+
"weave command=build action=list"
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "status",
|
|
137
|
+
"aliases": [],
|
|
138
|
+
"deprecatedAliases": [],
|
|
139
|
+
"description": "전체 플랜 목록 + 진행 상황 확인",
|
|
140
|
+
"descriptionEn": "View overall progress",
|
|
141
|
+
"category": "management",
|
|
142
|
+
"args": [],
|
|
143
|
+
"mdFile": "weave-status.md",
|
|
144
|
+
"handler": "handleStatus",
|
|
145
|
+
"examples": ["weave command=status"]
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "worktree",
|
|
149
|
+
"aliases": [],
|
|
150
|
+
"deprecatedAliases": [],
|
|
151
|
+
"description": "git worktree 기반 병렬 작업 관리",
|
|
152
|
+
"descriptionEn": "Manage git worktrees for parallel work",
|
|
153
|
+
"category": "management",
|
|
154
|
+
"args": [
|
|
155
|
+
{ "name": "worktreeAction", "type": "enum", "values": ["create", "list", "open", "remove", "merge"], "required": false, "description": "Worktree action" },
|
|
156
|
+
{ "name": "name", "type": "string", "required": false, "description": "Worktree name" },
|
|
157
|
+
{ "name": "fromRef", "type": "string", "required": false, "description": "Base git ref to branch from" },
|
|
158
|
+
{ "name": "deleteBranch", "type": "boolean", "default": false, "description": "Delete branch when removing worktree" }
|
|
159
|
+
],
|
|
160
|
+
"mdFile": "weave-worktree.md",
|
|
161
|
+
"handler": "handleWorktree",
|
|
162
|
+
"examples": ["weave command=worktree worktreeAction=list"]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "verify",
|
|
166
|
+
"aliases": [],
|
|
167
|
+
"deprecatedAliases": [],
|
|
168
|
+
"description": "빌드/테스트 검증 실행 (프로젝트 유형 자동 감지)",
|
|
169
|
+
"descriptionEn": "Run build/test verification for current worktree",
|
|
170
|
+
"category": "management",
|
|
171
|
+
"args": [
|
|
172
|
+
{ "name": "verifyMode", "type": "enum", "values": ["quick", "full"], "default": "full", "description": "Verification mode" },
|
|
173
|
+
{ "name": "projectType", "type": "string", "required": false, "description": "Project type hint" }
|
|
174
|
+
],
|
|
175
|
+
"mdFile": "weave-verify.md",
|
|
176
|
+
"handler": "handleVerify",
|
|
177
|
+
"examples": ["weave command=verify", "weave command=verify verifyMode=quick"]
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "archive",
|
|
181
|
+
"aliases": [],
|
|
182
|
+
"deprecatedAliases": [],
|
|
183
|
+
"description": "검증된 변경사항 아카이브",
|
|
184
|
+
"descriptionEn": "Archive the verified active change artifact",
|
|
185
|
+
"category": "management",
|
|
186
|
+
"args": [],
|
|
187
|
+
"mdFile": "weave-archive.md",
|
|
188
|
+
"handler": "handleArchive",
|
|
189
|
+
"examples": ["weave command=archive"]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "troubleshoot",
|
|
193
|
+
"aliases": [],
|
|
194
|
+
"deprecatedAliases": [],
|
|
195
|
+
"description": "글로벌 지식 검색 및 솔루션 기록",
|
|
196
|
+
"descriptionEn": "Search global knowledge for solutions or record a new one",
|
|
197
|
+
"category": "knowledge",
|
|
198
|
+
"args": [
|
|
199
|
+
{ "name": "error", "type": "string", "required": false, "description": "Error message to search solutions for" },
|
|
200
|
+
{ "name": "record", "type": "boolean", "default": false, "description": "Record a new solution instead of searching" },
|
|
201
|
+
{ "name": "solution", "type": "string", "required": false, "description": "Solution to record (when record=true)" },
|
|
202
|
+
{ "name": "context", "type": "string", "required": false, "description": "Context for the troubleshooting entry" }
|
|
203
|
+
],
|
|
204
|
+
"mdFile": "weave-troubleshoot.md",
|
|
205
|
+
"handler": "handleTroubleshoot",
|
|
206
|
+
"examples": [
|
|
207
|
+
"weave command=troubleshoot error=\"Cannot find module 'xyz'\"",
|
|
208
|
+
"weave command=troubleshoot record=true solution=\"Restart dev server\""
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"name": "repair",
|
|
213
|
+
"aliases": [],
|
|
214
|
+
"deprecatedAliases": [],
|
|
215
|
+
"description": "plan YAML 파일 자동 검사 및 수리",
|
|
216
|
+
"descriptionEn": "Scan and auto-repair corrupted plan YAML files",
|
|
217
|
+
"category": "knowledge",
|
|
218
|
+
"args": [],
|
|
219
|
+
"mdFile": "weave-repair.md",
|
|
220
|
+
"handler": "handleRepair",
|
|
221
|
+
"examples": ["weave command=repair"]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "agents",
|
|
225
|
+
"aliases": [],
|
|
226
|
+
"deprecatedAliases": [],
|
|
227
|
+
"description": "에이전트 파일 동기화 및 설정 초기화",
|
|
228
|
+
"descriptionEn": "Sync dummy-human agent files and initialize configuration",
|
|
229
|
+
"category": "configuration",
|
|
230
|
+
"args": [
|
|
231
|
+
{ "name": "sync", "type": "boolean", "default": false, "description": "Force regenerate agent .md files from config pool" },
|
|
232
|
+
{ "name": "init", "type": "boolean", "default": false, "description": "Create default maskweaver.config.json with pool template" }
|
|
233
|
+
],
|
|
234
|
+
"mdFile": "weave-agents.md",
|
|
235
|
+
"handler": "handleAgents",
|
|
236
|
+
"examples": [
|
|
237
|
+
"weave command=agents sync=true",
|
|
238
|
+
"weave command=agents init=true"
|
|
239
|
+
]
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"name": "help",
|
|
243
|
+
"aliases": [],
|
|
244
|
+
"deprecatedAliases": [],
|
|
245
|
+
"description": "Weave 워크플로우 도움말",
|
|
246
|
+
"descriptionEn": "Show weave workflow help",
|
|
247
|
+
"category": "meta",
|
|
248
|
+
"args": [],
|
|
249
|
+
"mdFile": "weave-help.md",
|
|
250
|
+
"handler": "getHelpMessage",
|
|
251
|
+
"examples": ["weave command=help"]
|
|
252
|
+
}
|
|
253
|
+
]
|
|
254
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 에이전트 파일 동기화 및 설정 초기화
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-agents - 에이전트 및 설정 관리
|
|
6
|
+
|
|
7
|
+
## 개요
|
|
8
|
+
|
|
9
|
+
에이전트 파일과 설정 파일을 관리합니다. 기존 `sync-agents`와 `init-config`를 통합한 명령어입니다.
|
|
10
|
+
|
|
11
|
+
| 플래그 | 설명 | 대응 기존 명령어 |
|
|
12
|
+
|--------|------|-----------------|
|
|
13
|
+
| `sync` | 설정 기준으로 더미 에이전트 파일 강제 재생성 | `weave sync-agents` |
|
|
14
|
+
| `init` | 기본 설정 파일(maskweaver.config.json) 생성 | `weave init-config` |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 사용법
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 에이전트 파일 동기화
|
|
22
|
+
/weave-agents --sync
|
|
23
|
+
|
|
24
|
+
# 기본 설정 파일 생성
|
|
25
|
+
/weave-agents --init
|
|
26
|
+
|
|
27
|
+
# 동시 실행
|
|
28
|
+
/weave-agents --sync --init
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 입력
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
sync: true # (선택) 에이전트 파일 강제 재생성
|
|
37
|
+
init: true # (선택) 기본 설정 파일 생성 (기존 파일 덮어쓰지 않음)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 출력 예시
|
|
43
|
+
|
|
44
|
+
### 동기화
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
## 🔄 Agent Sync
|
|
48
|
+
|
|
49
|
+
✅ Updated: `.opencode/agents/dummy-human-1.md`
|
|
50
|
+
✅ Updated: `.opencode/agents/dummy-human-2.md`
|
|
51
|
+
|
|
52
|
+
> ⚠️ **Important:** You may need to restart OpenCode for the updated agent files to take effect.
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 설정 초기화
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
## 📝 Config Initialization
|
|
59
|
+
|
|
60
|
+
✅ Created runtime config: maskweaver.config.json
|
|
61
|
+
✅ Created plugin config: .opencode/maskweaver.json
|
|
62
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Plan 승인 게이트 통과 (구현 전 필수)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-approve - Plan 승인 게이트
|
|
6
|
+
|
|
7
|
+
## 개요
|
|
8
|
+
|
|
9
|
+
구현 전 **반드시 통과해야 하는 승인 게이트**입니다. Plan을 검토하고 승인하거나, 이미 craft 완료된 Phase를 최종 확정(finalize)합니다.
|
|
10
|
+
|
|
11
|
+
**이전 명령어**: `approve-plan` (v0.9까지 alias로 동작)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 사용법
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Plan 승인 (가장 일반적)
|
|
19
|
+
/weave-approve
|
|
20
|
+
|
|
21
|
+
# Craft 완료된 Phase 최종 확정
|
|
22
|
+
/weave-approve P1
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 입력
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
phaseId: "P1" # (선택) 최종 확정할 Phase ID. 미지정 시 Plan 승인
|
|
31
|
+
planReview: "..." # (선택) Plan 검토 요약
|
|
32
|
+
applyNotes: true # (선택) plan-notes 자동 반영 여부 (기본: true)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 동작 흐름
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
1. 활성 Plan 로드
|
|
41
|
+
2. phaseId 미지정 → Plan 승인
|
|
42
|
+
└─ applyNotes=true → plan-notes 자동 반영 후 승인
|
|
43
|
+
3. phaseId 지정 → Phase 최종 확정 (finalize)
|
|
44
|
+
└─ verify → 통과 시 완료 처리
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 출력 예시
|
|
50
|
+
|
|
51
|
+
### Plan 승인
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
## ✅ Plan Approved
|
|
55
|
+
|
|
56
|
+
- Plan: `.opencode/weave/plans/emotion-diary.yaml`
|
|
57
|
+
- Approved at: 2025-04-28T10:30:00.000Z
|
|
58
|
+
- Review note: Approved without additional notes.
|
|
59
|
+
|
|
60
|
+
다음 단계: `weave command=craft phaseId="P1"`
|
|
61
|
+
```
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 자율 빌드 루프 실행 및 관리 (run, status, stop, list, resume, sync)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /weave-build - 자율 빌드 루프 실행 및 관리
|
|
6
|
+
|
|
7
|
+
## 개요
|
|
8
|
+
|
|
9
|
+
승인된 플랜의 지정된 Phase(들)를 **자율 빌드 루프**로 실행하거나, 기존 빌드의 상태를 확인/관리합니다.
|
|
10
|
+
|
|
11
|
+
| 서브 액션 | 설명 | 대응 기존 명령어 |
|
|
12
|
+
|-----------|------|-----------------|
|
|
13
|
+
| `run` (기본) | 활성 Phase를 Ralph-loop로 자율 실행 | `weave build`, `weave loop-run` |
|
|
14
|
+
| `status` | 특정 빌드/루프의 상태 확인 | `weave loop-status` |
|
|
15
|
+
| `stop` | 실행 중인 빌드/루프 중단 요청 | `weave loop-stop` |
|
|
16
|
+
| `list` | 모든 빌드/루프 목록 조회 | `weave loop-list` |
|
|
17
|
+
| `resume` | 중단(blocked)된 빌드 재개 | `weave build-resume` |
|
|
18
|
+
| `sync` | 위임된 squad 결과 동기화 | `weave loop-sync` |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 사용법
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# 자율 빌드 시작 (기본)
|
|
26
|
+
/weave-build
|
|
27
|
+
/weave-build P1,P2
|
|
28
|
+
|
|
29
|
+
# 빌드 상태 확인
|
|
30
|
+
/weave-build --status build-20250428-a1b2
|
|
31
|
+
|
|
32
|
+
# 빌드 중단
|
|
33
|
+
/weave-build --stop build-20250428-a1b2
|
|
34
|
+
|
|
35
|
+
# 빌드 목록
|
|
36
|
+
/weave-build --list
|
|
37
|
+
|
|
38
|
+
# 중단 빌드 재개
|
|
39
|
+
/weave-build --resume build-20250428-a1b2
|
|
40
|
+
|
|
41
|
+
# 위임 결과 동기화
|
|
42
|
+
/weave-build --sync build-20250428-a1b2
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 입력
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
action: run | status | stop | list | resume | sync # (선택) 서브 액션. 기본값: run
|
|
51
|
+
phaseIds: "P1,P2" # (선택, action=run) 쉼표로 구분된 Phase ID
|
|
52
|
+
buildId: "build-xxx" # (선택, action=status/stop/resume/sync) 대상 빌드 ID
|
|
53
|
+
maxRetries: 3 # (선택, action=run) 태스크당 최대 재시도
|
|
54
|
+
maxIterations: 1 # (선택) 최대 반복 횟수
|
|
55
|
+
maxNoProgress: 1 # (선택) 무진행 허용 횟수
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 출력 예시
|
|
61
|
+
|
|
62
|
+
### 성공 (run)
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
## ✅ Build Complete
|
|
66
|
+
|
|
67
|
+
**Build ID**: `build-20250428-a1b2`
|
|
68
|
+
**Plan**: `emotion-diary`
|
|
69
|
+
**Phases**: P1, P2
|
|
70
|
+
|
|
71
|
+
| Phase | 상태 | 소요 시간 |
|
|
72
|
+
|-------|------|----------|
|
|
73
|
+
| P1 | ✅ 완료 | 12분 |
|
|
74
|
+
| P2 | ✅ 완료 | 8분 |
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 일부 실패 (blocked)
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
## ⚠️ Build Blocked
|
|
81
|
+
|
|
82
|
+
**Build ID**: `build-20250428-c3d4`
|
|
83
|
+
**Plan**: `emotion-diary`
|
|
84
|
+
|
|
85
|
+
| Phase | 상태 | 실패 원인 |
|
|
86
|
+
|-------|------|----------|
|
|
87
|
+
| P1 | ✅ 완료 | - |
|
|
88
|
+
| P2 | 🚫 blocked | 타입 검증 실패 (3회 재시도 소진) |
|
|
89
|
+
|
|
90
|
+
**다음 동작**: `weave build action=resume buildId="build-20250428-c3d4"`
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 관련 명령어
|
|
96
|
+
|
|
97
|
+
- `/weave-craft [phaseId]` — 단일 Phase 수동 실행 준비
|
|
98
|
+
- `/weave-verify` — 현재 워크트리 검증
|
|
99
|
+
- `/weave-status` — 전체 진행 상황
|