@wooojin/forgen 0.1.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 (268) hide show
  1. package/.claude-plugin/plugin.json +20 -0
  2. package/CHANGELOG.md +353 -0
  3. package/CONTRIBUTING.md +98 -0
  4. package/LICENSE +21 -0
  5. package/README.ja.md +469 -0
  6. package/README.ko.md +469 -0
  7. package/README.md +483 -0
  8. package/README.zh.md +469 -0
  9. package/agents/analyst.md +98 -0
  10. package/agents/architect.md +62 -0
  11. package/agents/code-reviewer.md +120 -0
  12. package/agents/code-simplifier.md +197 -0
  13. package/agents/critic.md +70 -0
  14. package/agents/debugger.md +117 -0
  15. package/agents/designer.md +131 -0
  16. package/agents/executor.md +54 -0
  17. package/agents/explore.md +145 -0
  18. package/agents/git-master.md +212 -0
  19. package/agents/performance-reviewer.md +172 -0
  20. package/agents/planner.md +29 -0
  21. package/agents/qa-tester.md +158 -0
  22. package/agents/refactoring-expert.md +168 -0
  23. package/agents/scientist.md +144 -0
  24. package/agents/security-reviewer.md +137 -0
  25. package/agents/test-engineer.md +153 -0
  26. package/agents/verifier.md +133 -0
  27. package/agents/writer.md +184 -0
  28. package/commands/api-design.md +268 -0
  29. package/commands/architecture-decision.md +314 -0
  30. package/commands/ci-cd.md +270 -0
  31. package/commands/code-review.md +233 -0
  32. package/commands/compound.md +117 -0
  33. package/commands/database.md +263 -0
  34. package/commands/debug-detective.md +99 -0
  35. package/commands/docker.md +274 -0
  36. package/commands/documentation.md +276 -0
  37. package/commands/ecomode.md +51 -0
  38. package/commands/frontend.md +271 -0
  39. package/commands/git-master.md +90 -0
  40. package/commands/incident-response.md +292 -0
  41. package/commands/migrate.md +101 -0
  42. package/commands/performance.md +288 -0
  43. package/commands/refactor.md +105 -0
  44. package/commands/security-review.md +288 -0
  45. package/commands/tdd.md +183 -0
  46. package/commands/testing-strategy.md +265 -0
  47. package/dist/cli.d.ts +2 -0
  48. package/dist/cli.js +295 -0
  49. package/dist/core/auto-compound-runner.d.ts +12 -0
  50. package/dist/core/auto-compound-runner.js +460 -0
  51. package/dist/core/config-hooks.d.ts +10 -0
  52. package/dist/core/config-hooks.js +112 -0
  53. package/dist/core/config-injector.d.ts +50 -0
  54. package/dist/core/config-injector.js +455 -0
  55. package/dist/core/doctor.d.ts +1 -0
  56. package/dist/core/doctor.js +163 -0
  57. package/dist/core/errors.d.ts +81 -0
  58. package/dist/core/errors.js +133 -0
  59. package/dist/core/global-config.d.ts +43 -0
  60. package/dist/core/global-config.js +25 -0
  61. package/dist/core/harness.d.ts +24 -0
  62. package/dist/core/harness.js +621 -0
  63. package/dist/core/init.d.ts +7 -0
  64. package/dist/core/init.js +37 -0
  65. package/dist/core/inspect-cli.d.ts +7 -0
  66. package/dist/core/inspect-cli.js +47 -0
  67. package/dist/core/legacy-detector.d.ts +33 -0
  68. package/dist/core/legacy-detector.js +66 -0
  69. package/dist/core/logger.d.ts +34 -0
  70. package/dist/core/logger.js +121 -0
  71. package/dist/core/mcp-config.d.ts +44 -0
  72. package/dist/core/mcp-config.js +177 -0
  73. package/dist/core/notepad.d.ts +31 -0
  74. package/dist/core/notepad.js +88 -0
  75. package/dist/core/paths.d.ts +85 -0
  76. package/dist/core/paths.js +101 -0
  77. package/dist/core/plugin-detector.d.ts +44 -0
  78. package/dist/core/plugin-detector.js +226 -0
  79. package/dist/core/runtime-detector.d.ts +8 -0
  80. package/dist/core/runtime-detector.js +49 -0
  81. package/dist/core/scope-resolver.d.ts +8 -0
  82. package/dist/core/scope-resolver.js +45 -0
  83. package/dist/core/session-logger.d.ts +6 -0
  84. package/dist/core/session-logger.js +111 -0
  85. package/dist/core/session-store.d.ts +28 -0
  86. package/dist/core/session-store.js +218 -0
  87. package/dist/core/settings-lock.d.ts +18 -0
  88. package/dist/core/settings-lock.js +125 -0
  89. package/dist/core/spawn.d.ts +3 -0
  90. package/dist/core/spawn.js +135 -0
  91. package/dist/core/types.d.ts +108 -0
  92. package/dist/core/types.js +1 -0
  93. package/dist/core/uninstall.d.ts +4 -0
  94. package/dist/core/uninstall.js +307 -0
  95. package/dist/core/v1-bootstrap.d.ts +26 -0
  96. package/dist/core/v1-bootstrap.js +155 -0
  97. package/dist/engine/compound-cli.d.ts +24 -0
  98. package/dist/engine/compound-cli.js +250 -0
  99. package/dist/engine/compound-extractor.d.ts +68 -0
  100. package/dist/engine/compound-extractor.js +860 -0
  101. package/dist/engine/compound-lifecycle.d.ts +32 -0
  102. package/dist/engine/compound-lifecycle.js +305 -0
  103. package/dist/engine/compound-loop.d.ts +32 -0
  104. package/dist/engine/compound-loop.js +511 -0
  105. package/dist/engine/match-eval-log.d.ts +139 -0
  106. package/dist/engine/match-eval-log.js +270 -0
  107. package/dist/engine/phrase-blocklist.d.ts +119 -0
  108. package/dist/engine/phrase-blocklist.js +208 -0
  109. package/dist/engine/skill-promoter.d.ts +20 -0
  110. package/dist/engine/skill-promoter.js +115 -0
  111. package/dist/engine/solution-format.d.ts +160 -0
  112. package/dist/engine/solution-format.js +432 -0
  113. package/dist/engine/solution-index.d.ts +13 -0
  114. package/dist/engine/solution-index.js +252 -0
  115. package/dist/engine/solution-matcher.d.ts +364 -0
  116. package/dist/engine/solution-matcher.js +656 -0
  117. package/dist/engine/solution-writer.d.ts +76 -0
  118. package/dist/engine/solution-writer.js +157 -0
  119. package/dist/engine/term-matcher.d.ts +81 -0
  120. package/dist/engine/term-matcher.js +268 -0
  121. package/dist/engine/term-normalizer.d.ts +116 -0
  122. package/dist/engine/term-normalizer.js +171 -0
  123. package/dist/fgx.d.ts +6 -0
  124. package/dist/fgx.js +42 -0
  125. package/dist/forge/cli.d.ts +11 -0
  126. package/dist/forge/cli.js +100 -0
  127. package/dist/forge/evidence-processor.d.ts +21 -0
  128. package/dist/forge/evidence-processor.js +87 -0
  129. package/dist/forge/mismatch-detector.d.ts +44 -0
  130. package/dist/forge/mismatch-detector.js +83 -0
  131. package/dist/forge/onboarding-cli.d.ts +6 -0
  132. package/dist/forge/onboarding-cli.js +89 -0
  133. package/dist/forge/onboarding.d.ts +25 -0
  134. package/dist/forge/onboarding.js +122 -0
  135. package/dist/hooks/compound-reflection.d.ts +45 -0
  136. package/dist/hooks/compound-reflection.js +82 -0
  137. package/dist/hooks/context-guard.d.ts +24 -0
  138. package/dist/hooks/context-guard.js +156 -0
  139. package/dist/hooks/dangerous-patterns.json +18 -0
  140. package/dist/hooks/db-guard.d.ts +17 -0
  141. package/dist/hooks/db-guard.js +105 -0
  142. package/dist/hooks/hook-config.d.ts +29 -0
  143. package/dist/hooks/hook-config.js +92 -0
  144. package/dist/hooks/hook-registry.d.ts +43 -0
  145. package/dist/hooks/hook-registry.js +31 -0
  146. package/dist/hooks/hooks-generator.d.ts +49 -0
  147. package/dist/hooks/hooks-generator.js +99 -0
  148. package/dist/hooks/intent-classifier.d.ts +12 -0
  149. package/dist/hooks/intent-classifier.js +62 -0
  150. package/dist/hooks/keyword-detector.d.ts +25 -0
  151. package/dist/hooks/keyword-detector.js +389 -0
  152. package/dist/hooks/notepad-injector.d.ts +18 -0
  153. package/dist/hooks/notepad-injector.js +51 -0
  154. package/dist/hooks/permission-handler.d.ts +14 -0
  155. package/dist/hooks/permission-handler.js +114 -0
  156. package/dist/hooks/post-tool-failure.d.ts +11 -0
  157. package/dist/hooks/post-tool-failure.js +118 -0
  158. package/dist/hooks/post-tool-handlers.d.ts +17 -0
  159. package/dist/hooks/post-tool-handlers.js +115 -0
  160. package/dist/hooks/post-tool-use.d.ts +29 -0
  161. package/dist/hooks/post-tool-use.js +151 -0
  162. package/dist/hooks/pre-compact.d.ts +10 -0
  163. package/dist/hooks/pre-compact.js +165 -0
  164. package/dist/hooks/pre-tool-use.d.ts +31 -0
  165. package/dist/hooks/pre-tool-use.js +325 -0
  166. package/dist/hooks/prompt-injection-filter.d.ts +56 -0
  167. package/dist/hooks/prompt-injection-filter.js +287 -0
  168. package/dist/hooks/rate-limiter.d.ts +21 -0
  169. package/dist/hooks/rate-limiter.js +86 -0
  170. package/dist/hooks/secret-filter.d.ts +14 -0
  171. package/dist/hooks/secret-filter.js +65 -0
  172. package/dist/hooks/session-recovery.d.ts +27 -0
  173. package/dist/hooks/session-recovery.js +406 -0
  174. package/dist/hooks/shared/atomic-write.d.ts +41 -0
  175. package/dist/hooks/shared/atomic-write.js +148 -0
  176. package/dist/hooks/shared/context-budget.d.ts +37 -0
  177. package/dist/hooks/shared/context-budget.js +45 -0
  178. package/dist/hooks/shared/file-lock.d.ts +56 -0
  179. package/dist/hooks/shared/file-lock.js +253 -0
  180. package/dist/hooks/shared/hook-response.d.ts +33 -0
  181. package/dist/hooks/shared/hook-response.js +62 -0
  182. package/dist/hooks/shared/injection-caps.d.ts +39 -0
  183. package/dist/hooks/shared/injection-caps.js +52 -0
  184. package/dist/hooks/shared/plugin-signal.d.ts +23 -0
  185. package/dist/hooks/shared/plugin-signal.js +104 -0
  186. package/dist/hooks/shared/read-stdin.d.ts +8 -0
  187. package/dist/hooks/shared/read-stdin.js +63 -0
  188. package/dist/hooks/shared/sanitize-id.d.ts +7 -0
  189. package/dist/hooks/shared/sanitize-id.js +9 -0
  190. package/dist/hooks/shared/sanitize.d.ts +7 -0
  191. package/dist/hooks/shared/sanitize.js +22 -0
  192. package/dist/hooks/skill-injector.d.ts +38 -0
  193. package/dist/hooks/skill-injector.js +285 -0
  194. package/dist/hooks/slop-detector.d.ts +18 -0
  195. package/dist/hooks/slop-detector.js +93 -0
  196. package/dist/hooks/solution-injector.d.ts +58 -0
  197. package/dist/hooks/solution-injector.js +436 -0
  198. package/dist/hooks/subagent-tracker.d.ts +10 -0
  199. package/dist/hooks/subagent-tracker.js +90 -0
  200. package/dist/i18n/index.d.ts +43 -0
  201. package/dist/i18n/index.js +224 -0
  202. package/dist/lib.d.ts +14 -0
  203. package/dist/lib.js +14 -0
  204. package/dist/mcp/server.d.ts +8 -0
  205. package/dist/mcp/server.js +40 -0
  206. package/dist/mcp/solution-reader.d.ts +90 -0
  207. package/dist/mcp/solution-reader.js +273 -0
  208. package/dist/mcp/tools.d.ts +16 -0
  209. package/dist/mcp/tools.js +302 -0
  210. package/dist/preset/facet-catalog.d.ts +17 -0
  211. package/dist/preset/facet-catalog.js +46 -0
  212. package/dist/preset/preset-manager.d.ts +31 -0
  213. package/dist/preset/preset-manager.js +111 -0
  214. package/dist/renderer/inspect-renderer.d.ts +11 -0
  215. package/dist/renderer/inspect-renderer.js +123 -0
  216. package/dist/renderer/rule-renderer.d.ts +18 -0
  217. package/dist/renderer/rule-renderer.js +159 -0
  218. package/dist/store/evidence-store.d.ts +23 -0
  219. package/dist/store/evidence-store.js +58 -0
  220. package/dist/store/profile-store.d.ts +12 -0
  221. package/dist/store/profile-store.js +53 -0
  222. package/dist/store/recommendation-store.d.ts +22 -0
  223. package/dist/store/recommendation-store.js +64 -0
  224. package/dist/store/rule-store.d.ts +22 -0
  225. package/dist/store/rule-store.js +62 -0
  226. package/dist/store/session-state-store.d.ts +11 -0
  227. package/dist/store/session-state-store.js +44 -0
  228. package/dist/store/types.d.ts +159 -0
  229. package/dist/store/types.js +7 -0
  230. package/hooks/hook-registry.json +21 -0
  231. package/hooks/hooks.json +185 -0
  232. package/package.json +89 -0
  233. package/plugin.json +20 -0
  234. package/scripts/postinstall.js +826 -0
  235. package/skills/api-design/SKILL.md +262 -0
  236. package/skills/architecture-decision/SKILL.md +309 -0
  237. package/skills/ci-cd/SKILL.md +264 -0
  238. package/skills/code-review/SKILL.md +228 -0
  239. package/skills/compound/SKILL.md +101 -0
  240. package/skills/database/SKILL.md +257 -0
  241. package/skills/debug-detective/SKILL.md +95 -0
  242. package/skills/docker/SKILL.md +268 -0
  243. package/skills/documentation/SKILL.md +270 -0
  244. package/skills/ecomode/SKILL.md +46 -0
  245. package/skills/frontend/SKILL.md +265 -0
  246. package/skills/git-master/SKILL.md +86 -0
  247. package/skills/incident-response/SKILL.md +286 -0
  248. package/skills/migrate/SKILL.md +96 -0
  249. package/skills/performance/SKILL.md +282 -0
  250. package/skills/refactor/SKILL.md +100 -0
  251. package/skills/security-review/SKILL.md +282 -0
  252. package/skills/tdd/SKILL.md +178 -0
  253. package/skills/testing-strategy/SKILL.md +260 -0
  254. package/starter-pack/solutions/starter-api-error-responses.md +37 -0
  255. package/starter-pack/solutions/starter-async-patterns.md +40 -0
  256. package/starter-pack/solutions/starter-caching-strategy.md +40 -0
  257. package/starter-pack/solutions/starter-code-review-checklist.md +39 -0
  258. package/starter-pack/solutions/starter-debugging-systematic.md +40 -0
  259. package/starter-pack/solutions/starter-dependency-injection.md +40 -0
  260. package/starter-pack/solutions/starter-error-handling-patterns.md +38 -0
  261. package/starter-pack/solutions/starter-git-atomic-commits.md +36 -0
  262. package/starter-pack/solutions/starter-input-validation.md +40 -0
  263. package/starter-pack/solutions/starter-n-plus-one-queries.md +37 -0
  264. package/starter-pack/solutions/starter-refactor-safely.md +38 -0
  265. package/starter-pack/solutions/starter-secret-management.md +37 -0
  266. package/starter-pack/solutions/starter-separation-of-concerns.md +36 -0
  267. package/starter-pack/solutions/starter-tdd-red-green-refactor.md +40 -0
  268. package/starter-pack/solutions/starter-typescript-strict-types.md +39 -0
