@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,270 @@
1
+ ---
2
+ name: documentation
3
+ description: This skill should be used when the user asks to "documentation,문서화,docs,기술 문서,readme,API docs". Technical documentation writing with audience analysis and structured content
4
+ ---
5
+
6
+ <!-- forgen-managed -->
7
+
8
+ <Purpose>
9
+ 기술 문서를 체계적으로 작성합니다.
10
+ 대상 독자 분석, 정보 구조 설계, 초안 작성, 리뷰, 배포까지
11
+ 기술 문서의 전체 라이프사이클을 다룹니다.
12
+ </Purpose>
13
+
14
+ <Steps>
15
+ 1. **대상 독자 분석**: 문서를 읽을 사람을 파악합니다
16
+ - 독자의 기술 수준 (초급/중급/고급)
17
+ - 독자의 역할 (개발자, DevOps, PM, 최종 사용자)
18
+ - 독자가 달성하려는 목표 (설치, 통합, 트러블슈팅)
19
+ - 사전 지식 가정 (프로그래밍 언어, 프레임워크, 도메인)
20
+ - 문서 접근 맥락 (처음 사용 vs 참조 vs 문제 해결)
21
+
22
+ 2. **정보 구조 설계**: 문서의 뼈대를 구성합니다
23
+ - 문서 유형 결정:
24
+ * Tutorial (학습 지향) -- "이렇게 해보세요"
25
+ * How-to Guide (목표 지향) -- "이렇게 하면 됩니다"
26
+ * Reference (정보 지향) -- "이것은 이렇습니다"
27
+ * Explanation (이해 지향) -- "이것이 왜 이렇게 동작합니다"
28
+ - 목차(TOC) 초안 작성
29
+ - 섹션별 깊이와 범위 결정
30
+ - 네비게이션 구조 (선형 vs 비선형)
31
+ - 연관 문서 링크 맵
32
+
33
+ 3. **초안 작성**: 내용을 채워넣습니다
34
+ - 명확한 제목과 부제 (스캔 가능)
35
+ - 각 섹션 첫 문장에 핵심 내용 (역피라미드 구조)
36
+ - 코드 예시 (복사-붙여넣기 가능, 실행 가능)
37
+ - 단계별 절차 (번호 매기기, 검증 단계 포함)
38
+ - 시각적 보조 자료 (다이어그램, 스크린샷, 표)
39
+ - 주의 사항 표시 (Note, Warning, Caution, Tip)
40
+ - 용어 일관성 유지 (용어집 참조)
41
+ - 다국어 고려 (영어 + 한국어 병행 여부)
42
+
43
+ 4. **리뷰 및 검증**: 문서 품질을 확인합니다
44
+ - 기술적 정확성 -- 코드 예시 실행 확인
45
+ - 완전성 -- 누락된 단계나 정보 확인
46
+ - 명확성 -- 모호한 표현, 전문 용어 과다 사용 점검
47
+ - 일관성 -- 용어, 포맷, 스타일 통일
48
+ - 접근성 -- 스크린 리더 호환, 대체 텍스트
49
+ - 검색 가능성 -- 핵심 키워드가 적절히 포함
50
+
51
+ 5. **배포 및 유지보수**: 문서를 공개하고 관리합니다
52
+ - 배포 채널 결정 (GitHub Pages, Docusaurus, Notion)
53
+ - 버전 관리 (문서 버전 = 소프트웨어 버전)
54
+ - 피드백 수집 체계 (이슈, 코멘트, 분석)
55
+ - 정기 리뷰 일정 설정
56
+ - 폐기(deprecation) 절차
57
+ </Steps>
58
+
59
+ ## 에이전트 위임
60
+
61
+ `writer` 에이전트(Haiku 모델)에 위임하여 문서를 작성합니다:
62
+
63
+ ```
64
+ Agent(
65
+ subagent_type="writer",
66
+ model="haiku",
67
+ prompt="DOCUMENTATION TASK
68
+
69
+ 기술 문서를 작성하세요.
70
+
71
+ Subject: [문서화 대상]
72
+ Audience: [대상 독자]
73
+ Type: [Tutorial / How-to / Reference / Explanation]
74
+
75
+ Writing Checklist:
76
+ 1. 대상 독자 수준에 맞는 어조 사용
77
+ 2. 실행 가능한 코드 예시 포함
78
+ 3. 단계별 절차에 검증 단계 포함
79
+ 4. 시각적 보조 자료 활용 (표, 다이어그램)
80
+ 5. 용어 일관성 유지
81
+
82
+ Output: 완성된 기술 문서:
83
+ - 목차
84
+ - 섹션별 내용
85
+ - 코드 예시
86
+ - 주의 사항
87
+ - 관련 문서 링크"
88
+ )
89
+ ```
90
+
91
+ ## External Consultation (Optional)
92
+
93
+ writer 에이전트는 교차 검증을 위해 Claude Task 에이전트에 자문할 수 있습니다.
94
+
95
+ ### Protocol
96
+ 1. **자체 문서 초안을 먼저 완료** -- 독립적으로 작성
97
+ 2. **검증을 위한 자문** -- Claude Task 에이전트를 통해 기술 정확성 교차 확인
98
+ 3. **비판적 평가** -- 외부 제안을 맹목적으로 수용하지 않음
99
+ 4. **우아한 폴백** -- 위임이 불가능할 경우 절대 차단하지 않음
100
+
101
+ ### 자문이 필요한 경우
102
+ - 공개 API 문서 (외부 개발자 대상)
103
+ - 아키텍처 설명 문서
104
+ - 복잡한 통합 가이드
105
+ - 다국어 문서
106
+
107
+ ### 자문을 생략하는 경우
108
+ - 내부 README 업데이트
109
+ - 간단한 설치 가이드
110
+ - 인라인 코드 문서 (JSDoc, TSDoc)
111
+ - 변경 이력 (CHANGELOG)
112
+
113
+ ## 문서 유형 가이드
114
+
115
+ | 유형 | 목적 | 구조 | 예시 |
116
+ |------|------|------|------|
117
+ | **Tutorial** | 학습 | 단계별 진행 | "첫 번째 앱 만들기" |
118
+ | **How-to** | 문제 해결 | 목표 → 단계 → 결과 | "인증 추가하기" |
119
+ | **Reference** | 정보 조회 | 알파벳/카테고리 정렬 | "API 레퍼런스" |
120
+ | **Explanation** | 이해 | 배경 → 원인 → 결과 | "인증 구조 이해하기" |
121
+
122
+ ## 문서 품질 체크리스트
123
+
124
+ ### 내용 (5개)
125
+ - [ ] 기술적으로 정확함 (코드 예시 실행 확인)
126
+ - [ ] 대상 독자 수준에 적합
127
+ - [ ] 모든 필수 단계가 포함됨
128
+ - [ ] 사전 조건(prerequisites)이 명시됨
129
+ - [ ] 코드 예시가 복사-실행 가능
130
+
131
+ ### 구조 (4개)
132
+ - [ ] 목차가 논리적으로 구성됨
133
+ - [ ] 제목이 내용을 정확히 설명
134
+ - [ ] 스캔이 가능한 형식 (짧은 단락, 목록, 표)
135
+ - [ ] 관련 문서에 대한 링크 포함
136
+
137
+ ### 스타일 (4개)
138
+ - [ ] 일관된 용어 사용
139
+ - [ ] 능동태 사용 (수동태 최소화)
140
+ - [ ] 불필요한 전문 용어 없음 (있으면 설명 포함)
141
+ - [ ] Note/Warning/Tip이 적절히 사용됨
142
+
143
+ ### 접근성 (3개)
144
+ - [ ] 이미지에 대체 텍스트 제공
145
+ - [ ] 코드 블록에 언어 태그 명시
146
+ - [ ] 색상으로만 정보를 전달하지 않음
147
+
148
+ ## 작성 원칙
149
+
150
+ | 원칙 | 나쁜 예 | 좋은 예 |
151
+ |------|---------|---------|
152
+ | **구체적** | "설정을 변경합니다" | "`config.json`의 `port` 값을 `3000`으로 변경합니다" |
153
+ | **능동태** | "파일이 생성됩니다" | "이 명령이 파일을 생성합니다" |
154
+ | **검증 포함** | "실행합니다" | "실행합니다. `Started on port 3000` 메시지가 보이면 성공입니다" |
155
+ | **이유 설명** | "캐시를 비웁니다" | "이전 빌드 아티팩트가 간섭할 수 있으므로 캐시를 비웁니다" |
156
+
157
+ <Output>
158
+ ```
159
+ DOCUMENTATION PLAN / 문서화 계획
160
+ ==================================
161
+
162
+ Subject: [문서화 대상]
163
+ Type: [Tutorial / How-to / Reference / Explanation]
164
+ Audience: [대상 독자] ([기술 수준])
165
+
166
+ TABLE OF CONTENTS / 목차
167
+ --------------------------
168
+ 1. 개요
169
+ - 이 문서의 목적
170
+ - 사전 조건
171
+ 2. [핵심 섹션 1]
172
+ - [하위 항목]
173
+ 3. [핵심 섹션 2]
174
+ 4. 트러블슈팅
175
+ 5. 다음 단계
176
+ 6. 관련 문서
177
+
178
+ CONTENT / 내용
179
+ ---------------
180
+ ## 1. 개요
181
+
182
+ [간결한 설명 -- 이 문서를 읽으면 무엇을 할 수 있는지]
183
+
184
+ ### 사전 조건
185
+ - [필요한 도구/지식 1]
186
+ - [필요한 도구/지식 2]
187
+
188
+ ## 2. [핵심 섹션]
189
+
190
+ ### 단계 1: [동작]
191
+
192
+ [왜 이 단계가 필요한지 한 줄 설명]
193
+
194
+ ```bash
195
+ npm install @example/sdk
196
+ ```
197
+
198
+ > **Tip:** [유용한 추가 정보]
199
+
200
+ ### 검증
201
+ [성공 시 보이는 결과 설명]
202
+
203
+ ## 트러블슈팅
204
+
205
+ | 문제 | 원인 | 해결 |
206
+ |------|------|------|
207
+ | [에러 메시지] | [원인] | [해결 방법] |
208
+
209
+ REVIEW STATUS / 리뷰 상태
210
+ ----------------------------
211
+ - [ ] 기술 정확성 검증
212
+ - [ ] 코드 예시 실행 확인
213
+ - [ ] 용어 일관성 확인
214
+ - [ ] 접근성 검토
215
+ ```
216
+ </Output>
217
+
218
+ <Policy>
219
+ - 코드 예시는 반드시 실행 가능해야 합니다 (복사-붙여넣기로 동작)
220
+ - 모든 단계에 검증 방법을 포함합니다 ("이렇게 보이면 성공")
221
+ - 독자를 가정하지 않습니다 -- 사전 조건을 명시합니다
222
+ - 용어는 프로젝트 전체에서 일관되게 사용합니다
223
+ - 문서는 소프트웨어와 함께 버전 관리합니다
224
+ - 최소 1명의 기술 리뷰어를 거친 후 배포합니다
225
+ </Policy>
226
+
227
+ ## 다른 스킬과의 연동
228
+
229
+ **API 설계 연동:**
230
+ ```
231
+ /forgen:api-design OpenAPI 스키마 기반 문서
232
+ ```
233
+ API 설계 결과를 문서화
234
+
235
+ **아키텍처 결정 연동:**
236
+ ```
237
+ /forgen:architecture-decision ADR 문서화
238
+ ```
239
+ 아키텍처 결정 기록 문서화
240
+
241
+ **코드 리뷰 연동:**
242
+ ```
243
+ /forgen:code-review 문서 코드 예시
244
+ ```
245
+ 문서 내 코드 예시의 정확성 검증
246
+
247
+ ## Best Practices
248
+
249
+ - **독자 중심** -- 자신이 아닌 독자의 관점에서 작성
250
+ - **실행 가능** -- 모든 코드 예시는 실제로 동작해야 함
251
+ - **스캔 가능** -- 긴 텍스트보다 목록, 표, 코드 블록 활용
252
+ - **최신 유지** -- 코드 변경 시 문서도 함께 업데이트
253
+ - **피드백 수용** -- 독자 피드백을 적극적으로 반영
254
+
255
+ <Arguments>
256
+ ## 사용법
257
+ `/forgen:documentation {문서화 대상}`
258
+
259
+ ### 예시
260
+ - `/forgen:documentation 프로젝트 README 작성`
261
+ - `/forgen:documentation API 레퍼런스 문서`
262
+ - `/forgen:documentation 설치 가이드 (초보자용)`
263
+ - `/forgen:documentation 아키텍처 설명 문서`
264
+
265
+ ### 인자
266
+ - 문서화할 대상, 독자, 문서 유형 등을 설명
267
+ - 인자 없으면 프로젝트를 분석하여 필요한 문서를 제안
268
+ </Arguments>
269
+
270
+ $ARGUMENTS
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: ecomode
3
+ description: This skill should be used when the user asks to "eco,ecomode,절약,비용절약". Token-saving eco mode with Haiku priority and minimal responses
4
+ ---
5
+
6
+ <Purpose>
7
+ Compound Harness Ecomode — 토큰 절약 모드.
8
+ 비용을 최소화하면서 작업을 수행합니다. Haiku 모델을 우선 사용하고, 간결한 응답을 지향합니다.
9
+ </Purpose>
10
+
11
+ <Execution_Policy>
12
+ 1. 모든 탐색은 최소한으로 (Glob/Grep 우선, Agent 최소화)
13
+ 2. 응답은 간결하게 (불필요한 설명 생략)
14
+ 3. 코드 블록 위주로 답변, 부연 설명 최소화
15
+ 4. 한 번에 정확히 수정 (반복 수정 회피)
16
+ 5. 에이전트 스폰 시 전부 Haiku 모델 사용
17
+ </Execution_Policy>
18
+
19
+ <Model_Routing>
20
+ - 모든 작업: Haiku (강제)
21
+ - 에이전트 스폰: Haiku (강제)
22
+ - 복잡한 아키텍처 판단이 필요한 경우에만 Sonnet 허용
23
+ </Model_Routing>
24
+
25
+ <Constraints>
26
+ - Agent 도구 사용 최소화 (직접 Glob/Grep/Read로 해결)
27
+ - 불필요한 파일 탐색 금지 (목적이 명확한 탐색만)
28
+ - 코드 설명은 요청 시에만 제공
29
+ - 반복 수정 시 즉시 중단하고 전체 구조 파악 후 단일 수정
30
+ - 에이전트 스폰 시 model: "haiku" 파라미터 필수
31
+ </Constraints>
32
+
33
+ <Arguments>
34
+ ## 사용법
35
+ `/forgen:ecomode {작업 내용}`
36
+
37
+ ### 예시
38
+ - `/forgen:ecomode 버그 수정: login API 500 에러`
39
+ - `/forgen:ecomode 타입 정의 추가: UserProfile 인터페이스`
40
+ - `eco 이 함수 리팩토링해줘`
41
+
42
+ ### 인자
43
+ - 간단한 작업 설명을 전달하면 최소 비용으로 처리
44
+ </Arguments>
45
+
46
+ $ARGUMENTS
@@ -0,0 +1,265 @@
1
+ ---
2
+ name: frontend
3
+ description: This skill should be used when the user asks to "frontend,프론트엔드,component,접근성,accessibility,컴포넌트 설계". Frontend component design, accessibility audit, and responsive implementation
4
+ ---
5
+
6
+ <!-- forgen-managed -->
7
+
8
+ <Purpose>
9
+ 프론트엔드 컴포넌트를 체계적으로 설계하고 구현합니다.
10
+ 컴포넌트 계층 구조 설계, Props 인터페이스 정의, 접근성 감사,
11
+ 반응형 레이아웃, 성능 최적화를 포함한 프론트엔드 개발 전체를 다룹니다.
12
+ </Purpose>
13
+
14
+ <Steps>
15
+ 1. **컴포넌트 계층 구조 설계**: 컴포넌트 트리를 설계합니다
16
+ - 페이지/기능 요구사항 분석
17
+ - Atomic Design 원칙 적용 (Atoms → Molecules → Organisms → Templates → Pages)
18
+ - 컴포넌트 책임 분리 (UI vs 로직)
19
+ - 공유 컴포넌트 vs 도메인 컴포넌트 구분
20
+ - 컴포넌트 트리 다이어그램 작성
21
+ - 상태 관리 위치 결정 (로컬 vs 전역 vs 서버)
22
+ - 데이터 흐름 방향 정의 (단방향 데이터 흐름)
23
+
24
+ 2. **Props 인터페이스 설계**: 컴포넌트 API를 정의합니다
25
+ - TypeScript 인터페이스 정의
26
+ - 필수/선택 Props 구분
27
+ - 기본값 설정 (defaultProps 또는 default parameter)
28
+ - 콜백 Props 네이밍 컨벤션 (onXxx, handleXxx)
29
+ - children 패턴 활용 (합성 패턴)
30
+ - Render Props 또는 Compound Component 패턴 고려
31
+ - Props 과도 확산(prop drilling) 방지 전략
32
+ - Discriminated Union 타입으로 변형(variant) 관리
33
+
34
+ 3. **접근성 감사**: WCAG 2.1 AA 기준으로 접근성을 검증합니다
35
+ - 시맨틱 HTML 사용 (button, nav, main, section, article)
36
+ - ARIA 속성 적절 사용 (aria-label, aria-describedby, role)
37
+ - 키보드 내비게이션 (Tab, Enter, Escape, Arrow keys)
38
+ - 포커스 관리 (포커스 트랩, 포커스 복원)
39
+ - 색상 대비 (최소 4.5:1 for text, 3:1 for large text)
40
+ - 스크린 리더 호환성 (라이브 리전, 상태 알림)
41
+ - 모션 감소 대응 (prefers-reduced-motion)
42
+ - 터치 타겟 크기 (최소 44x44px)
43
+ - 대체 텍스트 (이미지 alt, 아이콘 aria-label)
44
+ - 폼 접근성 (label 연결, 에러 메시지 연결)
45
+
46
+ 4. **반응형 구현**: 다양한 화면 크기를 지원합니다
47
+ - 브레이크포인트 정의 (mobile: 320px, tablet: 768px, desktop: 1024px+)
48
+ - Mobile-first 접근법 적용
49
+ - 유동적 레이아웃 (Flexbox, Grid)
50
+ - 반응형 타이포그래피 (clamp, fluid type)
51
+ - 이미지 반응형 처리 (srcset, picture, next/image)
52
+ - 터치/마우스 인터랙션 차이 대응
53
+ - 가로/세로 모드 대응
54
+
55
+ 5. **성능 최적화**: 렌더링 성능을 최적화합니다
56
+ - React.memo로 불필요한 리렌더링 방지
57
+ - useMemo/useCallback 적절 사용 (남용 방지)
58
+ - 코드 스플리팅 (React.lazy + Suspense)
59
+ - 가상 스크롤 (대량 리스트, react-window)
60
+ - 이미지 지연 로딩 (loading="lazy", Intersection Observer)
61
+ - Web Vitals 모니터링 (LCP, FID, CLS)
62
+ - 번들 분석 (webpack-bundle-analyzer)
63
+ </Steps>
64
+
65
+ ## 에이전트 위임
66
+
67
+ `designer` 에이전트(Sonnet 모델)에 위임하여 컴포넌트를 설계합니다:
68
+
69
+ ```
70
+ Agent(
71
+ subagent_type="designer",
72
+ model="sonnet",
73
+ prompt="FRONTEND COMPONENT TASK
74
+
75
+ 프론트엔드 컴포넌트를 설계하고 구현하세요.
76
+
77
+ Feature: [기능/페이지 설명]
78
+ Framework: [React / Vue / Svelte / etc.]
79
+ Styling: [Tailwind / CSS Modules / styled-components]
80
+
81
+ Design Checklist:
82
+ 1. 컴포넌트 계층 구조 설계
83
+ 2. Props 인터페이스 (TypeScript)
84
+ 3. 접근성 감사 (WCAG 2.1 AA)
85
+ 4. 반응형 레이아웃 (Mobile-first)
86
+ 5. 성능 최적화 (리렌더링, 코드 스플리팅)
87
+
88
+ Output: 컴포넌트 설계 문서:
89
+ - 컴포넌트 트리
90
+ - Props 인터페이스
91
+ - 접근성 체크리스트 결과
92
+ - 반응형 브레이크포인트
93
+ - 성능 최적화 포인트"
94
+ )
95
+ ```
96
+
97
+ ## External Consultation (Optional)
98
+
99
+ designer 에이전트는 교차 검증을 위해 Claude Task 에이전트에 자문할 수 있습니다.
100
+
101
+ ### Protocol
102
+ 1. **자체 설계를 먼저 완료** -- 독립적으로 컴포넌트 설계
103
+ 2. **검증을 위한 자문** -- Claude Task 에이전트를 통해 접근성/UX 교차 확인
104
+ 3. **비판적 평가** -- 외부 제안을 맹목적으로 수용하지 않음
105
+ 4. **우아한 폴백** -- 위임이 불가능할 경우 절대 차단하지 않음
106
+
107
+ ### 자문이 필요한 경우
108
+ - 복잡한 인터랙션 패턴 (드래그앤드롭, 가상 스크롤)
109
+ - 접근성이 중요한 공개 웹사이트
110
+ - 대규모 상태 관리 아키텍처
111
+ - 디자인 시스템 구축
112
+
113
+ ### 자문을 생략하는 경우
114
+ - 단순 폼 컴포넌트
115
+ - 잘 알려진 UI 패턴
116
+ - 내부 어드민 도구
117
+ - 프로토타입 수준의 UI
118
+
119
+ ## 접근성 체크리스트 (WCAG 2.1 AA)
120
+
121
+ ### 인지 가능 (Perceivable) (5개)
122
+ - [ ] 모든 이미지에 대체 텍스트 (alt) 제공
123
+ - [ ] 색상 대비 4.5:1 이상 (텍스트), 3:1 이상 (대형 텍스트)
124
+ - [ ] 색상만으로 정보를 전달하지 않음 (아이콘/텍스트 병행)
125
+ - [ ] 텍스트 크기 200%까지 확대 가능 (레이아웃 깨짐 없이)
126
+ - [ ] 자동 재생 미디어에 정지 버튼 제공
127
+
128
+ ### 조작 가능 (Operable) (5개)
129
+ - [ ] 모든 기능이 키보드로 접근 가능
130
+ - [ ] 포커스 순서가 논리적
131
+ - [ ] 포커스 표시가 명확 (outline 제거 금지)
132
+ - [ ] 터치 타겟 최소 44x44px
133
+ - [ ] 시간 제한이 있는 기능에 연장 옵션 제공
134
+
135
+ ### 이해 가능 (Understandable) (4개)
136
+ - [ ] 폼 필드에 label이 연결됨
137
+ - [ ] 에러 메시지가 해당 필드 근처에 표시됨
138
+ - [ ] 링크 텍스트가 목적지를 설명 ("여기를 클릭" 금지)
139
+ - [ ] 언어 속성 (lang)이 설정됨
140
+
141
+ ### 견고함 (Robust) (4개)
142
+ - [ ] 시맨틱 HTML 요소 사용 (div 남용 금지)
143
+ - [ ] ARIA 속성이 올바르게 사용됨
144
+ - [ ] 동적 콘텐츠에 aria-live 적용
145
+ - [ ] 커스텀 위젯에 적절한 role 설정
146
+
147
+ ## 컴포넌트 복잡도 가이드
148
+
149
+ | 복잡도 | Props 수 | 상태 | 패턴 |
150
+ |--------|---------|------|------|
151
+ | **단순** | 0~3 | Stateless | 함수 컴포넌트 |
152
+ | **보통** | 4~8 | 로컬 상태 | useState/useReducer |
153
+ | **복잡** | 9+ | 전역 + 로컬 | Compound Component, Context |
154
+
155
+ <Output>
156
+ ```
157
+ FRONTEND COMPONENT DESIGN / 프론트엔드 컴포넌트 설계
158
+ =====================================================
159
+
160
+ Feature: [기능명]
161
+ Framework: [React 18 + TypeScript]
162
+ Styling: [Tailwind CSS]
163
+
164
+ COMPONENT TREE / 컴포넌트 트리
165
+ ---------------------------------
166
+ <ProductPage>
167
+ ├── <ProductHeader>
168
+ │ ├── <Breadcrumb />
169
+ │ └── <ProductTitle />
170
+ ├── <ProductGallery>
171
+ │ ├── <ImageCarousel />
172
+ │ └── <ThumbnailStrip />
173
+ ├── <ProductInfo>
174
+ │ ├── <PriceDisplay />
175
+ │ ├── <VariantSelector />
176
+ │ └── <AddToCartButton />
177
+ └── <ProductReviews>
178
+ ├── <ReviewSummary />
179
+ └── <ReviewList />
180
+
181
+ PROPS INTERFACES / Props 인터페이스
182
+ --------------------------------------
183
+ interface ProductInfoProps {
184
+ product: Product;
185
+ selectedVariant: Variant | null;
186
+ onVariantSelect: (variant: Variant) => void;
187
+ onAddToCart: (quantity: number) => void;
188
+ isLoading?: boolean;
189
+ }
190
+
191
+ ACCESSIBILITY AUDIT / 접근성 감사
192
+ -----------------------------------
193
+ Perceivable: [5/5 PASS]
194
+ Operable: [4/5 - 터치 타겟 크기 수정 필요]
195
+ Understandable: [4/4 PASS]
196
+ Robust: [4/4 PASS]
197
+
198
+ RESPONSIVE BREAKPOINTS / 반응형 브레이크포인트
199
+ -------------------------------------------------
200
+ Mobile (< 768px): 단일 컬럼, 갤러리 스와이프
201
+ Tablet (768~1024px): 2컬럼 (갤러리 + 정보)
202
+ Desktop (> 1024px): 3컬럼 (갤러리 + 정보 + 리뷰)
203
+
204
+ PERFORMANCE / 성능
205
+ -------------------
206
+ - ImageCarousel: React.lazy로 지연 로딩
207
+ - ReviewList: 가상 스크롤 (react-window)
208
+ - 이미지: next/image with srcset
209
+ - 번들 기여: ~25KB (gzip)
210
+ ```
211
+ </Output>
212
+
213
+ <Policy>
214
+ - 접근성은 선택이 아닌 기본입니다 -- WCAG 2.1 AA를 항상 충족
215
+ - 컴포넌트는 단일 책임 원칙을 따릅니다
216
+ - Props 인터페이스는 TypeScript로 명시합니다
217
+ - Mobile-first로 설계하고 데스크톱으로 확장합니다
218
+ - 성능 최적화는 측정 후 필요한 곳에만 적용합니다 (사전 최적화 금지)
219
+ - 디자인 시스템/토큰이 있으면 반드시 활용합니다
220
+ </Policy>
221
+
222
+ ## 다른 스킬과의 연동
223
+
224
+ **성능 연동:**
225
+ ```
226
+ /forgen:performance 프론트엔드 번들 분석
227
+ ```
228
+ 번들 크기와 렌더링 성능 최적화
229
+
230
+ **TDD 연동:**
231
+ ```
232
+ /forgen:tdd 컴포넌트 유닛 테스트
233
+ ```
234
+ 컴포넌트별 테스트 작성
235
+
236
+ **코드 리뷰 연동:**
237
+ ```
238
+ /forgen:code-review src/components/
239
+ ```
240
+ 컴포넌트 코드 품질 검증
241
+
242
+ ## Best Practices
243
+
244
+ - **합성 우선** -- 상속보다 합성(composition) 패턴 사용
245
+ - **접근성 내장** -- 나중에 추가하지 않고 처음부터 포함
246
+ - **타입 안전** -- Props에 TypeScript 타입을 명시
247
+ - **측정 후 최적화** -- React Profiler로 확인 후 최적화
248
+ - **일관된 패턴** -- 프로젝트 전체에서 동일한 패턴 유지
249
+
250
+ <Arguments>
251
+ ## 사용법
252
+ `/forgen:frontend {설계 대상}`
253
+
254
+ ### 예시
255
+ - `/forgen:frontend 상품 상세 페이지 컴포넌트 설계`
256
+ - `/forgen:frontend 기존 폼 컴포넌트 접근성 개선`
257
+ - `/forgen:frontend 대시보드 레이아웃 반응형 구현`
258
+ - `/forgen:frontend 디자인 시스템 기본 컴포넌트 설계`
259
+
260
+ ### 인자
261
+ - 설계할 페이지/기능, 프레임워크, 접근성 요구사항 등을 설명
262
+ - 인자 없으면 프로젝트의 프론트엔드 구조를 분석하여 개선점 제시
263
+ </Arguments>
264
+
265
+ $ARGUMENTS
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: git-master
3
+ description: This skill should be used when the user asks to "git-master,깃마스터,atomic commit". Atomic commits, smart rebasing, and history management
4
+ ---
5
+
6
+ <Purpose>
7
+ 원자적 커밋 전략과 체계적인 Git 히스토리 관리를 실행합니다.
8
+ Conventional Commits 컨벤션, 인터랙티브 리베이스, 브랜치 전략을 통해
9
+ 읽기 쉽고 유지보수 가능한 커밋 히스토리를 구축합니다.
10
+ </Purpose>
11
+
12
+ <Steps>
13
+ 1. **원자적 커밋 전략**
14
+ - 하나의 커밋 = 하나의 논리적 변경 단위
15
+ - 빌드 가능하고 테스트 통과 상태로 유지
16
+ - `git add <specific-files>`로 변경사항을 파일 단위로 선택적 스테이징
17
+ > **Note:** `git add -p`(인터랙티브 패치 모드)와 `git add -i`는 Claude Code에서 지원되지 않습니다. `git add <specific-files>`를 사용하세요.
18
+
19
+ 2. **Conventional Commits 메시지 컨벤션**
20
+ ```
21
+ <type>(<scope>): <subject>
22
+
23
+ <body>
24
+
25
+ <footer>
26
+ ```
27
+ - **type**: feat, fix, docs, style, refactor, test, chore, perf
28
+ - **scope**: 변경된 모듈/컴포넌트 (선택)
29
+ - **subject**: 현재형 동사로 시작, 50자 이내
30
+ - **Breaking Change**: footer에 `BREAKING CHANGE:` 명시
31
+
32
+ 3. **인터랙티브 리베이스**
33
+ > **Note:** `git rebase -i`는 Claude Code에서 지원되지 않습니다 (인터랙티브 입력 불가). 대신 `git rebase` with explicit commit range 또는 `git commit --fixup` + `git rebase --autosquash`를 사용하세요.
34
+ ```bash
35
+ git rebase -i HEAD~N # N개 커밋 재정리 (Claude Code 외부에서 실행)
36
+ ```
37
+ - `pick`: 그대로 유지
38
+ - `squash`/`fixup`: 이전 커밋과 합치기
39
+ - `reword`: 메시지만 수정
40
+ - `edit`: 커밋 내용 수정
41
+ - `drop`: 커밋 삭제
42
+ - ⚠ 공유 브랜치에서 리베이스 금지
43
+
44
+ 4. **브랜치 전략**
45
+ - `main/master`: 항상 배포 가능 상태
46
+ - `develop`: 통합 브랜치 (Git Flow)
47
+ - `feature/<ticket>-<short-desc>`: 기능 개발
48
+ - `fix/<ticket>-<short-desc>`: 버그 수정
49
+ - `hotfix/<ticket>`: 긴급 수정
50
+ - 브랜치명에 티켓 번호 포함 권장
51
+
52
+ 5. **Squash & Fixup 워크플로우**
53
+ ```bash
54
+ git commit --fixup <sha> # 특정 커밋에 fixup 생성
55
+ git rebase -i --autosquash main # fixup 자동 정렬
56
+ ```
57
+
58
+ 6. **Conflict 해결 전략**
59
+ - `git mergetool` 또는 IDE 통합 도구 사용
60
+ - 복잡한 충돌: `git checkout --ours/--theirs <file>` 선택
61
+ - 충돌 해결 후 반드시 테스트 실행
62
+ - `git log --merge`: 충돌에 기여한 커밋 확인
63
+ </Steps>
64
+
65
+ <Policy>
66
+ - 공유 브랜치(main, develop)에서 force push 금지
67
+ - 커밋 전 `git diff --staged`로 변경사항 최종 확인
68
+ - WIP 커밋은 push 전 squash 처리
69
+ - 커밋 메시지에 '수정', 'fix', 'update'만 쓰지 않고 구체적 맥락 포함
70
+ </Policy>
71
+
72
+ <Arguments>
73
+ ## 사용법
74
+ `/forgen:git-master {작업 내용}`
75
+
76
+ ### 예시
77
+ - `/forgen:git-master 3개의 WIP 커밋을 원자적 커밋으로 재정리`
78
+ - `/forgen:git-master feature 브랜치를 main에 리베이스하며 충돌 해결`
79
+ - `/forgen:git-master 커밋 히스토리 클린업 후 PR 준비`
80
+
81
+ ### 인자
82
+ - 현재 Git 상태 또는 수행할 작업을 설명
83
+ - 브랜치명, 커밋 범위, 목표 브랜치 등 구체적 정보 포함 권장
84
+ </Arguments>
85
+
86
+ $ARGUMENTS