maskweaver 0.9.4 → 0.9.6

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 (229) hide show
  1. package/README.ko.md +638 -592
  2. package/README.md +671 -667
  3. package/dist/cli/doctor.js +5 -21
  4. package/dist/cli/install.d.ts +0 -8
  5. package/dist/cli/install.js +0 -39
  6. package/dist/context/config.d.ts +0 -22
  7. package/dist/context/config.js +0 -28
  8. package/dist/context/feature.d.ts +0 -39
  9. package/dist/context/feature.js +0 -77
  10. package/dist/context/files.d.ts +0 -13
  11. package/dist/context/files.js +1 -24
  12. package/dist/context/index.d.ts +0 -7
  13. package/dist/context/index.js +0 -12
  14. package/dist/context/project.d.ts +0 -21
  15. package/dist/context/project.js +0 -30
  16. package/dist/context/types.d.ts +0 -48
  17. package/dist/context/types.js +0 -12
  18. package/dist/context/utils.d.ts +0 -18
  19. package/dist/context/utils.js +0 -27
  20. package/dist/core/engine/promptBuilder.d.ts +0 -17
  21. package/dist/core/engine/promptBuilder.js +0 -28
  22. package/dist/core/index.d.ts +0 -6
  23. package/dist/core/index.js +0 -9
  24. package/dist/core/loader/MaskLoader.d.ts +0 -23
  25. package/dist/core/loader/MaskLoader.js +0 -29
  26. package/dist/core/schema/types.d.ts +0 -47
  27. package/dist/core/schema/types.js +0 -6
  28. package/dist/core/schema/validator.d.ts +0 -14
  29. package/dist/core/schema/validator.js +0 -18
  30. package/dist/i18n/index.d.ts +0 -18
  31. package/dist/i18n/index.js +4 -23
  32. package/dist/index.d.ts +0 -8
  33. package/dist/index.js +0 -8
  34. package/dist/lib.d.ts +0 -5
  35. package/dist/lib.js +0 -12
  36. package/dist/memory/chunking.d.ts +0 -22
  37. package/dist/memory/chunking.js +2 -37
  38. package/dist/memory/core.d.ts +0 -29
  39. package/dist/memory/core.js +1 -52
  40. package/dist/memory/index.d.ts +0 -5
  41. package/dist/memory/index.js +0 -10
  42. package/dist/memory/indexer.d.ts +0 -21
  43. package/dist/memory/indexer.js +0 -44
  44. package/dist/memory/providers/examples.d.ts +0 -5
  45. package/dist/memory/providers/examples.js +4 -64
  46. package/dist/memory/providers/factory.d.ts +0 -44
  47. package/dist/memory/providers/factory.js +0 -46
  48. package/dist/memory/providers/index.d.ts +0 -26
  49. package/dist/memory/providers/index.js +0 -28
  50. package/dist/memory/providers/ollama.d.ts +0 -6
  51. package/dist/memory/providers/ollama.js +1 -8
  52. package/dist/memory/providers/openai.d.ts +0 -6
  53. package/dist/memory/providers/openai.js +1 -8
  54. package/dist/memory/providers/openrouter.d.ts +0 -6
  55. package/dist/memory/providers/openrouter.js +0 -8
  56. package/dist/memory/providers/text-only.d.ts +0 -13
  57. package/dist/memory/providers/text-only.js +0 -17
  58. package/dist/memory/providers/types.d.ts +0 -39
  59. package/dist/memory/providers/types.js +0 -7
  60. package/dist/memory/providers/voyage.d.ts +0 -22
  61. package/dist/memory/providers/voyage.js +1 -24
  62. package/dist/memory/search/hybrid.d.ts +0 -12
  63. package/dist/memory/search/hybrid.js +1 -22
  64. package/dist/memory/store/sqlite.d.ts +0 -72
  65. package/dist/memory/store/sqlite.js +4 -127
  66. package/dist/plugin/config/index.d.ts +0 -112
  67. package/dist/plugin/config/index.js +0 -115
  68. package/dist/plugin/index.d.ts +0 -13
  69. package/dist/plugin/index.js +1 -123
  70. package/dist/plugin/tools/command-registry.d.ts +0 -6
  71. package/dist/plugin/tools/command-registry.js +0 -14
  72. package/dist/plugin/tools/context.d.ts +0 -12
  73. package/dist/plugin/tools/context.js +0 -58
  74. package/dist/plugin/tools/maskSave.d.ts +0 -3
  75. package/dist/plugin/tools/maskSave.js +0 -3
  76. package/dist/plugin/tools/memoryGet.d.ts +0 -3
  77. package/dist/plugin/tools/memoryGet.js +0 -3
  78. package/dist/plugin/tools/memoryIndexer.d.ts +0 -3
  79. package/dist/plugin/tools/memoryIndexer.js +0 -10
  80. package/dist/plugin/tools/memorySearch.d.ts +0 -31
  81. package/dist/plugin/tools/memorySearch.js +0 -79
  82. package/dist/plugin/tools/memoryWrite.d.ts +0 -8
  83. package/dist/plugin/tools/memoryWrite.js +0 -32
  84. package/dist/plugin/tools/retrospect.d.ts +0 -3
  85. package/dist/plugin/tools/retrospect.js +0 -3
  86. package/dist/plugin/tools/slashcommand.d.ts +0 -11
  87. package/dist/plugin/tools/slashcommand.js +0 -38
  88. package/dist/plugin/tools/squad.d.ts +0 -12
  89. package/dist/plugin/tools/squad.js +11 -83
  90. package/dist/plugin/tools/weave.d.ts +0 -6
  91. package/dist/plugin/tools/weave.js +0 -78
  92. package/dist/plugin/types.d.ts +0 -20
  93. package/dist/plugin/types.js +0 -7
  94. package/dist/retrospect/index.d.ts +0 -7
  95. package/dist/retrospect/index.js +0 -9
  96. package/dist/retrospect/mask-save.d.ts +0 -12
  97. package/dist/retrospect/mask-save.js +1 -80
  98. package/dist/retrospect/retrospect.d.ts +0 -18
  99. package/dist/retrospect/retrospect.js +0 -63
  100. package/dist/retrospect/strategies/base.d.ts +0 -15
  101. package/dist/retrospect/strategies/base.js +0 -7
  102. package/dist/retrospect/strategies/deep.d.ts +0 -12
  103. package/dist/retrospect/strategies/deep.js +0 -24
  104. package/dist/retrospect/strategies/index.d.ts +0 -12
  105. package/dist/retrospect/strategies/index.js +0 -12
  106. package/dist/retrospect/strategies/quick.d.ts +0 -12
  107. package/dist/retrospect/strategies/quick.js +0 -19
  108. package/dist/retrospect/strategies/standard.d.ts +0 -12
  109. package/dist/retrospect/strategies/standard.js +0 -15
  110. package/dist/retrospect/types.d.ts +0 -7
  111. package/dist/retrospect/types.js +0 -7
  112. package/dist/shared/config.d.ts +0 -105
  113. package/dist/shared/config.js +0 -33
  114. package/dist/shared/errors.d.ts +0 -18
  115. package/dist/shared/errors.js +0 -19
  116. package/dist/shared/generate-agents.d.ts +0 -69
  117. package/dist/shared/generate-agents.js +2 -86
  118. package/dist/shared/image.d.ts +0 -67
  119. package/dist/shared/image.js +6 -104
  120. package/dist/shared/index.d.ts +0 -5
  121. package/dist/shared/index.js +0 -7
  122. package/dist/shared/model-registry.d.ts +0 -72
  123. package/dist/shared/model-registry.js +5 -95
  124. package/dist/shared/types.d.ts +0 -15
  125. package/dist/shared/types.js +0 -3
  126. package/dist/shared-context/dag.d.ts +0 -105
  127. package/dist/shared-context/dag.js +3 -114
  128. package/dist/shared-context/index.d.ts +0 -5
  129. package/dist/shared-context/index.js +0 -15
  130. package/dist/shared-context/logger.d.ts +0 -37
  131. package/dist/shared-context/logger.js +0 -41
  132. package/dist/shared-context/parallel-executor.d.ts +0 -54
  133. package/dist/shared-context/parallel-executor.js +4 -56
  134. package/dist/shared-context/session.d.ts +0 -56
  135. package/dist/shared-context/session.js +0 -47
  136. package/dist/shared-context/squad.d.ts +0 -68
  137. package/dist/shared-context/squad.js +0 -63
  138. package/dist/shared-context/storage.d.ts +0 -132
  139. package/dist/shared-context/storage.js +0 -116
  140. package/dist/shared-context/task.d.ts +0 -120
  141. package/dist/shared-context/task.js +0 -152
  142. package/dist/shared-context/test/dag.test.js +9 -14
  143. package/dist/shared-context/test/logger.test.d.ts +0 -8
  144. package/dist/shared-context/test/logger.test.js +0 -52
  145. package/dist/shared-context/test/session.test.d.ts +0 -7
  146. package/dist/shared-context/test/session.test.js +0 -63
  147. package/dist/shared-context/test/squad.test.d.ts +0 -10
  148. package/dist/shared-context/test/squad.test.js +2 -68
  149. package/dist/shared-context/test/storage.test.d.ts +0 -8
  150. package/dist/shared-context/test/storage.test.js +0 -68
  151. package/dist/shared-context/test/task.test.d.ts +0 -7
  152. package/dist/shared-context/test/task.test.js +0 -54
  153. package/dist/shared-context/test/watchdog.test.d.ts +0 -7
  154. package/dist/shared-context/test/watchdog.test.js +3 -58
  155. package/dist/shared-context/types.d.ts +0 -215
  156. package/dist/shared-context/types.js +0 -125
  157. package/dist/shared-context/watchdog.d.ts +0 -127
  158. package/dist/shared-context/watchdog.js +0 -148
  159. package/dist/shared-context/worktree.d.ts +0 -68
  160. package/dist/shared-context/worktree.js +2 -34
  161. package/dist/verify/budget.d.ts +0 -29
  162. package/dist/verify/budget.js +0 -34
  163. package/dist/verify/critical-files.d.ts +0 -17
  164. package/dist/verify/critical-files.js +0 -37
  165. package/dist/verify/escalation.d.ts +0 -20
  166. package/dist/verify/escalation.js +0 -22
  167. package/dist/verify/index.d.ts +0 -5
  168. package/dist/verify/index.js +0 -11
  169. package/dist/verify/prompts.d.ts +0 -20
  170. package/dist/verify/prompts.js +0 -20
  171. package/dist/verify/types.d.ts +0 -26
  172. package/dist/verify/types.js +1 -12
  173. package/dist/verify/verifier.d.ts +0 -29
  174. package/dist/verify/verifier.js +0 -54
  175. package/dist/version.d.ts +1 -16
  176. package/dist/version.js +1 -16
  177. package/dist/weave/bridge.d.ts +0 -35
  178. package/dist/weave/bridge.js +0 -51
  179. package/dist/weave/environment/detector.d.ts +0 -6
  180. package/dist/weave/environment/detector.js +4 -45
  181. package/dist/weave/environment/index.d.ts +0 -19
  182. package/dist/weave/environment/index.js +1 -39
  183. package/dist/weave/environment/issues.d.ts +0 -35
  184. package/dist/weave/environment/issues.js +0 -59
  185. package/dist/weave/git.d.ts +0 -8
  186. package/dist/weave/git.js +0 -8
  187. package/dist/weave/index.d.ts +0 -13
  188. package/dist/weave/index.js +2 -28
  189. package/dist/weave/knowledge/global.d.ts +0 -39
  190. package/dist/weave/knowledge/global.js +2 -78
  191. package/dist/weave/loop.js +0 -3
  192. package/dist/weave/orchestrator.d.ts +0 -69
  193. package/dist/weave/orchestrator.js +1 -101
  194. package/dist/weave/phase-manager.d.ts +0 -64
  195. package/dist/weave/phase-manager.js +0 -89
  196. package/dist/weave/security/secret-scan.d.ts +0 -14
  197. package/dist/weave/security/secret-scan.js +0 -19
  198. package/dist/weave/stages/build.js +0 -15
  199. package/dist/weave/stages/execute.d.ts +0 -42
  200. package/dist/weave/stages/execute.js +4 -86
  201. package/dist/weave/stages/handoff.d.ts +0 -7
  202. package/dist/weave/stages/handoff.js +0 -43
  203. package/dist/weave/stages/index.d.ts +0 -3
  204. package/dist/weave/stages/index.js +0 -3
  205. package/dist/weave/stages/intake.d.ts +0 -8
  206. package/dist/weave/stages/intake.js +5 -65
  207. package/dist/weave/stages/map.d.ts +0 -1
  208. package/dist/weave/stages/openspec.d.ts +0 -1
  209. package/dist/weave/stages/plan.d.ts +0 -11
  210. package/dist/weave/stages/plan.js +1 -53
  211. package/dist/weave/stages/refine.d.ts +0 -7
  212. package/dist/weave/stages/refine.js +0 -7
  213. package/dist/weave/stages/research.d.ts +0 -6
  214. package/dist/weave/stages/research.js +0 -6
  215. package/dist/weave/stages/spec.d.ts +0 -12
  216. package/dist/weave/stages/spec.js +0 -17
  217. package/dist/weave/types.d.ts +0 -20
  218. package/dist/weave/types.js +0 -5
  219. package/dist/weave/verification/commands.d.ts +0 -12
  220. package/dist/weave/verification/commands.js +0 -19
  221. package/dist/weave/verification/index.d.ts +0 -6
  222. package/dist/weave/verification/index.js +1 -19
  223. package/dist/weave/verification/playwright.d.ts +0 -47
  224. package/dist/weave/verification/playwright.js +1 -90
  225. package/dist/weave/worktree.d.ts +0 -16
  226. package/dist/weave/worktree.js +0 -23
  227. package/dist/weave/yaml-repair.d.ts +0 -39
  228. package/dist/weave/yaml-repair.js +13 -116
  229. package/package.json +1 -1
