@tienne/gestalt 0.14.1 → 0.15.1

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 (97) hide show
  1. package/README.ko.md +19 -32
  2. package/README.md +188 -164
  3. package/dist/package.json +1 -1
  4. package/dist/role-agents/harness-architect/AGENT.md +210 -0
  5. package/dist/role-agents/technical-writer/AGENT.md +46 -0
  6. package/dist/role-agents/technical-writer/references/ai-tell-quick-rules.md +134 -0
  7. package/dist/skills/agent/SKILL.md +2 -0
  8. package/package.json +1 -1
  9. package/role-agents/harness-architect/AGENT.md +210 -0
  10. package/role-agents/technical-writer/AGENT.md +46 -0
  11. package/role-agents/technical-writer/references/ai-tell-quick-rules.md +134 -0
  12. package/skills/agent/SKILL.md +2 -0
  13. package/dist/skills/seed/SKILL.md +0 -92
  14. package/dist/src/cli/commands/seed.d.ts +0 -4
  15. package/dist/src/cli/commands/seed.d.ts.map +0 -1
  16. package/dist/src/cli/commands/seed.js +0 -34
  17. package/dist/src/cli/commands/seed.js.map +0 -1
  18. package/dist/src/interview/ambiguity.d.ts +0 -8
  19. package/dist/src/interview/ambiguity.d.ts.map +0 -1
  20. package/dist/src/interview/ambiguity.js +0 -69
  21. package/dist/src/interview/ambiguity.js.map +0 -1
  22. package/dist/src/mcp/tools/seed-passthrough.d.ts +0 -5
  23. package/dist/src/mcp/tools/seed-passthrough.d.ts.map +0 -1
  24. package/dist/src/mcp/tools/seed-passthrough.js +0 -29
  25. package/dist/src/mcp/tools/seed-passthrough.js.map +0 -1
  26. package/dist/src/mcp/tools/seed.d.ts +0 -5
  27. package/dist/src/mcp/tools/seed.d.ts.map +0 -1
  28. package/dist/src/mcp/tools/seed.js +0 -19
  29. package/dist/src/mcp/tools/seed.js.map +0 -1
  30. package/dist/src/recording/agg-converter.d.ts +0 -25
  31. package/dist/src/recording/agg-converter.d.ts.map +0 -1
  32. package/dist/src/recording/agg-converter.js +0 -80
  33. package/dist/src/recording/agg-converter.js.map +0 -1
  34. package/dist/src/recording/agg-installer.d.ts +0 -6
  35. package/dist/src/recording/agg-installer.d.ts.map +0 -1
  36. package/dist/src/recording/agg-installer.js +0 -50
  37. package/dist/src/recording/agg-installer.js.map +0 -1
  38. package/dist/src/recording/asciinema-installer.d.ts +0 -6
  39. package/dist/src/recording/asciinema-installer.d.ts.map +0 -1
  40. package/dist/src/recording/asciinema-installer.js +0 -50
  41. package/dist/src/recording/asciinema-installer.js.map +0 -1
  42. package/dist/src/recording/asciinema-recorder.d.ts +0 -26
  43. package/dist/src/recording/asciinema-recorder.d.ts.map +0 -1
  44. package/dist/src/recording/asciinema-recorder.js +0 -52
  45. package/dist/src/recording/asciinema-recorder.js.map +0 -1
  46. package/dist/src/recording/cast-generator.d.ts +0 -7
  47. package/dist/src/recording/cast-generator.d.ts.map +0 -1
  48. package/dist/src/recording/cast-generator.js +0 -97
  49. package/dist/src/recording/cast-generator.js.map +0 -1
  50. package/dist/src/recording/filename-generator.d.ts +0 -19
  51. package/dist/src/recording/filename-generator.d.ts.map +0 -1
  52. package/dist/src/recording/filename-generator.js +0 -67
  53. package/dist/src/recording/filename-generator.js.map +0 -1
  54. package/dist/src/recording/gif-generator.d.ts +0 -21
  55. package/dist/src/recording/gif-generator.d.ts.map +0 -1
  56. package/dist/src/recording/gif-generator.js +0 -121
  57. package/dist/src/recording/gif-generator.js.map +0 -1
  58. package/dist/src/recording/recording-dir.d.ts +0 -5
  59. package/dist/src/recording/recording-dir.d.ts.map +0 -1
  60. package/dist/src/recording/recording-dir.js +0 -13
  61. package/dist/src/recording/recording-dir.js.map +0 -1
  62. package/dist/src/recording/recording-orchestrator.d.ts +0 -50
  63. package/dist/src/recording/recording-orchestrator.d.ts.map +0 -1
  64. package/dist/src/recording/recording-orchestrator.js +0 -98
  65. package/dist/src/recording/recording-orchestrator.js.map +0 -1
  66. package/dist/src/recording/resume-detector.d.ts +0 -10
  67. package/dist/src/recording/resume-detector.d.ts.map +0 -1
  68. package/dist/src/recording/resume-detector.js +0 -14
  69. package/dist/src/recording/resume-detector.js.map +0 -1
  70. package/dist/src/recording/segment-merger.d.ts +0 -27
  71. package/dist/src/recording/segment-merger.d.ts.map +0 -1
  72. package/dist/src/recording/segment-merger.js +0 -65
  73. package/dist/src/recording/segment-merger.js.map +0 -1
  74. package/dist/src/recording/terminal-recorder.d.ts +0 -31
  75. package/dist/src/recording/terminal-recorder.d.ts.map +0 -1
  76. package/dist/src/recording/terminal-recorder.js +0 -111
  77. package/dist/src/recording/terminal-recorder.js.map +0 -1
  78. package/dist/src/scripts/postinstall.d.ts +0 -2
  79. package/dist/src/scripts/postinstall.d.ts.map +0 -1
  80. package/dist/src/scripts/postinstall.js +0 -29
  81. package/dist/src/scripts/postinstall.js.map +0 -1
  82. package/dist/src/seed/extractor.d.ts +0 -15
  83. package/dist/src/seed/extractor.d.ts.map +0 -1
  84. package/dist/src/seed/extractor.js +0 -88
  85. package/dist/src/seed/extractor.js.map +0 -1
  86. package/dist/src/seed/generator.d.ts +0 -12
  87. package/dist/src/seed/generator.d.ts.map +0 -1
  88. package/dist/src/seed/generator.js +0 -66
  89. package/dist/src/seed/generator.js.map +0 -1
  90. package/dist/src/seed/passthrough-generator.d.ts +0 -31
  91. package/dist/src/seed/passthrough-generator.d.ts.map +0 -1
  92. package/dist/src/seed/passthrough-generator.js +0 -80
  93. package/dist/src/seed/passthrough-generator.js.map +0 -1
  94. package/dist/src/seed/schema.d.ts +0 -145
  95. package/dist/src/seed/schema.d.ts.map +0 -1
  96. package/dist/src/seed/schema.js +0 -37
  97. package/dist/src/seed/schema.js.map +0 -1
