@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
@@ -1,260 +0,0 @@
1
- ---
2
- name: testing-strategy
3
- description: This skill should be used when the user asks to "testing strategy,테스트 전략,test plan,테스트 계획,coverage plan". Test strategy design, coverage analysis, and quality planning
4
- ---
5
-
6
- <!-- forgen-managed -->
7
-
8
- <Purpose>
9
- 테스트 전략을 수립하고 커버리지 계획을 설계합니다.
10
- TDD 스킬이 Red-Green-Refactor 워크플로우를 다루는 반면,
11
- 이 스킬은 "무엇을 어떻게 테스트할 것인가"의 전략적 관점을 다룹니다.
12
- 테스트 피라미드, 커버리지 갭 분석, 우선순위 결정을 수행합니다.
13
- </Purpose>
14
-
15
- <Steps>
16
- 1. **현재 커버리지 평가**: 기존 테스트 상태를 분석합니다
17
- - 라인/브랜치/함수 커버리지 측정
18
- - 테스트 피라미드 비율 분석 (unit : integration : e2e)
19
- - 테스트 실행 시간 측정
20
- - 불안정(flaky) 테스트 식별
21
- - 테스트 없는 핵심 경로 식별
22
- - 최근 버그의 테스트 커버리지 분석 (커버 되었는가?)
23
-
24
- 2. **갭 분석**: 테스트가 부족한 영역을 식별합니다
25
- - 비즈니스 로직의 테스트 커버리지 확인
26
- - 에러 핸들링 경로의 테스트 존재 여부
27
- - 엣지 케이스 누락 식별
28
- * 빈 입력, null/undefined
29
- * 경계값 (최소/최대)
30
- * 동시성/경쟁 조건
31
- * 타임아웃/네트워크 에러
32
- - 보안 관련 로직의 테스트 확인 (인증, 인가, 입력 검증)
33
- - 통합 테스트 누락 (모듈 간 상호작용)
34
- - 외부 의존성 모킹의 적절성
35
-
36
- 3. **우선순위 결정**: 테스트 작성 순서를 결정합니다
37
- - 위험도 기반 우선순위 매트릭스:
38
- * [P0] 결제, 인증, 데이터 무결성 -- 반드시 테스트
39
- * [P1] 핵심 비즈니스 로직 -- 높은 우선순위
40
- * [P2] 일반 CRUD 작업 -- 중간 우선순위
41
- * [P3] 유틸리티, 헬퍼 -- 낮은 우선순위
42
- - 변경 빈도가 높은 코드 우선
43
- - 최근 버그가 발생한 모듈 우선
44
- - 복잡도가 높은 함수 우선
45
-
46
- 4. **테스트 전략 수립**: 테스트 유형별 전략을 설계합니다
47
- - Unit Test 전략:
48
- * 순수 함수: 입력/출력 테스트
49
- * 사이드 이펙트: 모킹/스터빙
50
- * 커버리지 목표: 85%+ (브랜치 기준)
51
- - Integration Test 전략:
52
- * 모듈 간 상호작용 검증
53
- * 외부 서비스 모킹 범위
54
- * 데이터베이스 테스트 (인메모리 vs 컨테이너)
55
- - E2E Test 전략:
56
- * 핵심 사용자 시나리오 선정
57
- * 테스트 환경 구성
58
- * 데이터 시딩 전략
59
- - 성능 Test 전략:
60
- * 부하 테스트 시나리오
61
- * 성능 기준값 설정
62
-
63
- 5. **구현 및 추적**: 테스트를 점진적으로 구현합니다
64
- - 테스트 작성 태스크 목록 생성
65
- - 커버리지 추적 대시보드 설정
66
- - CI 파이프라인에 커버리지 게이트 추가
67
- - 정기적인 커버리지 리뷰 일정 설정
68
- - 뮤테이션 테스트 도입 계획 (핵심 비즈니스 로직)
69
- </Steps>
70
-
71
- ## 에이전트 위임
72
-
73
- `test-engineer` 에이전트(Opus 모델)에 위임하여 테스트 전략을 수립합니다:
74
-
75
- ```
76
- Agent(
77
- subagent_type="test-engineer",
78
- model="opus",
79
- prompt="TESTING STRATEGY TASK
80
-
81
- 테스트 전략을 수립하고 커버리지 계획을 설계하세요.
82
-
83
- Project: [프로젝트 설명]
84
- Current Coverage: [현재 커버리지 또는 '미측정']
85
-
86
- Strategy Checklist:
87
- 1. 현재 커버리지 측정 및 분석
88
- 2. 테스트 갭 식별 (에러 경로, 엣지 케이스)
89
- 3. 위험도 기반 우선순위 결정
90
- 4. 테스트 유형별 전략 (unit/integration/e2e)
91
- 5. 구현 로드맵 및 커버리지 목표
92
-
93
- Output: 테스트 전략 문서:
94
- - 현재 커버리지 분석
95
- - 갭 분석 결과
96
- - 우선순위 목록
97
- - 유형별 전략
98
- - 커버리지 목표 및 로드맵"
99
- )
100
- ```
101
-
102
- ## External Consultation (Optional)
103
-
104
- test-engineer 에이전트는 교차 검증을 위해 Claude Task 에이전트에 자문할 수 있습니다.
105
-
106
- ### Protocol
107
- 1. **자체 전략을 먼저 수립** -- 독립적으로 분석 수행
108
- 2. **검증을 위한 자문** -- Claude Task 에이전트를 통해 전략 교차 확인
109
- 3. **비판적 평가** -- 외부 제안을 맹목적으로 수용하지 않음
110
- 4. **우아한 폴백** -- 위임이 불가능할 경우 절대 차단하지 않음
111
-
112
- ### 자문이 필요한 경우
113
- - 복잡한 도메인의 테스트 커버리지 전략
114
- - 마이크로서비스 간 통합 테스트 설계
115
- - 성능/부하 테스트 시나리오 설계
116
- - 뮤테이션 테스트 도입 전략
117
-
118
- ### 자문을 생략하는 경우
119
- - 단순 유닛 테스트 계획
120
- - 명확한 CRUD 테스트
121
- - 기존 패턴 반복
122
- - 소규모 모듈의 테스트
123
-
124
- ## 테스트 피라미드 기준
125
-
126
- ```
127
- / E2E \ 5~10% (핵심 시나리오만)
128
- /----------\
129
- / Integration \ 15~25% (모듈 간 상호작용)
130
- /----------------\
131
- / Unit Tests \ 70~80% (모든 비즈니스 로직)
132
- /--------------------\
133
- ```
134
-
135
- ## 커버리지 목표 가이드
136
-
137
- | 코드 유형 | 라인 | 브랜치 | 뮤테이션 |
138
- |-----------|------|--------|----------|
139
- | 결제/인증 | 95%+ | 90%+ | 80%+ |
140
- | 비즈니스 로직 | 85%+ | 80%+ | 70%+ |
141
- | 유틸리티 | 80%+ | 75%+ | -- |
142
- | UI 컴포넌트 | 70%+ | 60%+ | -- |
143
- | 설정/부트스트랩 | 60%+ | -- | -- |
144
-
145
- ## 테스트 품질 지표
146
-
147
- | 지표 | 건강 | 주의 | 위험 |
148
- |------|------|------|------|
149
- | 브랜치 커버리지 | > 80% | 60~80% | < 60% |
150
- | 테스트 실행 시간 | < 30s | 30s~2m | > 2m |
151
- | Flaky 테스트 비율 | 0% | < 2% | > 2% |
152
- | 뮤테이션 점수 | > 70% | 50~70% | < 50% |
153
-
154
- <Output>
155
- ```
156
- TESTING STRATEGY / 테스트 전략 문서
157
- =====================================
158
-
159
- Project: [프로젝트명]
160
- Date: YYYY-MM-DD
161
- Test Framework: [vitest / jest / playwright]
162
-
163
- CURRENT STATE / 현재 상태
164
- ---------------------------
165
- Line Coverage: 72% (target: 85%)
166
- Branch Coverage: 58% (target: 80%)
167
- Test Count: 142 (unit: 120, integration: 18, e2e: 4)
168
- Execution Time: 24s
169
- Flaky Tests: 2 (src/api/order.test.ts, src/utils/date.test.ts)
170
-
171
- GAP ANALYSIS / 갭 분석
172
- ------------------------
173
- [P0] CRITICAL GAPS (테스트 없는 핵심 경로):
174
- - src/services/payment.ts -- 결제 처리 로직 (0% coverage)
175
- - src/middleware/auth.ts -- 인증 미들웨어 에러 경로 (30% branch)
176
-
177
- [P1] HIGH GAPS (불충분한 커버리지):
178
- - src/services/order.ts -- 할인 계산 엣지 케이스 미테스트
179
- - src/utils/validation.ts -- 경계값 테스트 부재
180
-
181
- [P2] MEDIUM GAPS:
182
- - src/api/users.ts -- 통합 테스트 부재
183
- - src/components/Cart.tsx -- 상태 변경 테스트 부족
184
-
185
- IMPLEMENTATION ROADMAP / 구현 로드맵
186
- --------------------------------------
187
- Week 1: P0 갭 해소 (결제, 인증)
188
- - [ ] payment.ts 유닛 테스트 (15개)
189
- - [ ] auth.ts 에러 경로 테스트 (8개)
190
-
191
- Week 2: P1 갭 해소 (비즈니스 로직)
192
- - [ ] order.ts 엣지 케이스 테스트 (10개)
193
- - [ ] validation.ts 경계값 테스트 (12개)
194
-
195
- Week 3: 통합 테스트 보강
196
- - [ ] API 엔드포인트 통합 테스트 (20개)
197
- - [ ] E2E 핵심 시나리오 (3개)
198
-
199
- TARGET / 목표
200
- --------------
201
- Line Coverage: 72% → 85%
202
- Branch Coverage: 58% → 80%
203
- Test Count: 142 → 210
204
- Flaky Tests: 2 → 0
205
- ```
206
- </Output>
207
-
208
- <Policy>
209
- - 커버리지 숫자보다 테스트 품질을 우선합니다
210
- - 브랜치 커버리지를 라인 커버리지보다 중요하게 봅니다
211
- - 핵심 비즈니스 로직에 뮤테이션 테스트를 권장합니다
212
- - Flaky 테스트는 즉시 수정하거나 격리합니다
213
- - 테스트는 빠르게 실행되어야 합니다 (전체 30초 이내 목표)
214
- - 테스트 작성 계획은 스프린트에 통합하여 추적합니다
215
- </Policy>
216
-
217
- ## 다른 스킬과의 연동
218
-
219
- **TDD 연동:**
220
- ```
221
- /forgen:tdd 전략에서 식별된 갭 구현
222
- ```
223
- 전략에서 식별된 테스트 갭을 TDD로 구현
224
-
225
- **코드 리뷰 연동:**
226
- ```
227
- /forgen:code-review 테스트 코드 품질 확인
228
- ```
229
- 작성된 테스트 코드의 품질 검증
230
-
231
- **CI/CD 연동:**
232
- ```
233
- /forgen:ci-cd 커버리지 게이트 설정
234
- ```
235
- CI에서 커버리지 임계값 강제
236
-
237
- ## Best Practices
238
-
239
- - **전략 먼저** -- 무작정 테스트를 쓰기 전에 어디가 중요한지 파악
240
- - **위험 기반** -- 모든 코드를 균일하게 테스트하지 않음
241
- - **피라미드 유지** -- E2E에 의존하지 않고 유닛 테스트 기반 구축
242
- - **Flaky 제로** -- 불안정한 테스트는 신뢰를 해침
243
- - **지속 추적** -- 커버리지 트렌드를 모니터링
244
-
245
- <Arguments>
246
- ## 사용법
247
- `/forgen:testing-strategy {대상}`
248
-
249
- ### 예시
250
- - `/forgen:testing-strategy 전체 프로젝트 커버리지 분석`
251
- - `/forgen:testing-strategy 결제 모듈 테스트 계획`
252
- - `/forgen:testing-strategy E2E 테스트 전략 수립`
253
- - `/forgen:testing-strategy 현재 테스트의 갭 분석`
254
-
255
- ### 인자
256
- - 분석 대상 모듈, 테스트 유형, 목표 등을 설명
257
- - 인자 없으면 프로젝트 전체의 테스트 전략을 수립
258
- </Arguments>
259
-
260
- $ARGUMENTS