@@ -0,0 +1,286 @@
1
+ ---
2
+ name: incident-response
3
+ description: This skill should be used when the user asks to "incident,장애 대응,postmortem,장애 분석,사후 분석,outage". Incident response workflow with triage, mitigation, root cause analysis, and postmortem
4
+ ---
5
+
6
+ <!-- forgen-managed -->
7
+
8
+ <Purpose>
9
+ 장애 대응과 사후 분석(포스트모텀)을 체계적으로 수행합니다.
10
+ 트리아지, 긴급 완화, 근본 원인 분석, 수정, 사후 분석 보고서 작성,
11
+ 재발 방지 액션 아이템까지 인시던트 대응의 전체 라이프사이클을 다룹니다.
12
+ </Purpose>
13
+
14
+ <Steps>
15
+ 1. **트리아지**: 장애 심각도와 영향 범위를 신속히 판단합니다
16
+ - 장애 증상 수집 (에러 로그, 모니터링 알림, 사용자 보고)
17
+ - 심각도 분류:
18
+ * **SEV-1** (Critical): 서비스 전체 중단, 데이터 손실
19
+ * **SEV-2** (Major): 핵심 기능 장애, 일부 사용자 영향
20
+ * **SEV-3** (Minor): 비핵심 기능 장애, 우회 가능
21
+ * **SEV-4** (Low): 성능 저하, 미미한 영향
22
+ - 영향 범위 파악 (사용자 수, 기능, 지역)
23
+ - 타임라인 시작 (발생 시각 기록)
24
+ - 커뮤니케이션 채널 설정 (Slack 채널, 상태 페이지)
25
+ - 담당자 지정 (Incident Commander, Communication Lead)
26
+
27
+ 2. **긴급 완화**: 즉각적인 피해를 줄입니다
28
+ - 최근 배포 확인 (배포가 원인인가?)
29
+ - 롤백 가능 여부 판단 및 실행
30
+ - 장애 서비스 격리 (트래픽 차단, 서킷 브레이커)
31
+ - 임시 조치 적용 (캐시 비우기, 서비스 재시작, 스케일 아웃)
32
+ - 상태 페이지 업데이트 (사용자 공지)
33
+ - 완화 효과 확인 (모니터링 지표 정상화 여부)
34
+
35
+ 3. **근본 원인 분석**: 장애의 진짜 원인을 찾습니다
36
+ - 타임라인 재구성 (분 단위)
37
+ - 로그 분석 (에러 로그, 액세스 로그, 감사 로그)
38
+ - 메트릭 분석 (CPU, 메모리, 네트워크, 요청/에러율)
39
+ - 배포 이력 확인 (코드 변경, 설정 변경, 인프라 변경)
40
+ - 5 Whys 기법 적용:
41
+ * Why 1: 직접 원인은?
42
+ * Why 2: 왜 그 원인이 발생했는가?
43
+ * Why 3: 왜 감지하지 못했는가?
44
+ * Why 4: 왜 방지하지 못했는가?
45
+ * Why 5: 근본적으로 무엇이 부족했는가?
46
+ - 기여 요인 식별 (코드, 인프라, 프로세스, 인적 요소)
47
+
48
+ 4. **수정 적용**: 근본 원인을 해결합니다
49
+ - 코드 수정 작성
50
+ - 코드 리뷰 (간소화된 긴급 리뷰)
51
+ - 테스트 작성 (장애 재현 테스트)
52
+ - 스테이징 검증
53
+ - 프로덕션 배포
54
+ - 모니터링 강화 (해당 지표 임계값 조정)
55
+ - 수정 효과 확인 (장애 증상 완전 해소)
56
+
57
+ 5. **포스트모텀 작성**: 사후 분석 보고서를 작성합니다
58
+ - 비난 없는 분석 (blameless postmortem)
59
+ - 타임라인 정리 (발생 → 감지 → 완화 → 해결)
60
+ - 근본 원인 요약
61
+ - 잘된 점 (What went well)
62
+ - 개선할 점 (What could be improved)
63
+ - 행운이었던 점 (Where we got lucky)
64
+
65
+ 6. **액션 아이템 도출**: 재발 방지 대책을 수립합니다
66
+ - 단기 조치 (1주 이내): 즉각적인 보호 장치
67
+ - 중기 조치 (1개월 이내): 시스템 개선
68
+ - 장기 조치 (분기 내): 아키텍처/프로세스 개선
69
+ - 각 액션 아이템에 담당자와 기한 지정
70
+ - 액션 아이템 추적 체계 설정 (이슈 트래커)
71
+ </Steps>
72
+
73
+ ## 에이전트 위임
74
+
75
+ `debugger` 에이전트(Opus 모델)에 위임하여 근본 원인 분석을 수행합니다:
76
+
77
+ ```
78
+ Agent(
79
+ subagent_type="debugger",
80
+ model="opus",
81
+ prompt="INCIDENT RESPONSE TASK
82
+
83
+ 장애 대응 및 근본 원인 분석을 수행하세요.
84
+
85
+ Incident: [장애 설명]
86
+ Severity: [SEV-1 / SEV-2 / SEV-3 / SEV-4]
87
+ Symptoms: [관찰된 증상]
88
+
89
+ Response Checklist:
90
+ 1. 트리아지 (심각도, 영향 범위)
91
+ 2. 긴급 완화 (롤백, 격리, 임시 조치)
92
+ 3. 근본 원인 분석 (로그, 메트릭, 5 Whys)
93
+ 4. 수정 적용 (코드 수정, 테스트, 배포)
94
+ 5. 포스트모텀 초안
95
+ 6. 액션 아이템 도출
96
+
97
+ Output: 인시던트 대응 리포트:
98
+ - 타임라인
99
+ - 근본 원인
100
+ - 완화/수정 조치
101
+ - 포스트모텀 요약
102
+ - 액션 아이템 목록"
103
+ )
104
+ ```
105
+
106
+ ## External Consultation (Optional)
107
+
108
+ debugger 에이전트는 교차 검증을 위해 Claude Task 에이전트에 자문할 수 있습니다.
109
+
110
+ ### Protocol
111
+ 1. **자체 분석을 먼저 완료** -- 독립적으로 근본 원인 조사
112
+ 2. **검증을 위한 자문** -- Claude Task 에이전트를 통해 분석 교차 확인
113
+ 3. **비판적 평가** -- 외부 제안을 맹목적으로 수용하지 않음
114
+ 4. **우아한 폴백** -- 위임이 불가능할 경우 절대 차단하지 않음
115
+
116
+ ### 자문이 필요한 경우
117
+ - 데이터 손실이 발생한 SEV-1 장애
118
+ - 보안 침해 의심
119
+ - 재현이 어려운 간헐적 장애
120
+ - 인프라 레벨의 복합 장애
121
+
122
+ ### 자문을 생략하는 경우
123
+ - 명확한 배포 실패 (롤백으로 해결)
124
+ - 단순 설정 오류
125
+ - 알려진 패턴의 장애
126
+ - SEV-3/SEV-4 수준의 경미한 이슈
127
+
128
+ ## 인시던트 대응 체크리스트
129
+
130
+ ### 즉시 대응 (5개)
131
+ - [ ] 장애 심각도가 분류됨
132
+ - [ ] 영향 범위가 파악됨
133
+ - [ ] 커뮤니케이션 채널이 설정됨
134
+ - [ ] 담당자가 지정됨
135
+ - [ ] 타임라인 기록이 시작됨
136
+
137
+ ### 완화 (4개)
138
+ - [ ] 최근 배포 확인 및 롤백 여부 판단됨
139
+ - [ ] 임시 조치가 적용됨
140
+ - [ ] 사용자에게 상태가 공지됨
141
+ - [ ] 완화 효과가 확인됨
142
+
143
+ ### 근본 원인 (4개)
144
+ - [ ] 로그 및 메트릭이 분석됨
145
+ - [ ] 5 Whys가 적용됨
146
+ - [ ] 기여 요인이 식별됨
147
+ - [ ] 근본 원인이 확정됨
148
+
149
+ ### 사후 조치 (5개)
150
+ - [ ] 수정이 코드 리뷰됨
151
+ - [ ] 재현 테스트가 작성됨
152
+ - [ ] 포스트모텀이 작성됨
153
+ - [ ] 액션 아이템에 담당자/기한이 지정됨
154
+ - [ ] 액션 아이템이 이슈 트래커에 등록됨
155
+
156
+ ## 대응 시간 기준
157
+
158
+ | 심각도 | 감지 | 대응 시작 | 완화 | 해결 |
159
+ |--------|------|-----------|------|------|
160
+ | **SEV-1** | < 5분 | < 15분 | < 1시간 | < 4시간 |
161
+ | **SEV-2** | < 15분 | < 30분 | < 4시간 | < 24시간 |
162
+ | **SEV-3** | < 1시간 | < 4시간 | < 24시간 | < 1주 |
163
+ | **SEV-4** | < 24시간 | 다음 스프린트 | -- | 백로그 |
164
+
165
+ <Output>
166
+ ```
167
+ INCIDENT REPORT / 인시던트 리포트
168
+ ===================================
169
+
170
+ Incident ID: INC-YYYY-NNN
171
+ Severity: [SEV-1 / SEV-2 / SEV-3 / SEV-4]
172
+ Status: [INVESTIGATING / MITIGATING / RESOLVED / POSTMORTEM]
173
+ Duration: [발생 → 해결 총 시간]
174
+
175
+ TIMELINE / 타임라인
176
+ ---------------------
177
+ HH:MM - [이벤트 설명]
178
+ HH:MM - 장애 감지 (모니터링 알림)
179
+ HH:MM - 트리아지 완료, SEV-N 선언
180
+ HH:MM - 긴급 완화 적용 (롤백/격리)
181
+ HH:MM - 서비스 정상화 확인
182
+ HH:MM - 근본 원인 확정
183
+ HH:MM - 영구 수정 배포
184
+
185
+ IMPACT / 영향
186
+ --------------
187
+ - 영향 받은 사용자: ~N명
188
+ - 영향 받은 기능: [기능 목록]
189
+ - 데이터 손실: [있음/없음]
190
+ - 수익 영향: [추정치]
191
+
192
+ ROOT CAUSE / 근본 원인
193
+ ------------------------
194
+ [근본 원인 설명]
195
+
196
+ 5 Whys:
197
+ 1. Why: [직접 원인]
198
+ 2. Why: [이유]
199
+ 3. Why: [이유]
200
+ 4. Why: [이유]
201
+ 5. Why: [근본 원인]
202
+
203
+ Contributing Factors:
204
+ - [기여 요인 1]
205
+ - [기여 요인 2]
206
+
207
+ POSTMORTEM / 사후 분석
208
+ -----------------------
209
+ What went well:
210
+ - [잘된 점 1]
211
+ - [잘된 점 2]
212
+
213
+ What could be improved:
214
+ - [개선할 점 1]
215
+ - [개선할 점 2]
216
+
217
+ Where we got lucky:
218
+ - [행운이었던 점]
219
+
220
+ ACTION ITEMS / 액션 아이템
221
+ ----------------------------
222
+ [단기 - 1주 이내]
223
+ - [ ] [조치 1] @담당자 (기한: YYYY-MM-DD)
224
+ - [ ] [조치 2] @담당자 (기한: YYYY-MM-DD)
225
+
226
+ [중기 - 1개월 이내]
227
+ - [ ] [조치 3] @담당자 (기한: YYYY-MM-DD)
228
+
229
+ [장기 - 분기 내]
230
+ - [ ] [조치 4] @담당자 (기한: YYYY-MM-DD)
231
+ ```
232
+ </Output>
233
+
234
+ <Policy>
235
+ - 비난 없는 문화를 유지합니다 -- 사람이 아닌 시스템과 프로세스에 집중
236
+ - 완화가 분석보다 우선입니다 -- 먼저 불을 끄고 원인을 찾습니다
237
+ - 타임라인은 정확하고 상세하게 기록합니다
238
+ - 포스트모텀은 장애 후 48시간 이내에 작성합니다
239
+ - 액션 아이템은 반드시 담당자와 기한을 지정합니다
240
+ - 동일한 장애가 두 번 발생하는 것은 허용되지 않습니다
241
+ </Policy>
242
+
243
+ ## 다른 스킬과의 연동
244
+
245
+ **디버그 탐정 연동:**
246
+ ```
247
+ /forgen:debug-detective 간헐적 장애 원인 분석
248
+ ```
249
+ 체계적 디버깅으로 근본 원인 추적
250
+
251
+ **보안 리뷰 연동:**
252
+ ```
253
+ /forgen:security-review 장애 원인이 보안 취약점인 경우
254
+ ```
255
+ 보안 관련 장애의 취약점 분석
256
+
257
+ **테스트 전략 연동:**
258
+ ```
259
+ /forgen:testing-strategy 장애 재발 방지 테스트
260
+ ```
261
+ 장애 재현 테스트 및 회귀 테스트 설계
262
+
263
+ ## Best Practices
264
+
265
+ - **즉시 대응** -- 장애 감지 후 최대한 빨리 대응 시작
266
+ - **커뮤니케이션** -- 이해관계자에게 정기적으로 상태 업데이트
267
+ - **비난 금지** -- 시스템과 프로세스를 개선하는 데 집중
268
+ - **기록 유지** -- 모든 조치와 판단의 근거를 기록
269
+ - **후속 추적** -- 액션 아이템이 실제로 완료되었는지 추적
270
+
271
+ <Arguments>
272
+ ## 사용법
273
+ `/forgen:incident-response {장애 상황}`
274
+
275
+ ### 예시
276
+ - `/forgen:incident-response API 500 에러 급증`
277
+ - `/forgen:incident-response 데이터베이스 연결 타임아웃`
278
+ - `/forgen:incident-response 어제 배포 후 로그인 실패 보고`
279
+ - `/forgen:incident-response INC-2026-042 포스트모텀 작성`
280
+
281
+ ### 인자
282
+ - 장애 증상, 에러 메시지, 영향 범위 등을 설명
283
+ - 인자 없으면 현재 시스템 상태를 점검
284
+ </Arguments>
285
+
286
+ $ARGUMENTS
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: migrate
3
+ description: This skill should be used when the user asks to "migrate,마이그레이션,업그레이드,upgrade". Safe migration workflow for DB, API, and framework upgrades
4
+ ---
5
+
6
+ <Purpose>
7
+ 데이터베이스 스키마 변경, API 버전 업그레이드, 프레임워크 마이그레이션을
8
+ 안전하게 수행하는 5단계 워크플로우를 제공합니다.
9
+ 각 단계에서 롤백 지점을 확보하여 위험을 최소화합니다.
10
+ </Purpose>
11
+
12
+ <Steps>
13
+ 1. **분석 (Analyze)**
14
+ - 현재 상태 스냅샷: 의존성 트리, 스키마 버전, API 계약 문서화
15
+ - 변경 영향 범위 파악: `grep -r "import.*{패키지}" --include="*.ts"`
16
+ - Breaking Change 목록 작성 (CHANGELOG, 공식 마이그레이션 가이드 확인)
17
+ - 영향받는 파일/컴포넌트/테이블 전수 조사
18
+
19
+ 2. **계획 (Plan)**
20
+ - 마이그레이션 단계를 원자적 작업으로 분해
21
+ - 각 단계별 성공 기준(Done Criteria) 정의
22
+ - 롤백 트리거 조건 명시 (에러율 > N%, 레이턴시 > Nms)
23
+ - 다운타임 허용 여부 결정 → Zero-downtime 전략 수립
24
+
25
+ 3. **백업 (Backup)**
26
+ ```bash
27
+ # DB 백업
28
+ pg_dump -h localhost -U user dbname > backup_$(date +%Y%m%d_%H%M%S).sql
29
+ mysqldump -u user -p dbname > backup_$(date +%Y%m%d_%H%M%S).sql
30
+
31
+ # 코드 상태 태깅
32
+ git tag pre-migration-$(date +%Y%m%d) -m "Migration 전 백업 포인트"
33
+ git push origin --tags
34
+ ```
35
+
36
+ 4. **실행 (Execute)**
37
+ - **DB 마이그레이션**: 스키마 변경 → 데이터 변환 → 인덱스 재구성
38
+ ```sql
39
+ -- Expand-Contract 패턴 (Zero-downtime)
40
+ -- Phase 1: 새 컬럼 추가 (nullable)
41
+ ALTER TABLE users ADD COLUMN new_field VARCHAR(255);
42
+ -- Phase 2: 데이터 채우기 (백그라운드)
43
+ UPDATE users SET new_field = legacy_field WHERE new_field IS NULL;
44
+ -- Phase 3: 애플리케이션 배포 후 기존 컬럼 제거
45
+ ALTER TABLE users DROP COLUMN legacy_field;
46
+ ```
47
+ - **API 업그레이드**: 하위호환성 레이어 → 새 버전 배포 → 구버전 deprecation
48
+ - **프레임워크 업그레이드**:
49
+ ```bash
50
+ npx npm-check-updates -u # 의존성 일괄 업데이트 확인
51
+ npx <framework> codemods # 공식 코드모드 실행
52
+ ```
53
+
54
+ 5. **검증 (Verify)**
55
+ - 마이그레이션 전후 데이터 무결성 검증
56
+ - E2E 테스트 전체 실행
57
+ - 성능 회귀 벤치마크 (p95 레이턴시 비교)
58
+ - 롤백 절차 실제 테스트 (스테이징 환경)
59
+
60
+ ### 롤백 전략
61
+ ```bash
62
+ # DB 롤백
63
+ psql -h localhost -U user dbname < backup_20240101_120000.sql
64
+
65
+ # 코드 롤백
66
+ git checkout pre-migration-20240101
67
+ git push --force-with-lease origin main # 팀 동의 후만
68
+
69
+ # 컨테이너/배포 롤백
70
+ kubectl rollout undo deployment/app-name
71
+ ```
72
+ </Steps>
73
+
74
+ <Policy>
75
+ - 프로덕션 마이그레이션 전 스테이징에서 반드시 전체 절차 검증
76
+ - 대용량 테이블 마이그레이션은 배치 처리로 분할 (한 번에 MAX 10,000행)
77
+ - Breaking Change는 최소 한 버전 deprecation 기간 제공
78
+ - 마이그레이션 스크립트는 멱등성(idempotent) 보장
79
+ </Policy>
80
+
81
+ <Arguments>
82
+ ## 사용법
83
+ `/forgen:migrate {마이그레이션 대상}`
84
+
85
+ ### 예시
86
+ - `/forgen:migrate PostgreSQL users 테이블 스키마 변경 (email 컬럼 unique 추가)`
87
+ - `/forgen:migrate React 17 → 19 업그레이드`
88
+ - `/forgen:migrate REST API v1 → v2 마이그레이션 계획`
89
+
90
+ ### 인자
91
+ - 마이그레이션 대상 (DB/API/프레임워크)
92
+ - 현재 버전과 목표 버전
93
+ - 다운타임 허용 여부 등 제약 조건
94
+ </Arguments>
95
+
96
+ $ARGUMENTS
@@ -0,0 +1,282 @@
1
+ ---
2
+ name: performance
3
+ description: This skill should be used when the user asks to "performance,성능,profiling,최적화,프로파일링,bottleneck". Performance profiling, bottleneck identification, and optimization
4
+ ---
5
+
6
+ <!-- forgen-managed -->
7
+
8
+ <Purpose>
9
+ 애플리케이션의 성능을 체계적으로 프로파일링하고 최적화합니다.
10
+ 측정 기반 접근법으로 병목 지점을 식별하고, 최적화를 적용한 후
11
+ 개선 효과를 정량적으로 검증합니다.
12
+ </Purpose>
13
+
14
+ <Steps>
15
+ 1. **베이스라인 측정**: 현재 성능 지표를 수집합니다
16
+ - 응답 시간 측정 (P50, P95, P99)
17
+ - 처리량(throughput) 측정 (RPS, TPS)
18
+ - 메모리 사용량 프로파일링 (힙 크기, GC 빈도)
19
+ - CPU 사용률 측정 (사용자/시스템 시간)
20
+ - I/O 대기 시간 (디스크, 네트워크)
21
+ - 번들 크기 측정 (프론트엔드)
22
+ - Core Web Vitals 수집 (LCP, FID, CLS)
23
+ - 측정 환경 기록 (하드웨어, OS, 런타임 버전)
24
+
25
+ 2. **병목 지점 식별**: 성능 저하의 근본 원인을 찾습니다
26
+ - CPU 프로파일링 (핫 함수 식별)
27
+ - 메모리 프로파일링 (힙 스냅샷, 리크 탐지)
28
+ - 네트워크 분석 (요청 waterfall, 느린 API 호출)
29
+ - 데이터베이스 쿼리 분석 (EXPLAIN, 슬로우 쿼리 로그)
30
+ - N+1 쿼리 패턴 탐지
31
+ - 불필요한 리렌더링 탐지 (React Profiler)
32
+ - 이벤트 루프 블로킹 탐지 (Node.js)
33
+ - 동기/비동기 혼용 문제 확인
34
+
35
+ 3. **최적화 적용**: 식별된 병목을 해결합니다
36
+ - 알고리즘 최적화 (시간/공간 복잡도 개선)
37
+ - 캐싱 전략 적용 (인메모리, Redis, CDN)
38
+ - 쿼리 최적화 (인덱스 추가, 쿼리 리팩토링)
39
+ - 지연 로딩(lazy loading) 적용
40
+ - 코드 스플리팅 (동적 import)
41
+ - 이미지/에셋 최적화 (압축, WebP, CDN)
42
+ - 커넥션 풀링 최적화
43
+ - 비동기/병렬 처리 도입
44
+ - 메모이제이션 적용 (useMemo, React.memo)
45
+ - 불필요한 직렬화/역직렬화 제거
46
+
47
+ 4. **검증**: 최적화 효과를 정량적으로 측정합니다
48
+ - 동일 조건에서 베이스라인 대비 비교
49
+ - 개선율 계산 (% 단위)
50
+ - 회귀 테스트 -- 기능 동작이 변경되지 않았는지 확인
51
+ - 부하 테스트 (k6, Artillery, autocannon)
52
+ - 메모리 리크 없음 확인 (장시간 실행)
53
+ - 엣지 케이스 성능 확인 (빈 데이터, 대용량 데이터)
54
+
55
+ 5. **문서화**: 최적화 결과와 가이드를 기록합니다
56
+ - 이전/이후 성능 비교표
57
+ - 적용한 최적화 기법과 근거
58
+ - 향후 성능 모니터링 포인트
59
+ - 성능 예산(performance budget) 설정
60
+ - 회귀 방지를 위한 성능 테스트 추가
61
+ </Steps>
62
+
63
+ ## 에이전트 위임
64
+
65
+ `performance-reviewer` 에이전트(Opus 모델)에 위임하여 성능 분석을 수행합니다:
66
+
67
+ ```
68
+ Agent(
69
+ subagent_type="performance-reviewer",
70
+ model="opus",
71
+ prompt="PERFORMANCE ANALYSIS TASK
72
+
73
+ 성능 프로파일링 및 최적화를 수행하세요.
74
+
75
+ Target: [분석 대상 코드/서비스]
76
+ Concern: [구체적인 성능 문제 또는 전반적 분석]
77
+
78
+ Analysis Checklist:
79
+ 1. 베이스라인 측정 (응답 시간, 메모리, CPU)
80
+ 2. 병목 지점 식별 (프로파일링)
81
+ 3. 최적화 방안 제시 (우선순위별)
82
+ 4. 최적화 적용 및 효과 검증
83
+ 5. 성능 예산 및 모니터링 계획
84
+
85
+ Output: 성능 분석 리포트:
86
+ - 베이스라인 지표
87
+ - 병목 지점 목록 (영향도 순)
88
+ - 최적화 방안 및 예상 개선율
89
+ - 적용 결과 (이전/이후 비교)
90
+ - 권장 성능 예산"
91
+ )
92
+ ```
93
+
94
+ ## External Consultation (Optional)
95
+
96
+ performance-reviewer 에이전트는 교차 검증을 위해 Claude Task 에이전트에 자문할 수 있습니다.
97
+
98
+ ### Protocol
99
+ 1. **자체 성능 분석을 먼저 완료** -- 독립적으로 프로파일링 수행
100
+ 2. **검증을 위한 자문** -- Claude Task 에이전트를 통해 최적화 전략 교차 확인
101
+ 3. **비판적 평가** -- 외부 제안을 맹목적으로 수용하지 않음
102
+ 4. **우아한 폴백** -- 위임이 불가능할 경우 절대 차단하지 않음
103
+
104
+ ### 자문이 필요한 경우
105
+ - 복잡한 알고리즘 최적화 (시간/공간 트레이드오프)
106
+ - 데이터베이스 쿼리 튜닝 (복잡한 JOIN, 서브쿼리)
107
+ - 분산 시스템의 성능 문제
108
+ - 메모리 리크 진단
109
+
110
+ ### 자문을 생략하는 경우
111
+ - 단순 캐싱 적용
112
+ - 명확한 N+1 쿼리 해결
113
+ - 번들 크기 최적화
114
+ - 이미지/에셋 최적화
115
+
116
+ ## 성능 분석 체크리스트
117
+
118
+ ### 서버 사이드 (5개)
119
+ - [ ] 슬로우 쿼리가 식별되고 최적화됨
120
+ - [ ] N+1 쿼리 패턴이 제거됨
121
+ - [ ] 적절한 캐싱이 적용됨
122
+ - [ ] 커넥션 풀 크기가 적절히 설정됨
123
+ - [ ] 비동기 처리가 활용됨 (I/O 바운드 작업)
124
+
125
+ ### 클라이언트 사이드 (5개)
126
+ - [ ] Core Web Vitals가 "Good" 등급
127
+ - [ ] 번들 크기가 예산 이내
128
+ - [ ] 코드 스플리팅이 적용됨
129
+ - [ ] 불필요한 리렌더링이 제거됨
130
+ - [ ] 이미지가 최적화됨 (WebP, lazy load)
131
+
132
+ ### 인프라 (4개)
133
+ - [ ] CDN이 적절히 활용됨
134
+ - [ ] 캐시 히트율이 측정됨
135
+ - [ ] 오토스케일링 임계값이 설정됨
136
+ - [ ] 리소스 사용량이 모니터링됨
137
+
138
+ ### 검증 (4개)
139
+ - [ ] 베이스라인 대비 개선율이 측정됨
140
+ - [ ] 부하 테스트로 한계 확인됨
141
+ - [ ] 메모리 리크가 없음이 확인됨
142
+ - [ ] 기능 회귀가 없음이 확인됨
143
+
144
+ ## 성능 등급 기준
145
+
146
+ | 등급 | 응답 시간 (P95) | 메모리 | 번들 크기 |
147
+ |------|-----------------|--------|-----------|
148
+ | **EXCELLENT** | < 100ms | 안정적, 리크 없음 | < 200KB (gzip) |
149
+ | **GOOD** | < 300ms | 안정적 | < 500KB (gzip) |
150
+ | **FAIR** | < 1000ms | 점진적 증가 | < 1MB (gzip) |
151
+ | **POOR** | > 1000ms | 리크 의심 | > 1MB (gzip) |
152
+
153
+ ## 최적화 우선순위 가이드
154
+
155
+ | 우선순위 | 대상 | 예상 효과 |
156
+ |----------|------|-----------|
157
+ | 1 | 슬로우 쿼리/N+1 제거 | 10x~100x |
158
+ | 2 | 캐싱 도입 | 5x~50x |
159
+ | 3 | 알고리즘 최적화 | 2x~10x |
160
+ | 4 | 번들/에셋 최적화 | 20~50% 감소 |
161
+ | 5 | 불필요한 리렌더링 제거 | 체감 개선 |
162
+
163
+ <Output>
164
+ ```
165
+ PERFORMANCE REPORT / 성능 분석 리포트
166
+ ======================================
167
+
168
+ Target: [분석 대상]
169
+ Environment: [Node.js 20 / Chrome 120 / etc.]
170
+ Date: YYYY-MM-DDTHH:MM:SSZ
171
+
172
+ BASELINE / 베이스라인
173
+ ----------------------
174
+ | Metric | Value | Grade |
175
+ |------------------|----------|-----------|
176
+ | Response (P50) | 120ms | GOOD |
177
+ | Response (P95) | 850ms | FAIR |
178
+ | Response (P99) | 2100ms | POOR |
179
+ | Memory (avg) | 256MB | GOOD |
180
+ | CPU (avg) | 45% | GOOD |
181
+ | Bundle (gzip) | 380KB | GOOD |
182
+
183
+ BOTTLENECKS / 병목 지점
184
+ -------------------------
185
+ 1. [CRITICAL] src/api/orders.ts:45 - N+1 쿼리
186
+ Impact: P95 응답 시간의 60%를 차지
187
+ Evidence: 주문 1건당 상품 쿼리 N회 발생
188
+ Fix: JOIN 또는 DataLoader 패턴 적용
189
+
190
+ 2. [HIGH] src/utils/transform.ts:120 - O(n^2) 알고리즘
191
+ Impact: 데이터 1000건 이상에서 급격한 성능 저하
192
+ Evidence: CPU 프로파일링에서 핫스팟
193
+ Fix: Map 기반 O(n) 알고리즘으로 변경
194
+
195
+ 3. [MEDIUM] src/components/List.tsx - 불필요한 리렌더링
196
+ Impact: 스크롤 시 프레임 드롭
197
+ Evidence: React Profiler에서 불필요한 렌더 감지
198
+ Fix: React.memo + useMemo 적용
199
+
200
+ OPTIMIZATIONS APPLIED / 적용된 최적화
201
+ ---------------------------------------
202
+ 1. N+1 쿼리 제거: JOIN 적용
203
+ Before: 850ms (P95) → After: 120ms (P95)
204
+ Improvement: 86% 감소
205
+
206
+ 2. 알고리즘 최적화: O(n^2) → O(n)
207
+ Before: 450ms (1000건) → After: 12ms (1000건)
208
+ Improvement: 97% 감소
209
+
210
+ AFTER / 최적화 후
211
+ -------------------
212
+ | Metric | Before | After | Change |
213
+ |------------------|----------|----------|----------|
214
+ | Response (P95) | 850ms | 150ms | -82% |
215
+ | Memory (avg) | 256MB | 230MB | -10% |
216
+ | Bundle (gzip) | 380KB | 310KB | -18% |
217
+
218
+ PERFORMANCE BUDGET / 성능 예산
219
+ -------------------------------
220
+ - API Response (P95): < 200ms
221
+ - Bundle Size (gzip): < 400KB
222
+ - LCP: < 2.5s
223
+ - FID: < 100ms
224
+ - CLS: < 0.1
225
+
226
+ GRADE: [EXCELLENT / GOOD / FAIR / POOR]
227
+ ```
228
+ </Output>
229
+
230
+ <Policy>
231
+ - 추측 기반 최적화 금지 -- 반드시 측정 결과에 근거
232
+ - 최적화 전후 비교를 정량적으로 제시합니다
233
+ - 가독성/유지보수성을 해치는 미시 최적화는 지양합니다
234
+ - 성능 예산을 설정하여 회귀를 방지합니다
235
+ - 프로덕션 환경과 유사한 조건에서 측정합니다
236
+ - 최적화의 부작용(메모리 증가, 복잡도 증가)을 명시합니다
237
+ </Policy>
238
+
239
+ ## 다른 스킬과의 연동
240
+
241
+ **데이터베이스 연동:**
242
+ ```
243
+ /forgen:database 슬로우 쿼리 인덱싱
244
+ ```
245
+ 쿼리 성능 문제를 인덱스로 해결
246
+
247
+ **코드 리뷰 연동:**
248
+ ```
249
+ /forgen:code-review 성능 최적화 코드
250
+ ```
251
+ 최적화 코드의 정확성 검증
252
+
253
+ **TDD 연동:**
254
+ ```
255
+ /forgen:tdd 성능 회귀 테스트
256
+ ```
257
+ 성능 기준을 테스트로 보장
258
+
259
+ ## Best Practices
260
+
261
+ - **측정 우선** -- "느린 것 같다"는 최적화 근거가 아님
262
+ - **큰 것부터** -- 10% 개선보다 10x 개선을 먼저 찾기
263
+ - **회귀 방지** -- 성능 테스트를 CI에 포함
264
+ - **예산 설정** -- 성능 예산을 팀과 합의
265
+ - **지속 모니터링** -- 프로덕션 성능을 실시간 추적
266
+
267
+ <Arguments>
268
+ ## 사용법
269
+ `/forgen:performance {분석 대상}`
270
+
271
+ ### 예시
272
+ - `/forgen:performance API 응답 시간 최적화`
273
+ - `/forgen:performance 프론트엔드 번들 크기 분석`
274
+ - `/forgen:performance src/services/order.ts 쿼리 성능`
275
+ - `/forgen:performance 메모리 리크 진단`
276
+
277
+ ### 인자
278
+ - 분석할 대상, 성능 문제, 최적화 목표를 설명
279
+ - 인자 없으면 프로젝트 전반의 성능을 프로파일링
280
+ </Arguments>
281
+
282
+ $ARGUMENTS