@wooojin/forgen 0.1.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 (268) hide show
  1. package/.claude-plugin/plugin.json +20 -0
  2. package/CHANGELOG.md +353 -0
  3. package/CONTRIBUTING.md +98 -0
  4. package/LICENSE +21 -0
  5. package/README.ja.md +469 -0
  6. package/README.ko.md +469 -0
  7. package/README.md +483 -0
  8. package/README.zh.md +469 -0
  9. package/agents/analyst.md +98 -0
  10. package/agents/architect.md +62 -0
  11. package/agents/code-reviewer.md +120 -0
  12. package/agents/code-simplifier.md +197 -0
  13. package/agents/critic.md +70 -0
  14. package/agents/debugger.md +117 -0
  15. package/agents/designer.md +131 -0
  16. package/agents/executor.md +54 -0
  17. package/agents/explore.md +145 -0
  18. package/agents/git-master.md +212 -0
  19. package/agents/performance-reviewer.md +172 -0
  20. package/agents/planner.md +29 -0
  21. package/agents/qa-tester.md +158 -0
  22. package/agents/refactoring-expert.md +168 -0
  23. package/agents/scientist.md +144 -0
  24. package/agents/security-reviewer.md +137 -0
  25. package/agents/test-engineer.md +153 -0
  26. package/agents/verifier.md +133 -0
  27. package/agents/writer.md +184 -0
  28. package/commands/api-design.md +268 -0
  29. package/commands/architecture-decision.md +314 -0
  30. package/commands/ci-cd.md +270 -0
  31. package/commands/code-review.md +233 -0
  32. package/commands/compound.md +117 -0
  33. package/commands/database.md +263 -0
  34. package/commands/debug-detective.md +99 -0
  35. package/commands/docker.md +274 -0
  36. package/commands/documentation.md +276 -0
  37. package/commands/ecomode.md +51 -0
  38. package/commands/frontend.md +271 -0
  39. package/commands/git-master.md +90 -0
  40. package/commands/incident-response.md +292 -0
  41. package/commands/migrate.md +101 -0
  42. package/commands/performance.md +288 -0
  43. package/commands/refactor.md +105 -0
  44. package/commands/security-review.md +288 -0
  45. package/commands/tdd.md +183 -0
  46. package/commands/testing-strategy.md +265 -0
  47. package/dist/cli.d.ts +2 -0
  48. package/dist/cli.js +295 -0
  49. package/dist/core/auto-compound-runner.d.ts +12 -0
  50. package/dist/core/auto-compound-runner.js +460 -0
  51. package/dist/core/config-hooks.d.ts +10 -0
  52. package/dist/core/config-hooks.js +112 -0
  53. package/dist/core/config-injector.d.ts +50 -0
  54. package/dist/core/config-injector.js +455 -0
  55. package/dist/core/doctor.d.ts +1 -0
  56. package/dist/core/doctor.js +163 -0
  57. package/dist/core/errors.d.ts +81 -0
  58. package/dist/core/errors.js +133 -0
  59. package/dist/core/global-config.d.ts +43 -0
  60. package/dist/core/global-config.js +25 -0
  61. package/dist/core/harness.d.ts +24 -0
  62. package/dist/core/harness.js +621 -0
  63. package/dist/core/init.d.ts +7 -0
  64. package/dist/core/init.js +37 -0
  65. package/dist/core/inspect-cli.d.ts +7 -0
  66. package/dist/core/inspect-cli.js +47 -0
  67. package/dist/core/legacy-detector.d.ts +33 -0
  68. package/dist/core/legacy-detector.js +66 -0
  69. package/dist/core/logger.d.ts +34 -0
  70. package/dist/core/logger.js +121 -0
  71. package/dist/core/mcp-config.d.ts +44 -0
  72. package/dist/core/mcp-config.js +177 -0
  73. package/dist/core/notepad.d.ts +31 -0
  74. package/dist/core/notepad.js +88 -0
  75. package/dist/core/paths.d.ts +85 -0
  76. package/dist/core/paths.js +101 -0
  77. package/dist/core/plugin-detector.d.ts +44 -0
  78. package/dist/core/plugin-detector.js +226 -0
  79. package/dist/core/runtime-detector.d.ts +8 -0
  80. package/dist/core/runtime-detector.js +49 -0
  81. package/dist/core/scope-resolver.d.ts +8 -0
  82. package/dist/core/scope-resolver.js +45 -0
  83. package/dist/core/session-logger.d.ts +6 -0
  84. package/dist/core/session-logger.js +111 -0
  85. package/dist/core/session-store.d.ts +28 -0
  86. package/dist/core/session-store.js +218 -0
  87. package/dist/core/settings-lock.d.ts +18 -0
  88. package/dist/core/settings-lock.js +125 -0
  89. package/dist/core/spawn.d.ts +3 -0
  90. package/dist/core/spawn.js +135 -0
  91. package/dist/core/types.d.ts +108 -0
  92. package/dist/core/types.js +1 -0
  93. package/dist/core/uninstall.d.ts +4 -0
  94. package/dist/core/uninstall.js +307 -0
  95. package/dist/core/v1-bootstrap.d.ts +26 -0
  96. package/dist/core/v1-bootstrap.js +155 -0
  97. package/dist/engine/compound-cli.d.ts +24 -0
  98. package/dist/engine/compound-cli.js +250 -0
  99. package/dist/engine/compound-extractor.d.ts +68 -0
  100. package/dist/engine/compound-extractor.js +860 -0
  101. package/dist/engine/compound-lifecycle.d.ts +32 -0
  102. package/dist/engine/compound-lifecycle.js +305 -0
  103. package/dist/engine/compound-loop.d.ts +32 -0
  104. package/dist/engine/compound-loop.js +511 -0
  105. package/dist/engine/match-eval-log.d.ts +139 -0
  106. package/dist/engine/match-eval-log.js +270 -0
  107. package/dist/engine/phrase-blocklist.d.ts +119 -0
  108. package/dist/engine/phrase-blocklist.js +208 -0
  109. package/dist/engine/skill-promoter.d.ts +20 -0
  110. package/dist/engine/skill-promoter.js +115 -0
  111. package/dist/engine/solution-format.d.ts +160 -0
  112. package/dist/engine/solution-format.js +432 -0
  113. package/dist/engine/solution-index.d.ts +13 -0
  114. package/dist/engine/solution-index.js +252 -0
  115. package/dist/engine/solution-matcher.d.ts +364 -0
  116. package/dist/engine/solution-matcher.js +656 -0
  117. package/dist/engine/solution-writer.d.ts +76 -0
  118. package/dist/engine/solution-writer.js +157 -0
  119. package/dist/engine/term-matcher.d.ts +81 -0
  120. package/dist/engine/term-matcher.js +268 -0
  121. package/dist/engine/term-normalizer.d.ts +116 -0
  122. package/dist/engine/term-normalizer.js +171 -0
  123. package/dist/fgx.d.ts +6 -0
  124. package/dist/fgx.js +42 -0
  125. package/dist/forge/cli.d.ts +11 -0
  126. package/dist/forge/cli.js +100 -0
  127. package/dist/forge/evidence-processor.d.ts +21 -0
  128. package/dist/forge/evidence-processor.js +87 -0
  129. package/dist/forge/mismatch-detector.d.ts +44 -0
  130. package/dist/forge/mismatch-detector.js +83 -0
  131. package/dist/forge/onboarding-cli.d.ts +6 -0
  132. package/dist/forge/onboarding-cli.js +89 -0
  133. package/dist/forge/onboarding.d.ts +25 -0
  134. package/dist/forge/onboarding.js +122 -0
  135. package/dist/hooks/compound-reflection.d.ts +45 -0
  136. package/dist/hooks/compound-reflection.js +82 -0
  137. package/dist/hooks/context-guard.d.ts +24 -0
  138. package/dist/hooks/context-guard.js +156 -0
  139. package/dist/hooks/dangerous-patterns.json +18 -0
  140. package/dist/hooks/db-guard.d.ts +17 -0
  141. package/dist/hooks/db-guard.js +105 -0
  142. package/dist/hooks/hook-config.d.ts +29 -0
  143. package/dist/hooks/hook-config.js +92 -0
  144. package/dist/hooks/hook-registry.d.ts +43 -0
  145. package/dist/hooks/hook-registry.js +31 -0
  146. package/dist/hooks/hooks-generator.d.ts +49 -0
  147. package/dist/hooks/hooks-generator.js +99 -0
  148. package/dist/hooks/intent-classifier.d.ts +12 -0
  149. package/dist/hooks/intent-classifier.js +62 -0
  150. package/dist/hooks/keyword-detector.d.ts +25 -0
  151. package/dist/hooks/keyword-detector.js +389 -0
  152. package/dist/hooks/notepad-injector.d.ts +18 -0
  153. package/dist/hooks/notepad-injector.js +51 -0
  154. package/dist/hooks/permission-handler.d.ts +14 -0
  155. package/dist/hooks/permission-handler.js +114 -0
  156. package/dist/hooks/post-tool-failure.d.ts +11 -0
  157. package/dist/hooks/post-tool-failure.js +118 -0
  158. package/dist/hooks/post-tool-handlers.d.ts +17 -0
  159. package/dist/hooks/post-tool-handlers.js +115 -0
  160. package/dist/hooks/post-tool-use.d.ts +29 -0
  161. package/dist/hooks/post-tool-use.js +151 -0
  162. package/dist/hooks/pre-compact.d.ts +10 -0
  163. package/dist/hooks/pre-compact.js +165 -0
  164. package/dist/hooks/pre-tool-use.d.ts +31 -0
  165. package/dist/hooks/pre-tool-use.js +325 -0
  166. package/dist/hooks/prompt-injection-filter.d.ts +56 -0
  167. package/dist/hooks/prompt-injection-filter.js +287 -0
  168. package/dist/hooks/rate-limiter.d.ts +21 -0
  169. package/dist/hooks/rate-limiter.js +86 -0
  170. package/dist/hooks/secret-filter.d.ts +14 -0
  171. package/dist/hooks/secret-filter.js +65 -0
  172. package/dist/hooks/session-recovery.d.ts +27 -0
  173. package/dist/hooks/session-recovery.js +406 -0
  174. package/dist/hooks/shared/atomic-write.d.ts +41 -0
  175. package/dist/hooks/shared/atomic-write.js +148 -0
  176. package/dist/hooks/shared/context-budget.d.ts +37 -0
  177. package/dist/hooks/shared/context-budget.js +45 -0
  178. package/dist/hooks/shared/file-lock.d.ts +56 -0
  179. package/dist/hooks/shared/file-lock.js +253 -0
  180. package/dist/hooks/shared/hook-response.d.ts +33 -0
  181. package/dist/hooks/shared/hook-response.js +62 -0
  182. package/dist/hooks/shared/injection-caps.d.ts +39 -0
  183. package/dist/hooks/shared/injection-caps.js +52 -0
  184. package/dist/hooks/shared/plugin-signal.d.ts +23 -0
  185. package/dist/hooks/shared/plugin-signal.js +104 -0
  186. package/dist/hooks/shared/read-stdin.d.ts +8 -0
  187. package/dist/hooks/shared/read-stdin.js +63 -0
  188. package/dist/hooks/shared/sanitize-id.d.ts +7 -0
  189. package/dist/hooks/shared/sanitize-id.js +9 -0
  190. package/dist/hooks/shared/sanitize.d.ts +7 -0
  191. package/dist/hooks/shared/sanitize.js +22 -0
  192. package/dist/hooks/skill-injector.d.ts +38 -0
  193. package/dist/hooks/skill-injector.js +285 -0
  194. package/dist/hooks/slop-detector.d.ts +18 -0
  195. package/dist/hooks/slop-detector.js +93 -0
  196. package/dist/hooks/solution-injector.d.ts +58 -0
  197. package/dist/hooks/solution-injector.js +436 -0
  198. package/dist/hooks/subagent-tracker.d.ts +10 -0
  199. package/dist/hooks/subagent-tracker.js +90 -0
  200. package/dist/i18n/index.d.ts +43 -0
  201. package/dist/i18n/index.js +224 -0
  202. package/dist/lib.d.ts +14 -0
  203. package/dist/lib.js +14 -0
  204. package/dist/mcp/server.d.ts +8 -0
  205. package/dist/mcp/server.js +40 -0
  206. package/dist/mcp/solution-reader.d.ts +90 -0
  207. package/dist/mcp/solution-reader.js +273 -0
  208. package/dist/mcp/tools.d.ts +16 -0
  209. package/dist/mcp/tools.js +302 -0
  210. package/dist/preset/facet-catalog.d.ts +17 -0
  211. package/dist/preset/facet-catalog.js +46 -0
  212. package/dist/preset/preset-manager.d.ts +31 -0
  213. package/dist/preset/preset-manager.js +111 -0
  214. package/dist/renderer/inspect-renderer.d.ts +11 -0
  215. package/dist/renderer/inspect-renderer.js +123 -0
  216. package/dist/renderer/rule-renderer.d.ts +18 -0
  217. package/dist/renderer/rule-renderer.js +159 -0
  218. package/dist/store/evidence-store.d.ts +23 -0
  219. package/dist/store/evidence-store.js +58 -0
  220. package/dist/store/profile-store.d.ts +12 -0
  221. package/dist/store/profile-store.js +53 -0
  222. package/dist/store/recommendation-store.d.ts +22 -0
  223. package/dist/store/recommendation-store.js +64 -0
  224. package/dist/store/rule-store.d.ts +22 -0
  225. package/dist/store/rule-store.js +62 -0
  226. package/dist/store/session-state-store.d.ts +11 -0
  227. package/dist/store/session-state-store.js +44 -0
  228. package/dist/store/types.d.ts +159 -0
  229. package/dist/store/types.js +7 -0
  230. package/hooks/hook-registry.json +21 -0
  231. package/hooks/hooks.json +185 -0
  232. package/package.json +89 -0
  233. package/plugin.json +20 -0
  234. package/scripts/postinstall.js +826 -0
  235. package/skills/api-design/SKILL.md +262 -0
  236. package/skills/architecture-decision/SKILL.md +309 -0
  237. package/skills/ci-cd/SKILL.md +264 -0
  238. package/skills/code-review/SKILL.md +228 -0
  239. package/skills/compound/SKILL.md +101 -0
  240. package/skills/database/SKILL.md +257 -0
  241. package/skills/debug-detective/SKILL.md +95 -0
  242. package/skills/docker/SKILL.md +268 -0
  243. package/skills/documentation/SKILL.md +270 -0
  244. package/skills/ecomode/SKILL.md +46 -0
  245. package/skills/frontend/SKILL.md +265 -0
  246. package/skills/git-master/SKILL.md +86 -0
  247. package/skills/incident-response/SKILL.md +286 -0
  248. package/skills/migrate/SKILL.md +96 -0
  249. package/skills/performance/SKILL.md +282 -0
  250. package/skills/refactor/SKILL.md +100 -0
  251. package/skills/security-review/SKILL.md +282 -0
  252. package/skills/tdd/SKILL.md +178 -0
  253. package/skills/testing-strategy/SKILL.md +260 -0
  254. package/starter-pack/solutions/starter-api-error-responses.md +37 -0
  255. package/starter-pack/solutions/starter-async-patterns.md +40 -0
  256. package/starter-pack/solutions/starter-caching-strategy.md +40 -0
  257. package/starter-pack/solutions/starter-code-review-checklist.md +39 -0
  258. package/starter-pack/solutions/starter-debugging-systematic.md +40 -0
  259. package/starter-pack/solutions/starter-dependency-injection.md +40 -0
  260. package/starter-pack/solutions/starter-error-handling-patterns.md +38 -0
  261. package/starter-pack/solutions/starter-git-atomic-commits.md +36 -0
  262. package/starter-pack/solutions/starter-input-validation.md +40 -0
  263. package/starter-pack/solutions/starter-n-plus-one-queries.md +37 -0
  264. package/starter-pack/solutions/starter-refactor-safely.md +38 -0
  265. package/starter-pack/solutions/starter-secret-management.md +37 -0
  266. package/starter-pack/solutions/starter-separation-of-concerns.md +36 -0
  267. package/starter-pack/solutions/starter-tdd-red-green-refactor.md +40 -0
  268. package/starter-pack/solutions/starter-typescript-strict-types.md +39 -0
