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.
Files changed (34) hide show
  1. package/README.ko.md +640 -657
  2. package/README.md +672 -689
  3. package/assets/commands/meta/commands.json +254 -0
  4. package/assets/commands/weave-agents.md +62 -0
  5. package/assets/commands/weave-approve.md +61 -0
  6. package/assets/commands/weave-build.md +99 -0
  7. package/assets/commands/weave-help.md +112 -158
  8. package/assets/commands/weave-interview.md +121 -0
  9. package/assets/commands/weave-map.md +109 -0
  10. package/assets/commands/weave-troubleshoot.md +57 -0
  11. package/dist/plugin/index.d.ts +5 -1
  12. package/dist/plugin/index.d.ts.map +1 -1
  13. package/dist/plugin/index.js +20 -17
  14. package/dist/plugin/index.js.map +1 -1
  15. package/dist/plugin/tools/command-registry.d.ts +51 -0
  16. package/dist/plugin/tools/command-registry.d.ts.map +1 -0
  17. package/dist/plugin/tools/command-registry.js +348 -0
  18. package/dist/plugin/tools/command-registry.js.map +1 -0
  19. package/dist/plugin/tools/slashcommand.d.ts +1 -1
  20. package/dist/plugin/tools/slashcommand.d.ts.map +1 -1
  21. package/dist/plugin/tools/slashcommand.js +47 -193
  22. package/dist/plugin/tools/slashcommand.js.map +1 -1
  23. package/dist/plugin/tools/weave.d.ts +14 -35
  24. package/dist/plugin/tools/weave.d.ts.map +1 -1
  25. package/dist/plugin/tools/weave.js +247 -213
  26. package/dist/plugin/tools/weave.js.map +1 -1
  27. package/package.json +142 -142
  28. package/assets/commands/weave-approve-plan.md +0 -57
  29. package/assets/commands/weave-design.md +0 -296
  30. package/assets/commands/weave-flow.md +0 -48
  31. package/assets/commands/weave-plan.md +0 -15
  32. package/assets/commands/weave-research.md +0 -51
  33. package/assets/commands/weave-spec.md +0 -227
  34. package/assets/commands/weave-switch.md +0 -170