package/README.ko.md CHANGED
@@ -77,7 +77,7 @@ Gestalt는 코드를 작성하기 전에 요구사항을 함께 구체화해줘
77
77
 
78
78
  ### Passthrough 모드는 어떻게 작동하나요?
79
79
 
80
- Gestalt는 **MCP 서버**로 실행돼요. Claude Code를 통해 사용할 경우 Claude Code가 LLM 역할을 담당해요 — Gestalt는 프롬프트와 컨텍스트를 반환하고, 실제 추론은 Claude Code가 수행해요. 서버 자체는 별도 API 호출을 하지 않아요.
80
+ Gestalt는 **MCP 서버**로 실행돼요. Claude Code를 통해 사용할 경우 Claude Code가 LLM 역할을 담당해요 — Gestalt는 프롬프트와 컨텍스트를 반환하고, 실제 추론은 Claude Code가 해요. 서버 자체는 별도 API 호출을 하지 않아요.
81
81
 
82
82
  ```
83
83
  Claude Code
@@ -116,7 +116,7 @@ Spec과 실행 결과는 레포 루트의 `.gestalt/memory.json`에 자동으로
116
116
  }
117
117
  ```
118
118
 
119
- - **커밋하세요** — `.gestalt/memory.json`은 일반 JSON 파일이에요. 커밋하면 팀원도 `git pull` 후 이전 결정 사항을 그대로 이어받을 수 있어요.
119
+ - **커밋하세요** — `.gestalt/memory.json`은 일반 JSON 파일이에요. 커밋해두면 팀원도 `git pull` 후 이전 결정 사항을 그대로 이어받을 수 있어요.
120
120
  - **컨텍스트 반영** — 다음 Spec을 생성할 때 이전 목표와 아키텍처 결정 사항이 프롬프트에 자동으로 반영돼요.