package/README.zh.md ADDED
@@ -0,0 +1,469 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/wooo-jin/forgen/main/assets/banner.png" alt="Forgen" width="100%"/>
3
+ </p>
4
+
5
+ <p align="center">
6
+ <strong>Claude Code 个性化引擎。</strong><br/>
7
+ <strong>用得越多,Claude 越懂你。</strong>
8
+ </p>
9
+
10
+ <p align="center">
11
+ <a href="https://www.npmjs.com/package//forgen"><img src="https://img.shields.io/npm/v//forgen.svg" alt="npm version"/></a>
12
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"/></a>
13
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg" alt="Node.js >= 20"/></a>
14
+ </p>
15
+
16
+ <p align="center">
17
+ <a href="#使用-forgen-会发生什么">工作流程</a> &middot;
18
+ <a href="#快速开始">快速开始</a> &middot;
19
+ <a href="#工作原理">工作原理</a> &middot;
20
+ <a href="#4轴个性化">4轴</a> &middot;
21
+ <a href="#命令">命令</a> &middot;
22
+ <a href="#架构">架构</a> &middot;
23
+ <a href="#安全">安全</a>
24
+ </p>
25
+
26
+ <p align="center">
27
+ <a href="README.md">English</a> &middot;
28
+ <a href="README.ko.md">한국어</a> &middot;
29
+ <a href="README.ja.md">日本語</a> &middot;
30
+ 简体中文
31
+ </p>
32
+
33
+ ---
34
+
35
+ ## 两个开发者。同一个 Claude。完全不同的行为。
36
+
37
+ 开发者 A 做事谨慎。他希望 Claude 运行所有测试、解释原因,在触碰当前文件以外的内容前先征求确认。
38
+
39
+ 开发者 B 追求速度。他希望 Claude 自行假设、直接修复相关文件、用两行汇报结果。
40
+
41
+ 没有 forgen,两个人得到的是同一个通用 Claude。有了 forgen,每个人都能得到按*自己方式*工作的 Claude。
42
+
43
+ ```
44
+ 开发者 A 的 Claude: 开发者 B 的 Claude:
45
+ "我发现了3个相关问题。 "已修复登录 + 2个关联文件。
46
+ 在继续之前,要不要一起修复 测试通过。风险1项: 会话超时
47
+ session handler? 以下是 未覆盖。完毕。"
48
+ 每个问题的分析..."
49
+ ```
50
+
51
+ forgen 实现了这一切。它对你的工作风格进行画像、从你的纠正中学习、渲染个性化规则让 Claude 在每个会话中遵循。
52
+
53
+ ---
54
+
55
+ ## 使用 forgen 会发生什么
56
+
57
+ ### 首次运行(仅一次,约1分钟)
58
+
59
+ ```bash
60
+ npm install -g /forgen
61
+ forgen
62
+ ```
63
+
64
+ forgen 检测到这是首次运行,启动4题引导问卷。每个问题都是一个具体场景:
65
+
66
+ ```
67
+ Q1: Ambiguous implementation request
68
+
69
+ You receive "improve the login feature." Requirements are
70
+ unclear and adjacent modules may be affected.
71
+
72
+ A) Clarify requirements/scope first. Ask if scope expansion is possible.
73
+ B) Proceed if within same flow. Check when major scope expansion appears.
74
+ C) Make reasonable assumptions and fix adjacent files directly.
75
+
76
+ Choice (A/B/C):
77
+ ```
78
+
79
+ 4个问题。测量4个轴。为每个轴创建包含 pack 和精细 facet 的档案。个性化规则文件被渲染并放置在 Claude 读取的位置。
80
+
81
+ ### 每次会话(日常使用)
82
+
83
+ ```bash
84
+ forgen # 用它代替 `claude`
85
+ ```
86
+
87
+ 内部发生的事:
88
+
89
+ 1. 引擎从 `~/.forgen/me/forge-profile.json` 加载你的档案
90
+ 2. 预设管理器合成会话: 全局安全规则 + pack 基础规则 + 个人覆盖层 + 会话覆盖层
91
+ 3. 规则渲染器将一切转换为自然语言,写入 `~/.claude/rules/v1-rules.md`
92
+ 4. Claude Code 启动,将这些规则作为行为指令读取
93
+ 5. 安全钩子激活: 拦截危险命令、过滤密钥、检测 prompt 注入
94
+
95
+ ### 当你纠正 Claude 时
96
+
97
+ 你说: "不要重构我没要求你动的文件。"
98
+
99
+ Claude 调用 `correction-record` MCP 工具。纠正作为结构化证据存储,包含轴分类(`judgment_philosophy`)、种类(`avoid-this`)和置信度分数。为当前会话创建一条临时规则以立即生效。
100
+
101
+ ### 会话之间(自动)
102
+
103
+ 会话结束时,auto-compound 提取:
104
+ - 解决方案(带上下文的可复用模式)
105
+ - 行为观察(你的工作方式)
106
+ - 会话学习摘要
107
+
108
+ 基于累积的证据对 facet 进行微调。如果你的纠正持续指向与当前 pack 不同的方向,3个会话后触发不匹配检测,推荐更换 pack。
109
+
110
+ ### 下一个会话
111
+
112
+ 包含纠正的更新规则被渲染。Compound 知识可通过 MCP 搜索。Claude 变得越来越像*你的* Claude。
113
+
114
+ ---
115
+
116
+ ## 快速开始
117
+
118
+ ```bash
119
+ # 1. 安装
120
+ npm install -g /forgen
121
+
122
+ # 2. 首次运行 — 4题引导问卷(英语/韩语选择)
123
+ forgen
124
+
125
+ # 3. 此后每天
126
+ forgen
127
+ ```
128
+
129
+ ### 前提条件
130
+
131
+ - **Node.js** >= 20(SQLite 会话搜索推荐 >= 22)
132
+ - **Claude Code** 已安装并认证(`npm i -g @anthropic-ai/claude-code`)
133
+
134
+ ---
135
+
136
+ ## 工作原理
137
+
138
+ ### 学习循环
139
+
140
+ ```
141
+ +-------------------+
142
+ | 引导问卷 |
143
+ | (4个问题) |
144
+ +--------+----------+
145
+ |
146
+ v
147
+ +-------------------------------+
148
+ | 档案创建 |
149
+ | 4轴 x pack + facet + trust |
150
+ +-------------------------------+
151
+ |
152
+ +-----------------------+------------------------+
153
+ | |
154
+ v |
155
+ +------------------+ |
156
+ | 规则渲染 | ~/.claude/rules/v1-rules.md |
157
+ | 转换为 Claude 格式| |
158
+ +--------+---------+ |
159
+ | |
160
+ v |
161
+ +------------------+ |
162
+ | 会话运行 | Claude 遵循个性化规则 |
163
+ | 你纠正时 | ---> correction-record MCP |
164
+ | Claude 学习 | 证据存储 |
165
+ +--------+---------+ 临时规则创建 |
166
+ | |
167
+ v |
168
+ +------------------+ |
169
+ | 会话结束 | auto-compound 提取: |
170
+ | | 解决方案 + 观察 + 摘要 |
171
+ +--------+---------+ |
172
+ | |
173
+ v |
174
+ +------------------+ |
175
+ | Facet 调整 | 档案微调 |
176
+ | 不匹配检查 | 最近3个会话 rolling 分析 |
177
+ +--------+---------+ |
178
+ | |
179
+ +------------------------------------------------+
180
+ (下一个会话: 更新后的规则)
181
+ ```
182
+
183
+ ### Compound 知识
184
+
185
+ 知识跨会话累积,变为可搜索的:
186
+
187
+ | 类型 | 来源 | Claude 如何使用 |
188
+ |------|------|----------------|
189
+ | **解决方案** | 从会话中提取 | 通过 MCP 的 `compound-search` |
190
+ | **技能** | 从已验证的解决方案晋升 | 作为斜杠命令自动加载 |
191
+ | **行为模式** | 3次以上观察时自动检测 | 应用到 `forge-behavioral.md` |
192
+ | **证据** | 纠正 + 观察 | 驱动 facet 调整 |
193
+
194
+ ---
195
+
196
+ ## 4轴个性化
197
+
198
+ 每个轴有3个 pack。每个 pack 包含精细的 facet(0-1 数值),随着你的纠正逐步微调。
199
+
200
+ ### 质量/安全
201
+
202
+ | Pack | Claude 的行为 |
203
+ |------|--------------|
204
+ | **稳健型** | 完成报告前运行所有测试。类型检查。边界用例验证。所有检查通过前不说"完成"。 |
205
+ | **平衡型** | 运行关键检查,总结剩余风险。在彻底和速度之间取得平衡。 |
206
+ | **速度型** | 快速冒烟测试。立即报告结果和风险。优先交付。 |
207
+
208
+ ### 自主性
209
+
210
+ | Pack | Claude 的行为 |
211
+ |------|--------------|
212
+ | **确认优先型** | 修改相邻文件前先确认。澄清模糊需求。范围扩展需获得批准。 |
213
+ | **平衡型** | 在同一流程内继续推进。出现重大范围扩展时进行确认。 |
214
+ | **自主执行型** | 做出合理假设。直接修复相关文件。事后报告所做的内容。 |
215
+
216
+ ### 判断哲学
217
+
218
+ | Pack | Claude 的行为 |
219
+ |------|--------------|
220
+ | **最小变更型** | 保持现有结构。不重构正常运行的代码。将修改范围保持在最小。 |
221
+ | **平衡型** | 专注于当前任务。看到明确的改进机会时提出建议。 |
222
+ | **结构化型** | 发现重复模式或技术债务时主动建议结构改进。倾向抽象化和可复用设计。保持架构一致性。 |
223
+
224
+ ### 沟通风格
225
+
226
+ | Pack | Claude 的行为 |
227
+ |------|--------------|
228
+ | **简洁型** | 只给代码和结果。不主动展开说明。只在被问到时补充。 |
229
+ | **平衡型** | 总结关键变更和原因。必要时引导追问。 |
230
+ | **详尽型** | 解释改了什么、为什么、影响范围以及考虑过的替代方案。提供教育性上下文。用分节结构组织报告。 |
231
+
232
+ ---
233
+
234
+ ## 渲染后的规则实际长什么样
235
+
236
+ forgen 合成会话时,会渲染一个 Claude 读取的 `v1-rules.md` 文件。以下是两个真实示例,展示不同档案如何产生完全不同的 Claude 行为。
237
+
238
+ ### 示例1: 稳健型 + 确认优先型 + 结构化型 + 详尽型
239
+
240
+ ```markdown
241
+ [Conservative quality / Confirm-first autonomy / Structural judgment / Detailed communication]
242
+
243
+ ## Must Not
244
+ - Never commit or expose .env, credentials, or API keys.
245
+ - Never execute destructive commands (rm -rf, DROP, force-push) without user confirmation.
246
+
247
+ ## Working Defaults
248
+ - Trust: Dangerous bypass disabled. Always confirm before destructive commands or sensitive path access.
249
+ - Proactively suggest structural improvements when you spot repeated patterns or tech debt.
250
+ - Prefer abstraction and reusable design, but avoid over-abstraction.
251
+ - Maintain architectural consistency across changes.
252
+
253
+ ## When To Ask
254
+ - Clarify requirements before starting ambiguous tasks.
255
+ - Ask before modifying files outside the explicitly requested scope.
256
+
257
+ ## How To Validate
258
+ - Run all related tests, type checks, and key verifications before reporting completion.
259
+ - Do not say "done" until all checks pass.
260
+
261
+ ## How To Report
262
+ - Explain what changed, why, impact scope, and alternatives considered.
263
+ - Provide educational context — why this approach is better, compare with alternatives.
264
+ - Structure reports: changes, reasoning, impact, next steps.
265
+
266
+ ## Evidence Collection
267
+ - When the user corrects your behavior ("don't do that", "always do X", "stop doing Y"), call the correction-record MCP tool to record it as evidence.
268
+ - kind: fix-now (immediate fix), prefer-from-now (going forward), avoid-this (never do this)
269
+ - axis_hint: quality_safety, autonomy, judgment_philosophy, communication_style
270
+ - Do not record general feedback — only explicit behavioral corrections.
271
+ ```
272
+
273
+ ### 示例2: 速度型 + 自主执行型 + 最小变更型 + 简洁型
274
+
275
+ ```markdown
276
+ [Speed-first quality / Autonomous autonomy / Minimal-change judgment / Concise communication]
277
+
278
+ ## Must Not
279
+ - Never commit or expose .env, credentials, or API keys.
280
+ - Never execute destructive commands (rm -rf, DROP, force-push) without user confirmation.
281
+
282
+ ## Working Defaults
283
+ - Trust: Minimal runtime friction. Free execution except explicit bans and destructive commands.
284
+ - Preserve existing code structure. Do not refactor working code unnecessarily.
285
+ - Keep modification scope minimal. Change adjacent files only when strictly necessary.
286
+ - Secure evidence (tests, error logs) before making changes.
287
+
288
+ ## How To Validate
289
+ - Quick smoke test. Report results and risks immediately.
290
+
291
+ ## How To Report
292
+ - Keep responses short and to the point. Focus on code and results.
293
+ - Only elaborate when asked. Do not proactively write long explanations.
294
+
295
+ ## Evidence Collection
296
+ - When the user corrects your behavior ("don't do that", "always do X", "stop doing Y"), call the correction-record MCP tool to record it as evidence.
297
+ - kind: fix-now (immediate fix), prefer-from-now (going forward), avoid-this (never do this)
298
+ - axis_hint: quality_safety, autonomy, judgment_philosophy, communication_style
299
+ - Do not record general feedback — only explicit behavioral corrections.
300
+ ```
301
+
302
+ 同一个 Claude。同一个代码库。完全不同的工作风格。1分钟的引导问卷带来的差异。
303
+
304
+ ---
305
+
306
+ ## 命令
307
+
308
+ ### 核心
309
+
310
+ ```bash
311
+ forgen # 启动个性化的 Claude Code
312
+ forgen "修复登录 bug" # 带提示启动
313
+ forgen --resume # 恢复上一个会话
314
+ ```
315
+
316
+ ### 个性化
317
+
318
+ ```bash
319
+ forgen onboarding # 运行4题引导问卷
320
+ forgen forge --profile # 查看当前档案
321
+ forgen forge --reset soft # 重置档案 (soft / learning / full)
322
+ forgen forge --export # 导出档案
323
+ ```
324
+
325
+ ### 状态查看
326
+
327
+ ```bash
328
+ forgen inspect profile # 4轴档案 + pack + facet
329
+ forgen inspect rules # 活跃/抑制的规则
330
+ forgen inspect evidence # 纠正历史
331
+ forgen inspect session # 当前会话状态
332
+ forgen me # 个人仪表盘(inspect profile 的快捷方式)
333
+ ```
334
+
335
+ ### 知识管理
336
+
337
+ ```bash
338
+ forgen compound # 预览累积的知识
339
+ forgen compound --save # 保存自动分析的模式
340
+ forgen skill promote <名称> # 将已验证的解决方案晋升为技能
341
+ forgen skill list # 列出已晋升的技能
342
+ ```
343
+
344
+ ### 系统
345
+
346
+ ```bash
347
+ forgen init # 初始化项目
348
+ forgen doctor # 系统诊断
349
+ forgen config hooks # 查看钩子状态
350
+ forgen config hooks --regenerate # 重新生成钩子
351
+ forgen mcp # MCP 服务器管理
352
+ forgen uninstall # 干净地卸载 forgen
353
+ ```
354
+
355
+ ### MCP 工具(会话中 Claude 可使用)
356
+
357
+ | 工具 | 用途 |
358
+ |------|------|
359
+ | `compound-search` | 按查询搜索累积的知识 |
360
+ | `compound-read` | 读取解决方案全文 |
361
+ | `compound-list` | 带过滤器的解决方案列表 |
362
+ | `compound-stats` | 概览统计 |
363
+ | `session-search` | 搜索过去的会话对话(SQLite FTS5,Node.js 22+) |
364
+ | `correction-record` | 将用户纠正记录为结构化证据 |
365
+
366
+ ---
367
+
368
+ ## 架构
369
+
370
+ ```
371
+ ~/.forgen/ 个性化主目录
372
+ |-- me/
373
+ | |-- forge-profile.json 4轴档案 (pack + facet + trust)
374
+ | |-- rules/ 规则存储 (每条规则一个 JSON 文件)
375
+ | |-- behavior/ 证据存储 (纠正 + 观察)
376
+ | |-- recommendations/ Pack 推荐 (引导问卷 + 不匹配)
377
+ | +-- solutions/ Compound 知识
378
+ |-- state/
379
+ | |-- sessions/ 会话状态快照
380
+ | +-- raw-logs/ 原始会话日志 (7天 TTL 自动清理)
381
+ +-- config.json 全局配置 (locale, trust, packs)
382
+
383
+ ~/.claude/
384
+ |-- settings.json 钩子 + 环境变量 (引擎注入)
385
+ |-- rules/
386
+ | |-- forge-behavioral.md 学习到的行为模式 (自动生成)
387
+ | +-- v1-rules.md 渲染的个性化规则 (每会话)
388
+ |-- commands/forgen/ 斜杠命令 (晋升的技能)
389
+ +-- .claude.json MCP 服务器注册
390
+
391
+ ~/.compound/ 旧版 compound 主目录 (钩子/MCP 仍在引用)
392
+ |-- me/
393
+ | |-- solutions/ 累积的 compound 知识
394
+ | |-- behavior/ 行为模式
395
+ | +-- skills/ 晋升的技能
396
+ +-- sessions.db SQLite 会话历史 (Node.js 22+)
397
+ ```
398
+
399
+ ### 数据流
400
+
401
+ ```
402
+ forge-profile.json 个性化的唯一真相来源
403
+ |
404
+ v
405
+ preset-manager.ts 合成会话状态:
406
+ 全局安全规则 hard constraint (始终活跃)
407
+ + 基础 pack 规则 来自档案 pack
408
+ + 个人覆盖层 来自纠正生成的规则
409
+ + 会话覆盖层 当前会话的临时规则
410
+ + 运行时能力检测 trust 策略调整
411
+ |
412
+ v
413
+ rule-renderer.ts 将 Rule[] 转换为自然语言:
414
+ 过滤 (仅 active) 管道: filter -> dedupe -> group ->
415
+ dedupe (render_key) order -> template -> budget (4000字符)
416
+ 按类别分组
417
+ 顺序: Must Not -> Working Defaults -> When To Ask -> How To Validate -> How To Report
418
+ |
419
+ v
420
+ ~/.claude/rules/v1-rules.md Claude 实际读取的文件
421
+ ```
422
+
423
+ ---
424
+
425
+ ## 安全
426
+
427
+ 安全钩子自动注册到 `settings.json`,在 Claude 每次工具调用时执行。
428
+
429
+ | 钩子 | 触发条件 | 功能 |
430
+ |------|---------|------|
431
+ | **pre-tool-use** | 所有工具执行前 | 拦截 `rm -rf`、`curl\|sh`、`--force` push、危险模式 |
432
+ | **db-guard** | SQL 操作 | 拦截 `DROP TABLE`、无 `WHERE` 的 `DELETE`、`TRUNCATE` |
433
+ | **secret-filter** | 文件写入和输出 | API 密钥、令牌、凭据即将暴露时发出警告 |
434
+ | **slop-detector** | 代码生成后 | 检测 TODO 残留、`eslint-disable`、`as any`、`@ts-ignore` |
435
+ | **prompt-injection-filter** | 所有输入 | 基于模式 + 启发式的 prompt 注入拦截 |
436
+ | **context-guard** | 会话中 | 接近上下文窗口限制时发出警告 |
437
+ | **rate-limiter** | MCP 工具调用 | 防止过度的 MCP 工具调用 |
438
+
439
+ 安全规则是**硬约束** -- 不能被 pack 选择或纠正覆盖。渲染规则中的 "Must Not" 部分无论档案如何始终存在。
440
+
441
+ ---
442
+
443
+ ## 核心设计决策
444
+
445
+ - **4轴档案,而非偏好开关。** 每个轴有 pack(大类)和 facet(0-1 数值的精细调整)。Pack 提供稳定的行为; facet 允许无需完全重新分类即可微调。
446
+
447
+ - **基于证据的学习,而非正则匹配。** 纠正是结构化数据(`CorrectionRequest`: kind, axis_hint, message)。Claude 进行分类; 算法负责应用。不对用户输入做模式匹配。
448
+
449
+ - **Pack + 覆盖层模型。** 基础 pack 提供稳定的默认值。纠正生成的个人覆盖层叠加在上面。会话覆盖层用于临时规则。冲突解决: 会话 > 个人 > pack(全局安全始终是硬约束)。
450
+
451
+ - **以自然语言渲染的规则。** `v1-rules.md` 文件包含的是英语(或韩语)句子,而非配置项。Claude 读到的指令是"不要不必要地重构正常运行的代码" -- 与人类导师给出指导的方式相同。
452
+
453
+ - **不匹配检测。** 最近3个会话的滚动分析检查你的纠正是否持续偏离当前 pack 的方向。检测到时,forgen 不会悄悄漂移,而是提出 pack 重新推荐。
454
+
455
+ - **运行时 trust 计算。** 你期望的 trust 策略与 Claude Code 的实际运行时权限模式进行协调。如果 Claude Code 以 `--dangerously-skip-permissions` 运行,forgen 会相应调整有效 trust 级别。
456
+
457
+ - **国际化。** 完全支持英语和韩语。在引导问卷中选择语言后,应用于整个流程(引导问题、渲染规则、CLI 输出)。
458
+
459
+ ---
460
+
461
+ ## 共存
462
+
463
+ forgen 在安装时检测其他 Claude Code 插件(oh-my-claudecode、superpowers、claude-mem),并禁用重叠的钩子。核心安全钩子和 compound 钩子始终保持活跃。
464
+
465
+ ---
466
+
467
+ ## 许可证
468
+
469
+ MIT
@@ -0,0 +1,98 @@
1
+ <!-- forgen-managed -->
2
+ ---
3
+ name: analyst
4
+ description: Requirements analyst — uncovers hidden constraints via Socratic inquiry
5
+ model: opus
6
+ tier: HIGH
7
+ lane: build
8
+ disallowedTools:
9
+ - Write
10
+ - Edit
11
+ ---
12
+
13
+ <Agent_Prompt>
14
+
15
+ # Analyst — 요구사항 분석 전문가
16
+
17
+ "명확하지 않은 요구사항을 구현하면 올바른 답의 틀린 버전이 만들어진다."
18
+
19
+ 당신은 요구사항을 분석하고 숨겨진 제약을 발굴하는 전문가입니다.
20
+ **읽기 전용** — 분석과 질의에 집중하며 코드를 수정하지 않습니다.
21
+
22
+ ## 역할
23
+ - 요구사항의 모호성, 상충, 누락 식별
24
+ - Socratic 질의로 숨겨진 가정 노출
25
+ - 엣지 케이스 및 경계 조건 탐색
26
+ - 비기능적 요구사항(성능, 보안, 접근성) 도출
27
+ - 이해관계자 간 상충 요구사항 조정
28
+
29
+ ## 조사 프로토콜
30
+
31
+ ### 1단계: 표면 요구사항 수집
32
+ - 명시된 요구사항을 있는 그대로 기록
33
+ - 암묵적으로 전제된 사항을 목록화
34
+ - "~해야 한다", "~하면 좋겠다", "~할 수도 있다"로 MoSCoW 분류
35
+
36
+ ### 2단계: Socratic 질의
37
+ **한 번에 하나의 질문만.** 우선순위:
38
+ 1. 가장 불명확한 핵심 가정 검증
39
+ 2. 실패 시나리오 처리 방식
40
+ 3. 성능/규모 기대치
41
+ 4. 보안/권한 요구사항
42
+ 5. 기존 시스템과의 통합 제약
43
+
44
+ ### 3단계: 엣지 케이스 탐색
45
+ ```
46
+ 정상 경로: {happy path 설명}
47
+ 경계 조건: {min / max / empty / null / zero}
48
+ 실패 경로: {error / timeout / network failure}
49
+ 보안 경계: {unauthorized / injection / overflow}
50
+ 동시성: {race condition / lock / duplicate}
51
+ ```
52
+
53
+ ### 4단계: 코드베이스 교차 검증
54
+ - Grep으로 유사한 기능 패턴 확인
55
+ - 기존 제약사항(DB 스키마, API 계약) 파악
56
+ - 변경이 미치는 downstream 영향 분석
57
+
58
+ ## 출력 형식
59
+ ```
60
+ ## 요구사항 분석 결과
61
+
62
+ ### 명확한 요구사항
63
+ - {requirement} — 출처: {source}
64
+
65
+ ### 모호한 요구사항 (검증 필요)
66
+ - {ambiguity}
67
+ - 해석 A: {interpretation A}
68
+ - 해석 B: {interpretation B}
69
+ - 권장: {preferred interpretation} — 이유: {rationale}
70
+
71
+ ### 숨겨진 가정
72
+ - {assumption} — 검증 질문: "{question}"
73
+
74
+ ### 엣지 케이스 목록
75
+ | 케이스 | 입력 | 기대 동작 | 현재 처리 |
76
+ |--------------|------------------|--------------------|----------|
77
+ | {case} | {input} | {expected} | {yes/no} |
78
+
79
+ ### 비기능 요구사항
80
+ - 성능: {latency / throughput 기대치}
81
+ - 보안: {auth / data protection 제약}
82
+ - 접근성: {WCAG 수준 등}
83
+
84
+ ### 다음 검증 질문 (최우선 1개)
85
+ "{question}" — 이유: {why this matters most}
86
+ ```
87
+
88
+ ## Socratic 질의 규칙
89
+ - 코드로 확인 가능한 것은 질문하지 않고 직접 Grep/Read로 확인
90
+ - "왜(Why)"를 최소 3번 반복하여 근본 목적 파악
91
+ - 답변을 받으면 그 답변이 새로운 모호성을 낳는지 즉시 확인
92
+
93
+ ## 철학 연동
94
+ - **understand-before-act**: 분석 없이 구현 지시를 내리지 않음. 요구사항이 명확해질 때까지 질의 지속
95
+ - **knowledge-comes-to-you**: 기존 코드베이스에서 유사 패턴을 먼저 탐색하여 재발명 방지
96
+ - **capitalize-on-failure**: 분석 과정에서 발견한 모호성을 재사용 가능한 체크리스트로 기록 제안
97
+
98
+ </Agent_Prompt>
@@ -0,0 +1,62 @@
1
+ <!-- forgen-managed -->
2
+ ---
3
+ name: architect
4
+ description: Strategic architecture advisor (READ-ONLY)
5
+ model: opus
6
+ tier: HIGH
7
+ lane: build
8
+ disallowedTools:
9
+ - Write
10
+ - Edit
11
+ memory: project
12
+ mcpServers:
13
+ - forgen-compound
14
+ ---
15
+
16
+ <Agent_Prompt>
17
+
18
+ # Architect — 전략적 아키텍처 어드바이저
19
+
20
+ 당신은 코드를 분석하고 아키텍처 가이드를 제공하는 전문가입니다.
21
+ **읽기 전용** — 절대 코드를 수정하지 않습니다.
22
+
23
+ ## 역할
24
+ - 코드베이스 분석 및 아키텍처 평가
25
+ - 버그 근본 원인 진단
26
+ - 설계 결정에 대한 트레이드오프 분석
27
+ - Ralplan에서 Steelman 반박 역할
28
+
29
+ ## 조사 프로토콜
30
+ 1. 병렬 탐색: Glob + Grep + Read 동시 실행
31
+ 2. git blame/log로 변경 이력 추적
32
+ 3. 가설 형성 → 코드로 검증
33
+ 4. **모든 주장에 file:line 근거 필수**
34
+
35
+ ## Ralplan 역할
36
+ - Steelman 반박: 제안된 계획의 최강 반대 의견
37
+ - 트레이드오프 텐션: 피할 수 없는 긴장 관계 식별
38
+ - 원칙 위반 플래그: deliberate 모드에서 추가 검증
39
+
40
+ ## 출력 형식
41
+ ```
42
+ ## 분석 결과
43
+
44
+ ### 현재 상태
45
+ - {observation} (src/file.ts:42)
46
+
47
+ ### 문제점
48
+ - {issue} — 근거: {evidence}
49
+
50
+ ### 권장 사항
51
+ 1. {recommendation} — 이유: {rationale}
52
+ - 트레이드오프: {tradeoff}
53
+
54
+ ### 리스크
55
+ - {risk} — 완화: {mitigation}
56
+ ```
57
+
58
+ ## 철학 연동
59
+ - understand-before-act: 충분한 탐색 없이 결론 내리지 않음
60
+ - decompose-to-control: 복잡한 문제를 구조적으로 분해
61
+
62
+ </Agent_Prompt>