package/package.json CHANGED
@@ -1,142 +1,142 @@
1
- {
2
- "name": "maskweaver",
3
- "version": "0.8.16",
4
- "description": "AI Expert Persona System - Give your AI coding assistant expert personalities (가면술사)",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "bin": {
9
- "maskweaver": "dist/cli/install.js"
10
- },
11
- "files": [
12
- "dist",
13
- "masks",
14
- "assets",
15
- "postinstall.mjs"
16
- ],
17
- "exports": {
18
- ".": {
19
- "types": "./dist/index.d.ts",
20
- "import": "./dist/index.js",
21
- "require": "./dist/index.js"
22
- },
23
- "./cli": {
24
- "import": "./dist/cli/install.js",
25
- "require": "./dist/cli/install.js"
26
- },
27
- "./plugin": {
28
- "types": "./dist/plugin/index.d.ts",
29
- "import": "./dist/plugin/index.js",
30
- "require": "./dist/plugin/index.js"
31
- },
32
- "./memory": {
33
- "types": "./dist/memory/index.d.ts",
34
- "import": "./dist/memory/index.js",
35
- "require": "./dist/memory/index.js"
36
- },
37
- "./context": {
38
- "types": "./dist/context/index.d.ts",
39
- "import": "./dist/context/index.js",
40
- "require": "./dist/context/index.js"
41
- },
42
- "./retrospect": {
43
- "types": "./dist/retrospect/index.d.ts",
44
- "import": "./dist/retrospect/index.js",
45
- "require": "./dist/retrospect/index.js"
46
- },
47
- "./verify": {
48
- "types": "./dist/verify/index.d.ts",
49
- "import": "./dist/verify/index.js",
50
- "require": "./dist/verify/index.js"
51
- },
52
- "./core": {
53
- "types": "./dist/core/index.d.ts",
54
- "import": "./dist/core/index.js",
55
- "require": "./dist/core/index.js"
56
- },
57
- "./lib": {
58
- "types": "./dist/lib.d.ts",
59
- "import": "./dist/lib.js",
60
- "require": "./dist/lib.js"
61
- },
62
- "./weave": {
63
- "types": "./dist/weave/index.d.ts",
64
- "import": "./dist/weave/index.js",
65
- "require": "./dist/weave/index.js"
66
- },
67
- "./gdc": {
68
- "types": "./dist/weave/gdc.d.ts",
69
- "import": "./dist/weave/gdc.js",
70
- "require": "./dist/weave/gdc.js"
71
- }
72
- },
73
- "scripts": {
74
- "build": "tsc",
75
- "clean": "rm -rf dist",
76
- "dev": "tsc --watch",
77
- "test": "vitest run",
78
- "lint": "tsc --noEmit",
79
- "postinstall": "node postinstall.mjs",
80
- "prepublishOnly": "npm run build"
81
- },
82
- "keywords": [
83
- "opencode",
84
- "opencode-plugin",
85
- "ai",
86
- "persona",
87
- "mask",
88
- "expert",
89
- "maskweaver",
90
- "cli",
91
- "embedding",
92
- "memory",
93
- "context",
94
- "retrospect"
95
- ],
96
- "author": "ULJI SOFT <ulgerang@gmail.com>",
97
- "license": "MIT",
98
- "repository": {
99
- "type": "git",
100
- "url": "git+https://github.com/ulgerang/maskweaver.git"
101
- },
102
- "homepage": "https://github.com/ulgerang/maskweaver#readme",
103
- "bugs": {
104
- "url": "https://github.com/ulgerang/maskweaver/issues"
105
- },
106
- "publishConfig": {
107
- "access": "public"
108
- },
109
- "engines": {
110
- "node": ">=18"
111
- },
112
- "dependencies": {
113
- "bindings": "^1.5.0",
114
- "commander": "^12.0.0",
115
- "file-uri-to-path": "^2.0.0",
116
- "jsonc-parser": "^3.2.0",
117
- "sql.js": "^1.13.0",
118
- "yaml": "^2.3.0",
119
- "zod": "4.1.8"
120
- },
121
- "peerDependencies": {
122
- "@opencode-ai/plugin": ">=1.0.0"
123
- },
124
- "peerDependenciesMeta": {
125
- "@opencode-ai/plugin": {
126
- "optional": true
127
- }
128
- },
129
- "devDependencies": {
130
- "@opencode-ai/plugin": "^1.1.59",
131
- "@opencode-ai/sdk": "^1.1.48",
132
- "@rollup/rollup-win32-x64-msvc": "^4.57.1",
133
- "@types/better-sqlite3": "^7.6.13",
134
- "@types/node": "^20.0.0",
135
- "better-sqlite3": "^12.6.2",
136
- "typescript": "^5.3.0",
137
- "vitest": "^4.0.18"
138
- },
139
- "optionalDependencies": {
140
- "better-sqlite3": "^9.6.0"
141
- }
142
- }
1
+ {
2
+ "name": "maskweaver",
3
+ "version": "0.9.0",
4
+ "description": "AI Expert Persona System - Give your AI coding assistant expert personalities (가면술사)",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "maskweaver": "dist/cli/install.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "masks",
14
+ "assets",
15
+ "postinstall.mjs"
16
+ ],
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js",
21
+ "require": "./dist/index.js"
22
+ },
23
+ "./cli": {
24
+ "import": "./dist/cli/install.js",
25
+ "require": "./dist/cli/install.js"
26
+ },
27
+ "./plugin": {
28
+ "types": "./dist/plugin/index.d.ts",
29
+ "import": "./dist/plugin/index.js",
30
+ "require": "./dist/plugin/index.js"
31
+ },
32
+ "./memory": {
33
+ "types": "./dist/memory/index.d.ts",
34
+ "import": "./dist/memory/index.js",
35
+ "require": "./dist/memory/index.js"
36
+ },
37
+ "./context": {
38
+ "types": "./dist/context/index.d.ts",
39
+ "import": "./dist/context/index.js",
40
+ "require": "./dist/context/index.js"
41
+ },
42
+ "./retrospect": {
43
+ "types": "./dist/retrospect/index.d.ts",
44
+ "import": "./dist/retrospect/index.js",
45
+ "require": "./dist/retrospect/index.js"
46
+ },
47
+ "./verify": {
48
+ "types": "./dist/verify/index.d.ts",
49
+ "import": "./dist/verify/index.js",
50
+ "require": "./dist/verify/index.js"
51
+ },
52
+ "./core": {
53
+ "types": "./dist/core/index.d.ts",
54
+ "import": "./dist/core/index.js",
55
+ "require": "./dist/core/index.js"
56
+ },
57
+ "./lib": {
58
+ "types": "./dist/lib.d.ts",
59
+ "import": "./dist/lib.js",
60
+ "require": "./dist/lib.js"
61
+ },
62
+ "./weave": {
63
+ "types": "./dist/weave/index.d.ts",
64
+ "import": "./dist/weave/index.js",
65
+ "require": "./dist/weave/index.js"
66
+ },
67
+ "./gdc": {
68
+ "types": "./dist/weave/gdc.d.ts",
69
+ "import": "./dist/weave/gdc.js",
70
+ "require": "./dist/weave/gdc.js"
71
+ }
72
+ },
73
+ "scripts": {
74
+ "build": "tsc",
75
+ "clean": "rm -rf dist",
76
+ "dev": "tsc --watch",
77
+ "test": "vitest run",
78
+ "lint": "tsc --noEmit",
79
+ "postinstall": "node postinstall.mjs",
80
+ "prepublishOnly": "npm run build"
81
+ },
82
+ "keywords": [
83
+ "opencode",
84
+ "opencode-plugin",
85
+ "ai",
86
+ "persona",
87
+ "mask",
88
+ "expert",
89
+ "maskweaver",
90
+ "cli",
91
+ "embedding",
92
+ "memory",
93
+ "context",
94
+ "retrospect"
95
+ ],
96
+ "author": "ULJI SOFT <ulgerang@gmail.com>",
97
+ "license": "MIT",
98
+ "repository": {
99
+ "type": "git",
100
+ "url": "git+https://github.com/ulgerang/maskweaver.git"
101
+ },
102
+ "homepage": "https://github.com/ulgerang/maskweaver#readme",
103
+ "bugs": {
104
+ "url": "https://github.com/ulgerang/maskweaver/issues"
105
+ },
106
+ "publishConfig": {
107
+ "access": "public"
108
+ },
109
+ "engines": {
110
+ "node": ">=18"
111
+ },
112
+ "dependencies": {
113
+ "bindings": "^1.5.0",
114
+ "commander": "^12.0.0",
115
+ "file-uri-to-path": "^2.0.0",
116
+ "jsonc-parser": "^3.2.0",
117
+ "sql.js": "^1.13.0",
118
+ "yaml": "^2.3.0",
119
+ "zod": "4.1.8"
120
+ },
121
+ "peerDependencies": {
122
+ "@opencode-ai/plugin": ">=1.0.0"
123
+ },
124
+ "peerDependenciesMeta": {
125
+ "@opencode-ai/plugin": {
126
+ "optional": true
127
+ }
128
+ },
129
+ "devDependencies": {
130
+ "@opencode-ai/plugin": "^1.1.59",
131
+ "@opencode-ai/sdk": "^1.1.48",
132
+ "@rollup/rollup-win32-x64-msvc": "^4.57.1",
133
+ "@types/better-sqlite3": "^7.6.13",
134
+ "@types/node": "^20.0.0",
135
+ "better-sqlite3": "^12.6.2",
136
+ "typescript": "^5.3.0",
137
+ "vitest": "^4.0.18"
138
+ },
139
+ "optionalDependencies": {
140
+ "better-sqlite3": "^9.6.0"
141
+ }
142
+ }
@@ -1,57 +0,0 @@
1
- ---
2
- description: 구현 전 계획 승인 게이트 통과
3
- ---
4
-
5
- # /weave-approve-plan - 계획 승인
6
-
7
- ## 개요
8
-
9
- `/weave-approve-plan`은 **구현 시작 전 필수 승인 단계**입니다.
10
-
11
- - 현재 active plan을 승인 상태로 전환
12
- - 기본적으로 `tasks/plan-notes.md` 지시문을 먼저 자동 반영(refine) 시도
13
- - 변경이 반영되면 승인 단계는 일시 중단되고, 검토 후 다시 approve 실행
14
- - 필요 시 plan 메모를 승인 코멘트로 함께 기록
15
- - 승인 전에는 `weave craft`/`weave flow` 실행이 차단됩니다
16
-
17
- ---
18
-
19
- ## 사용법
20
-
21
- ```txt
22
- /weave-approve-plan
23
- ```
24
-
25
- 짧은 리뷰 코멘트를 함께 남기려면:
26
-
27
- ```txt
28
- weave command=approve-plan planReview="API signature는 변경하지 않는다"
29
- ```
30
-
31
- 자동 note 반영을 끄고 바로 승인하려면:
32
-
33
- ```txt
34
- weave command=approve-plan applyNotes=false
35
- ```
36
-
37
- ---
38
-
39
- ## 내부 호출
40
-
41
- ```txt
42
- weave command=approve-plan
43
- ```
44
-
45
- ---
46
-
47
- ## 다음 단계
48
-
49
- ```txt
50
- weave command=craft
51
- ```
52
-
53
- 또는 원커맨드로 이어서 진행:
54
-
55
- ```txt
56
- weave command=flow
57
- ```
@@ -1,296 +0,0 @@
1
- ---
2
- description: 요구사항 분석 및 Phase 계획 수립 (멀티 플랜)
3
- ---
4
-
5
- # /weave-design - 요구사항 분석 및 계획 수립
6
-
7
- ## 개요
8
-
9
- 유저의 요구사항 문서를 분석하고, Phase별 실행 계획을 수립합니다.
10
- **멀티 플랜**: 하나의 프로젝트에서 여러 플랜을 동시에 관리할 수 있습니다.
11
-
12
- 큰 계획(phase/시간 규모가 큰 경우)은 자동으로 여러 shard plan 파일로 분할되며,
13
- 각 shard는 독립적으로 세부 설계(task/checklist)를 갖습니다.
14
-
15
- **입력 방식**:
16
- - 정확한 경로: `docs/`, `wiki/spec.md`
17
- - 자연어 힌트: `기획 폴더`, `README`, `아까 만든 문서`
18
-
19
- > AI가 자동으로 프로젝트를 탐색하여 관련 문서를 찾습니다.
20
-
21
- **Maskweaver 통합**:
22
- - **Memory**: 과거 유사 프로젝트 검색하여 계획 참조
23
- - **Masks**: 아키텍처 분석에 Martin Fowler 마스크 자동 선택
24
-
25
- ---
26
-
27
- ## 사전 조건
28
-
29
- `/weave-init`이 실행되어 있어야 합니다.
30
- 실행되지 않았다면 자동으로 init을 먼저 수행합니다:
31
- 1. `.opencode/weave/state.yaml` 존재 여부 확인
32
- 2. 없으면 → `/weave-init` 절차 자동 실행 후 계속 진행
33
-
34
- ---
35
-
36
- ## Expert Summoning Strategy (Critical)
37
-
38
- ### Principle: Summon Named Experts for Quality
39
-
40
- You are the **Mask Weaver**. Your power lies in summoning the right expert for the right task. Don't try to do everything yourself — **delegate to specialists**.
41
-
42
- ---
43
-
44
- ### 1. Architecture & Design Decisions → Expert Council
45
-
46
- For **critical architectural decisions**, summon multiple experts for consultation:
47
-
48
- ```
49
- Complex Architecture Decision:
50
-
51
- Task(dummy-human):
52
- Mask: Martin Fowler (Enterprise Architecture)
53
- Task: "Analyze these requirements and propose a layer structure,
54
- key components, and design patterns to use."
55
-
56
- Task(dummy-human):
57
- Mask: Linus Torvalds (System Performance)
58
- Task: "Review the proposed architecture for performance bottlenecks
59
- and scalability concerns."
60
-
61
- → Mask Weaver synthesizes both perspectives into final decision.
62
- ```
63
-
64
- **Why This Works**:
65
- - Each expert focuses on their domain of excellence
66
- - You maintain strategic oversight without context pollution
67
- - Multiple perspectives prevent blind spots
68
-
69
- ---
70
-
71
- ### 2. Technology Choices → Squad Parallel Analysis
72
-
73
- For **important technology selections** (framework, database, etc.):
74
-
75
- ```
76
- Mask Weaver:
77
- 1. squad start → "Optimal Tech Stack Decision"
78
- 2. squad squad (arch-squad) → "Martin Fowler: Maintainability analysis"
79
- 3. squad squad (perf-squad) → "Linus Torvalds: Performance analysis"
80
- 4. squad squad (dx-squad) → "Dan Abramov: Developer experience analysis"
81
-
82
- → Collect results → Weigh trade-offs → Final decision
83
- ```
84
-
85
- ---
86
-
87
- ### 3. When to Summon vs Handle Directly
88
-
89
- | Situation | Action |
90
- |-----------|--------|
91
- | Reading & summarizing requirements | Handle directly |
92
- | Obvious tech stack (project already decided) | Handle directly |
93
- | Architecture trade-offs with long-term impact | **Summon Martin Fowler** |
94
- | Performance-critical design | **Summon Linus Torvalds** |
95
- | Multiple valid approaches, need comparison | **Squad council** |
96
-
97
- > **Rule of Thumb**: If the decision will be hard to reverse later, summon experts. If it's tactical, handle it yourself.
98
-
99
- ---
100
-
101
- ## 실행 흐름
102
-
103
- ```
104
- 0. INIT CHECK (weave 초기화 확인)
105
-
106
- 1. RESOLVE (입력 해석 → 실제 경로 찾기)
107
-
108
- 2. INTAKE (문서 분석)
109
-
110
- 3. CLARIFY (불명확한 부분 질문)
111
-
112
- 4. PLAN (계획서 제시 + 플랜 이름 제안)
113
-
114
- 5. FEEDBACK (유저 피드백 → 수정)
115
-
116
- 6. APPROVE (승인 시 플랜 파일 생성 + 활성 플랜 설정)
117
- ```
118
-
119
- ---
120
-
121
- ## 단계별 상세
122
-
123
- ### Step 0: INIT CHECK
124
-
125
- ```
126
- .opencode/weave/state.yaml 존재?
127
- ├─ YES → 계속 진행
128
- └─ NO → /weave-init 자동 실행 후 계속
129
- ```
130
-
131
- ### Step 1: RESOLVE (경로 해석)
132
-
133
- **입력 유형별 처리**:
134
-
135
- | 입력 타입 | 예시 | 처리 방법 |
136
- |----------|------|----------|
137
- | 정확한 경로 | `docs/spec.md` | 그대로 사용 |
138
- | 디렉토리 힌트 | `기획 폴더`, `스펙 폴더` | docs/, spec/, design/, wiki/ 등 탐색 |
139
- | 파일 타입 힌트 | `README`, `기획서` | README.md, SPEC.md, *.spec.md 등 검색 |
140
- | 시간 힌트 | `아까 만든`, `어제 정리한` | 최근 수정된 .md 파일 탐색 |
141
- | 내용 힌트 | `요구사항`, `기능 목록` | 파일 내용 검색 (grep) |
142
-
143
- **탐색 순서**:
144
- 1. 프로젝트 루트의 일반적 문서 위치 확인
145
- - `docs/`, `doc/`, `wiki/`, `spec/`, `design/`
146
- 2. 키워드 매칭으로 후보 파일 탐색
147
- 3. 최근 수정 시간 고려 (시간 힌트가 있는 경우)
148
- 4. 후보가 여러 개면 유저에게 확인
149
-
150
- ---
151
-
152
- ### Step 2: INTAKE
153
-
154
- **수행 작업**:
155
- 1. 해석된 경로의 모든 문서 읽기
156
- 2. 핵심 기능 추출
157
- 3. 기술적 요구사항 식별
158
- 4. 과거 유사 프로젝트 검색 (Memory 시스템)
159
-
160
- ---
161
-
162
- ### Step 3: CLARIFY
163
-
164
- 불명확한 부분을 유저에게 질문합니다.
165
-
166
- ---
167
-
168
- ### Step 4: PLAN
169
-
170
- **Phase 크기 기준**:
171
- - 한 Phase = 반나절 ~ 하루 작업량
172
- - 끝나면 유저가 뭔가 "해볼 수 있어야" 함
173
-
174
- **플랜 이름 제안**:
175
- 계획서와 함께 **플랜 이름(kebab-case)**을 제안합니다:
176
- ```markdown
177
- ## 📋 실행 계획서
178
-
179
- **플랜 이름**: `emotion-diary` (변경 가능)
180
-
181
- ### 비전
182
- [전체 목표 요약]
183
-
184
- ### Phase 계획
185
- | Phase | 이름 | 완료 조건 | 예상 시간 |
186
- |-------|------|----------|----------|
187
- | P1 | [...] | [...] | 2-3시간 |
188
- | P2 | [...] | [...] | 2-3시간 |
189
-
190
- ---
191
- 이 계획이 괜찮으세요? 플랜 이름을 바꾸고 싶다면 말씀해주세요.
192
- ```
193
-
194
- ---
195
-
196
- ### Step 5: APPROVE
197
-
198
- **플랜 파일 생성**: `.opencode/weave/plans/{plan-name}.yaml`
199
-
200
- > ⚠️ **YAML 작성 규칙 (반드시 준수)**
201
- >
202
- > `done_when`, `vision` 등 **긴 문자열 값**은 반드시 아래 규칙을 따릅니다:
203
- >
204
- > | 상황 | 사용할 표기법 | 예시 |
205
- > |------|-------------|------|
206
- > | 한 줄로 끝나는 짧은 값 | double-quote (`"`) | `done_when: "로그인 기능 동작"` |
207
- > | 여러 줄 또는 긴 값 | block scalar (`\|`) | 아래 예시 참고 |
208
- > | ❌ 절대 금지 | 여러 줄에 걸친 double-quote | `done_when: "1단계...\n2단계..."` |
209
- >
210
- > ```yaml
211
- > # ✅ 올바른 예시 - 짧은 값
212
- > done_when: "유저가 감정을 선택할 수 있다"
213
- >
214
- > # ✅ 올바른 예시 - 긴 값 (block scalar)
215
- > done_when: |
216
- > 1. 유저가 감정을 선택할 수 있다
217
- > 2. 선택한 감정이 저장된다
218
- > 3. 저장 확인 메시지가 표시된다
219
- >
220
- > # ❌ 잘못된 예시 - 닫는 따옴표가 다른 줄에 있음 (YAML 파싱 실패!)
221
- > done_when: "1. 유저가 감정을 선택할 수 있다
222
- > 2. 선택한 감정이 저장된다
223
- > 3. 저장 확인 메시지가 표시된다"
224
- > ```
225
- >
226
- > **핵심 원칙**: `"` 로 시작했으면 **같은 줄에서** `"` 로 닫아야 합니다. 줄바꿈이 필요하면 `|` 를 사용하세요.
227
-
228
- ```yaml
229
- plan_name: "emotion-diary"
230
- project_name: "감정 일기 앱"
231
- created_at: "2026-02-06"
232
- status: "active" # active | paused | completed | archived
233
-
234
- vision: |
235
- [전체 비전]
236
-
237
- architecture:
238
- frontend: "[...]"
239
- backend: "[...]"
240
- database: "[...]"
241
-
242
- phases:
243
- - id: "P1"
244
- name: "[Phase 이름]"
245
- status: "pending" # pending | in_progress | completed
246
- done_when: "[짧으면 한 줄 double-quote, 길면 | 블록 스칼라 사용]"
247
- started_at: null
248
- completed_at: null
249
- masks_used: []
250
- checklist:
251
- - "[체크 항목 1]"
252
- - "[체크 항목 2]"
253
- tasks: []
254
- ```
255
-
256
- **state.yaml 업데이트**:
257
-
258
- ```yaml
259
- active_plan: "emotion-diary"
260
- ```
261
-
262
- **완료 메시지**:
263
- ```markdown
264
- ✅ 플랜이 승인되었습니다!
265
-
266
- 📁 생성된 파일: `.opencode/weave/plans/emotion-diary.yaml`
267
- 📌 활성 플랜으로 설정됨
268
-
269
- ### 다음 단계
270
- Phase 1을 시작하려면:
271
- `/weave-craft P1`
272
- ```
273
-
274
- ---
275
-
276
- ## 기존 플랜이 있는 경우
277
-
278
- 활성 플랜이 이미 존재하면:
279
- ```markdown
280
- ℹ️ 현재 활성 플랜: `todo-app` (P2 진행 중)
281
-
282
- 새 플랜을 추가하면 기존 플랜은 유지되고, 새 플랜이 활성 플랜이 됩니다.
283
- 기존 플랜으로 돌아가려면: `/weave-switch todo-app`
284
-
285
- 계속 진행할까요?
286
- ```
287
-
288
- ---
289
-
290
- ## 주의사항
291
-
292
- 1. **Phase는 작게**: 큰 Phase는 분할
293
- 2. **복잡한 분석은 위임**: Task(dummy-human)으로 전문가 위임
294
- 3. **테스트 가능해야**: 각 Phase 끝에 유저가 확인할 수 있어야
295
- 4. **아키텍처는 유연하게**: "변경 가능"을 명시
296
- 5. **플랜 이름은 kebab-case**: 파일명이 되므로 영문 소문자, 하이픈만 사용
@@ -1,48 +0,0 @@
1
- ---
2
- description: 원커맨드 실행 (prepare -> auto-approve -> craft -> verify -> finalize)
3
- ---
4
-
5
- # /weave-flow - 원커맨드 실행
6
-
7
- ## 개요
8
-
9
- `/weave-flow`는 Weave 기본 경로를 한 번에 실행합니다.
10
-
11
- - `prepare` (필요 시): research + spec + plan 생성
12
- - `refine-plan` (선택): `tasks/plan-notes.md` 지시문 반영
13
- - `plan gate`: 실행 전 계획 품질 점검 (구현/테스트/검증 커버리지, 실패 시 경고 후 계속 진행)
14
- - `auto-approve`: flow가 승인 단계를 자동 통과
15
- - `craft`: 실행 대상 phase의 실행 컨텍스트를 준비
16
- - `verify`: 기본 quick 검증 실행
17
- - `finalize`: 검증 통과 시 phase 완료 처리
18
-
19
- ## 사용법
20
-
21
- ```txt
22
- /weave-flow $ARGUMENTS
23
- ```
24
-
25
- - 문서 경로를 넘기면 prepare부터 시작
26
- - 비우면 기존 active plan 재사용
27
-
28
- ## 내부 호출
29
-
30
- ```txt
31
- weave command=flow docsPath="$ARGUMENTS"
32
- ```
33
-
34
- 또는:
35
-
36
- ```txt
37
- weave command=flow
38
- ```
39
-
40
- ## 산출물
41
-
42
- - `tasks/todo.md`: 현재 plan/phase 체크리스트 + 최근 리뷰
43
- - `tasks/lessons.md`: 실패 패턴과 재발 방지 규칙 기록
44
-
45
- ## 다음 단계
46
-
47
- - 검증 실패 시 수정 후 `/weave-flow` 또는 `weave command=verify` 재실행
48
- - 진행 상황 확인: `weave command=status`