@tienne/gestalt 0.59.0 → 0.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.59.0",
3
+ "version": "0.60.0",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -56,11 +56,7 @@ execute 세션 없이 PR, 브랜치, 커밋의 변경사항을 직접 리뷰 파
56
56
 
57
57
  ## 전제 조건
58
58
 
59
- 코드 지식 그래프가 빌드되어 있어야 변경 파일의 영향범위까지 수집할 있습니다:
60
- ```
61
- /build-graph
62
- ```
63
- 그래프 DB가 없으면 `ges_code_graph { action: "db_exists", repoRoot: "<repoRoot>" }`로 확인 후 `/build-graph`를 먼저 안내합니다.
59
+ 없습니다. git 저장소이기만 하면 바로 돌아갑니다 코드 그래프는 쓰지 않습니다.
64
60
 
65
61
  ## Skill Instructions
66
62
 
@@ -87,23 +83,31 @@ execute 세션 없이 PR, 브랜치, 커밋의 변경사항을 직접 리뷰 파
87
83
 
88
84
  `reviewIntent`는 MCP 입력 파라미터로 전달되지 않습니다 — 이후 단계에서 **Claude의 추론 컨텍스트로만** 활용합니다.
89
85
 
90
- ### 1단계: 변경 파일 수집 (blast_radius)
86
+ ### 1단계: 변경 파일 수집 (git diff)
91
87
 
92
- `blast_radius`로 리뷰 대상의 변경 파일과 영향받는 파일을 수집합니다:
88
+ 리뷰 대상의 변경 파일을 git으로 수집합니다. `target` 형태에 따라 명령이 달라집니다:
93
89
 
90
+ ```bash
91
+ # 현재 브랜치 vs main (target 생략)
92
+ git diff --name-only main...HEAD
93
+
94
+ # 특정 브랜치
95
+ git diff --name-only main...<branch>
96
+
97
+ # 범위 (main..feature/auth)
98
+ git diff --name-only <range>
99
+
100
+ # 특정 커밋
101
+ git diff --name-only <commit>^ <commit>
94
102
  ```
95
- ges_code_graph {
96
- action: "blast_radius",
97
- repoRoot: "<repoRoot>",
98
- base: "<target>"
99
- }
100
- ```
101
103
 
102
- `changedFiles`와 `impactedFiles`를 합쳐 리뷰 대상 파일 목록을 구성합니다.
104
+ 출력이 비어 있으면 리뷰할 변경이 없다고 알리고 중단합니다.
105
+
106
+ **바뀐 파일만 리뷰 대상입니다.** 의존 파일이나 호출부를 목록에 얹지 않습니다 — 안 바뀐 파일이 목록에 섞이면 리뷰어가 그걸 변경으로 오해해서 기존 코드를 지적합니다. 시그니처나 공용 유틸 변경처럼 호출부까지 봐야 하는 경우는 3단계에서 리뷰어가 직접 읽습니다.
103
107
 
104
108
  ### 1.5단계: 기획 컨텍스트 분석
105
109
 
106
- `blast_radius`로 수집한 `changedFiles`를 바탕으로 변경의 기획적 의도와 동작 변화를 분석한다.
110
+ 1단계에서 수집한 변경 파일을 바탕으로 변경의 기획적 의도와 동작 변화를 분석한다.
107
111
 
108
112
  `ges_agent { action: "get", name: "change-context-writer" }`로 에이전트 시스템 프롬프트를 가져온 뒤, 해당 관점에서 diff를 분석해 기획 컨텍스트 문서를 작성한다.
109
113
 
@@ -118,7 +122,7 @@ ges_code_graph {
118
122
  ```
119
123
  ges_execute {
120
124
  action: "review_start",
121
- changedFiles: [...수집한 파일...],
125
+ changedFiles: [...1단계에서 수집한 변경 파일...],
122
126
  repoRoot: "<repoRoot>"
123
127
  }
