@tienne/gestalt 0.84.2 → 0.85.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 (204) hide show
  1. package/CLAUDE.md +4 -4
  2. package/README.ko.md +72 -22
  3. package/README.md +73 -23
  4. package/dist/benchmarks/runners/passthrough-benchmark-runner.d.ts.map +1 -1
  5. package/dist/benchmarks/runners/passthrough-benchmark-runner.js +8 -7
  6. package/dist/benchmarks/runners/passthrough-benchmark-runner.js.map +1 -1
  7. package/dist/bin/gestalt.js +2 -2
  8. package/dist/package.json +1 -1
  9. package/dist/plugin/skills/dispatch/SKILL.md +14 -2
  10. package/dist/plugin/skills/execute/SKILL.md +219 -52
  11. package/dist/plugin/skills/interview/SKILL.md +15 -2
  12. package/dist/plugin/skills/solve/SKILL.md +20 -5
  13. package/dist/plugin/skills/spec/SKILL.md +2 -0
  14. package/dist/src/cli/commands/interview.d.ts.map +1 -1
  15. package/dist/src/cli/commands/interview.js +16 -4
  16. package/dist/src/cli/commands/interview.js.map +1 -1
  17. package/dist/src/cli/commands/memory-merge.d.ts +2 -0
  18. package/dist/src/cli/commands/memory-merge.d.ts.map +1 -0
  19. package/dist/src/cli/commands/memory-merge.js +13 -0
  20. package/dist/src/cli/commands/memory-merge.js.map +1 -0
  21. package/dist/src/cli/index.d.ts.map +1 -1
  22. package/dist/src/cli/index.js +7 -0
  23. package/dist/src/cli/index.js.map +1 -1
  24. package/dist/src/core/constants.d.ts +4 -0
  25. package/dist/src/core/constants.d.ts.map +1 -1
  26. package/dist/src/core/constants.js +8 -0
  27. package/dist/src/core/constants.js.map +1 -1
  28. package/dist/src/core/errors.d.ts +3 -0
  29. package/dist/src/core/errors.d.ts.map +1 -1
  30. package/dist/src/core/errors.js +7 -0
  31. package/dist/src/core/errors.js.map +1 -1
  32. package/dist/src/core/file-lock.d.ts +37 -0
  33. package/dist/src/core/file-lock.d.ts.map +1 -0
  34. package/dist/src/core/file-lock.js +143 -0
  35. package/dist/src/core/file-lock.js.map +1 -0
  36. package/dist/src/core/json-file.d.ts +40 -0
  37. package/dist/src/core/json-file.d.ts.map +1 -0
  38. package/dist/src/core/json-file.js +82 -0
  39. package/dist/src/core/json-file.js.map +1 -0
  40. package/dist/src/core/types.d.ts +86 -9
  41. package/dist/src/core/types.d.ts.map +1 -1
  42. package/dist/src/events/store.d.ts +6 -0
  43. package/dist/src/events/store.d.ts.map +1 -1
  44. package/dist/src/events/store.js +12 -0
  45. package/dist/src/events/store.js.map +1 -1
  46. package/dist/src/events/types.d.ts +7 -0
  47. package/dist/src/events/types.d.ts.map +1 -1
  48. package/dist/src/events/types.js +7 -0
  49. package/dist/src/events/types.js.map +1 -1
  50. package/dist/src/execute/artifact-verifier.d.ts +12 -0
  51. package/dist/src/execute/artifact-verifier.d.ts.map +1 -0
  52. package/dist/src/execute/artifact-verifier.js +211 -0
  53. package/dist/src/execute/artifact-verifier.js.map +1 -0
  54. package/dist/src/execute/drift-detector.d.ts +2 -0
  55. package/dist/src/execute/drift-detector.d.ts.map +1 -1
  56. package/dist/src/execute/drift-detector.js +9 -13
  57. package/dist/src/execute/drift-detector.js.map +1 -1
  58. package/dist/src/execute/orchestrators/evaluation.d.ts +5 -1
  59. package/dist/src/execute/orchestrators/evaluation.d.ts.map +1 -1
  60. package/dist/src/execute/orchestrators/evaluation.js +48 -41
  61. package/dist/src/execute/orchestrators/evaluation.js.map +1 -1
  62. package/dist/src/execute/orchestrators/evolution.d.ts +17 -3
  63. package/dist/src/execute/orchestrators/evolution.d.ts.map +1 -1
  64. package/dist/src/execute/orchestrators/evolution.js +102 -53
  65. package/dist/src/execute/orchestrators/evolution.js.map +1 -1
  66. package/dist/src/execute/orchestrators/execution.d.ts +17 -2
  67. package/dist/src/execute/orchestrators/execution.d.ts.map +1 -1
  68. package/dist/src/execute/orchestrators/execution.js +99 -3
  69. package/dist/src/execute/orchestrators/execution.js.map +1 -1
  70. package/dist/src/execute/orchestrators/planning.d.ts +18 -4
  71. package/dist/src/execute/orchestrators/planning.d.ts.map +1 -1
  72. package/dist/src/execute/orchestrators/planning.js +62 -21
  73. package/dist/src/execute/orchestrators/planning.js.map +1 -1
  74. package/dist/src/execute/orchestrators/types.d.ts +12 -1
  75. package/dist/src/execute/orchestrators/types.d.ts.map +1 -1
  76. package/dist/src/execute/passthrough-engine.d.ts +12 -5
  77. package/dist/src/execute/passthrough-engine.d.ts.map +1 -1
  78. package/dist/src/execute/passthrough-engine.js +10 -4
  79. package/dist/src/execute/passthrough-engine.js.map +1 -1
  80. package/dist/src/execute/repository.d.ts +11 -1
  81. package/dist/src/execute/repository.d.ts.map +1 -1
  82. package/dist/src/execute/repository.js +138 -19
  83. package/dist/src/execute/repository.js.map +1 -1
  84. package/dist/src/execute/session.d.ts +26 -4
  85. package/dist/src/execute/session.d.ts.map +1 -1
  86. package/dist/src/execute/session.js +165 -48
  87. package/dist/src/execute/session.js.map +1 -1
  88. package/dist/src/execute/structural-commands.d.ts +23 -0
  89. package/dist/src/execute/structural-commands.d.ts.map +1 -0
  90. package/dist/src/execute/structural-commands.js +139 -0
  91. package/dist/src/execute/structural-commands.js.map +1 -0
  92. package/dist/src/interview/engine.d.ts +1 -1
  93. package/dist/src/interview/engine.d.ts.map +1 -1
  94. package/dist/src/interview/engine.js +3 -3
  95. package/dist/src/interview/engine.js.map +1 -1
  96. package/dist/src/interview/passthrough-engine.d.ts +1 -1
  97. package/dist/src/interview/passthrough-engine.d.ts.map +1 -1
  98. package/dist/src/interview/passthrough-engine.js +20 -3
  99. package/dist/src/interview/passthrough-engine.js.map +1 -1
  100. package/dist/src/interview/repository.d.ts +8 -0
  101. package/dist/src/interview/repository.d.ts.map +1 -1
  102. package/dist/src/interview/repository.js +16 -1
  103. package/dist/src/interview/repository.js.map +1 -1
  104. package/dist/src/interview/session.d.ts +15 -2
  105. package/dist/src/interview/session.d.ts.map +1 -1
  106. package/dist/src/interview/session.js +67 -23
  107. package/dist/src/interview/session.js.map +1 -1
  108. package/dist/src/knowledge-base/embedding.d.ts +6 -1
  109. package/dist/src/knowledge-base/embedding.d.ts.map +1 -1
  110. package/dist/src/knowledge-base/embedding.js +19 -6
  111. package/dist/src/knowledge-base/embedding.js.map +1 -1
  112. package/dist/src/local-pr/registry.d.ts +1 -21
  113. package/dist/src/local-pr/registry.d.ts.map +1 -1
  114. package/dist/src/local-pr/registry.js +7 -113
  115. package/dist/src/local-pr/registry.js.map +1 -1
  116. package/dist/src/mcp/input-guard.d.ts +17 -0
  117. package/dist/src/mcp/input-guard.d.ts.map +1 -1
  118. package/dist/src/mcp/input-guard.js +1 -1
  119. package/dist/src/mcp/input-guard.js.map +1 -1
  120. package/dist/src/mcp/schemas.d.ts +62 -7
  121. package/dist/src/mcp/schemas.d.ts.map +1 -1
  122. package/dist/src/mcp/schemas.js +28 -1
  123. package/dist/src/mcp/schemas.js.map +1 -1
  124. package/dist/src/mcp/server.d.ts.map +1 -1
  125. package/dist/src/mcp/server.js +26 -40
  126. package/dist/src/mcp/server.js.map +1 -1
  127. package/dist/src/mcp/tools/execute/evaluate.d.ts.map +1 -1
  128. package/dist/src/mcp/tools/execute/evaluate.js +15 -9
  129. package/dist/src/mcp/tools/execute/evaluate.js.map +1 -1
  130. package/dist/src/mcp/tools/execute/evolve.d.ts +1 -0
  131. package/dist/src/mcp/tools/execute/evolve.d.ts.map +1 -1
  132. package/dist/src/mcp/tools/execute/evolve.js +102 -37
  133. package/dist/src/mcp/tools/execute/evolve.js.map +1 -1
  134. package/dist/src/mcp/tools/execute/execution.d.ts.map +1 -1
  135. package/dist/src/mcp/tools/execute/execution.js +66 -7
  136. package/dist/src/mcp/tools/execute/execution.js.map +1 -1
  137. package/dist/src/mcp/tools/execute/planning.d.ts.map +1 -1
  138. package/dist/src/mcp/tools/execute/planning.js +34 -2
  139. package/dist/src/mcp/tools/execute/planning.js.map +1 -1
  140. package/dist/src/mcp/tools/execute/roles.d.ts.map +1 -1
  141. package/dist/src/mcp/tools/execute/roles.js +13 -5
  142. package/dist/src/mcp/tools/execute/roles.js.map +1 -1
  143. package/dist/src/mcp/tools/execute/utility.d.ts.map +1 -1
  144. package/dist/src/mcp/tools/execute/utility.js +26 -0
  145. package/dist/src/mcp/tools/execute/utility.js.map +1 -1
  146. package/dist/src/mcp/tools/execute/utils.d.ts +1 -0
  147. package/dist/src/mcp/tools/execute/utils.d.ts.map +1 -1
  148. package/dist/src/mcp/tools/execute/utils.js +15 -0
  149. package/dist/src/mcp/tools/execute/utils.js.map +1 -1
  150. package/dist/src/mcp/tools/execute-passthrough.d.ts.map +1 -1
  151. package/dist/src/mcp/tools/execute-passthrough.js +21 -1
  152. package/dist/src/mcp/tools/execute-passthrough.js.map +1 -1
  153. package/dist/src/mcp/tools/interview-passthrough.d.ts +2 -1
  154. package/dist/src/mcp/tools/interview-passthrough.d.ts.map +1 -1
  155. package/dist/src/mcp/tools/interview-passthrough.js +4 -3
  156. package/dist/src/mcp/tools/interview-passthrough.js.map +1 -1
  157. package/dist/src/mcp/tools/interview.d.ts.map +1 -1
  158. package/dist/src/mcp/tools/interview.js +2 -1
  159. package/dist/src/mcp/tools/interview.js.map +1 -1
  160. package/dist/src/mcp/tools/review-passthrough.js +15 -19
  161. package/dist/src/mcp/tools/review-passthrough.js.map +1 -1
  162. package/dist/src/mcp/tools/spec-passthrough.d.ts.map +1 -1
  163. package/dist/src/mcp/tools/spec-passthrough.js +16 -8
  164. package/dist/src/mcp/tools/spec-passthrough.js.map +1 -1
  165. package/dist/src/mcp/tools/status.d.ts.map +1 -1
  166. package/dist/src/mcp/tools/status.js +4 -0
  167. package/dist/src/mcp/tools/status.js.map +1 -1
  168. package/dist/src/memory/memory-context-injector.d.ts +22 -8
  169. package/dist/src/memory/memory-context-injector.d.ts.map +1 -1
  170. package/dist/src/memory/memory-context-injector.js +85 -13
  171. package/dist/src/memory/memory-context-injector.js.map +1 -1
  172. package/dist/src/memory/memory-merge.d.ts +19 -0
  173. package/dist/src/memory/memory-merge.d.ts.map +1 -0
  174. package/dist/src/memory/memory-merge.js +120 -0
  175. package/dist/src/memory/memory-merge.js.map +1 -0
  176. package/dist/src/memory/project-memory-store.d.ts +15 -11
  177. package/dist/src/memory/project-memory-store.d.ts.map +1 -1
  178. package/dist/src/memory/project-memory-store.js +97 -120
  179. package/dist/src/memory/project-memory-store.js.map +1 -1
  180. package/dist/src/memory/semantic-search.d.ts +4 -1
  181. package/dist/src/memory/semantic-search.d.ts.map +1 -1
  182. package/dist/src/memory/semantic-search.js +66 -19
  183. package/dist/src/memory/semantic-search.js.map +1 -1
  184. package/dist/src/resilience/lateral.d.ts +8 -1
  185. package/dist/src/resilience/lateral.d.ts.map +1 -1
  186. package/dist/src/resilience/lateral.js +52 -4
  187. package/dist/src/resilience/lateral.js.map +1 -1
  188. package/package.json +1 -1
  189. package/plugin/.codex-plugin/plugin.json +1 -1
  190. package/plugin/.mcp.json +1 -1
  191. package/plugin/mcp.json +1 -1
  192. package/plugin/skills/dispatch/SKILL.md +14 -2
  193. package/plugin/skills/execute/SKILL.md +219 -52
  194. package/plugin/skills/interview/SKILL.md +15 -2
  195. package/plugin/skills/solve/SKILL.md +20 -5
  196. package/plugin/skills/spec/SKILL.md +2 -0
  197. package/dist/src/interview/mini-interview-engine.d.ts +0 -33
  198. package/dist/src/interview/mini-interview-engine.d.ts.map +0 -1
  199. package/dist/src/interview/mini-interview-engine.js +0 -102
  200. package/dist/src/interview/mini-interview-engine.js.map +0 -1
  201. package/dist/src/memory/user-profile-store.d.ts +0 -13
  202. package/dist/src/memory/user-profile-store.d.ts.map +0 -1
  203. package/dist/src/memory/user-profile-store.js +0 -85
  204. package/dist/src/memory/user-profile-store.js.map +0 -1