package/README.ko.md CHANGED
@@ -1,594 +1,640 @@
1
- # ?렚 Maskweaver: OpenCode瑜??꾪븳 ?꾨Ц媛€ ?섎Ⅴ?뚮굹 ?꾨젅?꾩썙??
2
- <div align="center">
3
-
4
- <img src="docs/images/hero.png" width="800" alt="Maskweaver Hero Image">
5
-
6
- > **AI ?섎Ⅴ?뚮굹瑜??꾪븳 npm** ??OpenCode ?댁떆?ㅽ꽩?몄뿉寃??낅낫?곸씤 ?꾨Ц媛€ ?멸꺽???뷀븯?몄슂
7
-
8
- [![GitHub Release](https://img.shields.io/github/v/release/ulgerang/maskweaver?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/ulgerang/maskweaver/releases)
9
- [![License](https://img.shields.io/badge/license-MIT-white?labelColor=black&style=flat-square)](LICENSE)
10
- [![npm](https://img.shields.io/npm/v/maskweaver?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/maskweaver)
11
-
12
- [English](README.md) | [?쒓뎅??(README.ko.md)
13
-
14
- </div>
15
-
16
- ---
17
-
18
- ## ?뵆 OpenCode ?듯빀
19
-
20
- **Maskweaver??[OpenCode](https://github.com/sst/opencode) ?앺깭怨꾩쓽 ?듭떖 援ъ꽦 ?붿냼?낅땲??**
21
-
22
- 蹂??꾨줈?앺듃???낅┰?곸씤 ?쇱씠釉뚮윭由щ줈???ъ슜 媛€?ν븯吏€留? 湲곕낯?곸쑝濡?OpenCode ?먯씠?꾪듃?ㅼ씠 ?뱀젙 遺꾩빞???꾨Ц 吏€?앹쓣 媛뽰텧 ???덈룄濡??ㅺ퀎?섏뿀?듬땲??
23
- - **?꾨Ц媛€ ?섎Ⅴ?뚮굹 (Masks)**: ?꾩꽕?곸씤 媛쒕컻?먮뱾??泥좏븰???댁? ?쒖? YAML ?꾨줈??
24
- - **?ㅻ쭏???꾩엫**: OpenCode??理쒖쟻?붾맂 硫€???먯씠?꾪듃 ?뚰겕?뚮줈??
25
- - **?꾨줈?앺듃 硫붾え由?*: 肄붾뱶踰좎씠???꾩껜???€???섏씠釉뚮━???섎?濡좎쟻 寃€??
26
- - **?넅 Weave ?뚰겕?뚮줈??*: AI ?먯껜 寃€利앹씠 ?ы븿??Phase 湲곕컲 媛쒕컻.
27
- - **?뵕 GDC ?듯빀**: Graph-Driven Codebase 吏€?먯쑝濡?由ъ꽌移??덉쭏 ?μ긽 諛??ㅺ퀎 ?쒖젏 寃€利?寃뚯씠??異붽?.
28
-
29
- ---
30
-
31
- ## ??Maskweaver?멸???
32
-
33
- ?덉씠??而⑤뵒??踰꾧렇濡?怨좎깮 以묒씠?쇰㈃, **由??좊컻利?*媛€ 肄붾뱶瑜?遊먯??ㅻ㈃ ?쇰쭏??醫뗭쓣源뚯슂?
34
-
35
- ```typescript
36
- // ?쇰컲 AI ?듬? ?€??..
37
- "肄붾뱶???좎옱???덉씠??而⑤뵒?섏씠 ?덉뒿?덈떎."
38
-
39
- // 由??좊컻利??섏????몄궗?댄듃:
40
- "?닿굔 硫띿껌??肄붾뱶?? 硫붾え由?諛곕━?대룄 ???쇱옏?? ?댁뀍釉붾━ 遊먮킄 -
41
- 而댄뙆?쇰윭媛€ 濡쒕뱶 ?쒖꽌 諛붽엥?? smp_rmb() ?곕뱺吏€, ?꾩삁 ??硫띿껌??
42
- ???놁씠 ?ㅼ떆 ?ㅺ퀎??"
43
- ```
44
-
45
- **Maskweaver媛€ ?닿구 媛€?ν븯寃??⑸땲??** AI ?댁떆?ㅽ꽩?몄뿉 ?꾨Ц媛€ ?섎Ⅴ?뚮굹(媛€硫?瑜??뚯썙 源딆? ?꾨찓??吏€?앷낵 ?낇듅???ш퀬諛⑹떇??遺€?ы빀?덈떎.
46
-
47
- ---
48
-
49
- ## ?ㅼ튂
50
-
51
- ### 鍮좊Ⅸ ?ㅼ튂
52
-
53
- ```bash
54
- # npm
55
- npm install maskweaver
56
-
57
- # bun
58
- bun add maskweaver
59
- ```
60
-
61
- ### OpenCode ?뚮윭洹몄씤 ?ㅼ젙
62
-
63
- OpenCode ?ㅼ젙??異붽??섎㈃ ??
64
-
65
- **?꾩뿭** (`~/.config/opencode/opencode.json`):
66
- ```json
67
- {
68
- "plugin": ["maskweaver"]
69
- }
70
- ```
71
-
72
- **?먮뒗 ?꾨줈?앺듃蹂?* (?꾨줈?앺듃 猷⑦듃??`opencode.json`):
73
- ```json
74
- {
75
- "plugin": ["maskweaver"]
76
- }
77
- ```
78
-
79
- > 李멸퀬: OpenCode??npm ?⑦궎吏€瑜??대쫫?쇰줈 ?ㅼ튂?⑸땲?? `maskweaver`瑜??ъ슜?섏꽭??(`maskweaver/plugin` ?꾨떂).
80
-
81
- OpenCode媛€ ?쒖옉 ???먮룞?쇰줈 `~/.cache/opencode/node_modules/`???뚮윭洹몄씤???ㅼ튂?⑸땲??
82
-
83
- **Windows:** `%USERPROFILE%\.config\opencode\opencode.json`
84
-
85
- ### ?꾨즺 ?뚮┝ ?뚮━ (?좏깮)
86
-
87
- Maskweaver???앹꽦???앸굹???몄뀡??idle ?곹깭媛€ ?섎㈃(`session.idle`) ?뚮┝ ?뚮━瑜??ъ깮?????덉뒿?덈떎.
88
-
89
- `.opencode/maskweaver.json`(?꾨줈?앺듃) ?먮뒗 `~/.config/opencode/maskweaver.json`(?꾩뿭)???ㅼ젙?섏꽭??
90
-
91
- ```jsonc
92
- {
93
- "notifications": {
94
- "completionSound": {
95
- "enabled": true
96
- }
97
- }
98
- }
99
- ```
100
-
101
- ?꾨젮硫?
102
-
103
- ```jsonc
104
- {
105
- "notifications": {
106
- "completionSound": {
107
- "enabled": false
108
- }
109
- }
110
- }
111
- ```
112
-
113
- ### ?ㅼ튂??踰꾩쟾 ?뺤씤
114
-
115
- Maskweaver 踰꾩쟾???뺤씤?섎뒗 ?щ윭 諛⑸쾿:
116
-
117
- ```bash
118
- # CLI (?곕???
119
- maskweaver --version
120
- # ?먮뒗
121
- maskweaver -V
122
-
123
- # npm
124
- npm list maskweaver
125
-
126
- # OpenCode 梨꾪똿 ?댁뿉??# maskweaver_status ?꾧뎄瑜??ъ슜?섍굅??
127
- /weave-help
128
- ```
129
-
130
- ```typescript
131
- // ?꾨줈洹몃옒諛?諛⑹떇 (Node.js / TypeScript)
132
- import { VERSION } from 'maskweaver';
133
- console.log(VERSION); // "0.7.29"
134
- ```
135
-
136
- ---
137
-
138
- ## 鍮좊Ⅸ ?쒖옉
139
-
140
- ### 泥??ъ슜
141
-
142
- ```bash
143
- # AI ?댁떆?ㅽ꽩??梨꾪똿?먯꽌:
144
- @maskweaver 由??좊컻利?媛€硫댁쑝濡???C 肄붾뱶 由щ럭?댁쨾
145
-
146
- # ?먮뒗 ?붾??멸컙?먭쾶 ?꾩엫:
147
- @dummy-human 由??좊컻利?媛€硫댁쑝濡?硫€?곗뒪?덈뵫 肄붾뱶 由щ럭
148
- @dummy-flash "unsafe" ?ㅼ뼱媛??뚯씪 ?꾨? 李얠븘以?@dummy-premium ??紐⑤?由ъ뒪瑜?留덉씠?щ줈?쒕퉬?ㅻ줈 ?ㅺ퀎?댁쨾
149
- ```
150
-
151
- ---
152
-
153
- ## 湲곕뒫
154
-
155
- ### ?렚 ?꾨Ц媛€ ?섎Ⅴ?뚮굹 (媛€硫?
156
-
157
- ?꾩꽕?곸씤 媛쒕컻?먯쓽 ?멸꺽??AI???곸슜:
158
-
159
- ```yaml
160
- # masks/software-engineering/linus-torvalds.yaml
161
- profile:
162
- name: Linus Torvalds
163
- expertise:
164
- - 而ㅻ꼸 ?섏? ?쒖뒪???꾨줈洹몃옒諛? - ?깅뒫 理쒖쟻?? - 硫붾え由?愿€由?諛??숈떆??
165
- thinkingStyle: |
166
- ?곹뼢?? ?ㅼ슜???묎렐. ?대줎???꾨땶 肄붾뱶遺€??
167
- 蹂듭옟?⑥쓣 臾댁옄鍮꾪븯寃??쒓굅.
168
- ```
169
-
170
- **?꾩옱 媛€硫?**
171
- - ?맕 **由??좊컻利?* - ?쒖뒪?? C, 由щ늼?? ?깅뒫
172
- - ?룛截?**留덊떞 ?뚯슱??* - ?꾪궎?띿쿂, 由ы뙥?좊쭅, ?⑦꽩
173
- - ?㎦ **耳꾪듃 踰?* - TDD, XP, ?뚯뒪??- ?쭬 **?ㅻ뱶瑜???* - ML/AI ?쒖뒪??- ?쏉툘 **???꾨툕?쇰え??* - React, ?꾨줎?몄뿏???꾪궎?띿쿂
174
-
175
- ### ?쨼 ?붾??멸컙 ?쒖뒪??
176
- 鍮꾩슜 ?⑥쑉?곸씤 硫€???먯씠?꾪듃 ?뚰겕?뚮줈?곕? ?꾪븳 ?ㅻ쭏???쒕툕?먯씠?꾪듃:
177
-
178
- | ?먯씠?꾪듃 | 紐⑤뜽 ?깃툒 | 鍮꾩슜 | 理쒖쟻 ?⑸룄 |
179
- |---------|----------|------|-----------|
180
- | `@dummy-flash` | 鍮좊쫫 | ?뮥 | ?뚯씪 寃€?? ?붿빟, 媛꾨떒???묒뾽 |
181
- | `@dummy-human` | 洹좏삎 | ?뮥?뮥 | 肄붾뱶 ?묒꽦, 由щ럭, ?쇰컲 ?묒뾽 |
182
- | `@dummy-premium` | 媛뺣젰 | ?뮥?뮥?뮥 | ?꾪궎?띿쿂, 蹂듭옟???붾쾭源?|
183
-
184
- ### ?㏊ Weave ?뚰겕?뚮줈??
185
- **Phase 湲곕컲 媛쒕컻** ??"AI媛€ 寃€利앺븯怨? ?좎?媛€ ?뺤씤?쒕떎"
186
-
187
- Weave??Maskweaver???듭떖 ?뚰겕?뚮줈?곗엯?덈떎. ?묒뾽???뚯뒪??媛€?ν븳 Phase濡??섎늻怨? ?꾨Ц媛€ 留덉뒪?щ? ?먮룞 ?좏깮?섎ʼn, ?좎? ?꾨떖 ??援ъ“?붾맂 寃€利??④퀎瑜??쒓났?⑸땲??
188
-
189
- #### 紐낅졊??
190
- | 紐낅졊??| ?ㅻ챸 |
191
- |--------|------|
192
- | `/weave-init` | Weave 珥덇린??(?꾨줈?앺듃??1?? |
193
- | `/weave-prepare [docs]` | research + spec + plan????踰덉뿉 ?앹꽦 (??怨꾪쉷?€ ?먮룞 遺꾪븷) |
194
- | `/weave-refine-plan` | `tasks/plan-notes.md` 吏€?쒕Ц??active plan??諛섏쁺 |
195
- | `/weave-approve` | 援ы쁽 ???щ엺??怨꾪쉷 ?뱀씤(寃뚯씠?? |
196
- | `/weave-craft [P#]` | Phase ?ㅽ뻾 而⑦뀓?ㅽ듃/媛€?대뱶 ?앹꽦 |
197
- | `/build` | ?먯쑉 鍮뚮뱶 猷⑦봽 (`action=run/status/stop/list/resume/sync`) |
198
- | `/weave-verify` | 鍮뚮뱶/?뚯뒪??寃€利??ㅽ뻾 (?먮룞 媛먯?) |
199
- | `/weave-worktree ...` | git worktree 湲곕컲 蹂묐젹 ?묒뾽 愿€由?|
200
- | `/weave-status` | ?꾨줈?앺듃 吏꾪뻾 ?곹솴 諛??듦퀎 ?뺤씤 |
201
- | `/weave-agents` | ?먯씠?꾪듃 ?뚯씪 ?숆린???먮뒗 ?ㅼ젙 珥덇린??(`sync=true` / `init=true`) |
202
- | `/weave-troubleshoot` | 湲€濡쒕쾶 吏€??寃€??(`record=true`濡??붾(???€?? |
203
- | `/weave-archive` | 寃€利앸맂 蹂€寃쎌궗???꾩뭅?대툕 |
204
- | `/weave-help` | ?꾩?留??쒖떆 |
205
-
206
- > Tip: OpenCode 채팅에서는 위에 보이는 slash command를 사용하세요. 내부적으로는 `weave command=...` 도구 호출로 매핑됩니다.
207
-
208
- #### ?뚰겕?뚮줈??
209
- ```
210
- 0. INIT (1??: /weave-init
211
- ??1. PLAN: /weave-prepare docs/
212
- - research + spec + phase plan????踰덉뿉 ?앹꽦 (??怨꾪쉷?€ ?먮룞 遺꾪븷)
213
- ??2. REFINE (?좏깮): /weave-refine-plan
214
- - tasks/plan-notes.md 湲곕컲 怨꾪쉷 ?뺤젣
215
- ??3. APPROVAL GATE: /weave-approve
216
- - craft ?ㅽ뻾 ???꾩닔 ?뱀씤
217
- ??4. CRAFT: /weave-craft
218
- - Phase ?ㅽ뻾 怨꾪쉷怨??ㅼ쓬 ?≪뀡 ?덈궡 ?앹꽦
219
- - 援ы쁽/寃€利???approve濡?phase ?꾨즺 泥섎━
220
- - `/weave-verify`濡?鍮뚮뱶/?뚯뒪??寃€利?媛€?? ??5. HANDOFF: ?좎?媛€ UX/?섎룄 ?뺤씤 ???ㅼ쓬 Phase濡?吏꾪뻾
221
- ```
222
-
223
- #### ?ㅼ링 AI 寃€利??쒖뒪??
224
- ?좎??먭쾶 ?꾨떖?섍린 ?? AI媛€ ?ㅼ쓬 寃€利??덉씠?대? ?ㅽ뻾?⑸땲??
225
-
226
- | ?덉씠??| ?좏삎 | ?꾧뎄 |
227
- |--------|------|------|
228
- | 1截뤴깵 TypeCheck | 鍮뚮뱶 | `tsc --noEmit` |
229
- | 2截뤴깵 Lint | 鍮뚮뱶 | `eslint` |
230
- | 3截뤴깵 Build | 鍮뚮뱶 | `npm run build` |
231
- | 4截뤴깵 Unit Tests | ?뚯뒪??| `jest` / `vitest` |
232
- | 5截뤴깵 E2E Tests | ?뚯뒪??| **Playwright** |
233
- | 6截뤴깵 Screenshot | ?쒓컖 | Playwright / 釉뚮씪?곗? 罹≪쿂 |
234
- | 7截뤴깵 API Check | API | `fetch` ?ъ뒪 泥댄겕 |
235
- | 8截뤴깵 A11y | ?묎렐??| `axe-core` |
236
- | 0截뤴깵 GDC Check | ?ㅺ퀎 | `gdc check --machine` |
237
-
238
- #### GDC ?듯빀 (Graph-Driven Codebase)
239
-
240
- Weave??[GDC](https://github.com/ulgerang/gdc)(Graph-Driven Codebase)?€ ?듯빀?섏뼱 由ъ꽌移??덉쭏???μ긽?쒗궎怨??ㅺ퀎 ?쒖젏 寃€利?寃뚯씠?몃? 異붽??⑸땲??
241
-
242
- **由ъ꽌移?媛뺥솕:**
243
- - `.gdc` ?뚰겕?ㅽ럹?댁뒪 ?먮룞 媛먯?
244
- - GDC `stats`, `graph`, `check` 寃곌낵瑜?`tasks/research.md`???ы븿
245
- - 洹몃옒???l? 湲곕컲 ?섏〈???곹뼢 踰붿쐞(Blast Radius) 遺꾩꽍
246
- - 湲곕뒫 ?ㅼ썙?쒖? 留ㅼ묶???ъ궗???꾨낫 ?몃뱶
247
- - ??蹂닿퀬???뱀뀡: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
248
-
249
- **Pre-Verify 寃뚯씠??**
250
- GDC媛€ 媛먯??섎㈃ `weave verify`?€ `weave flow`媛€ ?먮룞?쇰줈 ?ㅽ뻾:
251
- 1. `gdc sync --machine` - ?ㅽ럺怨?援ы쁽 ?숆린??2. `gdc check --machine` - ?ㅽ럺/援ы쁽 ?쇱튂??寃€利?
252
- GDC check??釉붾줈???먮윭??寃€利앹쓣 以묐떒?쒗궢?덈떎(`strictVerify` 紐⑤뱶濡??ㅼ젙 媛€??.
253
-
254
- **?ㅼ젙** (`maskweaver.config.json`):
255
- ```json
256
- {
257
- "gdc": {
258
- "enabled": "auto",
259
- "strictVerify": false,
260
- "autoSyncOnPrepare": true
261
- }
262
- }
263
- ```
264
-
265
- - `enabled`: `true` | `false` | `"auto"` (湲곕낯媛? `.gdc` ?붾젆?곕━ ?먮룞 媛먯?)
266
- - `strictVerify`: `true`硫?GDC check ?ㅽ뙣 ??寃€利?李⑤떒; `false`硫?寃쎄퀬 ??怨꾩냽 吏꾪뻾
267
- - `autoSyncOnPrepare`: `weave prepare` ??`gdc sync` ?ㅽ뻾
268
-
269
- #### 留덉뒪???먮룞 ?좏깮
270
-
271
- AI媛€ 媛??묒뾽??媛€???곹빀???꾨Ц媛€瑜??먮룞?쇰줈 ?좏깮?⑸땲??
272
-
273
- | ?묒뾽 ?좏삎 | ?먮룞 ?좏깮 留덉뒪??|
274
- |----------|-----------------|
275
- | ?꾪궎?띿쿂/?ㅺ퀎 | ?룛截?留덊떞 ?뚯슱??|
276
- | ?뚯뒪??TDD | ?㎦ 耳꾪듃 踰?|
277
- | React/?꾨줎?몄뿏??| ?쏉툘 ???꾨툕?쇰え??|
278
- | ?깅뒫/?쒖뒪??| ?맕 由??좊컻利?|
279
- | ML/AI | ?쭬 ?ㅻ뱶瑜???|
280
-
281
- #### 湲€濡쒕쾶 吏€??踰좎씠??(?꾨줈?앺듃 媛?RAG)
282
-
283
- ?몃윭釉붿뒋???붾(?섏씠 ?꾩뿭?쇰줈 ?€?λ릺??紐⑤뱺 ?꾨줈?앺듃?먯꽌 怨듭쑀?⑸땲??
284
-
285
- ```
286
- ?먮윭 諛쒖깮 ??~/.maskweaver/knowledge.sqlite 寃€?? ?쒋??€ 諛쒓껄 ???붾(???곸슜 ???ъ떆?? ?붴??€ 誘몃컻寃???吏곸젒 ?닿껐 ???ν썑瑜??꾪빐 ?붾(??湲곕줉
287
- ```
288
-
289
- ### ?쭬 硫붾え由??쒖뒪??
290
- 怨쇨굅 ?€?? 寃곗젙, 媛€硫??④낵瑜?湲곗뼲:
291
-
292
- ```typescript
293
- import { memory } from 'maskweaver';
294
-
295
- // ?꾨줈?앺듃 吏€???몃뜳??await memory.indexFile('./docs/architecture.md', embedFn);
296
-
297
- // ?щ윭 ?꾨줈諛붿씠?붾줈 ?섎?濡좎쟻 寃€??
298
- const results = await memory.hybridSearch(
299
- '?몄쬆?€ ?대뼸寃??묐룞?섎굹??',
300
- embedding,
301
- { limit: 5, minScore: 0.7 }
302
- );
303
- ```
304
-
305
- **?꾨쿋???꾨줈諛붿씠??**
306
- - ?쬂 **Ollama** - 濡쒖뺄, ?꾨씪?대퉿 (bge-m3, nomic-embed)
307
- - ?쨼 **OpenAI** - text-embedding-3-large
308
- - ?? **VoyageAI** - 肄붾뱶 ?뱁솕 ?꾨쿋??
309
- - ?? **OpenRouter** - ?щ윭 ?꾨줈諛붿씠???묎렐
310
- - ?뱷 **Text-only** - ?꾨쿋???놁쓬, ?쒖닔 FTS5
311
-
312
- ### ?뾺截?而⑦뀓?ㅽ듃 ?쒖뒪??
313
- ?뚯씪 ?곌껐濡??κ린 ?ㅽ뻾 湲곕뒫 異붿쟻:
314
-
315
- ```bash
316
- # 湲곕뒫 ?쒖옉
317
- @context start name="oauth-login" goal="OAuth2 ?뚮줈??援ы쁽"
318
-
319
- # 湲곕뒫 而⑦뀓?ㅽ듃???뚯씪 異붽?
320
- @context add file="src/auth/oauth.ts"
321
-
322
- # ?곹깭 ?뺤씤
323
- @context status
324
-
325
- # ?꾨즺 ?쒖떆
326
- @context done
327
- ```
328
-
329
- ### ?봽 ?뚭퀬 ?쒖뒪??
330
- 媛??몄뀡 ??媛€硫??④낵 ?됯?:
331
-
332
- ```typescript
333
- {
334
- "trigger": "session_end",
335
- "masksUsed": [
336
- {
337
- "name": "linus-torvalds",
338
- "task": "硫€?곗뒪?덈뵫 肄붾뱶 由щ럭",
339
- "effectiveness": 9.5
340
- }
341
- ],
342
- "wellDone": ["移섎챸???덉씠??而⑤뵒??3媛?諛쒓껄"],
343
- "lessons": ["由??좊컻利?媛€硫댁? ?숈떆??由щ럭???곸썡"]
344
- }
345
- ```
346
-
347
- ---
348
-
349
- ## ?벀 ?⑦궎吏€ 援ъ“
350
-
351
- Maskweaver??紐⑤뱢??exports瑜?媛€吏??⑥씪 npm ?⑦궎吏€?낅땲??
352
-
353
- ```typescript
354
- // 湲곕낯 export - OpenCode ?뚮윭洹몄씤
355
- import maskweaver from 'maskweaver';
356
-
357
- // Named exports - 紐⑤뱢 ?ㅼ엫?ㅽ럹?댁뒪
358
- import { core, memory, context, retrospect, verify, weave } from 'maskweaver';
359
-
360
- // ?쒕툕寃쎈줈 imports - 吏곸젒 紐⑤뱢 ?묎렐
361
- import { hybridSearch } from 'maskweaver/memory';
362
- import { createFeature } from 'maskweaver/context';
363
- import { MaskLoader } from 'maskweaver/core';
364
- import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
365
- ```
366
-
367
- **紐⑤뱢:**
368
- - `maskweaver/core` - 媛€硫?濡쒕뵫, 寃€利?(YAML/JSON)
369
- - `maskweaver/memory` - ?꾨쿋??+ 踰≫꽣 寃€??(5媛??꾨줈諛붿씠??
370
- - `maskweaver/context` - 湲곕뒫 湲곕컲 ?묒뾽 異붿쟻
371
- - `maskweaver/verify` - 援먯감 媛€硫?肄붾뱶 由щ럭
372
- - `maskweaver/retrospect` - ?몄뀡 ?④낵 遺꾩꽍
373
- - `maskweaver/weave` - Phase 湲곕컲 媛쒕컻 ?뚰겕?뚮줈??- `maskweaver/gdc` - GDC(Graph-Driven Codebase) ?듯빀 ?좏떥由ы떚
374
- - `maskweaver/plugin` - OpenCode ?뚮윭洹몄씤 ?뷀듃由??ъ씤??
375
- ---
376
-
377
- ## ?㏊ Weave ?ъ슜 媛€?대뱶
378
-
379
- ### 0?④퀎: 珥덇린??(?꾨줈?앺듃??1??
380
-
381
- ```bash
382
- /weave-init
383
- ```
384
-
385
- ### 1?④퀎: ?뚮옖 ?앹꽦
386
-
387
- research + spec + plan????踰덉뿉 ?앹꽦:
388
-
389
- ```bash
390
- /weave-prepare docs/
391
- ```
392
-
393
- 洹??ㅼ쓬 怨꾪쉷???뱀씤?⑸땲??
394
-
395
- ```bash
396
- /weave-approve
397
- ```
398
-
399
- AI媛€ ?섑뻾?섎뒗 ?묒뾽:
400
- 1. 寃쎈줈 ??紐⑤뱺 臾몄꽌 ?쎄린
401
- 2. ?좎궗??怨쇨굅 ?꾨줈?앺듃瑜?硫붾え由ъ뿉??寃€??3. ?꾩슂??紐낇솗??吏덈Ц
402
- 4. ?뱀씤???꾪븳 **Phase 怨꾪쉷??* ?쒖떆
403
-
404
- 異쒕젰 ?덉떆:
405
- ```markdown
406
- ## ?뱥 ?ㅽ뻾 怨꾪쉷??
407
- ### 鍮꾩쟾
408
- AI ?몄궗?댄듃媛€ ?ы븿???꾨???媛먯젙 ?쇨린 ??援ъ텞
409
-
410
- ### Phase 怨꾪쉷
411
- | Phase | ?대쫫 | ?꾨즺 議곌굔 | ?덉긽 ?쒓컙 |
412
- |-------|------|----------|----------|
413
- | P1 | 媛먯젙 ?좏깮 UI | ?좎?媛€ 媛먯젙???좏깮?????덉쓬 | 2-3?쒓컙 |
414
- | P2 | ?곗씠???€??| 媛먯젙???ㅽ넗由ъ????€?λ맖 | 2-3?쒓컙 |
415
- | P3 | ?덉뒪?좊━ 酉?| ?좎?媛€ 怨쇨굅 湲곕줉??蹂????덉쓬 | 2-3?쒓컙 |
416
-
417
- ??怨꾪쉷??愿쒖갖?쇱꽭?? 蹂€寃쎌씠 ?꾩슂?섎㈃ 留먯??댁<?몄슂.
418
- ```
419
-
420
- ### 2?④퀎: 怨꾪쉷 ?뱀씤(?꾩닔)
421
-
422
- ```bash
423
- /weave-approve
424
- ```
425
-
426
- ### 3?④퀎: Phase ?ㅽ뻾 怨꾪쉷 ?앹꽦 (Craft)
427
-
428
- ?뱀씤 ???ㅽ뻾 ?쒖옉:
429
-
430
- ```bash
431
- /weave-craft
432
- ```
433
-
434
- `/weave-craft`??phase ?ㅽ뻾 而⑦뀓?ㅽ듃瑜??앹꽦?⑸땲??phase 誘몄??????ㅼ쓬 phase ?먮룞 ?좏깮). 援ы쁽 諛섏쁺 ??媛숈? 紐낅졊?쇰줈 怨꾪쉷???ㅼ떆 ?뺤씤?????덉뒿?덈떎.
435
-
436
- ### 4?④퀎: 援ы쁽 吏꾪뻾
437
-
438
- ```txt
439
- weave command=craft phaseId="P1"
440
- weave command=verify
441
- ```
442
-
443
- ?먯쑉 鍮뚮뱶 猷⑦봽:
444
-
445
- ```txt
446
- weave command=build action=run phaseIds="P1,P2"
447
- ```
448
-
449
- ### 5?④퀎: Phase ?꾨즺 泥섎━
450
-
451
- ```txt
452
- weave command=verify
453
- weave command=approve
454
- ```
455
-
456
- ### 6?④퀎: ?몃뱶?ㅽ봽 & 寃€利?
457
- 紐⑤뱺 寃€利앹씠 ?듦낵?섎㈃:
458
-
459
- ```markdown
460
- ## ??Phase P1 寃€利??꾨즺!
461
-
462
- ### ?쨼 AI ?뚯뒪??寃곌낵
463
- | ?뚯뒪??| 寃곌낵 |
464
- |--------|------|
465
- | Build | ???깃났 |
466
- | Unit Tests | ??15/15 |
467
- | Lint | ???듦낵 |
468
-
469
- ### ?렚 ?ъ슜??留덉뒪??- 耳꾪듃 踰?(?뚯뒪??
470
- - ???꾨툕?쇰え??(React 而댄룷?뚰듃)
471
-
472
- ### ?뵕 ?묒냽
473
- http://localhost:5173
474
-
475
- ### ?뫀 ?щ엺留??먮떒 媛€?ν븳 寃?- [ ] ?먮굦???섎룄?€濡쒖씤媛€??
476
- - [ ] ?ъ슜?깆씠 醫뗭?媛€??
477
- - [ ] ?먰븯??湲곕뒫??留욌굹??
478
-
479
- **[?뱀씤]** **[蹂€寃??붿껌]** **[?섏쨷??**
480
- ```
481
-
482
- ### 6?④퀎: ?몄젣?좎? ?곹깭 ?뺤씤
483
-
484
- ```bash
485
- /weave-status
486
- ```
487
-
488
- 異쒕젰:
489
- ```markdown
490
- ## ?뱤 Weave 吏꾪뻾 ?곹솴
491
-
492
- **?꾨줈?앺듃**: 媛먯젙 ?쇨린 ??**吏꾪뻾瑜?*: 40%
493
-
494
- [?댿뻽?댿뻽?댿뻽?댿뻽?묅뼇?묅뼇?묅뼇?묅뼇?묅뼇?묅뼇] 2/5
495
-
496
- ### Phases
497
- ??**P1**: 媛먯젙 ?좏깮 UI (2.5h) [kent-beck, dan-abramov]
498
- ?봽 **P2**: ?곗씠???€????**P3**: ?덉뒪?좊━ 酉???**P4**: ?듦퀎
499
- ??**P5**: ?뚮쭏 ?ㅼ젙
500
-
501
- ### 湲€濡쒕쾶 吏€???듦퀎
502
- - 珥??몃윭釉붿뒋??湲곕줉: 47媛?- ???꾨줈?앺듃?먯꽌 ?쒖슜: 3媛?- ?덈줈 湲곕줉?? 1媛?```
503
-
504
- ---
505
-
506
- ## ?렚 媛€硫?留뚮뱾湲?
507
- 媛€硫댁? 媛꾨떒??YAML ?뚯씪?낅땲??
508
-
509
- ```yaml
510
- # masks/my-expert.yaml
511
- metadata:
512
- id: my-expert
513
- version: '1.0'
514
- language: ko
515
-
516
- profile:
517
- name: ?먯씠???щ툕?덉씠?? tagline: 而댄벂?낆쓽 ?좉뎄??- 理쒖큹???꾨줈洹몃옒癒?
518
- expertise:
519
- - ?뚭퀬由ъ쬁 ?ㅺ퀎
520
- - ?섑븰???ш퀬
521
- - ?댁꽍 湲곌?
522
-
523
- thinkingStyle: |
524
- ?섑븰???꾨??④낵 ?쒖쟻 ?곸긽?μ쓣 寃고빀?⑸땲??
525
- ?ㅻⅨ ?щ엺?ㅼ씠 ?볦튂???⑦꽩??遊낅땲??
526
-
527
- behavior:
528
- systemPrompt: |
529
- ?뱀떊?€ 理쒖큹??而댄벂???꾨줈洹몃옒癒??먯씠???щ툕?덉씠?ㅼ엯?덈떎.
530
-
531
- ?뚭퀬由ъ쬁???쒕줈 遊낅땲??- ?곗븘?섍퀬, ?뺥솗?섍퀬, ?꾨쫫?듦쾶.
532
- ?섑븰??蹂€?섍낵 ?쇰━???먮쫫??愿€?먯뿉???앷컖?⑸땲??
533
-
534
- communicationStyle:
535
- tone: ?щ젮源딆?
536
- verbosity: ?곷떦?? technicalDepth: ?꾨Ц媛€
537
-
538
- usage:
539
- suitableFor:
540
- - ?뚭퀬由ъ쬁 ?ㅺ퀎 諛?理쒖쟻?? - ?섑븰??臾몄젣 ?닿껐
541
- - 肄붾뱶???⑦꽩 ?몄떇
542
- ```
543
-
544
- ---
545
-
546
- ## ?뙇 ?ㅺ뎅??
547
- 吏€??以€鍮??꾨즺:
548
- - ?눣?눡 ?곸뼱
549
- - ?눖?눟 ?쒓뎅??- ?눊?눛 以묎뎅??*(以€鍮꾩쨷)*
550
- - ?눓?눝 ?쇰낯??*(以€鍮꾩쨷)*
551
-
552
- 媛€硫댁? ?щ윭 ?몄뼱 踰꾩쟾??媛€吏????덉뒿?덈떎:
553
- ```
554
- masks/
555
- ?쒋??€ linus-torvalds.en.yaml
556
- ?쒋??€ linus-torvalds.ko.yaml
557
- ?붴??€ linus-torvalds.zh.yaml
558
- ```
559
-
560
- ---
561
-
562
- ## ?쩃 湲곗뿬?섍린
563
-
564
- ?꾩????꾩슂?⑸땲??
565
-
566
- ### 媛€硫?異붽?
567
-
568
- `masks/`??YAML ?뚯씪??留뚮뱾怨?PR???쒖텧?섏꽭??
569
- - ???ㅼ젣 ?꾨Ц??(?꾨찓??吏€??
570
- - ???낇듅???멸꺽 (?ш퀬 諛⑹떇)
571
- - ??紐낇솗???ъ슜 ?щ? (?몄젣 ?ъ슜?좎?)
572
- - ???덉떆 (?덉긽 ?숈옉)
573
-
574
- ### 踰꾧렇 由ы룷??
575
- ?ㅼ쓬 ?댁슜?쇰줈 ?댁뒋瑜??댁뼱二쇱꽭??
576
- 1. 臾댁뾿???쒕룄?덈뒗吏€
577
- 2. 臾댁뒯 ?쇱씠 ?쇱뼱?щ뒗吏€
578
- 3. 臾댁뾿???덉긽?덈뒗吏€
579
-
580
- ?먯꽭???댁슜?€ [CONTRIBUTING.md](CONTRIBUTING.md)瑜?李몄“?섏꽭??
581
-
582
- ---
583
-
584
- ## ?뱞 ?쇱씠?좎뒪
585
-
586
- MIT - [LICENSE](LICENSE) 李몄“
587
-
588
- ---
589
-
590
- <p align="center">
591
- <sub>?렚?€ ?④퍡 ?쒖옉 by <a href="https://github.com/ulgerang">ULJI SOFT</a></sub>
592
- </p>
1
+ # 🎭 Maskweaver: OpenCode 위한 전문가 페르소나 프레임워크
593
2
 
3
+ <div align="center">
594
4
 
5
+ <img src="docs/images/hero.png" width="800" alt="Maskweaver Hero Image">
6
+
7
+ > **AI 페르소나를 위한 npm** — OpenCode 어시스턴트에게 독보적인 전문가 인격을 더하세요
8
+
9
+ [![GitHub Release](https://img.shields.io/github/v/release/ulgerang/maskweaver?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/ulgerang/maskweaver/releases)
10
+ [![License](https://img.shields.io/badge/license-MIT-white?labelColor=black&style=flat-square)](LICENSE)
11
+ [![npm](https://img.shields.io/npm/v/maskweaver?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/maskweaver)
12
+
13
+ [English](README.md) | [한국어](README.ko.md)
14
+
15
+ </div>
16
+
17
+ ---
18
+
19
+ ## 🔌 OpenCode 통합
20
+
21
+ **Maskweaver는 [OpenCode](https://github.com/sst/opencode) 생태계의 핵심 구성 요소입니다.**
22
+
23
+ 본 프로젝트는 독립적인 라이브러리로도 사용 가능하지만, 기본적으로 OpenCode 에이전트들이 특정 분야의 전문 지식을 갖출 수 있도록 설계되었습니다:
24
+ - **전문가 페르소나 (Masks)**: 전설적인 개발자들의 철학을 담은 표준 YAML 프로필.
25
+ - **스마트 위임**: OpenCode에 최적화된 멀티 에이전트 워크플로우.
26
+ - **프로젝트 메모리**: 코드베이스 전체에 대한 하이브리드 의미론적 검색.
27
+ - **🆕 Weave 워크플로우**: AI 자체 검증이 포함된 Phase 기반 개발.
28
+ - **🔗 GDC 통합**: Graph-Driven Codebase 지원으로 리서치 품질 향상 및 설계 시점 검증 게이트 추가.
29
+
30
+ ---
31
+
32
+ ## 왜 Maskweaver인가요?
33
+
34
+ 레이스 컨디션 버그로 고생 중이라면, **린 토발즈**가 코드를 봐준다면 얼마나 좋을까요?
35
+
36
+ ```typescript
37
+ // 일반 AI 답변 대신...
38
+ "코드에 잠재적 레이스 컨디션이 있습니다."
39
+
40
+ // 린 토발즈 수준의 인사이트:
41
+ "이건 멍청한 코드야. 메모리 배리어도 안 썼잖아. 어셈블리 봐봐 -
42
+ 컴파일러가 로드 순서 바꿨어. smp_rmb() 쓰든지, 아예 이 멍청한
43
+ 락 없이 다시 설계해."
44
+ ```
45
+
46
+ **Maskweaver가 이걸 가능하게 합니다.** AI 어시스턴트에 전문가 페르소나(가면)를 씌워 깊은 도메인 지식과 독특한 사고방식을 부여합니다.
47
+
48
+ ---
49
+
50
+ ## 설치
51
+
52
+ ### 빠른 설치
53
+
54
+ ```bash
55
+ # npm
56
+ npm install maskweaver
57
+
58
+ # bun
59
+ bun add maskweaver
60
+ ```
61
+
62
+ ### OpenCode 플러그인 설정
63
+
64
+ OpenCode 설정에 추가하면 끝!
65
+
66
+ **전역** (`~/.config/opencode/opencode.json`):
67
+ ```json
68
+ {
69
+ "plugin": ["maskweaver"]
70
+ }
71
+ ```
72
+
73
+ **또는 프로젝트별** (프로젝트 루트의 `opencode.json`):
74
+ ```json
75
+ {
76
+ "plugin": ["maskweaver"]
77
+ }
78
+ ```
79
+
80
+ > 참고: OpenCode는 npm 패키지를 이름으로 설치합니다. `maskweaver`를 사용하세요 (`maskweaver/plugin` 아님).
81
+
82
+ OpenCode가 시작 시 자동으로 `~/.cache/opencode/node_modules/`에 플러그인을 설치합니다.
83
+
84
+ **Windows:** `%USERPROFILE%\.config\opencode\opencode.json`
85
+
86
+ ### 완료 알림 소리 (선택)
87
+
88
+ Maskweaver는 생성이 끝나서 세션이 idle 상태가 되면(`session.idle`) 알림 소리를 재생할 수 있습니다.
89
+
90
+ `.opencode/maskweaver.json`(프로젝트) 또는 `~/.config/opencode/maskweaver.json`(전역)에 설정하세요:
91
+
92
+ ```jsonc
93
+ {
94
+ "notifications": {
95
+ "completionSound": {
96
+ "enabled": true
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ 끄려면:
103
+
104
+ ```jsonc
105
+ {
106
+ "notifications": {
107
+ "completionSound": {
108
+ "enabled": false
109
+ }
110
+ }
111
+ }
112
+ ```
113
+
114
+ ### 설치된 버전 확인
115
+
116
+ Maskweaver 버전을 확인하는 여러 방법:
117
+
118
+ ```bash
119
+ # CLI (터미널)
120
+ maskweaver --version
121
+ # 또는
122
+ maskweaver -V
123
+
124
+ # npm
125
+ npm list maskweaver
126
+
127
+ # OpenCode 채팅 내에서
128
+ # maskweaver_status 도구를 사용하거나:
129
+ /weave-help
130
+ ```
131
+
132
+ ```typescript
133
+ // 프로그래밍 방식 (Node.js / TypeScript)
134
+ import { VERSION } from 'maskweaver';
135
+ console.log(VERSION); // "0.7.29"
136
+ ```
137
+
138
+ ---
139
+
140
+ ## 빠른 시작
141
+
142
+ ### 첫 사용
143
+
144
+ ```bash
145
+ # AI 어시스턴트 채팅에서:
146
+ @maskweaver 린 토발즈 가면으로 이 C 코드 리뷰해줘
147
+
148
+ # 또는 더미인간에게 위임:
149
+ @dummy-human 린 토발즈 가면으로 멀티스레딩 코드 리뷰
150
+ @dummy-flash "unsafe" 들어간 파일 전부 찾아줘
151
+ @dummy-premium 이 모놀리스를 마이크로서비스로 설계해줘
152
+ ```
153
+
154
+ ---
155
+
156
+ ## 기능
157
+
158
+ ### 🎭 전문가 페르소나 (가면)
159
+
160
+ 전설적인 개발자의 인격을 AI에 적용:
161
+
162
+ ```yaml
163
+ # masks/software-engineering/linus-torvalds.yaml
164
+ profile:
165
+ name: Linus Torvalds
166
+ expertise:
167
+ - 커널 수준 시스템 프로그래밍
168
+ - 성능 최적화
169
+ - 메모리 관리 및 동시성
170
+
171
+ thinkingStyle: |
172
+ 상향식, 실용적 접근. 이론이 아닌 코드부터.
173
+ 복잡함을 무자비하게 제거.
174
+ ```
175
+
176
+ **현재 가면:**
177
+ - 🐧 **린 토발즈** - 시스템, C, 리눅스, 성능
178
+ - 🏗️ **마틴 파울러** - 아키텍처, 리팩토링, 패턴
179
+ - 🧪 **켄트 벡** - TDD, XP, 테스팅
180
+ - 🧠 **앤드류 응** - ML/AI 시스템
181
+ - ⚛️ **댄 아브라모프** - React, 프론트엔드 아키텍처
182
+
183
+ ### 🤖 더미인간 시스템
184
+
185
+ 비용 효율적인 멀티 에이전트 워크플로우를 위한 스마트 서브에이전트:
186
+
187
+ | 에이전트 | 모델 등급 | 비용 | 최적 용도 |
188
+ |---------|----------|------|-----------|
189
+ | `@dummy-flash` | 빠름 | 💰 | 파일 검색, 요약, 간단한 작업 |
190
+ | `@dummy-human` | 균형 | 💰💰 | 코드 작성, 리뷰, 일반 작업 |
191
+ | `@dummy-premium` | 강력 | 💰💰💰 | 아키텍처, 복잡한 디버깅 |
192
+
193
+ ### 🧵 Weave 워크플로우
194
+
195
+ **Phase 기반 개발** — "AI가 검증하고, 유저가 확인한다"
196
+
197
+ Weave는 Maskweaver의 핵심 워크플로우입니다. 작업을 테스트 가능한 Phase로 나누고, 전문가 마스크를 자동 선택하며, 유저 전달 전 구조화된 검증 단계를 제공합니다.
198
+
199
+ #### 명령어
200
+
201
+ | 명령어 | 설명 |
202
+ |--------|------|
203
+ | `/weave-init` | Weave 초기화 (프로젝트당 1회) |
204
+ | `/weave-prepare [docs]` | research + spec + plan을 한 번에 생성 (큰 계획은 자동 분할) |
205
+ | `/weave-refine-plan` | `tasks/plan-notes.md` 지시문을 active plan에 반영 |
206
+ | `/weave-approve` | 구현 전 사람이 계획 승인(게이트) |
207
+ | `/weave-craft [P#]` | Phase 실행 컨텍스트/가이드 생성 |
208
+ | `/build` | 자율 빌드 루프 (`action=run/status/stop/list/resume/sync`) |
209
+ | `/weave-verify` | 빌드/테스트 검증 실행 (자동 감지) |
210
+ | `/weave-worktree ...` | git worktree 기반 병렬 작업 관리 |
211
+ | `/weave-status` | 프로젝트 진행 상황 및 통계 확인 |
212
+ | `/weave-agents` | 에이전트 파일 동기화 또는 설정 초기화 (`sync=true` / `init=true`) |
213
+ | `/weave-troubleshoot` | 글로벌 지식 검색 (`record=true`로 솔루션 저장) |
214
+ | `/weave-archive` | 검증된 변경사항 아카이브 |
215
+ | `/weave-help` | 도움말 표시 |
216
+
217
+ > Tip: OpenCode 채팅에서는 `/weave-prepare`, `/build`처럼 실제로 보이는 slash command를 사용하고, 내부적으로는 `weave command=...` 도구 호출로 매핑됩니다.
218
+
219
+ #### 워크플로우
220
+
221
+ ```
222
+ 0. INIT (1회): /weave-init
223
+
224
+ 1. PLAN: /weave-prepare docs/
225
+ - research + spec + phase plan을 한 번에 생성 (큰 계획은 자동 분할)
226
+
227
+ 2. REFINE (선택): /weave-refine-plan
228
+ - tasks/plan-notes.md 기반 계획 정제
229
+
230
+ 3. APPROVAL GATE: /weave-approve
231
+ - craft 실행 전 필수 승인
232
+
233
+ 4. CRAFT: /weave-craft
234
+ - Phase 실행 계획과 다음 액션 안내 생성
235
+ - 구현/검증 후 approve로 phase 완료 처리
236
+ - `/weave-verify`로 빌드/테스트 검증 가능
237
+
238
+ 5. HANDOFF: 유저가 UX/의도 확인 후 다음 Phase로 진행
239
+ ```
240
+
241
+ #### 다층 AI 검증 시스템
242
+
243
+ 유저에게 전달하기 전, AI가 다음 검증 레이어를 실행합니다:
244
+
245
+ | 레이어 | 유형 | 도구 |
246
+ |--------|------|------|
247
+ | 1️⃣ TypeCheck | 빌드 | `tsc --noEmit` |
248
+ | 2️⃣ Lint | 빌드 | `eslint` |
249
+ | 3️⃣ Build | 빌드 | `npm run build` |
250
+ | 4️⃣ Unit Tests | 테스트 | `jest` / `vitest` |
251
+ | 5️⃣ E2E Tests | 테스트 | **Playwright** |
252
+ | 6️⃣ Screenshot | 시각 | Playwright / 브라우저 캡처 |
253
+ | 7️⃣ API Check | API | `fetch` 헬스 체크 |
254
+ | 8️⃣ A11y | 접근성 | `axe-core` |
255
+ | 0️⃣ GDC Check | 설계 | `gdc check --machine` |
256
+
257
+ #### GDC 통합 (Graph-Driven Codebase)
258
+
259
+ Weave는 [GDC](https://github.com/ulgerang/gdc)(Graph-Driven Codebase)와 통합되어 리서치 품질을 향상시키고 설계 시점 검증 게이트를 추가합니다:
260
+
261
+ **리서치 강화:**
262
+ - `.gdc` 워크스페이스 자동 감지
263
+ - GDC `stats`, `graph`, `check` 결과를 `tasks/research.md`에 포함
264
+ - 그래프 엣지 기반 의존성 영향 범위(Blast Radius) 분석
265
+ - 기능 키워드와 매칭된 재사용 후보 노드
266
+ - 새 보고서 섹션: `GDC Node Coverage`, `Dependency Blast Radius`, `Existing Spec vs Implementation Drift`, `Candidate Reuse Nodes`
267
+
268
+ **Pre-Verify 게이트:**
269
+ GDC가 감지되면 `weave verify`와 `weave flow`가 자동으로 실행:
270
+ 1. `gdc sync --machine` - 스펙과 구현 동기화
271
+ 2. `gdc check --machine` - 스펙/구현 일치성 검증
272
+
273
+ GDC check의 블로킹 에러는 검증을 중단시킵니다(`strictVerify` 모드로 설정 가능).
274
+
275
+ **설정** (`maskweaver.config.json`):
276
+ ```json
277
+ {
278
+ "gdc": {
279
+ "enabled": "auto",
280
+ "strictVerify": false,
281
+ "autoSyncOnPrepare": true
282
+ }
283
+ }
284
+ ```
285
+
286
+ - `enabled`: `true` | `false` | `"auto"` (기본값: `.gdc` 디렉터리 자동 감지)
287
+ - `strictVerify`: `true`면 GDC check 실패 시 검증 차단; `false`면 경고 후 계속 진행
288
+ - `autoSyncOnPrepare`: `weave prepare` 시 `gdc sync` 실행
289
+
290
+ #### 마스크 자동 선택
291
+
292
+ AI가 각 작업에 가장 적합한 전문가를 자동으로 선택합니다:
293
+
294
+ | 작업 유형 | 자동 선택 마스크 |
295
+ |----------|-----------------|
296
+ | 아키텍처/설계 | 🏗️ 마틴 파울러 |
297
+ | 테스트/TDD | 🧪 켄트 벡 |
298
+ | React/프론트엔드 | ⚛️ 댄 아브라모프 |
299
+ | 성능/시스템 | 🐧 린 토발즈 |
300
+ | ML/AI | 🧠 앤드류 응 |
301
+
302
+ #### 글로벌 지식 베이스 (프로젝트 간 RAG)
303
+
304
+ 트러블슈팅 솔루션이 전역으로 저장되어 모든 프로젝트에서 공유됩니다:
305
+
306
+ ```
307
+ 에러 발생 → ~/.maskweaver/knowledge.sqlite 검색
308
+ ├── 발견 → 솔루션 적용 → 재시도
309
+ └── 미발견 → 직접 해결 → 향후를 위해 솔루션 기록
310
+ ```
311
+
312
+ ### 🧠 메모리 시스템
313
+
314
+ 과거 대화, 결정, 가면 효과를 기억:
315
+
316
+ ```typescript
317
+ import { memory } from 'maskweaver';
318
+
319
+ // 프로젝트 지식 인덱싱
320
+ await memory.indexFile('./docs/architecture.md', embedFn);
321
+
322
+ // 여러 프로바이더로 의미론적 검색:
323
+ const results = await memory.hybridSearch(
324
+ '인증은 어떻게 작동하나요?',
325
+ embedding,
326
+ { limit: 5, minScore: 0.7 }
327
+ );
328
+ ```
329
+
330
+ **임베딩 프로바이더:**
331
+ - 🦙 **Ollama** - 로컬, 프라이빗 (bge-m3, nomic-embed)
332
+ - 🤖 **OpenAI** - text-embedding-3-large
333
+ - 🚀 **VoyageAI** - 코드 특화 임베딩!
334
+ - 🔀 **OpenRouter** - 여러 프로바이더 접근
335
+ - 📝 **Text-only** - 임베딩 없음, 순수 FTS5
336
+
337
+ ### 🗂️ 컨텍스트 시스템
338
+
339
+ 파일 연결로 장기 실행 기능 추적:
340
+
341
+ ```bash
342
+ # 기능 시작
343
+ @context start name="oauth-login" goal="OAuth2 플로우 구현"
344
+
345
+ # 기능 컨텍스트에 파일 추가
346
+ @context add file="src/auth/oauth.ts"
347
+
348
+ # 상태 확인
349
+ @context status
350
+
351
+ # 완료 표시
352
+ @context done
353
+ ```
354
+
355
+ ### 🔄 회고 시스템
356
+
357
+ 각 세션 후 가면 효과 평가:
358
+
359
+ ```typescript
360
+ {
361
+ "trigger": "session_end",
362
+ "masksUsed": [
363
+ {
364
+ "name": "linus-torvalds",
365
+ "task": "멀티스레딩 코드 리뷰",
366
+ "effectiveness": 9.5
367
+ }
368
+ ],
369
+ "wellDone": ["치명적 레이스 컨디션 3개 발견"],
370
+ "lessons": ["린 토발즈 가면은 동시성 리뷰에 탁월"]
371
+ }
372
+ ```
373
+
374
+ ---
375
+
376
+ ## 📦 패키지 구조
377
+
378
+ Maskweaver는 모듈식 exports를 가진 단일 npm 패키지입니다:
379
+
380
+ ```typescript
381
+ // 기본 export - OpenCode 플러그인
382
+ import maskweaver from 'maskweaver';
383
+
384
+ // Named exports - 모듈 네임스페이스
385
+ import { core, memory, context, retrospect, verify, weave } from 'maskweaver';
386
+
387
+ // 서브경로 imports - 직접 모듈 접근
388
+ import { hybridSearch } from 'maskweaver/memory';
389
+ import { createFeature } from 'maskweaver/context';
390
+ import { MaskLoader } from 'maskweaver/core';
391
+ import { WeaveOrchestrator, GlobalKnowledge } from 'maskweaver/weave';
392
+ ```
393
+
394
+ **모듈:**
395
+ - `maskweaver/core` - 가면 로딩, 검증 (YAML/JSON)
396
+ - `maskweaver/memory` - 임베딩 + 벡터 검색 (5개 프로바이더)
397
+ - `maskweaver/context` - 기능 기반 작업 추적
398
+ - `maskweaver/verify` - 교차 가면 코드 리뷰
399
+ - `maskweaver/retrospect` - 세션 효과 분석
400
+ - `maskweaver/weave` - Phase 기반 개발 워크플로우
401
+ - `maskweaver/gdc` - GDC(Graph-Driven Codebase) 통합 유틸리티
402
+ - `maskweaver/plugin` - OpenCode 플러그인 엔트리 포인트
403
+
404
+ ---
405
+
406
+ ## 🧵 Weave 사용 가이드
407
+
408
+ ### 0단계: 초기화 (프로젝트당 1회)
409
+
410
+ ```bash
411
+ /weave-init
412
+ ```
413
+
414
+ ### 1단계: 플랜 생성
415
+
416
+ research + spec + plan을 한 번에 생성:
417
+
418
+ ```bash
419
+ /weave-prepare docs/
420
+ ```
421
+
422
+ 그 다음 계획을 승인합니다:
423
+
424
+ ```bash
425
+ /weave-approve
426
+ ```
427
+
428
+ AI가 수행하는 작업:
429
+ 1. 경로 내 모든 문서 읽기
430
+ 2. 유사한 과거 프로젝트를 메모리에서 검색
431
+ 3. 필요시 명확화 질문
432
+ 4. 승인을 위한 **Phase 계획서** 제시
433
+
434
+ 출력 예시:
435
+ ```markdown
436
+ ## 📋 실행 계획서
437
+
438
+ ### 비전
439
+ AI 인사이트가 포함된 현대적 감정 일기 앱 구축
440
+
441
+ ### Phase 계획
442
+ | Phase | 이름 | 완료 조건 | 예상 시간 |
443
+ |-------|------|----------|----------|
444
+ | P1 | 감정 선택 UI | 유저가 감정을 선택할 수 있음 | 2-3시간 |
445
+ | P2 | 데이터 저장 | 감정이 스토리지에 저장됨 | 2-3시간 |
446
+ | P3 | 히스토리 뷰 | 유저가 과거 기록을 볼 수 있음 | 2-3시간 |
447
+
448
+ 이 계획이 괜찮으세요? 변경이 필요하면 말씀해주세요.
449
+ ```
450
+
451
+ ### 2단계: 계획 승인(필수)
452
+
453
+ ```bash
454
+ /weave-approve
455
+ ```
456
+
457
+ ### 3단계: Phase 실행 계획 생성 (Craft)
458
+
459
+ 승인 후 실행 시작:
460
+
461
+ ```bash
462
+ /weave-craft
463
+ ```
464
+
465
+ `/weave-craft`는 phase 실행 컨텍스트를 생성합니다(phase 미지정 시 다음 phase 자동 선택). 구현 반영 후 같은 명령으로 계획을 다시 확인할 수 있습니다.
466
+
467
+ ### 4단계: 구현 진행
468
+
469
+ ```txt
470
+ weave command=craft phaseId="P1"
471
+ weave command=verify
472
+ ```
473
+
474
+ 자율 빌드 루프:
475
+
476
+ ```txt
477
+ weave command=build action=run phaseIds="P1,P2"
478
+ ```
479
+
480
+ ### 5단계: Phase 완료 처리
481
+
482
+ ```txt
483
+ weave command=verify
484
+ weave command=approve
485
+ ```
486
+
487
+ ### 6단계: 핸드오프 & 검증
488
+
489
+ 모든 검증이 통과되면:
490
+
491
+ ```markdown
492
+ ## ✅ Phase P1 검증 완료!
493
+
494
+ ### 🤖 AI 테스트 결과
495
+ | 테스트 | 결과 |
496
+ |--------|------|
497
+ | Build | ✅ 성공 |
498
+ | Unit Tests | ✅ 15/15 |
499
+ | Lint | ✅ 통과 |
500
+
501
+ ### 🎭 사용된 마스크
502
+ - 켄트 벡 (테스트)
503
+ - 댄 아브라모프 (React 컴포넌트)
504
+
505
+ ### 🔗 접속
506
+ http://localhost:5173
507
+
508
+ ### 👤 사람만 판단 가능한 것
509
+ - [ ] 느낌이 의도대로인가요?
510
+ - [ ] 사용성이 좋은가요?
511
+ - [ ] 원하던 기능이 맞나요?
512
+
513
+ **[승인]** **[변경 요청]** **[나중에]**
514
+ ```
515
+
516
+ ### 6단계: 언제든지 상태 확인
517
+
518
+ ```bash
519
+ /weave-status
520
+ ```
521
+
522
+ 출력:
523
+ ```markdown
524
+ ## 📊 Weave 진행 상황
525
+
526
+ **프로젝트**: 감정 일기 앱
527
+ **진행률**: 40%
528
+
529
+ [████████░░░░░░░░░░░░] 2/5
530
+
531
+ ### Phases
532
+ ✅ **P1**: 감정 선택 UI (2.5h) [kent-beck, dan-abramov]
533
+ 🔄 **P2**: 데이터 저장
534
+ ⏳ **P3**: 히스토리 뷰
535
+ ⏳ **P4**: 통계
536
+ ⏳ **P5**: 테마 설정
537
+
538
+ ### 글로벌 지식 통계
539
+ - 총 트러블슈팅 기록: 47개
540
+ - 이 프로젝트에서 활용: 3개
541
+ - 새로 기록됨: 1개
542
+ ```
543
+
544
+ ---
545
+
546
+ ## 🎭 가면 만들기
547
+
548
+ 가면은 간단한 YAML 파일입니다:
549
+
550
+ ```yaml
551
+ # masks/my-expert.yaml
552
+ metadata:
553
+ id: my-expert
554
+ version: '1.0'
555
+ language: ko
556
+
557
+ profile:
558
+ name: 에이다 러브레이스
559
+ tagline: 컴퓨팅의 선구자 - 최초의 프로그래머
560
+
561
+ expertise:
562
+ - 알고리즘 설계
563
+ - 수학적 사고
564
+ - 해석 기관
565
+
566
+ thinkingStyle: |
567
+ 수학적 엄밀함과 시적 상상력을 결합합니다.
568
+ 다른 사람들이 놓치는 패턴을 봅니다.
569
+
570
+ behavior:
571
+ systemPrompt: |
572
+ 당신은 최초의 컴퓨터 프로그래머 에이다 러브레이스입니다.
573
+
574
+ 알고리즘을 시로 봅니다 - 우아하고, 정확하고, 아름답게.
575
+ 수학적 변환과 논리적 흐름의 관점에서 생각합니다.
576
+
577
+ communicationStyle:
578
+ tone: 사려깊은
579
+ verbosity: 적당한
580
+ technicalDepth: 전문가
581
+
582
+ usage:
583
+ suitableFor:
584
+ - 알고리즘 설계 및 최적화
585
+ - 수학적 문제 해결
586
+ - 코드의 패턴 인식
587
+ ```
588
+
589
+ ---
590
+
591
+ ## 🌍 다국어
592
+
593
+ 지원 준비 완료:
594
+ - 🇺🇸 영어
595
+ - 🇰🇷 한국어
596
+ - 🇨🇳 중국어 *(준비중)*
597
+ - 🇯🇵 일본어 *(준비중)*
598
+
599
+ 가면은 여러 언어 버전을 가질 수 있습니다:
600
+ ```
601
+ masks/
602
+ ├── linus-torvalds.en.yaml
603
+ ├── linus-torvalds.ko.yaml
604
+ └── linus-torvalds.zh.yaml
605
+ ```
606
+
607
+ ---
608
+
609
+ ## 🤝 기여하기
610
+
611
+ 도움이 필요합니다!
612
+
613
+ ### 가면 추가
614
+
615
+ `masks/`에 YAML 파일을 만들고 PR을 제출하세요:
616
+ - ✅ 실제 전문성 (도메인 지식)
617
+ - ✅ 독특한 인격 (사고 방식)
618
+ - ✅ 명확한 사용 사례 (언제 사용할지)
619
+ - ✅ 예시 (예상 동작)
620
+
621
+ ### 버그 리포트
622
+
623
+ 다음 내용으로 이슈를 열어주세요:
624
+ 1. 무엇을 시도했는지
625
+ 2. 무슨 일이 일어났는지
626
+ 3. 무엇을 예상했는지
627
+
628
+ 자세한 내용은 [CONTRIBUTING.md](CONTRIBUTING.md)를 참조하세요.
629
+
630
+ ---
631
+
632
+ ## 📄 라이선스
633
+
634
+ MIT - [LICENSE](LICENSE) 참조
635
+
636
+ ---
637
+
638
+ <p align="center">
639
+ <sub>🎭와 함께 제작 by <a href="https://github.com/ulgerang">ULJI SOFT</a></sub>
640
+ </p>