121
121
  - **User Profile** — 개인 설정은 `~/.gestalt/profile.json`에 저장돼요. git에는 올라가지 않아요.
122
122
 
@@ -126,7 +126,15 @@ Spec과 실행 결과는 레포 루트의 `.gestalt/memory.json`에 자동으로
126
126
 
127
127
  ### 옵션 1: Claude Code 플러그인 (권장)
128
128
 
129
- 설치 한 번에 MCP 서버, 슬래시 커맨드, Gestalt 에이전트, 프로젝트 컨텍스트를 모두 사용할 수 있어요.
129
+ 설치 한 번에 MCP 서버, 슬래시 커맨드, Gestalt 에이전트, 프로젝트 컨텍스트를 모두 수 있어요.
130
+
131
+ **터미널에서:**
132
+
133
+ ```bash
134
+ claude plugin install gestalt@gestalt
135
+ ```
136
+
137
+ **Claude Code 세션 내에서:**
130
138
 
131
139
  ```bash
132
140
  # 1단계: 마켓플레이스 등록 (최초 1회)
@@ -200,7 +208,7 @@ claude mcp add gestalt -- npx -y @tienne/gestalt
200
208
  /interview "Stripe로 결제 플로우를 만들고 싶어"
201
209
  ```
202
210
 
203
- 각 라운드는 모호한 부분을 집중해서 파악해요:
211
+ 각 라운드는 모호한 부분을 집중적으로 파악해요:
204
212
 
205
213
  - **Closure** — 빠진 요구사항과 말하지 않고 가정한 것을 찾아요
206
214
  - **Proximity** — 함께 묶여야 할 기능을 식별해요
@@ -218,7 +226,7 @@ claude mcp add gestalt -- npx -y @tienne/gestalt
218
226
 
219
227
  #### 인터뷰가 길어질 때 (Context Compression)
220
228
 
221
- 라운드가 5개를 초과하면 Gestalt가 자동으로 압축을 제안해요. `compress` action을 사용하면 이전 대화를 요약해 컨텍스트를 줄일 수 있어요:
229
+ 라운드가 5개를 초과하면 Gestalt가 자동으로 압축을 제안해요. `compress` action을 쓰면 이전 대화를 요약해 컨텍스트를 줄일 수 있어요:
222
230
 
223
231
  ```
224
232
  1. respond 응답에 needsCompression: true + compressionContext 포함
@@ -335,7 +343,7 @@ ges_execute({
335
343
 
336
344
  #### 실행 진행 패널
337
345
 
338
- `/execute` 실행 중 Claude Code Task 패널에 진행 상태가 실시간으로 표시돼요. Planning 단계부터 Evaluate까지 완료 태스크 수, 현재 태스크 이름, 실패 수, 병렬 그룹 구조가 자동으로 갱신돼요.
346
+ `/execute` 실행 중 Claude Code Task 패널에 진행 상태가 실시간으로 표시돼요. Planning 단계부터 Evaluate까지 완료 태스크 수, 현재 태스크 이름, 실패 수, 병렬 그룹 구조가 자동으로 갱신돼요.
339
347
 
340
348
  #### 하위 에이전트 생성 (Spawn)
341
349
 
@@ -382,7 +390,7 @@ evolve_fix → 수정 태스크 제출 → 재평가
382
390
  evolve → Spec 패치 (AC/constraints) → 영향받은 태스크 재실행 → 재평가
383
391
  ```
384
392
 
385
- Spec 패치 범위: AC와 constraints는 자유 수정; ontology는 추가/변경만; **goal은 변경 불가**.
393
+ Spec 패치 범위: AC와 constraints는 자유롭게 수정할 수 있어요. ontology는 추가/변경만 가능하고, **goal은 변경할 수 없어요**.
386
394
 
387
395
  **Flow C — Lateral Thinking** (답보 상태 감지 시)
388
396
 
@@ -395,7 +403,7 @@ Spec 패치 범위: AC와 constraints는 자유 수정; ontology는 추가/변
395
403
  | 진전 없음 (no drift) | **Reification** | 빠진 것 채우기 |