package/CLAUDE.md CHANGED
@@ -45,7 +45,7 @@ pnpm tsx bin/gestalt.ts explain-eval --a plugin/role-agents/explainer/AGENT.md
45
45
  ## MCP Tools
46
46
  - `ges_interview`: action=[start|respond|score|complete]
47
47
  - `ges_generate_spec`: sessionId?, text?, force?, spec?
48
- - `ges_execute`: action=[start|plan_step|plan_complete|execute_start|execute_task|status|resume|audit|spawn|evaluate|evolve_fix|evolve|evolve_patch|evolve_re_execute|evolve_lateral|evolve_lateral_result|role_match|role_consensus|review_start|review_submit|review_consensus|review_fix|review_publish]
48
+ - `ges_execute`: action=[start|plan_step|plan_complete|execute_start|execute_task|status|resume|audit|spawn|evaluate|evolve_fix|evolve|evolve_patch|evolve_re_execute|evolve_lateral|evolve_lateral_result|gate_resolve|role_match|role_consensus|review_start|review_submit|review_consensus|review_fix|review_publish]
49
49
  - `ges_create_agent`: action=[start|submit]
50
50
  - `ges_agent`: action=[list|get], name?
51
51
  - `ges_status`: sessionId?, sessionType?, cwd?
@@ -79,7 +79,7 @@ src/graph-viz/ — 코드 그래프 D3 시각화 (ges_graph_visualize 백엔
79
79
  src/local-pr/ — 로컬 PR 도메인 (이벤트 소싱, git 연산, gestalt pr·ges_pr 백엔드)
80
80
  src/local-pr-web/ — 로컬 PR 읽기 전용 웹 UI (gestalt pr serve 백엔드)
81
81
  src/knowledge-base/— KB 생성·시맨틱 검색·동기화 (ges_generate_kb/ges_search/ges_sync 백엔드)
82
- src/memory/ — Memory 피드백 루프 (ProjectMemoryStore, UserProfileStore)
82
+ src/memory/ — Memory 피드백 루프 (ProjectMemoryStore, 과거 스펙 시맨틱 검색, memory.json merge driver)
83
83
  src/llm/ — 멀티 프로바이더 LLM 어댑터 (frugal/standard/frontier 티어 라우팅)
84
84
  src/review/ — Code Review 파이프라인 (agent-matcher, context-collector, report-generator)
85
85
  src/harness-review/— 하네스 PR 참조 후보 수집, 연관 PR 탐색, 세 상태 판정, approve 게이트 (gestalt harness-refs, gestalt review-loop approve-gate 백엔드)
@@ -114,7 +114,7 @@ plugin/.mcp.json Grok MCP (plugin/mcp.json과 동일)
114
114
  ```
115
115
 
116
116
  - Orca는 `plugin.json`을 안 읽는다. 설치 경로 뒤에 `skills`를 하드코딩해 붙이고 그 아래만 훑는다. 루트 `skills` 심링크를 지우면 Orca 채팅의 스킬 피커에서 gestalt 스킬이 하나도 안 뜬다.
117
- - Claude는 `.claude-plugin/plugin.json`의 `skills` 필드와 루트 `skills/`를 둘 다 훑는다. 둘 다 있으면 같은 스킬을 두 번 로드한다 (20개가 40개가 되고 상시 토큰이 3k 늘어난다). 그래서 필드는 비워두고 심링크 한 곳만 남긴다.
117
+ - Claude는 `.claude-plugin/plugin.json`의 `skills` 필드와 루트 `skills/`를 둘 다 훑는다. 둘 다 있으면 같은 스킬을 두 번 로드한다 (스킬 목록에 같은 이름이 두 번씩 뜨고 상시 토큰이 3k 늘어난다). 그래서 필드는 비워두고 심링크 한 곳만 남긴다.
118
118
  - 그 심링크는 `plugin/` 밖이라 Codex와 Grok이 복사하는 범위에 안 들어간다. 둘은 `plugin/skills/` 실물을 그대로 읽으므로 심링크와 무관하다.
119
119
  - Codex는 마켓플레이스 매니페스트를 `.agents/plugins/marketplace.json`에서만 찾는다. `.codex-plugin/marketplace.json`은 인식하지 않는다.
120
120
  - Grok은 `.grok-plugin/marketplace.json`만 읽는다. 마켓플레이스를 고칠 일이 있으면 여기를 고친다. source는 반드시 `./plugin`이다. Claude 매니페스트(`source: "./"`)를 바꾸지 말 것.
@@ -138,7 +138,7 @@ plugin/.mcp.json Grok(배포) — plugin/mcp.json과 동일
138
138
 
139
139
  - `npx`는 버전을 박아도 기동할 때마다 레지스트리를 조회한다. 캐시가 비면 20초, 레지스트리에 못 닿으면 70초를 매달린다. Claude Code의 기동 제한은 30초라 둘 다 `Connection closed`로 끊긴다.
140
140
  - `startup_timeout_sec`와 `tool_timeout_sec`는 Codex 키다. Claude Code는 안 읽고 `MCP_TIMEOUT` 환경변수만 본다. Claude 매니페스트에 넣어봐야 무시된다.
141
- - `scripts/mcp-serve.sh`가 그 셋을 처리한다. nvm, fnm, Volta, Homebrew에서 Node >= 20을 찾는다 (GUI 세션은 PATH에 버전 매니저가 없다). 전역 `gestalt`가 있으면 그걸 쓰고 없으면 `npx --offline`으로 캐시에서 해석한다.
141
+ - `scripts/mcp-serve.sh`가 그 셋을 처리한다. nvm, fnm, Volta, Homebrew에서 Node >= 22를 찾는다 (GUI 세션은 PATH에 버전 매니저가 없다). 전역 `gestalt`가 있으면 그걸 쓰고 없으면 `npx --offline`으로 캐시에서 해석한다.
142
142
  - 그 스크립트는 npx로 서버를 띄우지 않고 bin 경로만 받아와 직접 exec한다. npx가 cwd의 로컬 패키지를 먼저 보기 때문에, node_modules 없는 gestalt 체크아웃 안에서는 `gestalt: command not found`로 죽는다. 그래서 해석은 `cd /`에서 한다.
143
143
  - 전역 `gestalt`가 깔려 있으면 핀보다 그게 이긴다. 누가 `npm i -g`를 했다는 건 이 체크아웃이 번들한 것보다 구체적인 선택이라서다. 대신 어느 쪽을 썼는지 stderr에 적어 버전이 어긋났을 때 로그에서 보이게 한다.
144
144
  - 매니페스트의 `sh -c`는 `${CLAUDE_PLUGIN_ROOT}`를 먼저 본다. 거기서 스크립트를 찾으면 `GESTALT_LAUNCHER`는 아예 안 본다. 플러그인으로 설치된 상태에서는 그 변수가 안 걸린다는 뜻이다. 플러그인 없이 이 레포만 연 경우에만 차례가 온다. 그때도 **절대 경로만** 받는다 — 상대 경로를 허용하면 남의 레포를 열었을 때 거기 있는 동명 실행 파일이 서버 대신 도는 자리가 된다.
package/README.ko.md CHANGED
@@ -23,7 +23,7 @@
23
23
 
24
24
  Gestalt는 Claude Code 안에서 실행되는 MCP(Model Context Protocol) 서버예요. 요구사항을 인터뷰로 구체화해 **Spec**(목표·제약조건·완료 기준)을 만들고, 그 Spec을 바탕으로 실행 계획을 짜요.
25
25
 
26
- > **시작 전 확인** — Node.js >= 20.0.0이 필요해요. `nvm install 22 && nvm use 22`로 설치할 수 있어요.
26
+ > **시작 전 확인** — Node.js >= 22.0.0이 필요해요. `nvm install 22 && nvm use 22`로 설치할 수 있어요.
27
27
 
28
28
  ---
29
29
 
@@ -100,7 +100,7 @@ Claude Code
100
100
  최종 Spec → 실행 계획
101
101
  ```
102
102
 
103
- > **참고해 주세요** — CLI 직접 실행 모드에서는 `ANTHROPIC_API_KEY`가 필요해요. Claude Code 없이 터미널에서 바로 사용할 경우에만 해당돼요.
103
+ > **참고해 주세요** — Claude Code 없이 터미널에서 LLM을 직접 부르는 CLI 명령(`interview`, `spec`, `explain-eval`, `explain-check --judge`)을 실행할 때만 `ANTHROPIC_API_KEY`가 필요해요. 나머지 CLI 명령은 키 없이 돌아요.
104
104
 
105
105
  ---
106
106
 
@@ -118,14 +118,15 @@ Spec과 실행 결과는 레포 루트의 `.gestalt/memory.json`에 자동으로
118
118
  }