124
128
  ```
@@ -268,7 +272,7 @@ git rev-parse HEAD && git status --porcelain
268
272
  판단 기준:
269
273
 
270
274
  - **이번 세션에 방금 리뷰를 끝냈고 그 뒤 diff 변화가 없다** → consensus가 신선함. 곧장 게시 진행.
271
- - **리뷰 후 코드가 바뀌었다 / 활성 리뷰 세션이 없다 / 다른 세션의 오래된 결과다** → consensus가 stale. **게시하지 말고**, 1단계(blast_radius)부터 현재 diff로 리뷰 파이프라인(1~4단계)을 다시 돌린 뒤, 새로 나온 consensus로 4.7을 진행합니다. 사용자에게 "변경이 있어 현재 코드로 다시 리뷰한 뒤 게시할게요"라고 한 줄 알립니다.
275
+ - **리뷰 후 코드가 바뀌었다 / 활성 리뷰 세션이 없다 / 다른 세션의 오래된 결과다** → consensus가 stale. **게시하지 말고**, 1단계(git diff)부터 현재 diff로 리뷰 파이프라인(1~4단계)을 다시 돌린 뒤, 새로 나온 consensus로 4.7을 진행합니다. 사용자에게 "변경이 있어 현재 코드로 다시 리뷰한 뒤 게시할게요"라고 한 줄 알립니다.
272
276
 
273
277
  즉 인라인 코멘트는 **언제 요청받든 항상 "현재 diff 기준 consensus + code-review-writer voice"** 로만 게시됩니다. 옛 리뷰 메모리를 그대로 옮겨 적거나 Claude가 손으로 코멘트를 짜는 경로는 없습니다.
274
278
 
@@ -1 +1 @@
1
- {"version":3,"file":"agent-matcher.d.ts","sourceRoot":"","sources":["../../../src/review/agent-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnG;AAED,qBAAa,kBAAkB;IAC7B,oBAAoB,CAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,eAAe,EAAE,GAC9B,kBAAkB;CAmEtB"}
1
+ {"version":3,"file":"agent-matcher.d.ts","sourceRoot":"","sources":["../../../src/review/agent-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnG;AAED,qBAAa,kBAAkB;IAC7B,oBAAoB,CAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,eAAe,EAAE,GAC9B,kBAAkB;CAgEtB"}
@@ -36,19 +36,16 @@ Respond with ONLY a JSON object:
36
36
  .map((a) => `- **${a.name}** [${a.category}]: ${a.description} (domains: ${a.domain.join(', ')})`)
37
37
  .join('\n');
38
38
  const fileList = reviewContext.changedFiles.join('\n ');
39
- const depList = reviewContext.dependencyFiles.length > 0
40
- ? reviewContext.dependencyFiles.join('\n ')
41
- : '(none)';
39
+ const dependencyBlock = reviewContext.dependencyFiles.length > 0
40
+ ? `\n**Dependency Context** (${reviewContext.dependencyFiles.length}):\n ${reviewContext.dependencyFiles.join('\n ')}\n`
41
+ : '';
42
42
  const matchingPrompt = `## Code Review Agent Matching
43
43
 
44
44
  **Spec Goal**: ${reviewContext.spec?.goal ?? 'Direct file review'}
45
45
 
46
46
  **Changed Files** (${reviewContext.changedFiles.length}):
47
47
  ${fileList}
48
-
49
- **Dependency Context** (${reviewContext.dependencyFiles.length}):
50
- ${depList}
51
-
48
+ ${dependencyBlock}
52
49
  **Task Results Summary**: ${reviewContext.taskResults?.length ?? 0} tasks completed
53
50
 
54
51
  **Available Agents** (${availableAgents.length}):