396
404
  | 효과 감소 | **Invariance** | 성공한 패턴 복제 |
397
405
 
398
- 4개 Persona를 모두 소진하면 세션이 **Human Escalation**으로 종료돼요. 직접 해결할 수 있도록 구체적인 제안도 함께 제공해요.
406
+ 4개 Persona를 모두 소진하면 세션이 **Human Escalation**으로 종료돼요. 직접 해결할 수 있도록 구체적인 제안도 함께 알려줘요.
399
407
 
400
408
  **종료 조건:**
401
409
 
@@ -440,7 +448,7 @@ review_start → 에이전트 관점 제출 → 합의 → 자동 수정
440
448
  | `performance-reviewer` | 메모리 누수, N+1 쿼리, 번들 크기, 비동기 |
441
449
  | `quality-reviewer` | 가독성, SOLID, 에러 핸들링, DRY |
442
450
 
443
- 파이프라인 밖에서도 `/agent`로 언제든 에이전트를 사용할 수 있어요:
451
+ 파이프라인 밖에서도 `/agent`로 언제든 에이전트를 수 있어요:
444
452
 
445
453
  ```bash
446
454
  # 사용 가능한 에이전트 목록 조회
@@ -452,7 +460,7 @@ review_start → 에이전트 관점 제출 → 합의 → 자동 수정
452
460
  /agent technical-writer "이 모듈의 README를 작성해줘"
453
461
  ```
454
462
 
455
- 인터뷰 결과에서 커스텀 Role 에이전트를 생성할 수도 있어요:
463
+ 인터뷰 결과에서 커스텀 Role 에이전트를 만들 수도 있어요:
456
464
 
457
465
  ```
458
466
  # 인터뷰 완료 후 커스텀 에이전트 생성
@@ -470,15 +478,12 @@ ges_create_agent → action: "submit", sessionId: "<id>", agentContent: "..."
470
478
 
471
479
  ### CLI 모드 (Claude Code 없이 사용하기)
472
480
 
473
- Claude Code 없이 터미널에서 바로 사용하고 싶다면 CLI 모드를 이용할 수 있어요. **`ANTHROPIC_API_KEY`가 필요해요.**
481
+ Claude Code 없이 터미널에서 바로 쓰고 싶다면 CLI 모드를 이용할 수 있어요. **`ANTHROPIC_API_KEY`가 필요해요.**
474
482
 
475
483
  ```bash
476
484
  # 인터랙티브 인터뷰 시작
477
485
  npx @tienne/gestalt interview "주제"
478
486
 
479
- # 터미널 세션을 GIF로 녹화
480
- npx @tienne/gestalt interview "주제" --record
481
-
482
487
  # 완료된 세션에서 Spec 생성
483
488
  npx @tienne/gestalt spec <session-id>
484
489
 
@@ -492,24 +497,6 @@ npx @tienne/gestalt setup
492
497
  npx @tienne/gestalt serve
493
498
  ```
494
499
 
495
- #### 인터뷰 세션 녹화
496
-
497
- `--record` (또는 `-r`) 플래그를 추가하면 터미널 세션을 GIF로 녹화할 수 있어요:
498
-
499
- ```bash
500
- npx @tienne/gestalt interview "주제" --record
501
- ```
502
-
503
- 인터뷰가 완료되면 현재 디렉토리에 GIF 파일이 생성돼요:
504
-
505
- ```
506
- user-auth-interview-20260327.gif
507
- ```
508
-
509
- 파일명은 LLM이 인터뷰 주제를 기반으로 kebab-case로 생성하고, `YYYYMMDD` 날짜를 붙여요. 외부 바이너리는 필요하지 않아요 — `gifencoder`와 `jimp` npm 패키지만 사용해요.
510
-
511
- **중단된 세션 이어 녹화:** 녹화 중 세션이 중단되더라도 걱정하지 않아도 돼요. 동일 세션을 다시 실행하면 `.frames` 파일을 자동으로 감지해 이어서 녹화해요. 임시 프레임 데이터는 `.gestalt/recordings/{sessionId}.frames`에 저장되고, GIF 생성이 완료되면 자동으로 삭제돼요.
512
-
513
500
  ---
514
501
 
515
502
  ## 설정