@wooojin/forgen 0.2.1 → 0.3.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 (145) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.ko.md +25 -14
  3. package/README.md +61 -17
  4. package/agents/analyst.md +48 -4
  5. package/agents/architect.md +39 -4
  6. package/agents/code-reviewer.md +107 -77
  7. package/agents/critic.md +47 -4
  8. package/agents/debugger.md +46 -4
  9. package/agents/designer.md +40 -4
  10. package/agents/executor.md +112 -30
  11. package/agents/explore.md +45 -5
  12. package/agents/git-master.md +48 -4
  13. package/agents/planner.md +121 -18
  14. package/agents/solution-evolver.md +115 -0
  15. package/agents/test-engineer.md +58 -4
  16. package/agents/verifier.md +92 -77
  17. package/commands/architecture-decision.md +127 -258
  18. package/commands/calibrate.md +225 -0
  19. package/commands/code-review.md +163 -178
  20. package/commands/compound.md +127 -68
  21. package/commands/deep-interview.md +212 -110
  22. package/commands/docker.md +68 -178
  23. package/commands/forge-loop.md +215 -0
  24. package/commands/learn.md +231 -0
  25. package/commands/retro.md +215 -0
  26. package/commands/ship.md +277 -0
  27. package/dist/cli.js +25 -9
  28. package/dist/core/auto-compound-runner.js +14 -0
  29. package/dist/core/config-injector.d.ts +2 -1
  30. package/dist/core/config-injector.js +2 -1
  31. package/dist/core/dashboard.d.ts +17 -0
  32. package/dist/core/dashboard.js +158 -2
  33. package/dist/core/harness.d.ts +6 -1
  34. package/dist/core/harness.js +75 -19
  35. package/dist/core/paths.d.ts +31 -1
  36. package/dist/core/paths.js +43 -2
  37. package/dist/core/spawn.d.ts +3 -2
  38. package/dist/core/spawn.js +27 -8
  39. package/dist/core/types.d.ts +34 -0
  40. package/dist/engine/compound-lifecycle.d.ts +4 -3
  41. package/dist/engine/compound-lifecycle.js +91 -46
  42. package/dist/engine/learn-cli.d.ts +1 -0
  43. package/dist/engine/learn-cli.js +182 -0
  44. package/dist/engine/meta-learning/adaptive-thresholds.d.ts +20 -0
  45. package/dist/engine/meta-learning/adaptive-thresholds.js +126 -0
  46. package/dist/engine/meta-learning/extraction-tuner.d.ts +15 -0
  47. package/dist/engine/meta-learning/extraction-tuner.js +99 -0
  48. package/dist/engine/meta-learning/matcher-weight-tuner.d.ts +21 -0
  49. package/dist/engine/meta-learning/matcher-weight-tuner.js +151 -0
  50. package/dist/engine/meta-learning/runner.d.ts +14 -0
  51. package/dist/engine/meta-learning/runner.js +90 -0
  52. package/dist/engine/meta-learning/scope-promoter.d.ts +21 -0
  53. package/dist/engine/meta-learning/scope-promoter.js +84 -0
  54. package/dist/engine/meta-learning/session-quality-scorer.d.ts +61 -0
  55. package/dist/engine/meta-learning/session-quality-scorer.js +166 -0
  56. package/dist/engine/meta-learning/types.d.ts +114 -0
  57. package/dist/engine/meta-learning/types.js +43 -0
  58. package/dist/engine/solution-candidate.d.ts +30 -0
  59. package/dist/engine/solution-candidate.js +124 -0
  60. package/dist/engine/solution-fitness.d.ts +52 -0
  61. package/dist/engine/solution-fitness.js +95 -0
  62. package/dist/engine/solution-fixup.d.ts +30 -0
  63. package/dist/engine/solution-fixup.js +116 -0
  64. package/dist/engine/solution-format.d.ts +10 -2
  65. package/dist/engine/solution-format.js +287 -57
  66. package/dist/engine/solution-index.d.ts +1 -1
  67. package/dist/engine/solution-index.js +10 -0
  68. package/dist/engine/solution-matcher.d.ts +7 -1
  69. package/dist/engine/solution-matcher.js +137 -37
  70. package/dist/engine/solution-outcomes.d.ts +70 -0
  71. package/dist/engine/solution-outcomes.js +242 -0
  72. package/dist/engine/solution-quarantine.d.ts +36 -0
  73. package/dist/engine/solution-quarantine.js +172 -0
  74. package/dist/engine/solution-weakness.d.ts +45 -0
  75. package/dist/engine/solution-weakness.js +225 -0
  76. package/dist/engine/solution-writer.d.ts +5 -0
  77. package/dist/engine/solution-writer.js +18 -0
  78. package/dist/fgx.js +12 -8
  79. package/dist/hooks/context-guard.d.ts +5 -0
  80. package/dist/hooks/context-guard.js +118 -2
  81. package/dist/hooks/hooks-generator.d.ts +3 -0
  82. package/dist/hooks/hooks-generator.js +23 -6
  83. package/dist/hooks/keyword-detector.js +16 -100
  84. package/dist/hooks/post-tool-failure.js +7 -0
  85. package/dist/hooks/skill-injector.d.ts +4 -3
  86. package/dist/hooks/skill-injector.js +6 -4
  87. package/dist/hooks/solution-injector.js +20 -0
  88. package/dist/host/codex-adapter.d.ts +10 -0
  89. package/dist/host/codex-adapter.js +154 -0
  90. package/dist/mcp/solution-reader.d.ts +5 -5
  91. package/dist/mcp/solution-reader.js +34 -24
  92. package/dist/mcp/tools.js +8 -0
  93. package/dist/services/session.d.ts +19 -0
  94. package/dist/services/session.js +62 -0
  95. package/hooks/hooks.json +2 -2
  96. package/package.json +2 -1
  97. package/skills/architecture-decision/SKILL.md +113 -257
  98. package/skills/calibrate/SKILL.md +207 -0
  99. package/skills/code-review/SKILL.md +151 -178
  100. package/skills/compound/SKILL.md +126 -68
  101. package/skills/deep-interview/SKILL.md +210 -110
  102. package/skills/docker/SKILL.md +57 -179
  103. package/skills/forge-loop/SKILL.md +198 -0
  104. package/skills/learn/SKILL.md +216 -0
  105. package/skills/retro/SKILL.md +199 -0
  106. package/skills/ship/SKILL.md +259 -0
  107. package/agents/code-simplifier.md +0 -197
  108. package/agents/performance-reviewer.md +0 -172
  109. package/agents/qa-tester.md +0 -158
  110. package/agents/refactoring-expert.md +0 -168
  111. package/agents/scientist.md +0 -144
  112. package/agents/security-reviewer.md +0 -137
  113. package/agents/writer.md +0 -184
  114. package/commands/api-design.md +0 -268
  115. package/commands/ci-cd.md +0 -270
  116. package/commands/database.md +0 -263
  117. package/commands/debug-detective.md +0 -99
  118. package/commands/documentation.md +0 -276
  119. package/commands/ecomode.md +0 -51
  120. package/commands/frontend.md +0 -271
  121. package/commands/git-master.md +0 -90
  122. package/commands/incident-response.md +0 -292
  123. package/commands/migrate.md +0 -101
  124. package/commands/performance.md +0 -288
  125. package/commands/refactor.md +0 -105
  126. package/commands/security-review.md +0 -288
  127. package/commands/specify.md +0 -128
  128. package/commands/tdd.md +0 -183
  129. package/commands/testing-strategy.md +0 -265
  130. package/skills/api-design/SKILL.md +0 -262
  131. package/skills/ci-cd/SKILL.md +0 -264
  132. package/skills/database/SKILL.md +0 -257
  133. package/skills/debug-detective/SKILL.md +0 -95
  134. package/skills/documentation/SKILL.md +0 -270
  135. package/skills/ecomode/SKILL.md +0 -46
  136. package/skills/frontend/SKILL.md +0 -265
  137. package/skills/git-master/SKILL.md +0 -86
  138. package/skills/incident-response/SKILL.md +0 -286
  139. package/skills/migrate/SKILL.md +0 -96
  140. package/skills/performance/SKILL.md +0 -282
  141. package/skills/refactor/SKILL.md +0 -100
  142. package/skills/security-review/SKILL.md +0 -282
  143. package/skills/specify/SKILL.md +0 -122
  144. package/skills/tdd/SKILL.md +0 -178
  145. package/skills/testing-strategy/SKILL.md +0 -260