119
119
  ```
120
120
 
121
- - **커밋하세요** — `.gestalt/memory.json`은 일반 JSON 파일이에요. 커밋해두면 팀원도 `git pull` 후 이전 결정 사항을 그대로 이어받을 수 있어요.
121
+ - **커밋하세요** — `.gestalt/memory.json`은 일반 JSON 파일이에요. 커밋해두면 팀원도 `git pull` 후 이전 결정 사항을 그대로 이어받을 수 있어요. 충돌을 피하려면 [merge driver를 등록](docs/memory-team-sharing.md)하세요.
122
122
  - **컨텍스트 반영** — 다음 Spec을 생성할 때 이전 목표와 아키텍처 결정 사항이 프롬프트에 자동으로 반영돼요.
123
- - **User Profile** — 개인 설정은 `~/.gestalt/profile.json`에 저장돼요. git에는 올라가지 않아요.
124
123
 
125
124
  ---
126
125
 
127
126
  ## 설치
128
127
 
128
+ > **Windows 호스트는 지원하지 않아요.** 플러그인이 MCP 서버를 `sh -c`로 띄우는데 Windows 호스트에서는 이게 안 돌고 CI도 Ubuntu와 macOS에서만 돌려요. 그래도 Windows에서 써보려면 `npm i -g @tienne/gestalt`로 전역 설치한 다음 MCP 설정에 `"command": "gestalt"`, `"args": ["serve"]`를 직접 넣으세요. [옵션 3](#옵션-3-claude-code-cli)과 같은 방식이에요.
129
+
129
130
  ### 옵션 1: Claude Code 플러그인 (권장)
130
131
 
131
132
  설치 한 번에 MCP 서버, 슬래시 커맨드, Gestalt 에이전트, 프로젝트 컨텍스트를 모두 쓸 수 있어요.
@@ -150,12 +151,12 @@ claude plugin install gestalt@gestalt
150
151
 
151
152
  | 항목 | 내용 |
152
153
  |------|------|
153
- | **MCP 도구** | `ges_interview`, `ges_generate_spec`, `ges_execute`, `ges_create_agent`, `ges_agent`, `ges_status`, `ges_code_graph`, `ges_graph_visualize`, `ges_benchmark`, `ges_generate_kb`, `ges_search`, `ges_sync` |
154
- | **슬래시 커맨드** | 워크플로 스킬 21개 — `/interview`, `/spec`, `/execute`, `/review`, `/pr`, `/brief`, `/jira-create`, `/slack-send` 등 |
155
- | **에이전트** | 파이프라인 에이전트 5개 + Role 에이전트 23개 + Review 에이전트 4개 |
154
+ | **MCP 도구** | `ges_interview`, `ges_generate_spec`, `ges_execute`, `ges_create_agent`, `ges_agent`, `ges_status`, `ges_code_graph`, `ges_graph_visualize`, `ges_benchmark`, `ges_generate_kb`, `ges_search`, `ges_sync`, `ges_pr` — [MCP 레퍼런스](./docs/mcp-reference.md) 참고 |
155
+ | **슬래시 커맨드** | 워크플로 스킬 — `/interview`, `/spec`, `/execute`, `/review`, `/pr`, `/brief`, `/jira-create`, `/slack-send` 등. 전체 목록은 [스킬](#스킬) |
156
+ | **에이전트** | 파이프라인 에이전트, [Role 에이전트와 Review 에이전트](#6단계--code-review-코드-리뷰) |
156
157
  | **CLAUDE.md** | 프로젝트 컨텍스트 및 MCP 사용 가이드 자동 추가 |
157
158
 
158
- > **Node.js >= 20.0.0** 필요 — [nvm](https://github.com/nvm-sh/nvm) 사용 시: `nvm install 22 && nvm use 22`
159
+ > **Node.js >= 22.0.0** 필요 — [nvm](https://github.com/nvm-sh/nvm) 사용 시: `nvm install 22 && nvm use 22`
159
160
 
160
161
  ---
161
162
 
@@ -228,7 +229,7 @@ claude mcp add gestalt -- gestalt serve
228
229
 
229
230
  ### 옵션 4: OpenAI Codex 플러그인
230
231
 
231
- Claude Code 플러그인과 똑같이 MCP 서버랑 워크플로 스킬 21개를 한 번에 받아요.
232
+ Claude Code 플러그인과 똑같이 MCP 서버랑 워크플로 스킬 전부를 한 번에 받아요.
232
233
 
233
234
  ```bash
