@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.
- package/.claude-plugin/plugin.json +20 -0
- package/CHANGELOG.md +353 -0
- package/CONTRIBUTING.md +98 -0
- package/LICENSE +21 -0
- package/README.ja.md +469 -0
- package/README.ko.md +469 -0
- package/README.md +483 -0
- package/README.zh.md +469 -0
- package/agents/analyst.md +98 -0
- package/agents/architect.md +62 -0
- package/agents/code-reviewer.md +120 -0
- package/agents/code-simplifier.md +197 -0
- package/agents/critic.md +70 -0
- package/agents/debugger.md +117 -0
- package/agents/designer.md +131 -0
- package/agents/executor.md +54 -0
- package/agents/explore.md +145 -0
- package/agents/git-master.md +212 -0
- package/agents/performance-reviewer.md +172 -0
- package/agents/planner.md +29 -0
- package/agents/qa-tester.md +158 -0
- package/agents/refactoring-expert.md +168 -0
- package/agents/scientist.md +144 -0
- package/agents/security-reviewer.md +137 -0
- package/agents/test-engineer.md +153 -0
- package/agents/verifier.md +133 -0
- package/agents/writer.md +184 -0
- package/commands/api-design.md +268 -0
- package/commands/architecture-decision.md +314 -0
- package/commands/ci-cd.md +270 -0
- package/commands/code-review.md +233 -0
- package/commands/compound.md +117 -0
- package/commands/database.md +263 -0
- package/commands/debug-detective.md +99 -0
- package/commands/docker.md +274 -0
- package/commands/documentation.md +276 -0
- package/commands/ecomode.md +51 -0
- package/commands/frontend.md +271 -0
- package/commands/git-master.md +90 -0
- package/commands/incident-response.md +292 -0
- package/commands/migrate.md +101 -0
- package/commands/performance.md +288 -0
- package/commands/refactor.md +105 -0
- package/commands/security-review.md +288 -0
- package/commands/tdd.md +183 -0
- package/commands/testing-strategy.md +265 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +295 -0
- package/dist/core/auto-compound-runner.d.ts +12 -0
- package/dist/core/auto-compound-runner.js +460 -0
- package/dist/core/config-hooks.d.ts +10 -0
- package/dist/core/config-hooks.js +112 -0
- package/dist/core/config-injector.d.ts +50 -0
- package/dist/core/config-injector.js +455 -0
- package/dist/core/doctor.d.ts +1 -0
- package/dist/core/doctor.js +163 -0
- package/dist/core/errors.d.ts +81 -0
- package/dist/core/errors.js +133 -0
- package/dist/core/global-config.d.ts +43 -0
- package/dist/core/global-config.js +25 -0
- package/dist/core/harness.d.ts +24 -0
- package/dist/core/harness.js +621 -0
- package/dist/core/init.d.ts +7 -0
- package/dist/core/init.js +37 -0
- package/dist/core/inspect-cli.d.ts +7 -0
- package/dist/core/inspect-cli.js +47 -0
- package/dist/core/legacy-detector.d.ts +33 -0
- package/dist/core/legacy-detector.js +66 -0
- package/dist/core/logger.d.ts +34 -0
- package/dist/core/logger.js +121 -0
- package/dist/core/mcp-config.d.ts +44 -0
- package/dist/core/mcp-config.js +177 -0
- package/dist/core/notepad.d.ts +31 -0
- package/dist/core/notepad.js +88 -0
- package/dist/core/paths.d.ts +85 -0
- package/dist/core/paths.js +101 -0
- package/dist/core/plugin-detector.d.ts +44 -0
- package/dist/core/plugin-detector.js +226 -0
- package/dist/core/runtime-detector.d.ts +8 -0
- package/dist/core/runtime-detector.js +49 -0
- package/dist/core/scope-resolver.d.ts +8 -0
- package/dist/core/scope-resolver.js +45 -0
- package/dist/core/session-logger.d.ts +6 -0
- package/dist/core/session-logger.js +111 -0
- package/dist/core/session-store.d.ts +28 -0
- package/dist/core/session-store.js +218 -0
- package/dist/core/settings-lock.d.ts +18 -0
- package/dist/core/settings-lock.js +125 -0
- package/dist/core/spawn.d.ts +3 -0
- package/dist/core/spawn.js +135 -0
- package/dist/core/types.d.ts +108 -0
- package/dist/core/types.js +1 -0
- package/dist/core/uninstall.d.ts +4 -0
- package/dist/core/uninstall.js +307 -0
- package/dist/core/v1-bootstrap.d.ts +26 -0
- package/dist/core/v1-bootstrap.js +155 -0
- package/dist/engine/compound-cli.d.ts +24 -0
- package/dist/engine/compound-cli.js +250 -0
- package/dist/engine/compound-extractor.d.ts +68 -0
- package/dist/engine/compound-extractor.js +860 -0
- package/dist/engine/compound-lifecycle.d.ts +32 -0
- package/dist/engine/compound-lifecycle.js +305 -0
- package/dist/engine/compound-loop.d.ts +32 -0
- package/dist/engine/compound-loop.js +511 -0
- package/dist/engine/match-eval-log.d.ts +139 -0
- package/dist/engine/match-eval-log.js +270 -0
- package/dist/engine/phrase-blocklist.d.ts +119 -0
- package/dist/engine/phrase-blocklist.js +208 -0
- package/dist/engine/skill-promoter.d.ts +20 -0
- package/dist/engine/skill-promoter.js +115 -0
- package/dist/engine/solution-format.d.ts +160 -0
- package/dist/engine/solution-format.js +432 -0
- package/dist/engine/solution-index.d.ts +13 -0
- package/dist/engine/solution-index.js +252 -0
- package/dist/engine/solution-matcher.d.ts +364 -0
- package/dist/engine/solution-matcher.js +656 -0
- package/dist/engine/solution-writer.d.ts +76 -0
- package/dist/engine/solution-writer.js +157 -0
- package/dist/engine/term-matcher.d.ts +81 -0
- package/dist/engine/term-matcher.js +268 -0
- package/dist/engine/term-normalizer.d.ts +116 -0
- package/dist/engine/term-normalizer.js +171 -0
- package/dist/fgx.d.ts +6 -0
- package/dist/fgx.js +42 -0
- package/dist/forge/cli.d.ts +11 -0
- package/dist/forge/cli.js +100 -0
- package/dist/forge/evidence-processor.d.ts +21 -0
- package/dist/forge/evidence-processor.js +87 -0
- package/dist/forge/mismatch-detector.d.ts +44 -0
- package/dist/forge/mismatch-detector.js +83 -0
- package/dist/forge/onboarding-cli.d.ts +6 -0
- package/dist/forge/onboarding-cli.js +89 -0
- package/dist/forge/onboarding.d.ts +25 -0
- package/dist/forge/onboarding.js +122 -0
- package/dist/hooks/compound-reflection.d.ts +45 -0
- package/dist/hooks/compound-reflection.js +82 -0
- package/dist/hooks/context-guard.d.ts +24 -0
- package/dist/hooks/context-guard.js +156 -0
- package/dist/hooks/dangerous-patterns.json +18 -0
- package/dist/hooks/db-guard.d.ts +17 -0
- package/dist/hooks/db-guard.js +105 -0
- package/dist/hooks/hook-config.d.ts +29 -0
- package/dist/hooks/hook-config.js +92 -0
- package/dist/hooks/hook-registry.d.ts +43 -0
- package/dist/hooks/hook-registry.js +31 -0
- package/dist/hooks/hooks-generator.d.ts +49 -0
- package/dist/hooks/hooks-generator.js +99 -0
- package/dist/hooks/intent-classifier.d.ts +12 -0
- package/dist/hooks/intent-classifier.js +62 -0
- package/dist/hooks/keyword-detector.d.ts +25 -0
- package/dist/hooks/keyword-detector.js +389 -0
- package/dist/hooks/notepad-injector.d.ts +18 -0
- package/dist/hooks/notepad-injector.js +51 -0
- package/dist/hooks/permission-handler.d.ts +14 -0
- package/dist/hooks/permission-handler.js +114 -0
- package/dist/hooks/post-tool-failure.d.ts +11 -0
- package/dist/hooks/post-tool-failure.js +118 -0
- package/dist/hooks/post-tool-handlers.d.ts +17 -0
- package/dist/hooks/post-tool-handlers.js +115 -0
- package/dist/hooks/post-tool-use.d.ts +29 -0
- package/dist/hooks/post-tool-use.js +151 -0
- package/dist/hooks/pre-compact.d.ts +10 -0
- package/dist/hooks/pre-compact.js +165 -0
- package/dist/hooks/pre-tool-use.d.ts +31 -0
- package/dist/hooks/pre-tool-use.js +325 -0
- package/dist/hooks/prompt-injection-filter.d.ts +56 -0
- package/dist/hooks/prompt-injection-filter.js +287 -0
- package/dist/hooks/rate-limiter.d.ts +21 -0
- package/dist/hooks/rate-limiter.js +86 -0
- package/dist/hooks/secret-filter.d.ts +14 -0
- package/dist/hooks/secret-filter.js +65 -0
- package/dist/hooks/session-recovery.d.ts +27 -0
- package/dist/hooks/session-recovery.js +406 -0
- package/dist/hooks/shared/atomic-write.d.ts +41 -0
- package/dist/hooks/shared/atomic-write.js +148 -0
- package/dist/hooks/shared/context-budget.d.ts +37 -0
- package/dist/hooks/shared/context-budget.js +45 -0
- package/dist/hooks/shared/file-lock.d.ts +56 -0
- package/dist/hooks/shared/file-lock.js +253 -0
- package/dist/hooks/shared/hook-response.d.ts +33 -0
- package/dist/hooks/shared/hook-response.js +62 -0
- package/dist/hooks/shared/injection-caps.d.ts +39 -0
- package/dist/hooks/shared/injection-caps.js +52 -0
- package/dist/hooks/shared/plugin-signal.d.ts +23 -0
- package/dist/hooks/shared/plugin-signal.js +104 -0
- package/dist/hooks/shared/read-stdin.d.ts +8 -0
- package/dist/hooks/shared/read-stdin.js +63 -0
- package/dist/hooks/shared/sanitize-id.d.ts +7 -0
- package/dist/hooks/shared/sanitize-id.js +9 -0
- package/dist/hooks/shared/sanitize.d.ts +7 -0
- package/dist/hooks/shared/sanitize.js +22 -0
- package/dist/hooks/skill-injector.d.ts +38 -0
- package/dist/hooks/skill-injector.js +285 -0
- package/dist/hooks/slop-detector.d.ts +18 -0
- package/dist/hooks/slop-detector.js +93 -0
- package/dist/hooks/solution-injector.d.ts +58 -0
- package/dist/hooks/solution-injector.js +436 -0
- package/dist/hooks/subagent-tracker.d.ts +10 -0
- package/dist/hooks/subagent-tracker.js +90 -0
- package/dist/i18n/index.d.ts +43 -0
- package/dist/i18n/index.js +224 -0
- package/dist/lib.d.ts +14 -0
- package/dist/lib.js +14 -0
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.js +40 -0
- package/dist/mcp/solution-reader.d.ts +90 -0
- package/dist/mcp/solution-reader.js +273 -0
- package/dist/mcp/tools.d.ts +16 -0
- package/dist/mcp/tools.js +302 -0
- package/dist/preset/facet-catalog.d.ts +17 -0
- package/dist/preset/facet-catalog.js +46 -0
- package/dist/preset/preset-manager.d.ts +31 -0
- package/dist/preset/preset-manager.js +111 -0
- package/dist/renderer/inspect-renderer.d.ts +11 -0
- package/dist/renderer/inspect-renderer.js +123 -0
- package/dist/renderer/rule-renderer.d.ts +18 -0
- package/dist/renderer/rule-renderer.js +159 -0
- package/dist/store/evidence-store.d.ts +23 -0
- package/dist/store/evidence-store.js +58 -0
- package/dist/store/profile-store.d.ts +12 -0
- package/dist/store/profile-store.js +53 -0
- package/dist/store/recommendation-store.d.ts +22 -0
- package/dist/store/recommendation-store.js +64 -0
- package/dist/store/rule-store.d.ts +22 -0
- package/dist/store/rule-store.js +62 -0
- package/dist/store/session-state-store.d.ts +11 -0
- package/dist/store/session-state-store.js +44 -0
- package/dist/store/types.d.ts +159 -0
- package/dist/store/types.js +7 -0
- package/hooks/hook-registry.json +21 -0
- package/hooks/hooks.json +185 -0
- package/package.json +89 -0
- package/plugin.json +20 -0
- package/scripts/postinstall.js +826 -0
- package/skills/api-design/SKILL.md +262 -0
- package/skills/architecture-decision/SKILL.md +309 -0
- package/skills/ci-cd/SKILL.md +264 -0
- package/skills/code-review/SKILL.md +228 -0
- package/skills/compound/SKILL.md +101 -0
- package/skills/database/SKILL.md +257 -0
- package/skills/debug-detective/SKILL.md +95 -0
- package/skills/docker/SKILL.md +268 -0
- package/skills/documentation/SKILL.md +270 -0
- package/skills/ecomode/SKILL.md +46 -0
- package/skills/frontend/SKILL.md +265 -0
- package/skills/git-master/SKILL.md +86 -0
- package/skills/incident-response/SKILL.md +286 -0
- package/skills/migrate/SKILL.md +96 -0
- package/skills/performance/SKILL.md +282 -0
- package/skills/refactor/SKILL.md +100 -0
- package/skills/security-review/SKILL.md +282 -0
- package/skills/tdd/SKILL.md +178 -0
- package/skills/testing-strategy/SKILL.md +260 -0
- package/starter-pack/solutions/starter-api-error-responses.md +37 -0
- package/starter-pack/solutions/starter-async-patterns.md +40 -0
- package/starter-pack/solutions/starter-caching-strategy.md +40 -0
- package/starter-pack/solutions/starter-code-review-checklist.md +39 -0
- package/starter-pack/solutions/starter-debugging-systematic.md +40 -0
- package/starter-pack/solutions/starter-dependency-injection.md +40 -0
- package/starter-pack/solutions/starter-error-handling-patterns.md +38 -0
- package/starter-pack/solutions/starter-git-atomic-commits.md +36 -0
- package/starter-pack/solutions/starter-input-validation.md +40 -0
- package/starter-pack/solutions/starter-n-plus-one-queries.md +37 -0
- package/starter-pack/solutions/starter-refactor-safely.md +38 -0
- package/starter-pack/solutions/starter-secret-management.md +37 -0
- package/starter-pack/solutions/starter-separation-of-concerns.md +36 -0
- package/starter-pack/solutions/starter-tdd-red-green-refactor.md +40 -0
- package/starter-pack/solutions/starter-typescript-strict-types.md +39 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ci-cd
|
|
3
|
+
description: This skill should be used when the user asks to "ci cd,ci/cd,파이프라인,github actions,배포 자동화,pipeline design". CI/CD pipeline design, implementation, and optimization
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- forgen-managed -->
|
|
7
|
+
|
|
8
|
+
<Purpose>
|
|
9
|
+
CI/CD 파이프라인을 설계하고 구현합니다.
|
|
10
|
+
빌드, 테스트, 린트, 보안 스캔, 배포까지의 자동화 파이프라인을 구축하고
|
|
11
|
+
안정적이고 빠른 배포 사이클을 확립합니다.
|
|
12
|
+
</Purpose>
|
|
13
|
+
|
|
14
|
+
<Steps>
|
|
15
|
+
1. **요구사항 분석**: 프로젝트의 CI/CD 요구사항을 파악합니다
|
|
16
|
+
- 현재 배포 프로세스 파악 (수동/자동)
|
|
17
|
+
- 배포 대상 환경 (staging, production, preview)
|
|
18
|
+
- 브랜치 전략 확인 (gitflow, trunk-based, GitHub flow)
|
|
19
|
+
- 필요한 품질 게이트 식별
|
|
20
|
+
- 배포 빈도 목표
|
|
21
|
+
- 롤백 요구사항
|
|
22
|
+
- 시크릿 관리 방식
|
|
23
|
+
- 알림/모니터링 연동 대상
|
|
24
|
+
|
|
25
|
+
2. **파이프라인 스테이지 설계**: 단계별 작업을 정의합니다
|
|
26
|
+
- **Install**: 의존성 설치 (캐시 활용)
|
|
27
|
+
- **Lint**: 코드 스타일 검사 (ESLint, Prettier)
|
|
28
|
+
- **Type Check**: 타입 검사 (TypeScript)
|
|
29
|
+
- **Unit Test**: 유닛 테스트 실행 + 커버리지
|
|
30
|
+
- **Integration Test**: 통합 테스트 (DB, 외부 서비스)
|
|
31
|
+
- **Build**: 프로덕션 빌드
|
|
32
|
+
- **Security Scan**: 의존성 취약점 검사 (npm audit, Snyk)
|
|
33
|
+
- **E2E Test**: End-to-End 테스트 (Playwright, Cypress)
|
|
34
|
+
- **Deploy**: 배포 (환경별 차등)
|
|
35
|
+
- **Smoke Test**: 배포 후 기본 동작 확인
|
|
36
|
+
- **Notify**: 결과 알림 (Slack, Discord)
|
|
37
|
+
|
|
38
|
+
3. **구현**: 파이프라인 설정 파일을 작성합니다
|
|
39
|
+
- CI 플랫폼 선택 (GitHub Actions, GitLab CI, CircleCI)
|
|
40
|
+
- 워크플로우 파일 작성
|
|
41
|
+
- 병렬 실행 가능한 작업 식별 및 설정
|
|
42
|
+
- 캐싱 전략 (node_modules, 빌드 아티팩트)
|
|
43
|
+
- 매트릭스 빌드 (여러 Node 버전, OS)
|
|
44
|
+
- 환경별 배포 조건 설정
|
|
45
|
+
- 시크릿 설정 (환경 변수, 시크릿 스토어)
|
|
46
|
+
- 재사용 가능한 워크플로우 분리
|
|
47
|
+
|
|
48
|
+
4. **품질 게이트 설정**: 머지/배포 차단 조건을 설정합니다
|
|
49
|
+
- 테스트 커버리지 임계값 (85%+)
|
|
50
|
+
- 린트 에러 제로
|
|
51
|
+
- 타입 에러 제로
|
|
52
|
+
- 보안 취약점 제로 (CRITICAL/HIGH)
|
|
53
|
+
- 빌드 성공 필수
|
|
54
|
+
- PR 리뷰 승인 필수
|
|
55
|
+
- 커밋 메시지 컨벤션 검사
|
|
56
|
+
|
|
57
|
+
5. **모니터링 및 최적화**: 파이프라인 성능을 관리합니다
|
|
58
|
+
- 파이프라인 실행 시간 추적
|
|
59
|
+
- 실패율 모니터링
|
|
60
|
+
- Flaky 테스트 추적 및 제거
|
|
61
|
+
- 캐시 히트율 최적화
|
|
62
|
+
- 불필요한 재실행 방지 (경로 필터링)
|
|
63
|
+
- 비용 최적화 (러너 크기, 병렬화)
|
|
64
|
+
</Steps>
|
|
65
|
+
|
|
66
|
+
## 에이전트 위임
|
|
67
|
+
|
|
68
|
+
`executor` 에이전트(Sonnet 모델)에 위임하여 파이프라인을 구현합니다:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Agent(
|
|
72
|
+
subagent_type="executor",
|
|
73
|
+
model="sonnet",
|
|
74
|
+
prompt="CI/CD PIPELINE TASK
|
|
75
|
+
|
|
76
|
+
CI/CD 파이프라인을 설계하고 구현하세요.
|
|
77
|
+
|
|
78
|
+
Project: [프로젝트 설명]
|
|
79
|
+
Platform: [GitHub Actions / GitLab CI / etc.]
|
|
80
|
+
Branch Strategy: [gitflow / trunk-based / GitHub flow]
|
|
81
|
+
|
|
82
|
+
Pipeline Checklist:
|
|
83
|
+
1. 스테이지 설계 (lint, test, build, deploy)
|
|
84
|
+
2. 워크플로우 파일 작성
|
|
85
|
+
3. 캐싱 및 병렬화 최적화
|
|
86
|
+
4. 품질 게이트 설정
|
|
87
|
+
5. 시크릿 및 환경 변수 관리
|
|
88
|
+
6. 배포 전략 (환경별)
|
|
89
|
+
|
|
90
|
+
Output: CI/CD 구성 파일 및 문서:
|
|
91
|
+
- 워크플로우 파일(들)
|
|
92
|
+
- 환경별 배포 설정
|
|
93
|
+
- 품질 게이트 목록
|
|
94
|
+
- 파이프라인 다이어그램"
|
|
95
|
+
)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## External Consultation (Optional)
|
|
99
|
+
|
|
100
|
+
executor 에이전트는 교차 검증을 위해 Claude Task 에이전트에 자문할 수 있습니다.
|
|
101
|
+
|
|
102
|
+
### Protocol
|
|
103
|
+
1. **자체 파이프라인 설계를 먼저 완료** -- 독립적으로 구현
|
|
104
|
+
2. **검증을 위한 자문** -- Claude Task 에이전트를 통해 설계 교차 확인
|
|
105
|
+
3. **비판적 평가** -- 외부 제안을 맹목적으로 수용하지 않음
|
|
106
|
+
4. **우아한 폴백** -- 위임이 불가능할 경우 절대 차단하지 않음
|
|
107
|
+
|
|
108
|
+
### 자문이 필요한 경우
|
|
109
|
+
- 멀티 환경 배포 전략 (dev/staging/prod)
|
|
110
|
+
- Blue-Green 또는 Canary 배포 설정
|
|
111
|
+
- 모노레포 CI 최적화
|
|
112
|
+
- 보안이 중요한 배포 파이프라인
|
|
113
|
+
|
|
114
|
+
### 자문을 생략하는 경우
|
|
115
|
+
- 단순 린트/테스트 파이프라인
|
|
116
|
+
- 단일 환경 배포
|
|
117
|
+
- 잘 알려진 CI 템플릿 적용
|
|
118
|
+
- 기존 파이프라인의 경미한 수정
|
|
119
|
+
|
|
120
|
+
## 파이프라인 체크리스트
|
|
121
|
+
|
|
122
|
+
### CI (Continuous Integration) (6개)
|
|
123
|
+
- [ ] 의존성 설치에 캐시 적용
|
|
124
|
+
- [ ] 린트가 모든 PR에서 실행됨
|
|
125
|
+
- [ ] 타입 체크가 모든 PR에서 실행됨
|
|
126
|
+
- [ ] 테스트가 커버리지와 함께 실행됨
|
|
127
|
+
- [ ] 보안 스캔이 포함됨
|
|
128
|
+
- [ ] 빌드가 성공해야 머지 가능
|
|
129
|
+
|
|
130
|
+
### CD (Continuous Deployment) (5개)
|
|
131
|
+
- [ ] staging 환경에 자동 배포
|
|
132
|
+
- [ ] production 배포에 수동 승인 또는 자동 게이트
|
|
133
|
+
- [ ] 배포 후 스모크 테스트 실행
|
|
134
|
+
- [ ] 롤백 절차가 문서화/자동화됨
|
|
135
|
+
- [ ] 배포 알림이 설정됨
|
|
136
|
+
|
|
137
|
+
### 보안 (4개)
|
|
138
|
+
- [ ] 시크릿이 CI 플랫폼의 시크릿 스토어에 저장됨
|
|
139
|
+
- [ ] 워크플로우 파일에 하드코딩된 시크릿 없음
|
|
140
|
+
- [ ] 의존성 취약점 스캔 포함
|
|
141
|
+
- [ ] 최소 권한 원칙으로 배포 토큰 설정
|
|
142
|
+
|
|
143
|
+
### 성능 (3개)
|
|
144
|
+
- [ ] 병렬 실행으로 총 실행 시간 최소화
|
|
145
|
+
- [ ] 경로 필터로 불필요한 실행 방지
|
|
146
|
+
- [ ] 캐시 히트율이 80% 이상
|
|
147
|
+
|
|
148
|
+
## 배포 전략 비교
|
|
149
|
+
|
|
150
|
+
| 전략 | 다운타임 | 롤백 속도 | 복잡도 | 적합한 경우 |
|
|
151
|
+
|------|----------|-----------|--------|-------------|
|
|
152
|
+
| **Rolling** | 없음 | 느림 | 낮음 | 일반 웹 서비스 |
|
|
153
|
+
| **Blue-Green** | 없음 | 즉시 | 중간 | 빠른 롤백 필요 |
|
|
154
|
+
| **Canary** | 없음 | 빠름 | 높음 | 대규모 트래픽 |
|
|
155
|
+
| **Recreate** | 있음 | 느림 | 낮음 | 비프로덕션 환경 |
|
|
156
|
+
|
|
157
|
+
<Output>
|
|
158
|
+
```
|
|
159
|
+
CI/CD PIPELINE DOCUMENT / CI/CD 파이프라인 문서
|
|
160
|
+
================================================
|
|
161
|
+
|
|
162
|
+
Project: [프로젝트명]
|
|
163
|
+
Platform: [GitHub Actions / GitLab CI]
|
|
164
|
+
Branch Strategy: [gitflow / trunk-based]
|
|
165
|
+
|
|
166
|
+
PIPELINE DIAGRAM / 파이프라인 다이어그램
|
|
167
|
+
-----------------------------------------
|
|
168
|
+
PR → [Install] → [Lint + Type Check + Unit Test] → [Build] → [Security Scan]
|
|
169
|
+
(parallel)
|
|
170
|
+
main → [Install] → [Full Test] → [Build] → [Deploy Staging] → [Smoke Test]
|
|
171
|
+
↓ (manual approve)
|
|
172
|
+
[Deploy Production] → [Smoke Test]
|
|
173
|
+
|
|
174
|
+
STAGES / 스테이지
|
|
175
|
+
------------------
|
|
176
|
+
| Stage | Trigger | Duration | Parallel |
|
|
177
|
+
|---------------|-------------|----------|----------|
|
|
178
|
+
| Install | PR, push | ~30s | - |
|
|
179
|
+
| Lint | PR, push | ~15s | Yes |
|
|
180
|
+
| Type Check | PR, push | ~20s | Yes |
|
|
181
|
+
| Unit Test | PR, push | ~45s | Yes |
|
|
182
|
+
| Build | PR, push | ~60s | - |
|
|
183
|
+
| Security Scan | PR, push | ~30s | Yes |
|
|
184
|
+
| Deploy Staging| main push | ~120s | - |
|
|
185
|
+
| Smoke Test | after deploy| ~30s | - |
|
|
186
|
+
| Deploy Prod | manual | ~120s | - |
|
|
187
|
+
|
|
188
|
+
QUALITY GATES / 품질 게이트
|
|
189
|
+
-----------------------------
|
|
190
|
+
- Test Coverage: >= 85%
|
|
191
|
+
- Lint Errors: 0
|
|
192
|
+
- Type Errors: 0
|
|
193
|
+
- Security Vulnerabilities (CRITICAL/HIGH): 0
|
|
194
|
+
- Build: Success
|
|
195
|
+
- PR Review: >= 1 approval
|
|
196
|
+
|
|
197
|
+
WORKFLOW FILES / 워크플로우 파일
|
|
198
|
+
---------------------------------
|
|
199
|
+
.github/workflows/
|
|
200
|
+
ci.yml -- PR 검증 (lint, test, build)
|
|
201
|
+
cd-staging.yml -- staging 자동 배포
|
|
202
|
+
cd-prod.yml -- production 수동 배포
|
|
203
|
+
security.yml -- 주간 보안 스캔
|
|
204
|
+
|
|
205
|
+
ESTIMATED TOTAL RUNTIME / 예상 총 실행 시간
|
|
206
|
+
---------------------------------------------
|
|
207
|
+
PR Pipeline: ~2m30s
|
|
208
|
+
Deploy Pipeline: ~5m
|
|
209
|
+
```
|
|
210
|
+
</Output>
|
|
211
|
+
|
|
212
|
+
<Policy>
|
|
213
|
+
- 파이프라인은 10분 이내에 완료되어야 합니다 (PR 기준 5분 목표)
|
|
214
|
+
- 시크릿은 절대 워크플로우 파일에 하드코딩하지 않습니다
|
|
215
|
+
- 프로덕션 배포에는 반드시 승인 프로세스를 포함합니다
|
|
216
|
+
- 롤백 절차를 반드시 문서화하고 테스트합니다
|
|
217
|
+
- Flaky 테스트는 파이프라인 신뢰성을 해치므로 즉시 수정합니다
|
|
218
|
+
- 비용 효율성을 고려하여 불필요한 실행을 방지합니다
|
|
219
|
+
</Policy>
|
|
220
|
+
|
|
221
|
+
## 다른 스킬과의 연동
|
|
222
|
+
|
|
223
|
+
**테스트 전략 연동:**
|
|
224
|
+
```
|
|
225
|
+
/forgen:testing-strategy CI에서 실행할 테스트 구성
|
|
226
|
+
```
|
|
227
|
+
테스트 전략에 맞는 CI 테스트 단계 구성
|
|
228
|
+
|
|
229
|
+
**보안 리뷰 연동:**
|
|
230
|
+
```
|
|
231
|
+
/forgen:security-review .github/workflows/
|
|
232
|
+
```
|
|
233
|
+
워크플로우 파일의 보안 점검
|
|
234
|
+
|
|
235
|
+
**Docker 연동:**
|
|
236
|
+
```
|
|
237
|
+
/forgen:docker CI에서 컨테이너 빌드
|
|
238
|
+
```
|
|
239
|
+
CI 파이프라인에 Docker 이미지 빌드 통합
|
|
240
|
+
|
|
241
|
+
## Best Practices
|
|
242
|
+
|
|
243
|
+
- **빠르게 실패** -- 가장 빠른 검사를 먼저 실행 (lint > type > test > build)
|
|
244
|
+
- **병렬화** -- 독립적인 작업은 동시에 실행
|
|
245
|
+
- **캐시 활용** -- 의존성과 빌드 아티팩트를 캐싱
|
|
246
|
+
- **경로 필터링** -- 관련 파일 변경 시에만 실행
|
|
247
|
+
- **알림 최적화** -- 실패 시에만 알림 (성공 알림은 노이즈)
|
|
248
|
+
|
|
249
|
+
<Arguments>
|
|
250
|
+
## 사용법
|
|
251
|
+
`/forgen:ci-cd {파이프라인 대상}`
|
|
252
|
+
|
|
253
|
+
### 예시
|
|
254
|
+
- `/forgen:ci-cd GitHub Actions 파이프라인 설계`
|
|
255
|
+
- `/forgen:ci-cd staging 자동 배포 설정`
|
|
256
|
+
- `/forgen:ci-cd 기존 파이프라인 실행 시간 최적화`
|
|
257
|
+
- `/forgen:ci-cd Vercel 배포 + Preview 환경 구성`
|
|
258
|
+
|
|
259
|
+
### 인자
|
|
260
|
+
- CI 플랫폼, 배포 대상, 최적화 목표 등을 설명
|
|
261
|
+
- 인자 없으면 프로젝트에 적합한 CI/CD 파이프라인을 설계
|
|
262
|
+
</Arguments>
|
|
263
|
+
|
|
264
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review
|
|
3
|
+
description: This skill should be used when the user asks to "code review,코드 리뷰,리뷰해줘,review this". Systematic code review with severity-rated feedback
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<Purpose>
|
|
7
|
+
체계적인 코드 리뷰를 수행하여 품질, 보안, 유지보수성을 검증합니다.
|
|
8
|
+
심각도별로 분류된 피드백을 제공합니다.
|
|
9
|
+
</Purpose>
|
|
10
|
+
|
|
11
|
+
<Steps>
|
|
12
|
+
1. **스코프 파악**: 변경된 파일과 영향 범위를 식별합니다
|
|
13
|
+
- git diff 또는 지정된 파일 확인
|
|
14
|
+
- 변경의 목적과 컨텍스트 이해
|
|
15
|
+
|
|
16
|
+
2. **정확성 검증**: 로직이 의도대로 동작하는지 확인합니다
|
|
17
|
+
- 엣지 케이스 처리 여부
|
|
18
|
+
- 에러 핸들링 적절성
|
|
19
|
+
- 동시성/경쟁 조건
|
|
20
|
+
|
|
21
|
+
3. **보안 검토**: OWASP Top 10 기준으로 취약점을 점검합니다
|
|
22
|
+
- 입력 검증/살균
|
|
23
|
+
- 인증/인가 로직
|
|
24
|
+
- 민감 정보 노출
|
|
25
|
+
|
|
26
|
+
4. **유지보수성**: 코드 품질과 가독성을 평가합니다
|
|
27
|
+
- 네이밍 컨벤션
|
|
28
|
+
- SOLID 원칙 준수
|
|
29
|
+
- 적절한 추상화 수준
|
|
30
|
+
|
|
31
|
+
5. **피드백 작성**: 심각도별로 분류하여 리포트합니다
|
|
32
|
+
</Steps>
|
|
33
|
+
|
|
34
|
+
## 에이전트 위임
|
|
35
|
+
|
|
36
|
+
`code-reviewer` 에이전트(Opus 모델)에 위임하여 심층 코드 분석을 수행합니다:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Agent(
|
|
40
|
+
subagent_type="code-reviewer",
|
|
41
|
+
model="opus",
|
|
42
|
+
prompt="CODE REVIEW TASK
|
|
43
|
+
|
|
44
|
+
코드 변경 사항의 품질, 보안, 유지보수성을 리뷰하세요.
|
|
45
|
+
|
|
46
|
+
Scope: [git diff 또는 특정 파일]
|
|
47
|
+
|
|
48
|
+
Review Checklist:
|
|
49
|
+
- Security 취약점 (OWASP Top 10)
|
|
50
|
+
- Code Quality (복잡도, 중복)
|
|
51
|
+
- Performance 이슈 (N+1, 비효율 알고리즘)
|
|
52
|
+
- Best Practices (네이밍, 문서화, 에러 핸들링)
|
|
53
|
+
- Maintainability (결합도, 테스트 가능성)
|
|
54
|
+
|
|
55
|
+
Output: 코드 리뷰 리포트:
|
|
56
|
+
- 리뷰한 파일 수
|
|
57
|
+
- 심각도별 이슈 (CRITICAL, HIGH, MEDIUM, LOW)
|
|
58
|
+
- 구체적인 파일:라인 위치
|
|
59
|
+
- 수정 권고
|
|
60
|
+
- 승인 권고 (APPROVE / REQUEST CHANGES / COMMENT)"
|
|
61
|
+
)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 리뷰 체크리스트 (20개 항목)
|
|
65
|
+
|
|
66
|
+
### Security (6개)
|
|
67
|
+
- [ ] 하드코딩된 시크릿 없음 (API 키, 비밀번호, 토큰)
|
|
68
|
+
- [ ] 모든 사용자 입력이 살균됨
|
|
69
|
+
- [ ] SQL/NoSQL 인젝션 방지
|
|
70
|
+
- [ ] XSS 방지 (출력 이스케이핑)
|
|
71
|
+
- [ ] CSRF 보호 (상태 변경 작업)
|
|
72
|
+
- [ ] 인증/인가가 적절히 적용됨
|
|
73
|
+
|
|
74
|
+
### Code Quality (5개)
|
|
75
|
+
- [ ] 함수가 50줄 미만 (가이드라인)
|
|
76
|
+
- [ ] 순환 복잡도 10 미만
|
|
77
|
+
- [ ] 깊은 중첩 없음 (4단계 초과 시 early return 적용)
|
|
78
|
+
- [ ] 중복 로직 없음 (DRY 원칙)
|
|
79
|
+
- [ ] 명확하고 서술적인 네이밍
|
|
80
|
+
|
|
81
|
+
### Performance (4개)
|
|
82
|
+
- [ ] N+1 쿼리 패턴 없음
|
|
83
|
+
- [ ] 적절한 캐싱 적용
|
|
84
|
+
- [ ] 효율적인 알고리즘 (O(n^2) 대신 O(n) 가능한 경우)
|
|
85
|
+
- [ ] 불필요한 리렌더링 없음 (React/Vue)
|
|
86
|
+
|
|
87
|
+
### Best Practices (5개)
|
|
88
|
+
- [ ] 에러 핸들링이 적절히 구현됨
|
|
89
|
+
- [ ] 적절한 레벨의 로깅
|
|
90
|
+
- [ ] 공개 API에 대한 문서화
|
|
91
|
+
- [ ] 핵심 경로에 대한 테스트 존재
|
|
92
|
+
- [ ] 주석 처리된 코드 없음
|
|
93
|
+
|
|
94
|
+
## 승인 기준
|
|
95
|
+
|
|
96
|
+
| 판정 | 조건 | 설명 |
|
|
97
|
+
|------|------|------|
|
|
98
|
+
| **APPROVE** | CRITICAL/HIGH 이슈 없음 | 경미한 개선 사항만 있음, 머지 가능 |
|
|
99
|
+
| **REQUEST CHANGES** | CRITICAL 또는 HIGH 이슈 존재 | 반드시 수정 후 재리뷰 필요 |
|
|
100
|
+
| **COMMENT** | LOW/MEDIUM 이슈만 존재 | 차단 사항 없음, 선택적 개선 권장 |
|
|
101
|
+
|
|
102
|
+
## External Consultation (Optional)
|
|
103
|
+
|
|
104
|
+
code-reviewer 에이전트는 교차 검증을 위해 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
|
+
- 잘 알려진 패턴
|
|
121
|
+
- 시간이 촉박한 리뷰
|
|
122
|
+
- 작고 격리된 변경
|
|
123
|
+
|
|
124
|
+
## 심각도 정의
|
|
125
|
+
|
|
126
|
+
| 심각도 | 설명 |
|
|
127
|
+
|--------|------|
|
|
128
|
+
| **CRITICAL** | 보안 취약점 (머지 전 반드시 수정) |
|
|
129
|
+
| **HIGH** | 버그 또는 주요 코드 스멜 (머지 전 수정 권장) |
|
|
130
|
+
| **MEDIUM** | 경미한 이슈 (가능할 때 수정) |
|
|
131
|
+
| **LOW** | 스타일/제안 (수정 고려) |
|
|
132
|
+
|
|
133
|
+
<Output>
|
|
134
|
+
```
|
|
135
|
+
CODE REVIEW REPORT / 코드 리뷰 리포트
|
|
136
|
+
======================================
|
|
137
|
+
|
|
138
|
+
Files Reviewed: N
|
|
139
|
+
Total Issues: N
|
|
140
|
+
|
|
141
|
+
CRITICAL (N)
|
|
142
|
+
------------
|
|
143
|
+
(없음 / 이슈 상세)
|
|
144
|
+
|
|
145
|
+
HIGH (N)
|
|
146
|
+
--------
|
|
147
|
+
1. src/api/auth.ts:42
|
|
148
|
+
Issue: 사용자 입력이 SQL 쿼리 전에 살균되지 않음
|
|
149
|
+
Risk: SQL 인젝션 취약점
|
|
150
|
+
Fix: 파라미터화 쿼리 또는 ORM 사용
|
|
151
|
+
|
|
152
|
+
2. src/components/UserProfile.tsx:89
|
|
153
|
+
Issue: 비밀번호가 로그에 평문으로 출력됨
|
|
154
|
+
Risk: 크리덴셜 노출
|
|
155
|
+
Fix: 로그 구문에서 비밀번호 제거
|
|
156
|
+
|
|
157
|
+
3. src/utils/validation.ts:15
|
|
158
|
+
Issue: 이메일 정규식이 잘못된 형식을 허용
|
|
159
|
+
Risk: 잘못된 이메일 수용
|
|
160
|
+
Fix: 검증된 이메일 유효성 검사 라이브러리 사용
|
|
161
|
+
|
|
162
|
+
MEDIUM (N)
|
|
163
|
+
----------
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
LOW (N)
|
|
167
|
+
-------
|
|
168
|
+
...
|
|
169
|
+
|
|
170
|
+
RECOMMENDATION: [APPROVE / REQUEST CHANGES / COMMENT]
|
|
171
|
+
|
|
172
|
+
[수정이 필요한 경우 요약 코멘트]
|
|
173
|
+
```
|
|
174
|
+
</Output>
|
|
175
|
+
|
|
176
|
+
<Policy>
|
|
177
|
+
- 변경된 코드만 리뷰합니다 (기존 코드의 기술 부채는 별도 이슈로)
|
|
178
|
+
- 구체적인 코드 라인을 참조하여 피드백합니다
|
|
179
|
+
- 문제 지적 시 해결 방안도 함께 제시합니다
|
|
180
|
+
- 잘된 부분도 언급하여 균형 잡힌 피드백을 제공합니다
|
|
181
|
+
- 20개 체크 항목을 빠짐없이 검토합니다
|
|
182
|
+
- APPROVE/REQUEST CHANGES/COMMENT 3단계 판정을 반드시 포함합니다
|
|
183
|
+
</Policy>
|
|
184
|
+
|
|
185
|
+
## 다른 스킬과의 연동
|
|
186
|
+
|
|
187
|
+
**Pipeline 연동:**
|
|
188
|
+
```
|
|
189
|
+
/forgen:pipeline review "사용자 인증 구현"
|
|
190
|
+
```
|
|
191
|
+
구현 워크플로우의 일부로 코드 리뷰 포함
|
|
192
|
+
|
|
193
|
+
**Ralph 연동:**
|
|
194
|
+
```
|
|
195
|
+
/forgen:ralph code-review then fix all issues
|
|
196
|
+
```
|
|
197
|
+
코드 리뷰 후 피드백 수정, 승인될 때까지 반복
|
|
198
|
+
|
|
199
|
+
**팀 기반 병렬 리뷰:**
|
|
200
|
+
```
|
|
201
|
+
/forgen:team 4:code-reviewer "src/ 전체 파일 리뷰"
|
|
202
|
+
```
|
|
203
|
+
여러 파일에 대해 병렬 코드 리뷰 수행
|
|
204
|
+
|
|
205
|
+
## Best Practices
|
|
206
|
+
|
|
207
|
+
- **조기 리뷰** — 이슈가 누적되기 전에 잡기
|
|
208
|
+
- **자주 리뷰** — 크고 드문 리뷰보다 작고 빈번한 리뷰
|
|
209
|
+
- **CRITICAL/HIGH 우선** — 보안과 버그부터 즉시 수정
|
|
210
|
+
- **컨텍스트 고려** — 일부 "이슈"는 의도적 트레이드오프일 수 있음
|
|
211
|
+
- **리뷰에서 학습** — 피드백을 활용하여 코딩 관행 개선
|
|
212
|
+
|
|
213
|
+
<Arguments>
|
|
214
|
+
## 사용법
|
|
215
|
+
`/forgen:code-review {리뷰 대상}`
|
|
216
|
+
|
|
217
|
+
### 예시
|
|
218
|
+
- `/forgen:code-review` (기본: 최근 변경사항 리뷰)
|
|
219
|
+
- `/forgen:code-review src/auth/login.ts`
|
|
220
|
+
- `/forgen:code-review 최근 3개 커밋`
|
|
221
|
+
- `/forgen:code-review PR #42`
|
|
222
|
+
|
|
223
|
+
### 인자
|
|
224
|
+
- 파일 경로, 커밋 범위, PR 번호 등을 지정
|
|
225
|
+
- 인자 없으면 `git diff`로 변경사항을 자동 감지
|
|
226
|
+
</Arguments>
|
|
227
|
+
|
|
228
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: compound
|
|
3
|
+
description: This skill should be used when the user asks to "복리화,compound,패턴 추출,솔루션 축적,what did we learn". Compound Engineering — extract reusable patterns from this session's work
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<Purpose>
|
|
7
|
+
이 세션에서 수행한 작업을 분석하여 재사용 가능한 지식을 추출하고 축적합니다.
|
|
8
|
+
당신은 이 대화의 전체 맥락을 갖고 있으므로, git diff만으로는 알 수 없는 "왜"를 포함할 수 있습니다.
|
|
9
|
+
참고: CLI `forgen compound`는 최근 코드/세션을 자동 분석한 결과를 미리보기하고, `--save`일 때만 저장합니다. 이 slash skill은 대화 전체 맥락을 바탕으로 수동 추출할 때 사용합니다.
|
|
10
|
+
</Purpose>
|
|
11
|
+
|
|
12
|
+
<Steps>
|
|
13
|
+
## Phase 1: 세션 분석
|
|
14
|
+
|
|
15
|
+
이 세션의 대화를 돌아보며 다음을 식별하세요:
|
|
16
|
+
|
|
17
|
+
### 솔루션 (재사용 가능한 패턴)
|
|
18
|
+
- 어떤 기술적 결정을 내렸는가? 왜?
|
|
19
|
+
- 어떤 접근법이 효과적이었는가?
|
|
20
|
+
- 시도했다가 실패한 것은? (anti-pattern)
|
|
21
|
+
- 반복될 수 있는 패턴이 있는가?
|
|
22
|
+
|
|
23
|
+
### 트러블슈팅 (문제 해결 지식)
|
|
24
|
+
- 어떤 에러/문제를 만났는가?
|
|
25
|
+
- 근본 원인은 무엇이었는가?
|
|
26
|
+
- 해결 방법은?
|
|
27
|
+
- 다음에 같은 문제를 만나면 바로 적용할 수 있는 해결 절차는?
|
|
28
|
+
|
|
29
|
+
### 의사결정 (선택의 근거)
|
|
30
|
+
- 기술 스택/라이브러리 선택의 이유
|
|
31
|
+
- 아키텍처 결정의 배경
|
|
32
|
+
- 트레이드오프와 그 판단 근거
|
|
33
|
+
|
|
34
|
+
### 안티패턴 (피해야 할 것)
|
|
35
|
+
- 이 세션에서 시도했다가 실패한 접근법은?
|
|
36
|
+
- 왜 실패했는가? (근본 원인)
|
|
37
|
+
- 다음에 같은 실수를 피하려면?
|
|
38
|
+
|
|
39
|
+
### 영향 범위 분석
|
|
40
|
+
- 이 변경/결정이 다른 모듈/파일에 미치는 영향은?
|
|
41
|
+
- 의존하는 코드가 깨질 수 있는가?
|
|
42
|
+
- 어떤 테스트가 추가로 필요한가?
|
|
43
|
+
|
|
44
|
+
### 기존 항목 교차 참조
|
|
45
|
+
축적 전에 기존 compound 항목과 비교하세요:
|
|
46
|
+
```bash
|
|
47
|
+
forgen compound list
|
|
48
|
+
```
|
|
49
|
+
- 이미 유사한 솔루션/규칙이 있는가? → 업데이트 또는 보완
|
|
50
|
+
- 기존 항목과 모순되는가? → 둘 다 기록하고 비교
|
|
51
|
+
|
|
52
|
+
### 확신도 자기 평가
|
|
53
|
+
각 추출 항목에 대해 확신도를 평가하세요:
|
|
54
|
+
- **높음**: 명확한 인과관계, 반복 검증됨
|
|
55
|
+
- **중간**: 합리적 추론, 1회 검증
|
|
56
|
+
- **낮음**: 가설 수준, 추가 검증 필요
|
|
57
|
+
|
|
58
|
+
## Phase 2: 품질 게이트
|
|
59
|
+
|
|
60
|
+
추출 전 각 항목을 검증하세요:
|
|
61
|
+
|
|
62
|
+
1. **재사용 가능한가?** — 이 프로젝트에만 해당하는 것은 제외 (scope: project로 표시)
|
|
63
|
+
2. **구체적인가?** — "좋은 코드를 작성하자" 같은 일반론은 제외
|
|
64
|
+
3. **실행 가능한가?** — 다음에 적용할 수 있는 구체적 내용이 있는가?
|
|
65
|
+
4. **독성이 없는가?** — @ts-ignore, --force, 임시 우회 같은 패턴은 제외
|
|
66
|
+
|
|
67
|
+
## Phase 3: 축적
|
|
68
|
+
|
|
69
|
+
추출한 각 인사이트를 CLI 명령어로 저장합니다:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# 솔루션 (재사용 가능한 패턴)
|
|
73
|
+
forgen compound --solution "제목" "왜 이 접근법을 사용했고, 언제 적용하는지 포함한 상세 설명"
|
|
74
|
+
|
|
75
|
+
# 트러블슈팅 (에러 → 원인 → 해결)
|
|
76
|
+
forgen compound --solution "에러명-해결법" "에러 상황, 근본 원인, 해결 절차를 포함"
|
|
77
|
+
|
|
78
|
+
# 의사결정 (선택의 근거)
|
|
79
|
+
forgen compound --solution "기술선택-이유" "어떤 대안이 있었고 왜 이것을 선택했는지"
|
|
80
|
+
|
|
81
|
+
# 안티패턴 (피해야 할 것)
|
|
82
|
+
forgen compound --solution "피해야-할-패턴" "왜 이 접근이 실패했고 대신 무엇을 해야 하는지"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**중요**:
|
|
86
|
+
- 각 솔루션의 내용에 **"왜"**를 반드시 포함하세요
|
|
87
|
+
- 제목은 구체적으로 (예: "React-useCallback-memo-최적화" O, "성능개선" X)
|
|
88
|
+
- 내용은 다른 세션에서 이 솔루션을 보고 바로 적용할 수 있을 정도로 상세하게
|
|
89
|
+
- 단순 타이포/1줄 수정 세션이면 → "복리화 불필요" 후 종료
|
|
90
|
+
|
|
91
|
+
## Phase 4: 리포트
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
📊 세션 복리화 완료
|
|
95
|
+
├─ 추출: N개 솔루션
|
|
96
|
+
├─ 유형: pattern X개, troubleshoot Y개, decision Z개
|
|
97
|
+
└─ 저장: ~/.forgen/me/solutions/
|
|
98
|
+
```
|
|
99
|
+
</Steps>
|
|
100
|
+
|
|
101
|
+
$ARGUMENTS
|