@@ -1 +1 @@
1
- {"version":3,"file":"agent-matcher.js","sourceRoot":"","sources":["../../../src/review/agent-matcher.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,kBAAkB;IAC7B,oBAAoB,CAClB,aAA4B,EAC5B,UAA6B,EAC7B,YAA+B;QAE/B,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI;YACxB,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;YAClC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW;YACtC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY;SACnF,CAAC,CAAC,CAAC;QAEJ,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;QAEC,MAAM,SAAS,GAAG,eAAe;aAC9B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxF;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GACX,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YACtC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,QAAQ,CAAC;QAEf,MAAM,cAAc,GAAG;;iBAEV,aAAa,CAAC,IAAI,EAAE,IAAI,IAAI,oBAAoB;;qBAE5C,aAAa,CAAC,YAAY,CAAC,MAAM;IAClD,QAAQ;;0BAEc,aAAa,CAAC,eAAe,CAAC,MAAM;IAC1D,OAAO;;4BAEiB,aAAa,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;;wBAE1C,eAAe,CAAC,MAAM;EAC5C,SAAS;;mHAEwG,CAAC;QAEhH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"agent-matcher.js","sourceRoot":"","sources":["../../../src/review/agent-matcher.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,kBAAkB;IAC7B,oBAAoB,CAClB,aAA4B,EAC5B,UAA6B,EAC7B,YAA+B;QAE/B,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI;YACxB,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE;YAClC,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW;YACtC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY;SACnF,CAAC,CAAC,CAAC;QAEJ,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;EAwBvB,CAAC;QAEC,MAAM,SAAS,GAAG,eAAe;aAC9B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxF;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,eAAe,GACnB,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YACtC,CAAC,CAAC,6BAA6B,aAAa,CAAC,eAAe,CAAC,MAAM,SAAS,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAC1H,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,cAAc,GAAG;;iBAEV,aAAa,CAAC,IAAI,EAAE,IAAI,IAAI,oBAAoB;;qBAE5C,aAAa,CAAC,YAAY,CAAC,MAAM;IAClD,QAAQ;EACV,eAAe;4BACW,aAAa,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;;wBAE1C,eAAe,CAAC,MAAM;EAC5C,SAAS;;mHAEwG,CAAC;QAEhH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;IAC3D,CAAC;CACF"}
@@ -1,9 +1,15 @@
1
1
  import type { Spec, TaskExecutionResult, ReviewContext } from '../core/types.js';
2
2
  export declare class ReviewContextCollector {
3
- collect(spec: Spec, taskResults: TaskExecutionResult[], repoRoot?: string): ReviewContext;
4
- collectFromFiles(changedFiles: string[], repoRoot: string): ReviewContext;
3
+ collect(spec: Spec, taskResults: TaskExecutionResult[]): ReviewContext;
4
+ /**
5
+ * 변경 파일 목록만으로 리뷰 컨텍스트를 만든다 (execute 세션 없는 직접 리뷰).
6
+ *
7
+ * 의존 파일을 채우지 않는다 — 코드 그래프로 영향 파일을 얹으면 리뷰어가 안 바뀐
8
+ * 파일을 변경 파일로 오해해서 기존 코드를 지적한다. 호출부 확인이 필요한 변경은
9
+ * 리뷰어가 직접 읽는다.
10
+ */
11
+ collectFromFiles(changedFiles: string[]): ReviewContext;
5
12
  private extractChangedFiles;
6
- private extractDependenciesFromGraph;
7
13
  private extractDependenciesFromOutput;
8
14
  }
9
15
  //# sourceMappingURL=context-collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-collector.d.ts","sourceRoot":"","sources":["../../../src/review/context-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjF,qBAAa,sBAAsB;IACjC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa;IAczF,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa;IAUzE,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,4BAA4B;IAYpC,OAAO,CAAC,6BAA6B;CAyBtC"}
1
+ {"version":3,"file":"context-collector.d.ts","sourceRoot":"","sources":["../../../src/review/context-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjF,qBAAa,sBAAsB;IACjC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,aAAa;IAWtE;;;;;;OAMG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,aAAa;IASvD,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,6BAA6B;CAyBtC"}
@@ -1,22 +1,24 @@
1
- import { codeGraphEngine } from '../code-graph/engine.js';
2
1
  export class ReviewContextCollector {
3
- collect(spec, taskResults, repoRoot) {
2
+ collect(spec, taskResults) {
4
3
  const changedFiles = this.extractChangedFiles(taskResults);
5
- const dependencyFiles = repoRoot
6
- ? this.extractDependenciesFromGraph(changedFiles, repoRoot)
7
- : this.extractDependenciesFromOutput(taskResults, changedFiles);
8
4
  return {
9
5
  changedFiles,
10
- dependencyFiles,
6
+ dependencyFiles: this.extractDependenciesFromOutput(taskResults, changedFiles),
11
7
  spec,
12
8
  taskResults,
13
9
  };
14
10
  }
15
- collectFromFiles(changedFiles, repoRoot) {
16
- const dependencyFiles = this.extractDependenciesFromGraph(changedFiles, repoRoot);
11
+ /**
12
+ * 변경 파일 목록만으로 리뷰 컨텍스트를 만든다 (execute 세션 없는 직접 리뷰).
13
+ *
14
+ * 의존 파일을 채우지 않는다 — 코드 그래프로 영향 파일을 얹으면 리뷰어가 안 바뀐
15
+ * 파일을 변경 파일로 오해해서 기존 코드를 지적한다. 호출부 확인이 필요한 변경은
16
+ * 리뷰어가 직접 읽는다.
17
+ */
18
+ collectFromFiles(changedFiles) {
17
19
  return {
18
20
  changedFiles: [...changedFiles].sort(),
19
- dependencyFiles,
21
+ dependencyFiles: [],
20
22
  spec: undefined,
21
23
  taskResults: undefined,
22
24
  };
@@ -33,19 +35,6 @@ export class ReviewContextCollector {
33
35
  }
34
36
  return [...files].sort();
35
37
  }
36
- extractDependenciesFromGraph(changedFiles, repoRoot) {
37
- try {
38
- if (!codeGraphEngine.dbExists(repoRoot))
39
- return [];
40
- const result = codeGraphEngine.blastRadius(repoRoot, { changedFiles });
41
- const changedSet = new Set(changedFiles);
42
- return result.impactedFiles.filter((f) => !changedSet.has(f)).sort();
43
- }
44
- catch {
45
- return [];
46
- }
47
- // finally: close() 금지 — 싱글턴
48
- }
49
38
  extractDependenciesFromOutput(taskResults, changedFiles) {
50
39
  const deps = new Set();
51
40
  // Extract import references from task output
@@ -1 +1 @@
1
- {"version":3,"file":"context-collector.js","sourceRoot":"","sources":["../../../src/review/context-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-collector.js","sourceRoot":"","sources":["../../../src/review/context-collector.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAC,IAAU,EAAE,WAAkC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAE3D,OAAO;YACL,YAAY;YACZ,eAAe,EAAE,IAAI,CAAC,6BAA6B,CAAC,WAAW,EAAE,YAAY,CAAC;YAC9E,IAAI;YACJ,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,YAAsB;QACrC,OAAO;YACL,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE;YACtC,eAAe,EAAE,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,WAAkC;QAC5D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAEhC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,yCAAyC;gBACzC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAEO,6BAA6B,CACnC,WAAkC,EAClC,YAAsB;QAEtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,6CAA6C;QAC7C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;YACpF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;gBAC7B,mDAAmD;gBACnD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"passthrough-engine.d.ts","sourceRoot":"","sources":["../../../src/review/passthrough-engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,kBAAkB,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,2DAA2D;IAC3D,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,uBAAuB;IAMtB,OAAO,CAAC,UAAU,CAAC;IAL/B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,eAAe,CAA+B;gBAElC,UAAU,CAAC,EAAE,UAAU,YAAA;IAG3C,WAAW,CACT,MAAM,EAAE;QAAE,cAAc,EAAE,cAAc,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACzF,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,eAAe,EAAE,GAC9B,MAAM,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,kBAAkB,CAAA;KAAE,CAAC;IAyHxE,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GACnB,MAAM,CAAC;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IA0CnF,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,qBAAqB,EAChC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,MAAM,CAAC;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,YAAY,CAAC;QACrB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IA0FF,QAAQ,CACN,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,gBAAgB,GAAG;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IA2HvE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;QAAE,gBAAgB,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAsBpF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAM5C,YAAY,IAAI,aAAa,EAAE;IAI/B,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"passthrough-engine.d.ts","sourceRoot":"","sources":["../../../src/review/passthrough-engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,kBAAkB,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,2DAA2D;IAC3D,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,uBAAuB;IAMtB,OAAO,CAAC,UAAU,CAAC;IAL/B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,eAAe,CAA+B;gBAElC,UAAU,CAAC,EAAE,UAAU,YAAA;IAG3C,WAAW,CACT,MAAM,EAAE;QAAE,cAAc,EAAE,cAAc,CAAA;KAAE,GAAG;QAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EACzF,UAAU,EAAE,eAAe,EAAE,EAC7B,YAAY,EAAE,eAAe,EAAE,GAC9B,MAAM,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,kBAAkB,CAAA;KAAE,CAAC;IA4HxE,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,GACnB,MAAM,CAAC;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IA0CnF,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,qBAAqB,EAChC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,MAAM,CAAC;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,YAAY,CAAC;QACrB,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IA0FF,QAAQ,CACN,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,gBAAgB,GAAG;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IA2HvE,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;QAAE,gBAAgB,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAsBpF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAM5C,YAAY,IAAI,aAAa,EAAE;IAI/B,OAAO,CAAC,SAAS;CAGlB"}
@@ -21,12 +21,12 @@ export class PassthroughReviewEngine {
21
21
  let executeSessionId;
22
22
  let repoRoot;
23
23
  if ('executeSession' in source) {
24
- reviewContext = this.contextCollector.collect(source.executeSession.spec, source.executeSession.taskResults, source.executeSession.codeGraphRepoRoot);
24
+ reviewContext = this.contextCollector.collect(source.executeSession.spec, source.executeSession.taskResults);
25
25
  executeSessionId = source.executeSession.sessionId;
26
26
  repoRoot = source.executeSession.codeGraphRepoRoot;
27
27
  }
28
28
  else {
29
- reviewContext = this.contextCollector.collectFromFiles(source.changedFiles, source.repoRoot);
29
+ reviewContext = this.contextCollector.collectFromFiles(source.changedFiles);
30
30
  // Sentinel: direct file review has no backing execute session
31
31
  executeSessionId = '';
32
32
  repoRoot = source.repoRoot;
@@ -91,16 +91,18 @@ Respond with ONLY a JSON object:
91
91
  const constraintsBlock = reviewContext.spec && reviewContext.spec.constraints.length > 0
92
92
  ? reviewContext.spec.constraints.map((c) => ` - ${c}`).join('\n')
93
93
  : ' (none)';
94
+ const dependencyBlock = reviewContext.dependencyFiles.length > 0
95
+ ? `\n**Dependency Context** (${reviewContext.dependencyFiles.length}):\n${reviewContext.dependencyFiles
96
+ .map((f) => ` - ${f}`)
97
+ .join('\n')}\n`
98
+ : '';
94
99
  const reviewPrompt = `## Code Review
95
100
 
96
101
  **Spec Goal**: ${reviewContext.spec?.goal ?? 'Direct file review'}
97
102
 
98
103
  **Changed Files** (${reviewContext.changedFiles.length}):
99
104
  ${reviewContext.changedFiles.map((f) => ` - ${f}`).join('\n')}
100
-
101
- **Dependency Context** (${reviewContext.dependencyFiles.length}):
102
- ${reviewContext.dependencyFiles.map((f) => ` - ${f}`).join('\n')}
103
-
105
+ ${dependencyBlock}
104
106
  **Constraints**:
105
107
  ${constraintsBlock}
106
108
 
@@ -1 +1 @@
1
- {"version":3,"file":"passthrough-engine.js","sourceRoot":"","sources":["../../../src/review/passthrough-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"passthrough-engine.js","sourceRoot":"","sources":["../../../src/review/passthrough-engine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.59.0",
3
+ "version": "0.60.0",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gestalt",
3
- "version": "0.59.0",
3
+ "version": "0.60.0",
4
4
  "description": "Gestalt psychology-driven AI development harness. Transforms scattered requirements into structured, validated specifications through interactive interviews.",
5
5
  "author": {
6
6
  "name": "tienne"
package/plugin/mcp.json CHANGED
@@ -3,6 +3,7 @@
3
3
  "gestalt": {
4
4
  "command": "npx",
5
5
  "args": ["-y", "@tienne/gestalt", "serve"],
6
+ "startup_timeout_sec": 180,
6
7
  "tool_timeout_sec": 900
7
8
  }
8
9
  }
@@ -56,11 +56,7 @@ execute 세션 없이 PR, 브랜치, 커밋의 변경사항을 직접 리뷰 파
56
56
 
57
57
  ## 전제 조건
58
58
 
59
- 코드 지식 그래프가 빌드되어 있어야 변경 파일의 영향범위까지 수집할 있습니다:
60
- ```
61
- /build-graph
62
- ```
63
- 그래프 DB가 없으면 `ges_code_graph { action: "db_exists", repoRoot: "<repoRoot>" }`로 확인 후 `/build-graph`를 먼저 안내합니다.
59
+ 없습니다. git 저장소이기만 하면 바로 돌아갑니다 코드 그래프는 쓰지 않습니다.
64
60
 
65
61
  ## Skill Instructions
66
62
 
@@ -87,23 +83,31 @@ execute 세션 없이 PR, 브랜치, 커밋의 변경사항을 직접 리뷰 파
87
83
 
88
84
  `reviewIntent`는 MCP 입력 파라미터로 전달되지 않습니다 — 이후 단계에서 **Claude의 추론 컨텍스트로만** 활용합니다.
89
85
 
90
- ### 1단계: 변경 파일 수집 (blast_radius)
86
+ ### 1단계: 변경 파일 수집 (git diff)
91
87
 
92
- `blast_radius`로 리뷰 대상의 변경 파일과 영향받는 파일을 수집합니다:
88
+ 리뷰 대상의 변경 파일을 git으로 수집합니다. `target` 형태에 따라 명령이 달라집니다:
93
89
 
90
+ ```bash
91
+ # 현재 브랜치 vs main (target 생략)
92
+ git diff --name-only main...HEAD
93
+
94
+ # 특정 브랜치
95
+ git diff --name-only main...<branch>
96
+
97
+ # 범위 (main..feature/auth)
98
+ git diff --name-only <range>
99
+
100
+ # 특정 커밋
101
+ git diff --name-only <commit>^ <commit>
94
102
  ```
95
- ges_code_graph {
96
- action: "blast_radius",
97
- repoRoot: "<repoRoot>",
98
- base: "<target>"
99
- }
100
- ```
101
103
 
102
- `changedFiles`와 `impactedFiles`를 합쳐 리뷰 대상 파일 목록을 구성합니다.
104
+ 출력이 비어 있으면 리뷰할 변경이 없다고 알리고 중단합니다.
105
+
106
+ **바뀐 파일만 리뷰 대상입니다.** 의존 파일이나 호출부를 목록에 얹지 않습니다 — 안 바뀐 파일이 목록에 섞이면 리뷰어가 그걸 변경으로 오해해서 기존 코드를 지적합니다. 시그니처나 공용 유틸 변경처럼 호출부까지 봐야 하는 경우는 3단계에서 리뷰어가 직접 읽습니다.
103
107
 
104
108
  ### 1.5단계: 기획 컨텍스트 분석
105
109
 
106
- `blast_radius`로 수집한 `changedFiles`를 바탕으로 변경의 기획적 의도와 동작 변화를 분석한다.
110
+ 1단계에서 수집한 변경 파일을 바탕으로 변경의 기획적 의도와 동작 변화를 분석한다.
107
111
 
108
112
  `ges_agent { action: "get", name: "change-context-writer" }`로 에이전트 시스템 프롬프트를 가져온 뒤, 해당 관점에서 diff를 분석해 기획 컨텍스트 문서를 작성한다.
109
113
 
@@ -118,7 +122,7 @@ ges_code_graph {
118
122
  ```
119
123
  ges_execute {
120
124
  action: "review_start",
121
- changedFiles: [...수집한 파일...],
125
+ changedFiles: [...1단계에서 수집한 변경 파일...],
122
126
  repoRoot: "<repoRoot>"
123
127
  }
124
128
  ```
@@ -268,7 +272,7 @@ git rev-parse HEAD && git status --porcelain
268
272
  판단 기준:
269
273
 
270
274
  - **이번 세션에 방금 리뷰를 끝냈고 그 뒤 diff 변화가 없다** → consensus가 신선함. 곧장 게시 진행.
271
- - **리뷰 후 코드가 바뀌었다 / 활성 리뷰 세션이 없다 / 다른 세션의 오래된 결과다** → consensus가 stale. **게시하지 말고**, 1단계(blast_radius)부터 현재 diff로 리뷰 파이프라인(1~4단계)을 다시 돌린 뒤, 새로 나온 consensus로 4.7을 진행합니다. 사용자에게 "변경이 있어 현재 코드로 다시 리뷰한 뒤 게시할게요"라고 한 줄 알립니다.
275
+ - **리뷰 후 코드가 바뀌었다 / 활성 리뷰 세션이 없다 / 다른 세션의 오래된 결과다** → consensus가 stale. **게시하지 말고**, 1단계(git diff)부터 현재 diff로 리뷰 파이프라인(1~4단계)을 다시 돌린 뒤, 새로 나온 consensus로 4.7을 진행합니다. 사용자에게 "변경이 있어 현재 코드로 다시 리뷰한 뒤 게시할게요"라고 한 줄 알립니다.
272
276
 
273
277
  즉 인라인 코멘트는 **언제 요청받든 항상 "현재 diff 기준 consensus + code-review-writer voice"** 로만 게시됩니다. 옛 리뷰 메모리를 그대로 옮겨 적거나 Claude가 손으로 코멘트를 짜는 경로는 없습니다.
274
278