234
235
  codex plugin marketplace add tienne/gestalt
@@ -239,9 +240,9 @@ codex plugin add gestalt@gestalt
239
240
 
240
241
  | 항목 | 내용 |
241
242
  |------|------|
242
- | **MCP 도구** | `ges_*` 12개 전부 |
243
- | **스킬** | 워크플로 스킬 21개 (`gestalt:review`, `gestalt:pr` 포함) |
244
- | **에이전트** | Role 에이전트 23개 + Review 에이전트 4개 (스킬이 읽을 수 있게 같이 들어감) |
243
+ | **MCP 도구** | `ges_*` 전부 — [MCP 레퍼런스](./docs/mcp-reference.md) 참고 |
244
+ | **스킬** | [스킬](#스킬)에 있는 것 전부 (`gestalt:review`, `gestalt:pr` 포함) |
245
+ | **에이전트** | [Role 에이전트와 Review 에이전트](#6단계--code-review-코드-리뷰) (스킬이 읽을 수 있게 같이 들어감) |
245
246
 
246
247
  스킬은 다음 Codex 세션부터 잡혀요. 슬래시 커맨드랑 Claude Code Task 패널은 Claude Code 전용이라, Codex에서는 하려는 일을 말로 설명하면 Codex가 해당 `SKILL.md`를 읽어 진행해요.
247
248
 
@@ -513,7 +514,7 @@ Spec 패치 범위: AC와 constraints는 자유롭게 수정할 수 있어요. o
513
514
  | 진전 없음 (no drift) | **Reification** | 빠진 것 채우기 |
514
515
  | 효과 감소 | **Invariance** | 성공한 패턴 복제 |
515
516
 
516
- 4개 Persona를 모두 소진하면 세션이 **Human Escalation**으로 종료돼요. 직접 해결할 수 있도록 구체적인 제안도 함께 알려줘요.
517
+ 4개 Persona를 모두 소진하면 세션이 끝나지 않고 **Human Escalation** 게이트에서 멈춰요(`awaiting_human`). 막힌 지점과 선택지(스펙 수정, 직접 처리, 재시작, 중단)를 보여주고 사람의 결정과 이유를 `gate_resolve`로 받아요. 스펙 수정이나 직접 처리를 고르면 세션이 이어져요. 결정은 Memory에 남아 다음 인터뷰에 반영돼요.
517
518
 
518
519
  **종료 조건:**
519
520
 
@@ -524,7 +525,7 @@ Spec 패치 범위: AC와 constraints는 자유롭게 수정할 수 있어요. o
524
525
  | `oscillation` | 2회 연속 점수 역전 |
525
526
  | `hard_cap` | structural 3회 + contextual 3회 실패 |
526
527
  | `caller` | 수동 종료 |
527
- | `human_escalation` | 4개 lateral persona 모두 소진 |
528
+ | `human_escalation` | 4개 lateral persona 소진 후 게이트에서 재시작이나 중단을 고름 |
528
529
 
529
530
  ---
530
531
 
@@ -536,7 +537,7 @@ Evolution 완료 후 코드 리뷰 파이프라인이 자동으로 실행돼요:
536
537
  review_start → 에이전트 관점 제출 → 합의 → 자동 수정
537
538
  ```
538
539
 
539
- 9개의 내장 **Role 에이전트**가 다양한 관점에서 리뷰해요:
540
+ 내장 **Role 에이전트**가 각자 맡은 영역의 관점으로 리뷰해요. 표에는 대표 에이전트만 실었고 `jira-writer`나 `code-review-writer`처럼 스킬이 쓰는 에이전트도 같은 `plugin/role-agents/` 디렉토리에 들어 있어요:
540
541
 
541
542
  | 에이전트 | 도메인 |
542
543
  |-------|--------|
@@ -550,7 +551,7 @@ review_start → 에이전트 관점 제출 → 합의 → 자동 수정
550
551
  | `researcher` | 분석, 데이터, 벤치마크 |
551
552
  | `technical-writer` | 문서화, API 문서, 가이드, README |
552
553
 
553
- 7개의 내장 **Review 에이전트**가 코드를 집중 분석해요:
554
+ 내장 **Review 에이전트**가 각자 한 관점으로 코드를 집중 분석해요:
554
555
 
555
556
  | 에이전트 | 집중 영역 |
556
557
  |-------|-------|
@@ -590,11 +591,44 @@ ges_create_agent → action: "submit", sessionId: "<id>", agentContent: "..."
590
591
 
591
592
  ---
592
593
 
594
+ ### 스킬
595
+
596
+ Claude Code에서는 스킬마다 슬래시 커맨드로 불러요. Codex에서는 같은 스킬이 `gestalt:<이름>`이고 하려는 일을 말로 설명하면 Codex가 골라 읽어요.
597
+
598
+ | 스킬 | 언제 쓰나요 |
599
+ |------|-------------|
600
+ | `/interview` | 게슈탈트 원리 기반 문답으로 해상도 점수가 0.8에 닿을 때까지 요구사항을 구체화해요. Spec은 만들지 않아요 |
601
+ | `/spec` | 끝난 인터뷰로 Spec을 만들어요 |
602
+ | `/execute` | 이미 있는 Spec을 검증된 실행 계획으로 바꾸고 실행, 평가, 진화까지 이어가요 |
603
+ | `/solve` | 인터뷰, 스펙, 실행을 중간에 멈추지 않고 한 루프로 돌려요 |
604
+ | `/dispatch` | 실행 세션에서 착수할 수 있는 태스크를 외부 에이전트 런타임(Orca)의 터미널로 나눠 보내요. 선택 기능이라 외부 런타임이 없으면 `/execute`의 기본 병렬 경로가 나아요 |
605
+ | `/setup` | 레포를 처음 설정해요. `gestalt.json`을 만들고 코드 그래프를 빌드하고 post-commit 훅을 깔아요 |
606
+ | `/build-graph` | 코드 지식 그래프만 빌드하거나 다시 빌드해요 |
607
+ | `/blast-radius` | 코드를 고치기 전에 영향받을 파일을 찾아 그 파일만 컨텍스트에 올려요 |
608
+ | `/diff-radius` | 커밋 안 한 변경과 스테이징한 변경이 어디까지 영향을 주는지 봐요 |
609
+ | `/review` | PR이나 브랜치, 커밋을 [Review 에이전트](#6단계--code-review-코드-리뷰)로 검토해요. 대상이 PR이면 인라인 코멘트까지 남겨요 |
610
+ | `/review-loop` | 남의 GitHub PR을 리뷰어로 끝까지 따라가요. 리뷰하고 판정을 남긴 뒤 작성자 대응을 기다렸다가 approve가 날 때까지 재리뷰해요 |
611
+ | `/review-reply` | 내 PR에 달린 리뷰 코멘트를 처리해요. 고치고 커밋한 뒤 `code-review-responder`가 쓴 답글을 남겨요 |
612
+ | `/pr` | diff와 레포 규칙으로 PR 본문을 써서 GitHub에 `gh`로 올려요 |
613
+ | `/local-pr` | 레포 밖으로 안 나가는 PR이에요. 에이전트끼리 코드를 주고받을 때 쓰고 `gh`도 인증도 원격도 필요 없어요 |
614
+ | `/ship` | 로컬 PR로 리뷰를 수렴시킨 뒤 GitHub에 draft PR로 올리고 Copilot 리뷰까지 받아요 |
615
+ | `/brief` | 성과 보고, 제안서, RFC, 의사결정 메모를 이해관계자가 읽을 산문으로 써요 |
616
+ | `/presentation` | 발표 자료를 만들어요. `presentation-writer`가 콘텐츠를 쓰고 `presentation-designer`가 Reveal.js HTML로 조립해요 |
617
+ | `/explain` | 개념이나 에러, 코드를 정한 대상에게 맞춰 설명하고 `explain-check`로 판정해요 |
618
+ | `/jira-create` | `jira-writer`로 지라 티켓을 쓰고 미리보기를 승인하면 생성해요 |
619
+ | `/slack-send` | 슬랙 메시지를 작성자 어투로 다듬고 승인하면 보내거나 예약해요 |
620
+ | `/agent` | 전용 스킬이 없는 일에 에이전트를 직접 불러요 |
621
+
622
+ ---
623
+
593
624
  ### CLI 모드 (Claude Code 없이 사용하기)
594
625
 
595
- Claude Code 없이 터미널에서 바로 쓰고 싶다면 CLI 모드를 이용할 수 있어요. **`ANTHROPIC_API_KEY`가 필요해요.**
626
+ Claude Code 없이 터미널에서 바로 쓰고 싶다면 CLI 모드를 이용할 수 있어요. `interview`, `spec`, `explain-eval`은 LLM을 직접 부르기 때문에 **`ANTHROPIC_API_KEY`가 필요해요.** `explain-check`는 `--judge`를 켤 때만 키를 써요. 나머지 명령은 키 없이 돌아요.
596
627
 
597
628
  ```bash
629
+ # 레포 최초 설정: gestalt.json + 코드 그래프 + post-commit 훅
630
+ npx @tienne/gestalt init
631
+
598
632
  # 인터랙티브 인터뷰 시작
599
633
  npx @tienne/gestalt interview "주제"
600
634
 
@@ -604,13 +638,29 @@ npx @tienne/gestalt spec <session-id>
604
638
  # 전체 세션 목록 확인
605
639
  npx @tienne/gestalt status
606
640
 
607
- # gestalt.json 설정 파일 생성
608
- npx @tienne/gestalt setup
609
-
610
- # MCP 서버 수동 시작
641
+ # MCP 서버 수동 시작 (stdio)
611
642
  npx @tienne/gestalt serve
612
643
  ```
613
644
 
645
+ | 명령 | 하는 일 |
646
+ |------|---------|
647
+ | `serve` | MCP 서버를 stdio로 띄워요. 명령을 안 주면 이게 돌아요 |
648
+ | `interview [topic]` | 인터랙티브 인터뷰. `ANTHROPIC_API_KEY` 필요 |
649
+ | `spec <session-id>` | 끝난 인터뷰로 Spec 생성. `--force`면 해상도 기준을 건너뛰어요. `ANTHROPIC_API_KEY` 필요 |
650
+ | `status [session-id]` | 세션 하나의 상태, id를 안 주면 전체 세션 목록 |
651
+ | `init` | `gestalt.json` 생성, 코드 그래프 빌드, post-commit 훅 설치. `--skip-graph`, `--skip-hook` |
652
+ | `setup` | `gestalt.json`만 생성 |
653
+ | `update` | 최신 버전을 확인하고 설치 |
654
+ | `graph-visualize` | 코드 지식 그래프를 브라우저로 열어요. `--port`, `--no-browser` |
655
+ | `pr <하위 명령>` | 레포 안에서 끝나는 로컬 PR — `create`, `list`, `show`, `diff`, `comment`, `review`, `merge`, `serve`(읽기 전용 웹 UI) 등. [로컬 PR 문서](./docs/local-pr.md) 참고 |
656
+ | `review-loop <하위 명령>` | `review-loop` 스킬이 쓰는 조회 (PR 상태, 리뷰 라운드, approve 게이트) |
657
+ | `harness-refs <하위 명령>` | `review`와 `ship` 스킬이 쓰는 레포 간 참조 검사 |
658
+ | `humanize-scan`, `humanize-check` | 문장을 AI-tell 룰북으로 검사 |
659
+ | `explain-check`, `explain-eval` | 설명본이 대상에게 읽히는지 판정하고 설명 프롬프트 두 벌을 비교. `explain-eval`과 `explain-check --judge`는 `ANTHROPIC_API_KEY` 필요 |
660
+ | `usage-report` | 이벤트 종류별 발생 횟수 |
661
+
662
+ 전체 명령은 `gestalt --help`, 명령별 옵션은 `gestalt <명령> --help`로 볼 수 있어요.
663
+
614
664
  ---
615
665
 
616
666
  ## 설정
@@ -689,7 +739,7 @@ Anthropic(standard/frontier)과 Ollama(frugal)를 혼합하는 예시예요:
689
739
 
690
740
  | 변수 | Config 경로 | 기본값 | 설명 |
691
741
  |----------|-------------|---------|-------------|
692
- | `ANTHROPIC_API_KEY` | `llm.apiKey` | `""` | CLI 직접 모드에서만 필요 |
742
+ | `ANTHROPIC_API_KEY` | `llm.apiKey` | `""` | LLM을 직접 부르는 CLI 명령(`interview`, `spec`, `explain-eval`, `explain-check --judge`)에서만 필요 |
693
743
  | `GESTALT_MODEL` | `llm.model` | `claude-sonnet-4-20250514` | LLM 모델 (provider 모드) |
694
744
  | `GESTALT_RESOLUTION_THRESHOLD` | `interview.resolutionThreshold` | `0.8` | 인터뷰 완료 임계값 |
695
745
  | `GESTALT_MAX_ROUNDS` | `interview.maxRounds` | `10` | 최대 인터뷰 라운드 수 |
package/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
  </p>
19
19
 
20
20
  <p align="center">
21
- <strong>📊 Benchmark:</strong> Resolution 0.8 specs reduce rework rate by <strong>27%</strong> vs. 0.5 specs — <a href="./benchmarks/run-resolution-benchmark.ts">verified by LLM-as-judge on 20-item golden set</a>
21
+ <strong>📊 Benchmark:</strong> Not measured yet — an <a href="./benchmarks/run-resolution-benchmark.ts">LLM-as-judge harness</a> with a 20-item golden set and rubric is in place, but no real judge run has been recorded
22
22
  </p>
23
23
 
24
24
  ---
@@ -31,7 +31,7 @@ The hardest part of building software isn't writing code — it's knowing what t
31
31
  /execute # plan → execute → evaluate → evolve
32
32
  ```
33
33
 
34
- > **Requires Node.js >= 20.0.0.** Use `nvm install 22 && nvm use 22` if needed.
34
+ > **Requires Node.js >= 22.0.0.** Use `nvm install 22 && nvm use 22` if needed.
35
35
 
36
36
  ---
37
37
 
@@ -50,6 +50,7 @@ The hardest part of building software isn't writing code — it's knowing what t
50
50
  - [4. Evaluate](#4-evaluate)
51
51
  - [5. Evolve](#5-evolve)
52
52
  - [Code Review](#code-review)
53
+ - [Skills](#skills)
53
54
  - [Agents](#agents)
54
55
  - [CLI Mode](#cli-mode)
55
56
  - [Configuration](#configuration)
@@ -102,6 +103,8 @@ Then run the pipeline:
102
103
 
103
104
  ## Installation
104
105
 
106
+ > **Windows hosts are not supported.** The plugin starts its MCP server through `sh -c`, which a Windows host cannot run, and CI covers only Ubuntu and macOS. If you want to try it on Windows anyway, install globally with `npm i -g @tienne/gestalt` and register the server yourself with `"command": "gestalt"` and `"args": ["serve"]`, as in [Option 3](#option-3-claude-code-cli).
107
+
105
108
  ### Option 1: Claude Code Plugin (Recommended)
106
109
 
107
110
  Bundles the MCP server, slash-command skills, Gestalt agents, and project context — pre-configured in a single install.
@@ -123,9 +126,9 @@ What you get:
123
126
 
124
127
  | Item | Details |
125
128
  |------|---------|
126
- | **MCP Tools** | `ges_interview`, `ges_generate_spec`, `ges_execute`, `ges_create_agent`, `ges_agent`, `ges_status`, `ges_code_graph`, `ges_graph_visualize`, `ges_benchmark`, `ges_generate_kb`, `ges_search`, `ges_sync` |
127
- | **Slash Commands** | 21 workflow skills — `/interview`, `/spec`, `/execute`, `/review`, `/pr`, `/brief`, `/jira-create`, `/slack-send`, and more |
128
- | **Agents** | 23 role agents + 4 review agents |
129
+ | **MCP Tools** | `ges_interview`, `ges_generate_spec`, `ges_execute`, `ges_create_agent`, `ges_agent`, `ges_status`, `ges_code_graph`, `ges_graph_visualize`, `ges_benchmark`, `ges_generate_kb`, `ges_search`, `ges_sync`, `ges_pr` — see the [MCP reference](./docs/mcp-reference.md) |
130
+ | **Slash Commands** | Workflow skills — `/interview`, `/spec`, `/execute`, `/review`, `/pr`, `/brief`, `/jira-create`, `/slack-send`, and more. Full list in [Skills](#skills) |
131
+ | **Agents** | Pipeline agents, [role agents](#role-agents), and [review agents](#review-agents) |
129
132
  | **CLAUDE.md** | Project context and MCP usage guide auto-injected |
130
133
 
131
134
  ---
@@ -199,7 +202,7 @@ The plugin install (Option 1) already handles the first two through `scripts/mcp
199
202
 
200
203
  ### Option 4: OpenAI Codex Plugin
201
204
 
202
- Bundles the MCP server and all 21 workflow skills, the same way the Claude Code plugin does.
205
+ Bundles the MCP server and every workflow skill, the same way the Claude Code plugin does.
203
206
 
204
207
  ```bash
205
208
  codex plugin marketplace add tienne/gestalt
@@ -210,9 +213,9 @@ What you get:
210
213
 
211
214
  | Item | Details |
212
215
  |------|---------|
213
- | **MCP Tools** | All 12 `ges_*` tools |
214
- | **Skills** | 21 workflow skills, including `gestalt:review` and `gestalt:pr` |
215
- | **Agents** | 23 role agents + 4 review agents (bundled for skills to read) |
216
+ | **MCP Tools** | All `ges_*` tools — see the [MCP reference](./docs/mcp-reference.md) |
217
+ | **Skills** | Every skill in [Skills](#skills), including `gestalt:review` and `gestalt:pr` |
218
+ | **Agents** | [Role agents](#role-agents) and [review agents](#review-agents) (bundled for skills to read) |
216
219
 
217
220
  Skills load on the next Codex session. Slash commands and the Claude Code Task
218
221
  panel are still Claude Code only — in Codex you invoke a skill by describing the
@@ -244,7 +247,7 @@ and Codex performs the reasoning, file edits, and command execution. When
244
247
  `client` is `"codex"`, this remains true even if `ANTHROPIC_API_KEY` exists in
245
248
  your shell.
246
249
 
247
- All 12 MCP tools (`ges_interview`, `ges_generate_spec`, `ges_execute`, etc.) are available immediately. This option ships no skills — the pipeline runs entirely through MCP tool calls. Use Option 4 if you want `gestalt:review` and the other workflow skills. During execution, active context is written to a managed section in `AGENTS.md`; continue following the current MCP response (`executeContext`, `taskContext`, etc.) in the active Codex turn.
250
+ All MCP tools (`ges_interview`, `ges_generate_spec`, `ges_execute`, etc.) are available immediately. This option ships no skills — the pipeline runs entirely through MCP tool calls. Use Option 4 if you want `gestalt:review` and the other workflow skills. During execution, active context is written to a managed section in `AGENTS.md`; continue following the current MCP response (`executeContext`, `taskContext`, etc.) in the active Codex turn.
248
251
 
249
252
  ---
250
253
 
@@ -431,9 +434,7 @@ Every spec and execution result is automatically recorded in `.gestalt/memory.js
431
434
 
432
435
  **The interview gets shorter over time.** When prior specs and execution history exist, Gestalt automatically injects that context into the `gestaltContext.systemPrompt` at the start of each new interview session. Prior goals, architecture decisions, and constraints become shared knowledge — the AI already knows what you've built and why.
433
436
 
434
- **Commit it.** `.gestalt/memory.json` is plain JSON. Teammates inherit all prior decisions on `git pull`.
435
-
436
- **User profile.** Personal preferences are stored in `~/.gestalt/profile.json` and are never committed.
437
+ **Commit it.** `.gestalt/memory.json` is plain JSON. Teammates inherit all prior decisions on `git pull`. To avoid merge conflicts, register the memory merge driver — see [docs/memory-team-sharing.md](docs/memory-team-sharing.md).
437
438
 
438
439
  ---
439
440
 
@@ -599,7 +600,7 @@ Gestalt rotates through lateral thinking personas rather than terminating:
599
600
  | No progress (no drift) | **Reification** | Fill in what's missing |
600
601
  | Diminishing returns | **Invariance** | Replicate what worked |
601
602
 
602
- When all four personas are exhausted, the session ends with **Human Escalation** — a structured list of actionable suggestions for manual resolution.
603
+ When all four personas are exhausted, the session doesn't end. It pauses at a **Human Escalation** gate (`awaiting_human`) that shows where it got stuck and offers four options: patch the spec, handle the task manually, restart, or abort. The human's decision and rationale go back through `gate_resolve`. Patching or manual handling resumes the session, and every decision is saved to Memory for future interviews.
603
604
 
604
605
  **Termination conditions:**
605
606
 
@@ -610,7 +611,7 @@ When all four personas are exhausted, the session ends with **Human Escalation**
610
611
  | `oscillation` | 2 consecutive score reversals |
611
612
  | `hard_cap` | 3 structural + 3 contextual failures |
612
613
  | `caller` | Manual termination |
613
- | `human_escalation` | All 4 lateral personas exhausted |
614
+ | `human_escalation` | All 4 lateral personas exhausted, then the human picks restart or abort at the gate |
614
615
 
615
616
  ---
616
617
 
@@ -626,6 +627,36 @@ The review `context-collector` uses `blastRadius()` from the Code Knowledge Grap
626
627
 
627
628
  ---
628
629
 
630
+ ## Skills
631
+
632
+ Each skill is a slash command in Claude Code. In Codex the same skill is `gestalt:<name>`, and Codex picks it from your description of the task.
633
+
634
+ | Skill | Use it to |
635
+ |-------|-----------|
636
+ | `/interview` | Clarify requirements through Gestalt-driven Q&A until the resolution score reaches 0.8. Stops before the Spec |
637
+ | `/spec` | Turn a finished interview into a Spec |
638
+ | `/execute` | Turn an existing Spec into a validated execution plan, then execute, evaluate, and evolve |
639
+ | `/solve` | Drive interview → spec → execute as one loop without stopping between steps |
640
+ | `/dispatch` | Send ready tasks from an execute session to terminals in an external agent runtime (Orca). Opt-in — without one, `/execute`'s default parallel path is better |
641
+ | `/setup` | First-time project setup: `gestalt.json`, code graph, and post-commit hook |
642
+ | `/build-graph` | Build or rebuild the code knowledge graph only |
643
+ | `/blast-radius` | Before changing code, find the files a change would reach and load only those |
644
+ | `/diff-radius` | See how far uncommitted and staged changes reach |
645
+ | `/review` | Review a PR, branch, or commit with the [review agents](#review-agents), and post inline comments when the target is a PR |
646
+ | `/review-loop` | Follow someone else's GitHub PR as reviewer — review, post a verdict, wait for the author, and re-review until approve |
647
+ | `/review-reply` | Work through review comments on your own PR: fix, commit, and post replies written by `code-review-responder` |
648
+ | `/pr` | Write a PR description from the diff and the repo's conventions, then open it on GitHub with `gh` |
649
+ | `/local-pr` | PRs that never leave the repo, for agents handing code to each other. No `gh`, auth, or remote needed |
650
+ | `/ship` | Converge review on a local PR, then open a draft GitHub PR and collect Copilot review |
651
+ | `/brief` | Performance reports, proposals, RFCs, and decision memos written as prose for stakeholders |
652
+ | `/presentation` | Slide decks — `presentation-writer` writes the content and `presentation-designer` builds Reveal.js HTML |
653
+ | `/explain` | Explain a concept, error, or code for a chosen audience, then check it with `explain-check` |
654
+ | `/jira-create` | Draft a Jira ticket with `jira-writer` and create it after you approve the preview |
655
+ | `/slack-send` | Draft a Slack message in the author's voice and send or schedule it after you approve |
656
+ | `/agent` | Call any agent directly when no dedicated skill covers the task |
657
+
658
+ ---
659
+
629
660
  ## Agents
630
661
 
631
662
  Use any agent directly, outside the pipeline:
@@ -642,7 +673,7 @@ Use any agent directly, outside the pipeline:
642
673
 
643
674
  ### Role Agents
644
675
 
645
- Nine built-in role agents provide multi-perspective review:
676
+ Built-in role agents each review from their own domain. The table lists the main ones; skill-support agents such as `jira-writer` and `code-review-writer` live in the same `plugin/role-agents/` directory:
646
677
 
647
678
  | Agent | Domain |
648
679
  |-------|--------|
@@ -658,7 +689,7 @@ Nine built-in role agents provide multi-perspective review:
658
689
 
659
690
  ### Review Agents
660
691
 
661
- Seven built-in review agents run focused code analysis:
692
+ Built-in review agents each analyze the code from one angle:
662
693
 
663
694
  | Agent | Focus |
664
695
  |-------|-------|
@@ -688,9 +719,12 @@ ges_create_agent({ action: "submit", sessionId: "<id>", agentContent: "..." })
688
719
 
689
720
  ## CLI Mode
690
721
 
691
- Run Gestalt without Claude Code. **Requires `ANTHROPIC_API_KEY`.**
722
+ Run Gestalt from a terminal without Claude Code. `interview`, `spec`, and `explain-eval` call the LLM themselves, so they **require `ANTHROPIC_API_KEY`**. `explain-check` uses the key only with `--judge`. The other commands run without it.
692
723
 
693
724
  ```bash
725
+ # Set up a repo once: gestalt.json + code graph + post-commit hook
726
+ npx @tienne/gestalt init
727
+
694
728
  # Start an interactive interview
695
729
  npx @tienne/gestalt interview "my topic"
696
730
 
@@ -700,13 +734,29 @@ npx @tienne/gestalt spec <session-id>
700
734
  # List all sessions
701
735
  npx @tienne/gestalt status
702
736
 
703
- # Generate gestalt.json config
704
- npx @tienne/gestalt setup
705
-
706
- # Start the MCP server manually
737
+ # Start the MCP server manually (stdio)
707
738
  npx @tienne/gestalt serve
708
739
  ```
709
740
 
741
+ | Command | What it does |
742
+ |---------|--------------|
743
+ | `serve` | Start the MCP server over stdio. Runs when no command is given |
744
+ | `interview [topic]` | Interactive interview. Needs `ANTHROPIC_API_KEY` |
745
+ | `spec <session-id>` | Generate a Spec from a completed interview. `--force` skips the resolution threshold. Needs `ANTHROPIC_API_KEY` |
746
+ | `status [session-id]` | Status of one session, or every session when no id is given |
747
+ | `init` | Create `gestalt.json`, build the code graph, and install the post-commit hook. `--skip-graph`, `--skip-hook` |
748
+ | `setup` | Create `gestalt.json` only |
749
+ | `update` | Check for and install the latest version |
750
+ | `graph-visualize` | Open the code knowledge graph in the browser. `--port`, `--no-browser` |
751
+ | `pr <subcommand>` | Local PRs inside the repo — `create`, `list`, `show`, `diff`, `comment`, `review`, `merge`, `serve` (read-only web UI), and more. See [Local PR](./docs/local-pr.md) |
752
+ | `review-loop <subcommand>` | Lookups the `review-loop` skill relies on: PR state, review rounds, approve gate |
753
+ | `harness-refs <subcommand>` | Cross-repo reference checks the `review` and `ship` skills rely on |
754
+ | `humanize-scan`, `humanize-check` | Check prose against the AI-tell rulebook |
755
+ | `explain-check`, `explain-eval` | Judge an explanation for its audience, and compare two explanation prompts. `explain-eval` and `explain-check --judge` need `ANTHROPIC_API_KEY` |
756
+ | `usage-report` | Event counts grouped by event type |
757
+
758
+ `gestalt --help` lists every command, and `gestalt <command> --help` shows its options.
759
+
710
760
  ---
711
761
 
712
762
  ## Configuration
@@ -798,7 +848,7 @@ If no tiers are configured, all tiers fall back to the top-level `llm.model` wit
798
848
 
799
849
  | Variable | Config path | Default | Description |
800
850
  |----------|-------------|---------|-------------|
801
- | `ANTHROPIC_API_KEY` | `llm.apiKey` | `""` | Required only for CLI direct mode |
851
+ | `ANTHROPIC_API_KEY` | `llm.apiKey` | `""` | Required only for CLI commands that call the LLM (`interview`, `spec`, `explain-eval`, `explain-check --judge`) |
802
852
  | `GESTALT_MODEL` | `llm.model` | `claude-sonnet-4-20250514` | LLM model |
803
853
  | `GESTALT_RESOLUTION_THRESHOLD` | `interview.resolutionThreshold` | `0.8` | Interview completion threshold |
804
854
  | `GESTALT_MAX_ROUNDS` | `interview.maxRounds` | `10` | Max interview rounds |
@@ -1 +1 @@
1
- {"version":3,"file":"passthrough-benchmark-runner.d.ts","sourceRoot":"","sources":["../../../benchmarks/runners/passthrough-benchmark-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAA2C,eAAe,EAAE,MAAM,aAAa,CAAC;AAI/G,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,cAAc,GACd,qBAAqB,GACrB,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;AAEnF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAMD,qBAAa,0BAA0B;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,aAAa,CAA2B;IAGhD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,mBAAmB,CAAK;IAGhC,OAAO,CAAC,uBAAuB,CAAyF;IACxH,OAAO,CAAC,cAAc,CAAiE;IACvF,OAAO,CAAC,WAAW,CAA8F;IACjH,OAAO,CAAC,iBAAiB,CAAiE;gBAE9E,QAAQ,EAAE,iBAAiB;IAcvC,mDAAmD;IACnD,KAAK,IAAI,oBAAoB;IAyB7B,kDAAkD;IAC5C,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAwB5E,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,oBAAoB;IAyC5B,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA2D;IAE7F,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,mBAAmB;YA6Bb,gBAAgB;IAiC9B,OAAO,CAAC,kBAAkB;IA0C1B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IA2C3B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,YAAY;CAarB;AAMD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAE5F;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,0BAA0B,GAAG,IAAI,CAEhF;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAM7D"}
1
+ {"version":3,"file":"passthrough-benchmark-runner.d.ts","sourceRoot":"","sources":["../../../benchmarks/runners/passthrough-benchmark-runner.ts"],"names":[],"mappings":"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"}
@@ -244,7 +244,7 @@ export class PassthroughBenchmarkRunner {
244
244
  // Update total estimate with actual task count
245
245
  const actualTasks = planResult.value.executionPlan.atomicTasks.length;
246
246
  const estimatedTasks = this.scenario.planningSteps.closure.atomicTasks.length;
247
- this.totalEstimatedSteps += (actualTasks - estimatedTasks);
247
+ this.totalEstimatedSteps += actualTasks - estimatedTasks;
248
248
  this.endTimer('planning', true);
249
249
  return this.startExecutionPhase();
250
250
  }
@@ -309,13 +309,14 @@ export class PassthroughBenchmarkRunner {
309
309
  const evalStart = this.executeEngine.startEvaluation(this.executeSessionId);
310
310
  if (!evalStart.ok)
311
311
  throw new Error(`Evaluation start failed: ${evalStart.error.message}`);
312
- // Simulate structural pass
312
+ // Simulate structural pass. 서버가 요청한 명령 문자열을 그대로 실어야 제출이 받아들여진다
313
313
  const structuralResult = {
314
- commands: [
315
- { name: 'lint', command: 'eslint src/', exitCode: 0, output: 'No errors found' },
316
- { name: 'build', command: 'tsc --noEmit', exitCode: 0, output: '' },
317
- { name: 'test', command: 'vitest run', exitCode: 0, output: 'Tests: all passed' },
318
- ],
314
+ commands: evalStart.value.structuralContext.commands.map((c) => ({
315
+ name: c.name,
316
+ command: c.command,
317
+ exitCode: 0,
318
+ output: 'ok',
319
+ })),
319
320
  allPassed: true,
320
321
  };
321
322
  const structResult = this.executeEngine.submitStructuralResult(this.executeSessionId, structuralResult);
@@ -1 +1 @@
1
- {"version":3,"file":"passthrough-benchmark-runner.js","sourceRoot":"","sources":["../../../benchmarks/runners/passthrough-benchmark-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"passthrough-benchmark-runner.js","sourceRoot":"","sources":["../../../benchmarks/runners/passthrough-benchmark-runner.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  const major = Number(process.versions.node.split('.')[0]);
3
- if (major < 20) {
4
- console.error(`\n gestalt requires Node.js >= 20.0.0 (current: ${process.version})\n\n` +
3
+ if (major < 22) {
4
+ console.error(`\n gestalt requires Node.js >= 22.0.0 (current: ${process.version})\n\n` +
5
5
  ` Upgrade with:\n` +
6
6
  ` nvm install 22 && nvm use 22\n` +
7
7
  ` or: https://nodejs.org/\n`);
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.84.2",
3
+ "version": "0.85.0",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "repository": {
6
6
  "type": "git",