@@ -0,0 +1,231 @@
1
+ ---
2
+ name: learn
3
+ description: This skill should be used when the user asks to "learn, 학습 관리, compound 정리, 솔루션 정리". Compound 지식의 관리 인터페이스 — 검색, 통계, 가지치기, 내보내기/가져오기.
4
+ argument-hint: "[search {query}|stats|prune|export|import {path}]"
5
+ model: inherit
6
+ allowed-tools:
7
+ - Read
8
+ - Grep
9
+ - Glob
10
+ - Bash
11
+ triggers:
12
+ - "learn"
13
+ - "학습 관리"
14
+ - "compound 정리"
15
+ - "솔루션 정리"
16
+ - "compound 관리"
17
+ - "솔루션 관리"
18
+ - "지식 관리"
19
+ ---
20
+
21
+ <Purpose>
22
+ compound에 축적된 솔루션을 관리합니다.
23
+ 시간이 지남에 따라 솔루션은 낡거나 중복되거나 모순됩니다.
24
+ learn은 이를 정기적으로 정리하여 compound의 신호 대 잡음 비율을 유지합니다.
25
+
26
+ 서브커맨드: search, stats, prune, export, import
27
+ 서브커맨드 생략 시: stats 실행
28
+ </Purpose>
29
+
30
+ <Compound_Integration>
31
+ ## Compound 데이터 직접 조작
32
+
33
+ learn은 compound의 관리 도구입니다.
34
+ 모든 서브커맨드에서 compound MCP 도구를 직접 사용합니다:
35
+ - `compound-stats` -- 전체 현황 조회
36
+ - `compound-list` -- 솔루션 목록 조회
37
+ - `compound-read` -- 개별 솔루션 상세 조회
38
+ - `compound-search` -- 키워드 검색
39
+
40
+ retire/merge 전에 반드시 사용자 확인을 받습니다.
41
+ mature 상태 솔루션은 어떤 경우에도 자동 정리 대상이 아닙니다.
42
+ </Compound_Integration>
43
+
44
+ <Steps>
45
+ ## search {query}
46
+
47
+ compound-search MCP로 검색하고 결과를 정리합니다.
48
+
49
+ ```
50
+ compound-search("{query}")
51
+ ```
52
+
53
+ ```
54
+ SEARCH RESULTS / 검색 결과
55
+ ===========================
56
+ Query: "{query}"
57
+ Found: {N}개
58
+
59
+ # | Title | Type | Status | Last Used
60
+ ----+--------------------------|---------------|------------|----------
61
+ 1 | {제목} | {type} | {status} | {date}
62
+ 2 | {제목} | {type} | {status} | {date}
63
+ ```
64
+
65
+ 결과 없으면: "검색 결과 없음. 관련 키워드 제안: {1-3개}"
66
+
67
+ ---
68
+
69
+ ## stats
70
+
71
+ ```
72
+ compound-stats
73
+ compound-list
74
+ ```
75
+
76
+ ```
77
+ COMPOUND KNOWLEDGE / 복리 지식 현황
78
+ ════════════════════════════════════
79
+ Total: {N} solutions
80
+
81
+ By Status:
82
+ mature (3+ hits): {N} ({N}%) {bar}
83
+ verified (2 hits): {N} ({N}%) {bar}
84
+ candidate (1 hit): {N} ({N}%) {bar}
85
+ experiment (0 hits): {N} ({N}%) {bar}
86
+
87
+ By Type:
88
+ pattern: {N} | troubleshoot: {N} | decision: {N} | anti-pattern: {N}
89
+
90
+ By Scope:
91
+ me: {N} | project: {N} | universal: {N}
92
+
93
+ Activity (last 7 days):
94
+ Injected: {N}/{total} ({N}%)
95
+ New: +{N} | Promoted: +{N} | Retired: -{N}
96
+ Top: "{title}" ({N} hits)
97
+ ```
98
+
99
+ 바 차트는 비율에 따라 `#` 문자로 시각화 (최대 20자).
100
+
101
+ ---
102
+
103
+ ## prune
104
+
105
+ **prune은 항상 stats를 먼저 실행합니다.**
106
+
107
+ ### 감지 기준
108
+ 1. STALE: 30일+ 미사용
109
+ 2. DUPLICATE: 유사도 80%+ (제목+내용 키워드 비교)
110
+ 3. CONTRADICTORY: 같은 주제에 서로 반대 결론
111
+ 4. LOW-QUALITY: experiment 상태 60일+ 미승격
112
+
113
+ ### 제외 규칙
114
+ - mature 상태는 절대 prune 대상이 아님
115
+ - verified 상태는 STALE일 때만 후보
116
+
117
+ ```
118
+ PRUNE CANDIDATES / 정리 후보
119
+ ════════════════════════════
120
+
121
+ STALE (30d+ unused):
122
+ 1. "{title}" ({N}일 미사용) [retire / keep]
123
+ 2. "{title}" ({N}일 미사용) [retire / keep]
124
+
125
+ DUPLICATE (similarity {N}%+):
126
+ 3. "{title-a}" ~ "{title-b}" ({N}%) [merge / keep both]
127
+
128
+ CONTRADICTORY:
129
+ 4. "{title-a}" vs "{title-b}" [resolve / keep both]
130
+
131
+ LOW-QUALITY (experiment {N}d+):
132
+ 5. "{title}" (experiment {N}일 경과) [retire / promote / keep]
133
+
134
+ 선택하세요 (번호 + 행동, 예: "1 retire, 3 merge, 4 resolve"):
135
+ ```
136
+
137
+ 사용자 선택을 받은 후에만 실행합니다.
138
+
139
+ ---
140
+
141
+ ## export
142
+
143
+ ```bash
144
+ # tar.gz (기본)
145
+ tar -czf compound-export-$(date +%Y%m%d).tar.gz ~/.forgen/me/solutions/
146
+
147
+ # markdown (--md 인수)
148
+ # 각 솔루션을 하나의 markdown으로 결합
149
+ ```
150
+
151
+ ```
152
+ EXPORT COMPLETE / 내보내기 완료
153
+ ================================
154
+ Format: {tar.gz / markdown}
155
+ File: {파일 경로}
156
+ Size: {크기}
157
+ Count: {솔루션 수}
158
+ ```
159
+
160
+ ---
161
+
162
+ ## import {path}
163
+
164
+ ```bash
165
+ tar -xzf {path} -C /tmp/compound-import/
166
+ ```
167
+
168
+ 중복 검사 후 처리:
169
+ - 동일 -> skip
170
+ - 유사 -> 사용자에게 merge/skip/replace 선택
171
+ - 신규 -> 추가
172
+
173
+ ```
174
+ IMPORT RESULTS / 가져오기 결과
175
+ ===============================
176
+ Source: {path}
177
+ Total: {N}개
178
+ Added: {N}개
179
+ Skipped: {N}개 (중복)
180
+ Merged: {N}개
181
+ ```
182
+ </Steps>
183
+
184
+ <Failure_Modes>
185
+ **확인 없이 retire**: 각 후보의 선택을 반드시 사용자에게 받는다. 자동 삭제 없음.
186
+ **mature 솔루션 삭제 제안**: mature는 prune 대상에서 제외. 3회 이상 활용된 지식은 가치가 검증됨.
187
+ **stats 없이 prune**: stats 먼저, 그 다음 prune 후보. 전체 맥락 없이 개별 삭제 불가.
188
+ **import 무조건 덮어쓰기**: 기존 솔루션과 충돌 시 반드시 중복 검사 먼저.
189
+ **빈 compound에서 prune 시도**: 솔루션이 없으면 "/compound로 세션 패턴을 축적하세요" 안내.
190
+ </Failure_Modes>
191
+
192
+ <Output>
193
+ ## stats 출력
194
+
195
+ ```
196
+ COMPOUND KNOWLEDGE / 복리 지식 현황
197
+ ════════════════════════════════════
198
+ Total: {N} solutions
199
+ ...
200
+ ```
201
+
202
+ ## prune 출력
203
+
204
+ ```
205
+ PRUNE CANDIDATES / 정리 후보
206
+ ════════════════════════════
207
+ [stale] "{title}" -- {N}일 미사용 -> retire/keep?
208
+ [duplicate] "{a}" ~ "{b}" -> merge/keep?
209
+ [low-quality] "{title}" -- experiment {N}일 -> retire/promote/keep?
210
+ ```
211
+ </Output>
212
+
213
+ <Policy>
214
+ - retire/merge는 반드시 사용자 확인 후 실행.
215
+ - mature 상태 솔루션은 prune 대상이 아님. 예외 없음.
216
+ - prune은 항상 stats 출력 이후에 후보 제시.
217
+ - export는 현재 디렉토리에 날짜 포함 파일명.
218
+ - import는 중복 검사 먼저, 충돌 시 사용자 선택.
219
+ - 서브커맨드 없으면 stats 기본 실행.
220
+ </Policy>
221
+
222
+ <Arguments>
223
+ - `search {query}`: 솔루션 검색
224
+ - `stats`: 전체 현황 통계 (기본값)
225
+ - `prune`: stale/중복/모순/저품질 감지 및 정리
226
+ - `export`: tar.gz 내보내기
227
+ - `export --md`: markdown 내보내기
228
+ - `import {path}`: 외부 compound 가져오기 (중복 검사 후 머지)
229
+ </Arguments>
230
+
231
+ $ARGUMENTS
@@ -0,0 +1,215 @@
1
+ ---
2
+ name: retro
3
+ description: This skill should be used when the user asks to "retro, 회고, retrospective, 돌아보기". Git 메트릭 + compound 건강도 + 학습 추세를 교차 분석하는 회고 리포트.
4
+ argument-hint: "[7d|14d|30d] [compare]"
5
+ model: inherit
6
+ allowed-tools:
7
+ - Read
8
+ - Grep
9
+ - Glob
10
+ - Bash
11
+ triggers:
12
+ - "retro"
13
+ - "회고"
14
+ - "retrospective"
15
+ - "돌아보기"
16
+ - "주간 회고"
17
+ - "월간 회고"
18
+ - "주간회고"
19
+ - "월간회고"
20
+ ---
21
+
22
+ <Purpose>
23
+ git log + compound 통계 + 교정 기록을 교차 분석하여 최근 기간의 개발 패턴을 파악합니다.
24
+ "잘 하고 있는가"가 아니라 "어디서 반복 마찰이 생기는가"를 발견하는 것이 목적입니다.
25
+ 데이터 없이 추측하지 않습니다. 모든 분석은 실제 수집된 데이터에 근거합니다.
26
+ </Purpose>
27
+
28
+ <Compound_Integration>
29
+ ## Compound 데이터 활용
30
+
31
+ retro는 compound stats를 핵심 데이터 소스로 사용합니다.
32
+
33
+ 분석 신호:
34
+ - 활용률 낮음 -> 축적은 되지만 재사용 안 됨 (검색 키워드 품질 문제)
35
+ - stale 많음 -> 정리 필요 (`/learn prune` 추천)
36
+ - experiment 비율 높음 -> 검증 없이 축적만 됨
37
+ - mature 비율 높음 -> 건강한 지식 베이스
38
+ </Compound_Integration>
39
+
40
+ <Steps>
41
+ ## Phase 1: 데이터 수집
42
+
43
+ 기간 기본값: 7d
44
+ `$ARGUMENTS`에서 파싱 (7d, 14d, 30d, compare).
45
+
46
+ ### 1-1: Git 활동 데이터
47
+
48
+ ```bash
49
+ # 커밋 이력
50
+ git log --since="{period}" --oneline --stat --format="%h|%an|%ai|%s"
51
+
52
+ # 기여자별 커밋
53
+ git shortlog --since="{period}" -sn
54
+
55
+ # 핫스팟 (파일별 변경 빈도)
56
+ git log --since="{period}" --name-only --pretty=format: | sort | uniq -c | sort -rn | head -10
57
+
58
+ # 변경 줄 수
59
+ git log --since="{period}" --stat --format="" | tail -1
60
+ ```
61
+
62
+ ### 1-2: Compound 데이터
63
+
64
+ ```
65
+ compound-stats
66
+ compound-list
67
+ ```
68
+
69
+ ### 1-3: 교정 기록
70
+
71
+ ```bash
72
+ ls -la ~/.forgen/me/evidence/ 2>/dev/null || echo "교정 데이터 없음"
73
+ find ~/.forgen/me/evidence/ -name "*.json" -mtime -{period_days} 2>/dev/null | wc -l
74
+ ```
75
+
76
+ ## Phase 2: 코드 활동 분석
77
+
78
+ - 커밋 수 (일 평균 포함)
79
+ - +추가 / -삭제 비율
80
+ - 핫스팟 Top 5 (3회+ 수정 -> 불안정 영역)
81
+
82
+ ## Phase 3: 세션 패턴 분석
83
+
84
+ ```
85
+ 세션 분리: 45분+ 간격 = 새 세션
86
+ ```
87
+
88
+ - 세션 수, 평균 길이
89
+ - 시간대 분포 (정보 제공용, 판단은 사용자에게)
90
+
91
+ ## Phase 4: Compound 건강도 분석
92
+
93
+ ```
94
+ 총 솔루션, 상태별/유형별 비율, 활용률, stale 후보
95
+ ```
96
+
97
+ 건강도 판정:
98
+ - HEALTHY: mature 20%+, stale < 5, 활용률 30%+
99
+ - ATTENTION: experiment 40%+, 또는 stale 5-10
100
+ - NEEDS CARE: stale 10+, 또는 활용률 10% 미만
101
+
102
+ ## Phase 5: 학습 추세 분석
103
+
104
+ - 교정 감소 -> 학습 중 (좋은 신호)
105
+ - 교정 증가 -> 드리프트 발생
106
+ - 동일 축 반복 -> `/calibrate` 권장
107
+ - 데이터 없음 -> "교정 데이터 없음" 표시
108
+
109
+ ## Phase 6: 추천 생성 (반드시 3개)
110
+
111
+ 데이터 근거 규칙:
112
+ - 핫스팟 존재 -> `/code-review {파일}`
113
+ - stale 5개+ -> `/learn prune`
114
+ - 동일 교정 3회+ -> `/calibrate`
115
+ - experiment 40%+ -> compound 품질 개선
116
+ - 활용률 10% 미만 -> compound 검색 개선
117
+ - 커밋 급감 -> 블로커 확인
118
+ </Steps>
119
+
120
+ <Compare_Mode>
121
+ ## Compare 모드
122
+
123
+ `/retro compare` 또는 `/retro 14d compare`
124
+
125
+ ```bash
126
+ # 현재 기간
127
+ git log --since="{period}" --oneline --stat
128
+ # 이전 기간
129
+ git log --since="{period*2}" --until="{period}" --oneline --stat
130
+ ```
131
+
132
+ ```
133
+ COMPARE / 기간 비교
134
+ ════════════════════
135
+ Previous {N}d This {N}d Delta
136
+ Commits: {N} {N} {+/-N}%
137
+ LOC: +{N} +{N} {+/-N}%
138
+ Files: {N} {N} {+/-N}%
139
+ Hotspot: {file}({N}) {file}({N}) {NEW/SAME/GONE}
140
+ Sessions: {N} {N} {+/-N}%
141
+ Compound hits: {N} {N} {+/-N}%
142
+ Corrections: {N} {N} {+/-N}% {arrow}
143
+ ```
144
+
145
+ Delta 해석:
146
+ - 커밋 증가 + 교정 감소 -> 생산성 + 학습 (최고)
147
+ - 커밋 감소 + 핫스팟 동일 -> 같은 파일에서 막힘 (구조적 문제)
148
+ - Compound hits 증가 -> 복리 효과 발현
149
+ </Compare_Mode>
150
+
151
+ <Failure_Modes>
152
+ **데이터 없이 추측**: git log + compound stats 수집 후 분석. 느낌 기반 회고 금지.
153
+ **긍정만 보고**: 핫스팟, stale, 개선점 반드시 포함. 칭찬 보고서는 가치 없음.
154
+ **추천 없는 보고서**: 반드시 3개 next action. "계속 잘 하세요"는 추천이 아님.
155
+ **기간 무시**: `--since` 파라미터 정확 적용.
156
+ **세션 패턴 판단**: 데이터만 보여주고 판단은 사용자에게.
157
+ </Failure_Modes>
158
+
159
+ <Output>
160
+ ```
161
+ RETRO / 회고
162
+ ════════════
163
+ 기간: {start} ~ {end}
164
+
165
+ CODE ACTIVITY
166
+ ─────────────
167
+ 커밋: {N}개 (일 평균 {N}개) | +{N} / -{N} | 파일: {N}개
168
+ 세션: {N}개 (평균 {N}분)
169
+
170
+ 핫스팟:
171
+ 1. {file} ({N}회 수정) <- 구조 리뷰 권장
172
+ 2. {file} ({N}회 수정)
173
+ 3. {file} ({N}회 수정)
174
+ 4. {file} ({N}회 수정)
175
+ 5. {file} ({N}회 수정)
176
+
177
+ COMPOUND HEALTH [{HEALTHY/ATTENTION/NEEDS CARE}]
178
+ ───────────────
179
+ 총: {N}개 | mature: {N} | verified: {N} | candidate: {N} | experiment: {N}
180
+ 활용률: {N}% (지난주 대비 {+/-N}%)
181
+ Stale 후보: {N}개
182
+ 신규: +{N}개 | 승격: +{N}개 | 은퇴: -{N}개
183
+
184
+ LEARNING TREND
185
+ ──────────────
186
+ 교정: {N} -> {N} ({down/up/flat} {arrow})
187
+ 드리프트: {N}회
188
+
189
+ RECOMMENDATIONS
190
+ ───────────────
191
+ 1. {action} -- {data-backed reason}
192
+ 2. {action} -- {data-backed reason}
193
+ 3. {action} -- {data-backed reason}
194
+ ```
195
+ </Output>
196
+
197
+ <Policy>
198
+ - 데이터 수집 없이 회고 시작하지 않음.
199
+ - 기간 없으면 7d 기본.
200
+ - 추천은 수집된 데이터에만 근거. 추측 금지.
201
+ - 추천 반드시 3개.
202
+ - compare 모드: 두 기간 delta 시각화.
203
+ - 핫스팟 Top 5.
204
+ - compound 건강도 3단계 판정.
205
+ </Policy>
206
+
207
+ <Arguments>
208
+ - `7d`: 최근 7일 회고 (기본값)
209
+ - `14d`: 최근 14일 회고
210
+ - `30d`: 최근 30일 회고
211
+ - `compare`: 현재 기간 vs 이전 동일 기간 비교
212
+ - `14d compare`: 14일 회고 + 기간 비교
213
+ </Arguments>
214
+
215
+ $ARGUMENTS