@kood/claude-code 0.6.5 → 0.6.7
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/dist/index.js +255 -149
- package/package.json +1 -1
- package/templates/.claude/agents/researcher.md +8 -1
- package/templates/.claude/instructions/sourcing/reliable-search.md +49 -2
- package/templates/.claude/scripts/deploy/build-run.sh +36 -0
- package/templates/.claude/scripts/deploy/deploy-check.sh +38 -0
- package/templates/.claude/scripts/git/git-all.sh +57 -0
- package/templates/.claude/scripts/git/git-clean-check.sh +31 -0
- package/templates/.claude/scripts/git/git-commit.sh +51 -0
- package/templates/.claude/scripts/git/git-info.sh +34 -0
- package/templates/.claude/scripts/git/git-push.sh +50 -0
- package/templates/.claude/scripts/lint/lint-check.sh +56 -0
- package/templates/.claude/scripts/lint/lint-file.sh +41 -0
- package/templates/.claude/scripts/pm/pm-detect.sh +25 -0
- package/templates/.claude/scripts/pm/pm-run.sh +41 -0
- package/templates/.claude/scripts/version/version-bump.sh +54 -0
- package/templates/.claude/scripts/version/version-find.sh +49 -0
- package/templates/.claude/skills/docs-fetch/SKILL.md +5 -4
- package/templates/.claude/skills/project-optimizer/AGENTS.md +275 -0
- package/templates/.claude/skills/project-optimizer/SKILL.md +374 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-config-centralize.md +66 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-hot-path.md +35 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-interface-segregation.md +51 -0
- package/templates/.claude/skills/project-optimizer/rules/arch-module-boundary.md +42 -0
- package/templates/.claude/skills/project-optimizer/rules/build-cache.md +57 -0
- package/templates/.claude/skills/project-optimizer/rules/build-code-split.md +56 -0
- package/templates/.claude/skills/project-optimizer/rules/build-incremental.md +65 -0
- package/templates/.claude/skills/project-optimizer/rules/build-minify.md +61 -0
- package/templates/.claude/skills/project-optimizer/rules/build-tree-shake.md +60 -0
- package/templates/.claude/skills/project-optimizer/rules/code-complexity.md +65 -0
- package/templates/.claude/skills/project-optimizer/rules/code-dead-elimination.md +32 -0
- package/templates/.claude/skills/project-optimizer/rules/code-duplication.md +54 -0
- package/templates/.claude/skills/project-optimizer/rules/code-error-handling.md +75 -0
- package/templates/.claude/skills/project-optimizer/rules/code-naming.md +52 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-defer-await.md +54 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-parallel.md +90 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-pipeline.md +68 -0
- package/templates/.claude/skills/project-optimizer/rules/concurrency-pool.md +68 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-lightweight-alt.md +37 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-peer-align.md +44 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-security-audit.md +45 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-unused-removal.md +25 -0
- package/templates/.claude/skills/project-optimizer/rules/deps-version-pin.md +40 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-ci-speed.md +47 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-dev-server.md +35 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-lint-config.md +36 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-test-coverage.md +34 -0
- package/templates/.claude/skills/project-optimizer/rules/dx-type-safety.md +49 -0
- package/templates/.claude/skills/project-optimizer/rules/io-batch-queries.md +67 -0
- package/templates/.claude/skills/project-optimizer/rules/io-cache-layer.md +67 -0
- package/templates/.claude/skills/project-optimizer/rules/io-connection-reuse.md +67 -0
- package/templates/.claude/skills/project-optimizer/rules/io-serialize-minimal.md +61 -0
- package/templates/.claude/skills/project-optimizer/rules/io-stream.md +75 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-bounded-cache.md +65 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-large-data.md +64 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-lazy-init.md +78 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-leak-prevention.md +79 -0
- package/templates/.claude/skills/project-optimizer/rules/memory-pool-reuse.md +70 -0
- package/templates/.claude/skills/sql-optimizer/SKILL.md +437 -0
- package/templates/.claude/skills/sql-optimizer/orm-patterns.md +218 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +53 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +93 -27
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +42 -19
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-optimistic-updates.md +109 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-suspense-query.md +74 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-use-hook.md +81 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-react-compiler.md +81 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-beforeload-auth.md +121 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-file-conventions.md +104 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-link-navigation.md +119 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-nested-layouts.md +155 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-path-params.md +89 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-pending-component.md +110 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-preload-strategy.md +91 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-router-context.md +120 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/routing-search-params.md +114 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +1 -1
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-error-boundaries.md +79 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-middleware.md +85 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +56 -21
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-streaming.md +84 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-validator.md +71 -0
- package/templates/.claude/skills/tauri-react-best-practices/AGENTS.md +527 -0
- package/templates/.claude/skills/tauri-react-best-practices/SKILL.md +570 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-barrel-imports.md +140 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-cargo-profile.md +96 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-frontend-treeshake.md +242 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-lazy-components.md +255 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/bundle-remove-unused-commands.md +160 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-ci-pipeline.md +269 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-signing.md +207 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/deploy-updater.md +226 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-async-commands.md +172 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-batch-commands.md +133 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-binary-response.md +198 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-channel-streaming.md +186 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-error-handling.md +250 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/ipc-type-safe.md +227 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-derived-state.md +231 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-functional-setstate.md +191 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-index-maps.md +276 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/perf-lazy-state-init.md +196 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-lifecycle.md +265 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-mobile-compat.md +199 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/plugin-permission-scope.md +193 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-error-boundary.md +239 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-event-listener.md +151 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-file-src.md +155 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-invoke-hook.md +139 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/react-optimistic-update.md +211 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-capability-split.md +205 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-csp.md +207 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-least-privilege.md +106 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-no-wildcard.md +253 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/security-scope-paths.md +160 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-async-mutex.md +270 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-mutex-pattern.md +265 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-react-sync.md +375 -0
- package/templates/.claude/skills/tauri-react-best-practices/rules/state-single-container.md +275 -0
- package/templates/tanstack-start/docs/architecture.md +238 -167
- package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +777 -38
- package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +549 -37
- package/templates/tanstack-start/docs/library/tanstack-router/index.md +895 -111
- package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +641 -43
- package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +889 -38
- package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +891 -29
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +972 -36
- package/templates/tanstack-start/docs/library/tanstack-start/index.md +1525 -881
- package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +1099 -20
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +796 -30
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +953 -35
- package/templates/tanstack-start/docs/library/tanstack-start/setup.md +371 -15
- package/templates/tauri/CLAUDE.md +189 -0
- package/templates/tauri/docs/guides/distribution.md +261 -0
- package/templates/tauri/docs/guides/getting-started.md +302 -0
- package/templates/tauri/docs/guides/mobile.md +288 -0
- package/templates/tauri/docs/library/tauri/index.md +510 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Project Optimizer
|
|
2
|
+
|
|
3
|
+
**Version 1.0.0**
|
|
4
|
+
범용 프로젝트 최적화 가이드 (언어/프레임워크 무관)
|
|
5
|
+
February 2026
|
|
6
|
+
|
|
7
|
+
> **참고:**
|
|
8
|
+
> 이 문서는 주로 에이전트와 LLM이 프로젝트 코드베이스를 분석, 최적화, 리팩토링할 때 따르기 위한 것입니다. 어떤 언어/프레임워크든 적용 가능한 보편적 최적화 원칙 기반.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 요약
|
|
13
|
+
|
|
14
|
+
AI 에이전트를 위한 범용 프로젝트 최적화 가이드. 8개 카테고리에 걸쳐 38개 규칙을 포함하며, 영향도별로 우선순위 매김 (critical: 동시성, 빌드 최적화 → incremental: 아키텍처). 언어/프레임워크를 자동 감지하여 해당 언어의 관용적 패턴으로 규칙 적용. 프레임워크 특화 스킬(nextjs, tanstack-start, tauri)과 자동 체이닝 지원.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<instructions>
|
|
19
|
+
|
|
20
|
+
## 문서 사용 지침
|
|
21
|
+
|
|
22
|
+
@rules/concurrency-parallel.md
|
|
23
|
+
@rules/concurrency-defer-await.md
|
|
24
|
+
@rules/concurrency-pipeline.md
|
|
25
|
+
@rules/concurrency-pool.md
|
|
26
|
+
@rules/build-incremental.md
|
|
27
|
+
@rules/build-tree-shake.md
|
|
28
|
+
@rules/build-code-split.md
|
|
29
|
+
@rules/build-minify.md
|
|
30
|
+
@rules/build-cache.md
|
|
31
|
+
@rules/io-batch-queries.md
|
|
32
|
+
@rules/io-cache-layer.md
|
|
33
|
+
@rules/io-stream.md
|
|
34
|
+
@rules/io-connection-reuse.md
|
|
35
|
+
@rules/io-serialize-minimal.md
|
|
36
|
+
@rules/memory-leak-prevention.md
|
|
37
|
+
@rules/memory-pool-reuse.md
|
|
38
|
+
@rules/memory-lazy-init.md
|
|
39
|
+
@rules/memory-bounded-cache.md
|
|
40
|
+
@rules/memory-large-data.md
|
|
41
|
+
@rules/code-dead-elimination.md
|
|
42
|
+
@rules/code-duplication.md
|
|
43
|
+
@rules/code-complexity.md
|
|
44
|
+
@rules/code-naming.md
|
|
45
|
+
@rules/code-error-handling.md
|
|
46
|
+
@rules/deps-unused-removal.md
|
|
47
|
+
@rules/deps-security-audit.md
|
|
48
|
+
@rules/deps-version-pin.md
|
|
49
|
+
@rules/deps-lightweight-alt.md
|
|
50
|
+
@rules/deps-peer-align.md
|
|
51
|
+
@rules/dx-type-safety.md
|
|
52
|
+
@rules/dx-lint-config.md
|
|
53
|
+
@rules/dx-test-coverage.md
|
|
54
|
+
@rules/dx-ci-speed.md
|
|
55
|
+
@rules/dx-dev-server.md
|
|
56
|
+
@rules/arch-module-boundary.md
|
|
57
|
+
@rules/arch-interface-segregation.md
|
|
58
|
+
@rules/arch-config-centralize.md
|
|
59
|
+
@rules/arch-hot-path.md
|
|
60
|
+
|
|
61
|
+
</instructions>
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
<categories>
|
|
66
|
+
|
|
67
|
+
## 카테고리별 우선순위
|
|
68
|
+
|
|
69
|
+
| 우선순위 | 카테고리 | 영향도 | 설명 |
|
|
70
|
+
|---------|---------|--------|------|
|
|
71
|
+
| 1 | 동시성/병렬화 | **CRITICAL** | 순차 I/O를 병렬로 전환. 가장 큰 성능 향상 |
|
|
72
|
+
| 2 | 빌드/번들 최적화 | **CRITICAL** | 빌드 시간, 출력 크기 감소 |
|
|
73
|
+
| 3 | I/O 성능 | **HIGH** | DB/네트워크/파일 I/O 효율화 |
|
|
74
|
+
| 4 | 메모리/리소스 관리 | HIGH | 메모리 누수 방지, 리소스 효율 |
|
|
75
|
+
| 5 | 코드 품질 | MEDIUM-HIGH | 유지보수성, 가독성, 정확성 |
|
|
76
|
+
| 6 | 의존성 관리 | MEDIUM | 보안, 크기, 호환성 |
|
|
77
|
+
| 7 | DX (개발자 경험) | MEDIUM | 타입 안전성, 린팅, 테스트, CI |
|
|
78
|
+
| 8 | 아키텍처 | LOW-MEDIUM | 모듈 경계, 인터페이스, 설정 관리 |
|
|
79
|
+
|
|
80
|
+
</categories>
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
<critical_patterns>
|
|
85
|
+
|
|
86
|
+
## 1. 동시성/병렬화 (CRITICAL)
|
|
87
|
+
|
|
88
|
+
순차 I/O는 가장 큰 성능 저해 요소. 독립 작업은 항상 동시 실행.
|
|
89
|
+
|
|
90
|
+
### 병렬 실행 (다국어)
|
|
91
|
+
|
|
92
|
+
| 언어 | 순차 (❌) | 병렬 (✅) |
|
|
93
|
+
|------|----------|----------|
|
|
94
|
+
| **JS/TS** | `await a(); await b()` | `await Promise.all([a(), b()])` |
|
|
95
|
+
| **Python** | `await a(); await b()` | `await asyncio.gather(a(), b())` |
|
|
96
|
+
| **Go** | `a(); b()` | `errgroup.Go(a); errgroup.Go(b)` |
|
|
97
|
+
| **Rust** | `a.await; b.await` | `tokio::try_join!(a, b)` |
|
|
98
|
+
| **Java** | `a.get(); b.get()` | `CompletableFuture.allOf(a, b)` |
|
|
99
|
+
| **C#** | `await A(); await B()` | `await Task.WhenAll(A(), B())` |
|
|
100
|
+
| **Elixir** | sequential calls | `Task.async` + `Task.await_many` |
|
|
101
|
+
| **Ruby** | sequential calls | `Async { [task1, task2].map(&:wait) }` |
|
|
102
|
+
|
|
103
|
+
### 커넥션 풀링
|
|
104
|
+
|
|
105
|
+
| 언어 | 라이브러리 | 설정 |
|
|
106
|
+
|------|-----------|------|
|
|
107
|
+
| **JS/TS** | `generic-pool`, Prisma | `pool: { min: 2, max: 10 }` |
|
|
108
|
+
| **Python** | `sqlalchemy`, `asyncpg` | `pool_size=10, max_overflow=20` |
|
|
109
|
+
| **Go** | `database/sql` | `SetMaxOpenConns(25)` |
|
|
110
|
+
| **Rust** | `deadpool`, `bb8` | `Pool::builder().max_size(16)` |
|
|
111
|
+
| **Java** | HikariCP | `maximumPoolSize=10` |
|
|
112
|
+
|
|
113
|
+
</critical_patterns>
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
<build_optimization>
|
|
118
|
+
|
|
119
|
+
## 2. 빌드/번들 최적화 (CRITICAL)
|
|
120
|
+
|
|
121
|
+
### 증분 빌드 설정
|
|
122
|
+
|
|
123
|
+
| 도구 | 설정 |
|
|
124
|
+
|------|------|
|
|
125
|
+
| **TypeScript** | `"incremental": true` in tsconfig.json |
|
|
126
|
+
| **Rust** | `incremental = true` in Cargo.toml `[profile.dev]` |
|
|
127
|
+
| **Go** | 기본 활성화 (`go build` 캐시) |
|
|
128
|
+
| **Python** | Ruff `cache-dir`, mypy `incremental` |
|
|
129
|
+
| **Gradle** | `org.gradle.caching=true` |
|
|
130
|
+
| **CMake** | ccache / sccache 연동 |
|
|
131
|
+
|
|
132
|
+
### CI 캐시 전략
|
|
133
|
+
|
|
134
|
+
| 패키지 매니저 | 캐시 대상 |
|
|
135
|
+
|-------------|----------|
|
|
136
|
+
| npm/yarn/pnpm | `node_modules`, `.yarn/cache` |
|
|
137
|
+
| pip | `~/.cache/pip` |
|
|
138
|
+
| cargo | `~/.cargo/registry`, `target/` |
|
|
139
|
+
| go | `~/go/pkg/mod`, `~/.cache/go-build` |
|
|
140
|
+
| gradle | `~/.gradle/caches` |
|
|
141
|
+
|
|
142
|
+
</build_optimization>
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
<io_performance>
|
|
147
|
+
|
|
148
|
+
## 3. I/O 성능 (HIGH)
|
|
149
|
+
|
|
150
|
+
### N+1 쿼리 패턴 제거
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
❌ N+1: 목록 1쿼리 + 각 항목 N쿼리 = N+1 쿼리
|
|
154
|
+
✅ 배치: 목록 1쿼리 + IN절 1쿼리 = 2쿼리
|
|
155
|
+
✅ 조인: 1쿼리로 전체 해결
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
| ORM | N+1 해결 방법 |
|
|
159
|
+
|-----|-------------|
|
|
160
|
+
| **Prisma** | `include: { relation: true }` |
|
|
161
|
+
| **SQLAlchemy** | `joinedload()`, `selectinload()` |
|
|
162
|
+
| **GORM** | `Preload("Relation")` |
|
|
163
|
+
| **ActiveRecord** | `includes(:relation)` |
|
|
164
|
+
| **Hibernate** | `@EntityGraph`, `JOIN FETCH` |
|
|
165
|
+
| **Diesel** | `belonging_to().load()` |
|
|
166
|
+
|
|
167
|
+
### 캐시 레이어
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
요청 → L1 (인메모리, <1ms) → L2 (Redis, <5ms) → L3 (DB, ~50ms)
|
|
171
|
+
↑ 캐시 히트 ↑ 캐시 히트 ↑ 캐시 미스
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
</io_performance>
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
<memory_management>
|
|
179
|
+
|
|
180
|
+
## 4. 메모리/리소스 관리 (HIGH)
|
|
181
|
+
|
|
182
|
+
### 리소스 해제 패턴
|
|
183
|
+
|
|
184
|
+
| 언어 | 패턴 |
|
|
185
|
+
|------|------|
|
|
186
|
+
| **Python** | `with` (context manager) |
|
|
187
|
+
| **Go** | `defer resource.Close()` |
|
|
188
|
+
| **Rust** | RAII (Drop trait, 자동 해제) |
|
|
189
|
+
| **Java** | try-with-resources |
|
|
190
|
+
| **C#** | `using` statement |
|
|
191
|
+
| **JS/TS** | `try/finally`, `using` (TC39 Stage 3) |
|
|
192
|
+
| **C++** | RAII, `std::unique_ptr` |
|
|
193
|
+
|
|
194
|
+
### 대용량 데이터 처리
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
❌ 전체 로드: loadAll() → 메모리 폭발
|
|
198
|
+
✅ 스트리밍: stream/iterator/generator → 일정 메모리
|
|
199
|
+
✅ 페이지네이션: page(offset, limit) → 제한된 메모리
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
</memory_management>
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
<code_quality>
|
|
207
|
+
|
|
208
|
+
## 5. 코드 품질 (MEDIUM-HIGH)
|
|
209
|
+
|
|
210
|
+
### 복잡도 감소 패턴
|
|
211
|
+
|
|
212
|
+
| 패턴 | 효과 |
|
|
213
|
+
|------|------|
|
|
214
|
+
| **Early return** | 중첩 깊이 -2~3단계 |
|
|
215
|
+
| **Guard clause** | 예외 조건 상단 배치 |
|
|
216
|
+
| **Extract method** | 단일 책임 분리 |
|
|
217
|
+
| **Replace conditional with polymorphism** | if-else 체인 제거 |
|
|
218
|
+
| **Table-driven** | switch/case → 맵/딕셔너리 |
|
|
219
|
+
|
|
220
|
+
### 에러 처리 일관성
|
|
221
|
+
|
|
222
|
+
| 언어 | 권장 패턴 |
|
|
223
|
+
|------|----------|
|
|
224
|
+
| **Go** | `(value, error)` 튜플, sentinel errors |
|
|
225
|
+
| **Rust** | `Result<T, E>`, `?` 연산자 |
|
|
226
|
+
| **Python** | 커스텀 Exception 계층, `raise from` |
|
|
227
|
+
| **JS/TS** | 커스텀 Error 클래스, Result 패턴 |
|
|
228
|
+
| **Java** | checked exception 최소화, unchecked 선호 |
|
|
229
|
+
|
|
230
|
+
</code_quality>
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
<dependency_management>
|
|
235
|
+
|
|
236
|
+
## 6. 의존성 관리 (MEDIUM)
|
|
237
|
+
|
|
238
|
+
### 미사용 의존성 감지 도구
|
|
239
|
+
|
|
240
|
+
| 언어 | 도구 |
|
|
241
|
+
|------|------|
|
|
242
|
+
| **JS/TS** | `depcheck`, `knip` |
|
|
243
|
+
| **Python** | `pip-autoremove`, `deptry` |
|
|
244
|
+
| **Go** | `go mod tidy` (내장) |
|
|
245
|
+
| **Rust** | `cargo-udeps` |
|
|
246
|
+
| **Java** | `gradle-dependency-analysis` |
|
|
247
|
+
|
|
248
|
+
### 보안 취약점 스캔
|
|
249
|
+
|
|
250
|
+
| 언어 | 도구 |
|
|
251
|
+
|------|------|
|
|
252
|
+
| **JS/TS** | `npm audit`, `yarn audit`, `snyk` |
|
|
253
|
+
| **Python** | `pip-audit`, `safety` |
|
|
254
|
+
| **Go** | `govulncheck` |
|
|
255
|
+
| **Rust** | `cargo-audit` |
|
|
256
|
+
| **범용** | `trivy`, `grype`, Dependabot |
|
|
257
|
+
|
|
258
|
+
</dependency_management>
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
<references>
|
|
263
|
+
|
|
264
|
+
## 참고 자료
|
|
265
|
+
|
|
266
|
+
### 범용
|
|
267
|
+
1. [Google Engineering Practices](https://google.github.io/eng-practices/)
|
|
268
|
+
2. [The Twelve-Factor App](https://12factor.net/)
|
|
269
|
+
|
|
270
|
+
### 언어별
|
|
271
|
+
3. [Effective Go](https://go.dev/doc/effective_go)
|
|
272
|
+
4. [Rust Performance Book](https://nnethercote.github.io/perf-book/)
|
|
273
|
+
5. [Node.js Best Practices](https://github.com/goldbergyoni/nodebestpractices)
|
|
274
|
+
|
|
275
|
+
</references>
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-optimizer
|
|
3
|
+
description: 범용 프로젝트 최적화 스킬. 언어/프레임워크 무관하게 코드 품질, 성능, 빌드, DX를 분석하고 개선. 코드 리뷰, 리팩토링, 성능 개선, 빌드 최적화, 의존성 정리 작업에 트리거.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: kood
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
adapted_for: universal
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
@../../instructions/agent-patterns/read-parallelization.md
|
|
12
|
+
@../../instructions/validation/forbidden-patterns.md
|
|
13
|
+
@../../instructions/validation/required-behaviors.md
|
|
14
|
+
@../../instructions/multi-agent/coordination-guide.md
|
|
15
|
+
@../../instructions/multi-agent/execution-patterns.md
|
|
16
|
+
|
|
17
|
+
# Project Optimizer
|
|
18
|
+
|
|
19
|
+
범용 프로젝트 최적화 가이드. 언어/프레임워크에 종속되지 않는 8개 카테고리, 38개 규칙. 영향도별 우선순위로 자동 분석/리팩토링/코드 생성 가이드 제공. 어떤 프로젝트든 적용 가능한 보편적 최적화 원칙 기반.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
<when_to_use>
|
|
24
|
+
|
|
25
|
+
## 사용 시점
|
|
26
|
+
|
|
27
|
+
| 상황 | 설명 |
|
|
28
|
+
|------|------|
|
|
29
|
+
| **성능 개선** | 응답 시간, 처리량, 메모리 사용량 최적화 |
|
|
30
|
+
| **빌드 최적화** | 빌드 속도, 출력 크기, CI/CD 파이프라인 개선 |
|
|
31
|
+
| **코드 품질** | 데드 코드 제거, 복잡도 감소, 중복 제거 |
|
|
32
|
+
| **의존성 정리** | 미사용 패키지 제거, 보안 취약점, 버전 관리 |
|
|
33
|
+
| **DX 개선** | 타입 안전성, 린팅, 테스트, 컨벤션 강화 |
|
|
34
|
+
| **코드 리뷰** | 성능/품질 이슈 검토 |
|
|
35
|
+
| **리팩토링** | 기존 코드 구조 개선 |
|
|
36
|
+
|
|
37
|
+
</when_to_use>
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
<parallel_agent_execution>
|
|
42
|
+
|
|
43
|
+
## 병렬 에이전트 실행
|
|
44
|
+
|
|
45
|
+
### 기본 원칙
|
|
46
|
+
|
|
47
|
+
| 원칙 | 실행 방법 | 효과 |
|
|
48
|
+
|------|----------|------|
|
|
49
|
+
| **PARALLEL** | 독립 작업을 단일 메시지에서 동시 실행 | 5-15배 속도 향상 |
|
|
50
|
+
| **DELEGATE** | 전문 에이전트에게 즉시 위임 | 품질 향상, 컨텍스트 격리 |
|
|
51
|
+
| **SMART MODEL** | 복잡도별 모델 선택 (haiku/sonnet/opus) | 비용 최적화 |
|
|
52
|
+
|
|
53
|
+
### Phase별 에이전트 활용
|
|
54
|
+
|
|
55
|
+
| Phase | 작업 | 에이전트 | 병렬 실행 |
|
|
56
|
+
|-------|------|---------|----------|
|
|
57
|
+
| **1. 프로젝트 분석** | 언어/프레임워크 감지, 구조 파악, 빌드 시스템 확인 | explore (haiku) | 여러 도메인 동시 탐색 |
|
|
58
|
+
| **2. 문제 진단** | 성능 병목, 코드 품질 이슈, 빌드 비효율 식별 | analyst (sonnet) | 카테고리별 동시 분석 |
|
|
59
|
+
| **3. 규칙 적용** | 최적화 규칙 적용, 리팩토링 실행 | implementation-executor (sonnet) | 독립 모듈/파일 동시 수정 |
|
|
60
|
+
| **4. 검증** | typecheck/lint/build/test 확인 | lint-fixer (sonnet), code-reviewer (opus) | lint 순차, review 병렬 |
|
|
61
|
+
| **5. 완료** | git commit | git-operator (sonnet) | 순차 |
|
|
62
|
+
|
|
63
|
+
### 실전 패턴
|
|
64
|
+
|
|
65
|
+
#### 패턴 1: 프로젝트 전체 분석 (Fan-Out)
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
// 4개 도메인 동시 탐색 (60초)
|
|
69
|
+
Task(subagent_type="explore", model="haiku",
|
|
70
|
+
prompt="프로젝트 언어/프레임워크/빌드 시스템 감지. package.json, Cargo.toml, go.mod, pyproject.toml, Makefile 등 확인")
|
|
71
|
+
|
|
72
|
+
Task(subagent_type="explore", model="haiku",
|
|
73
|
+
prompt="코드 구조 분석: 디렉토리 구조, 진입점, 모듈 의존성 그래프 파악")
|
|
74
|
+
|
|
75
|
+
Task(subagent_type="explore", model="haiku",
|
|
76
|
+
prompt="빌드/CI 설정 분석: 빌드 스크립트, CI 파이프라인, Docker 설정")
|
|
77
|
+
|
|
78
|
+
Task(subagent_type="explore", model="haiku",
|
|
79
|
+
prompt="의존성 분석: 직접/간접 의존성 수, 보안 취약점, 미사용 패키지")
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### 패턴 2: 카테고리별 병렬 최적화
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
// 독립 모듈에 다른 규칙 동시 적용
|
|
86
|
+
Task(subagent_type="implementation-executor", model="sonnet",
|
|
87
|
+
prompt="모듈 A 최적화: concurrency-parallel, io-batch-queries")
|
|
88
|
+
|
|
89
|
+
Task(subagent_type="implementation-executor", model="sonnet",
|
|
90
|
+
prompt="모듈 B 최적화: memory-pool-reuse, code-dead-elimination")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 패턴 3: 대규모 리팩토링 (배치 처리)
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
// 10개+ 파일에 동일 규칙 적용 (토큰 70-90% 절감)
|
|
97
|
+
Task(subagent_type="implementation-executor", model="sonnet",
|
|
98
|
+
prompt=`다음 파일들에 concurrency-parallel 적용:
|
|
99
|
+
파일 목록: [...]
|
|
100
|
+
공통 규칙: 독립 I/O는 동시 실행`)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Model Routing
|
|
104
|
+
|
|
105
|
+
| 복잡도 | 모델 | 작업 예시 | 비용 | 속도 |
|
|
106
|
+
|--------|------|----------|------|------|
|
|
107
|
+
| **LOW** | haiku | 파일 구조 파악, 의존성 목록 확인 | 1x | 3x |
|
|
108
|
+
| **MEDIUM** | sonnet | 규칙 적용, 리팩토링 실행 | 2x | 2x |
|
|
109
|
+
| **HIGH** | opus | 아키텍처 설계, 보안 검토, 성능 전략 | 3x | 1x |
|
|
110
|
+
|
|
111
|
+
</parallel_agent_execution>
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
<categories>
|
|
116
|
+
|
|
117
|
+
## 카테고리별 우선순위
|
|
118
|
+
|
|
119
|
+
| 우선순위 | 카테고리 | 영향도 | 접두사 | 적용 범위 |
|
|
120
|
+
|---------|---------|--------|--------|----------|
|
|
121
|
+
| 1 | 동시성/병렬화 | **CRITICAL** | `concurrency-` | 모든 언어 |
|
|
122
|
+
| 2 | 빌드/번들 최적화 | **CRITICAL** | `build-` | 빌드 시스템 보유 프로젝트 |
|
|
123
|
+
| 3 | I/O 성능 | **HIGH** | `io-` | DB/네트워크/파일 I/O 사용 |
|
|
124
|
+
| 4 | 메모리/리소스 관리 | HIGH | `memory-` | 모든 언어 |
|
|
125
|
+
| 5 | 코드 품질 | MEDIUM-HIGH | `code-` | 모든 프로젝트 |
|
|
126
|
+
| 6 | 의존성 관리 | MEDIUM | `deps-` | 패키지 매니저 사용 |
|
|
127
|
+
| 7 | DX (개발자 경험) | MEDIUM | `dx-` | 팀 프로젝트 |
|
|
128
|
+
| 8 | 아키텍처 | LOW-MEDIUM | `arch-` | 중대형 프로젝트 |
|
|
129
|
+
|
|
130
|
+
</categories>
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
<rules>
|
|
135
|
+
|
|
136
|
+
## 빠른 참조
|
|
137
|
+
|
|
138
|
+
### 1. 동시성/병렬화 (CRITICAL)
|
|
139
|
+
|
|
140
|
+
| 규칙 | 설명 |
|
|
141
|
+
|------|------|
|
|
142
|
+
| `concurrency-parallel` | 독립 작업은 동시 실행 (Promise.all, goroutine, asyncio.gather, rayon 등) |
|
|
143
|
+
| `concurrency-defer-await` | await/블로킹을 실제 사용 지점으로 이동 |
|
|
144
|
+
| `concurrency-pipeline` | 파이프라인 병렬화 (생산자-소비자, 스트리밍) |
|
|
145
|
+
| `concurrency-pool` | 동시 실행 수 제한 (connection pool, worker pool, semaphore) |
|
|
146
|
+
|
|
147
|
+
### 2. 빌드/번들 최적화 (CRITICAL)
|
|
148
|
+
|
|
149
|
+
| 규칙 | 설명 |
|
|
150
|
+
|------|------|
|
|
151
|
+
| `build-incremental` | 증분 빌드 활성화 (캐시, 변경 감지) |
|
|
152
|
+
| `build-tree-shake` | 미사용 코드 자동 제거 (dead code elimination) |
|
|
153
|
+
| `build-code-split` | 진입점/라우트별 코드 분할 (lazy loading) |
|
|
154
|
+
| `build-minify` | 프로덕션 출력 최소화 (minification, compression) |
|
|
155
|
+
| `build-cache` | 빌드 캐시 활용 (CI/로컬) |
|
|
156
|
+
|
|
157
|
+
### 3. I/O 성능 (HIGH)
|
|
158
|
+
|
|
159
|
+
| 규칙 | 설명 |
|
|
160
|
+
|------|------|
|
|
161
|
+
| `io-batch-queries` | N+1 쿼리 → 배치/조인으로 전환 |
|
|
162
|
+
| `io-cache-layer` | 반복 읽기에 캐시 레이어 추가 (TTL, LRU, 인메모리) |
|
|
163
|
+
| `io-stream` | 대용량 데이터는 스트리밍 처리 (청크, 이터레이터, 제너레이터) |
|
|
164
|
+
| `io-connection-reuse` | 커넥션 풀/keep-alive/재사용 |
|
|
165
|
+
| `io-serialize-minimal` | 필요한 필드만 직렬화/전송 |
|
|
166
|
+
|
|
167
|
+
### 4. 메모리/리소스 관리 (HIGH)
|
|
168
|
+
|
|
169
|
+
| 규칙 | 설명 |
|
|
170
|
+
|------|------|
|
|
171
|
+
| `memory-leak-prevention` | 리소스 해제 보장 (close, dispose, cleanup, finally) |
|
|
172
|
+
| `memory-pool-reuse` | 객체 풀링/재사용 (버퍼, 커넥션, 스레드) |
|
|
173
|
+
| `memory-lazy-init` | 비싼 초기화는 지연 실행 |
|
|
174
|
+
| `memory-bounded-cache` | 캐시에 크기 제한 설정 (LRU, TTL, maxSize) |
|
|
175
|
+
| `memory-large-data` | 대용량 데이터는 스트림/페이지네이션 처리 |
|
|
176
|
+
|
|
177
|
+
### 5. 코드 품질 (MEDIUM-HIGH)
|
|
178
|
+
|
|
179
|
+
| 규칙 | 설명 |
|
|
180
|
+
|------|------|
|
|
181
|
+
| `code-dead-elimination` | 미사용 코드/변수/import 제거 |
|
|
182
|
+
| `code-duplication` | 중복 코드 추출/통합 (DRY, 단 3회 이상부터) |
|
|
183
|
+
| `code-complexity` | 순환 복잡도 감소 (early return, guard clause, 분리) |
|
|
184
|
+
| `code-naming` | 의도를 드러내는 명확한 이름 |
|
|
185
|
+
| `code-error-handling` | 일관된 에러 처리 패턴 (Result, Either, 에러 타입 계층) |
|
|
186
|
+
|
|
187
|
+
### 6. 의존성 관리 (MEDIUM)
|
|
188
|
+
|
|
189
|
+
| 규칙 | 설명 |
|
|
190
|
+
|------|------|
|
|
191
|
+
| `deps-unused-removal` | 미사용 의존성 제거 |
|
|
192
|
+
| `deps-security-audit` | 보안 취약점 스캔 및 업데이트 |
|
|
193
|
+
| `deps-version-pin` | 프로덕션 의존성 버전 고정 |
|
|
194
|
+
| `deps-lightweight-alt` | 무거운 라이브러리 → 경량 대안 또는 자체 구현 |
|
|
195
|
+
| `deps-peer-align` | peer dependency 버전 충돌 해결 |
|
|
196
|
+
|
|
197
|
+
### 7. DX - 개발자 경험 (MEDIUM)
|
|
198
|
+
|
|
199
|
+
| 규칙 | 설명 |
|
|
200
|
+
|------|------|
|
|
201
|
+
| `dx-type-safety` | 타입 시스템 최대 활용 (strict mode, 제네릭, 유니온) |
|
|
202
|
+
| `dx-lint-config` | 린터/포매터 최적 설정 |
|
|
203
|
+
| `dx-test-coverage` | 핵심 로직 테스트 커버리지 확보 |
|
|
204
|
+
| `dx-ci-speed` | CI 파이프라인 속도 최적화 (캐시, 병렬, 불필요 단계 제거) |
|
|
205
|
+
| `dx-dev-server` | 로컬 개발 서버 시작 속도 개선 |
|
|
206
|
+
|
|
207
|
+
### 8. 아키텍처 (LOW-MEDIUM)
|
|
208
|
+
|
|
209
|
+
| 규칙 | 설명 |
|
|
210
|
+
|------|------|
|
|
211
|
+
| `arch-module-boundary` | 모듈 경계 명확화 (순환 의존 제거) |
|
|
212
|
+
| `arch-interface-segregation` | 인터페이스 분리 (큰 인터페이스 → 작은 단위) |
|
|
213
|
+
| `arch-config-centralize` | 설정/환경변수 중앙 관리 |
|
|
214
|
+
| `arch-hot-path` | 핫 패스 식별 및 집중 최적화 |
|
|
215
|
+
|
|
216
|
+
</rules>
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
<language_detection>
|
|
221
|
+
|
|
222
|
+
## 언어/프레임워크 자동 감지
|
|
223
|
+
|
|
224
|
+
### 감지 매트릭스
|
|
225
|
+
|
|
226
|
+
| 감지 파일 | 언어/도구 | 추가 확인 |
|
|
227
|
+
|-----------|----------|----------|
|
|
228
|
+
| `package.json` | Node.js/TypeScript | `tsconfig.json` → TS |
|
|
229
|
+
| `Cargo.toml` | Rust | `rust-toolchain.toml` |
|
|
230
|
+
| `go.mod` | Go | `go.sum` |
|
|
231
|
+
| `pyproject.toml` / `requirements.txt` | Python | `setup.py`, `poetry.lock` |
|
|
232
|
+
| `pom.xml` / `build.gradle` | Java/Kotlin | `settings.gradle` |
|
|
233
|
+
| `Gemfile` | Ruby | `Rakefile` |
|
|
234
|
+
| `composer.json` | PHP | |
|
|
235
|
+
| `mix.exs` | Elixir | |
|
|
236
|
+
| `CMakeLists.txt` | C/C++ | `Makefile` |
|
|
237
|
+
| `*.sln` / `*.csproj` | C#/.NET | |
|
|
238
|
+
| `pubspec.yaml` | Dart/Flutter | |
|
|
239
|
+
| `Package.swift` | Swift | `*.xcodeproj` |
|
|
240
|
+
|
|
241
|
+
### 감지 후 동작
|
|
242
|
+
|
|
243
|
+
1. **규칙 필터링**: 감지된 언어의 `languages` 태그가 `all` 또는 해당 언어를 포함하는 규칙만 적용
|
|
244
|
+
2. **예시 선택**: 규칙 내 코드 예시 중 감지된 언어의 관용적 패턴 우선 제시
|
|
245
|
+
3. **도구 매핑**: 감지된 언어에 맞는 빌드/린트/테스트 도구 자동 선택
|
|
246
|
+
4. **프레임워크 체이닝**: 프레임워크 감지 시 해당 best-practices 스킬 자동 참조
|
|
247
|
+
|
|
248
|
+
</language_detection>
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
<workflow>
|
|
253
|
+
|
|
254
|
+
## 실행 워크플로우
|
|
255
|
+
|
|
256
|
+
### Phase 1: 프로젝트 분석 (병렬)
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
1. 언어/프레임워크/빌드 시스템 감지 (explore x haiku)
|
|
260
|
+
2. 코드 구조/모듈 의존성 파악 (explore x haiku)
|
|
261
|
+
3. 빌드/CI 설정 분석 (explore x haiku)
|
|
262
|
+
4. 의존성 상태 분석 (explore x haiku)
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Phase 2: 문제 진단 (병렬)
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
1. 카테고리별 이슈 스캔 (analyst x sonnet)
|
|
269
|
+
- 우선순위 1-4 (CRITICAL/HIGH) 집중
|
|
270
|
+
- 각 이슈에 영향도/규칙 매핑
|
|
271
|
+
2. 기존 best-practices 스킬과 교차 참조
|
|
272
|
+
- nextjs-react-best-practices (Next.js 프로젝트)
|
|
273
|
+
- tanstack-start-react-best-practices (TanStack 프로젝트)
|
|
274
|
+
- tauri-react-best-practices (Tauri 프로젝트)
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Phase 3: 최적화 실행 (병렬)
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
1. CRITICAL 이슈 먼저 (concurrency, build)
|
|
281
|
+
2. HIGH 이슈 (io, memory)
|
|
282
|
+
3. MEDIUM+ 이슈 (code, deps, dx)
|
|
283
|
+
4. 독립 모듈은 병렬 실행
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Phase 4: 검증
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
1. 빌드 성공 확인
|
|
290
|
+
2. 테스트 통과 확인
|
|
291
|
+
3. 린트/타입체크 확인
|
|
292
|
+
4. 성능 벤치마크 (있으면)
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
</workflow>
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
<skill_chaining>
|
|
300
|
+
|
|
301
|
+
## 다른 스킬과 병행
|
|
302
|
+
|
|
303
|
+
### 자동 감지 및 체이닝
|
|
304
|
+
|
|
305
|
+
| 감지 조건 | 추천 스킬 | 역할 |
|
|
306
|
+
|-----------|----------|------|
|
|
307
|
+
| Next.js 프로젝트 | `nextjs-react-best-practices` | 프레임워크 특화 규칙 병행 |
|
|
308
|
+
| TanStack Start 프로젝트 | `tanstack-start-react-best-practices` | 프레임워크 특화 규칙 병행 |
|
|
309
|
+
| Tauri 프로젝트 | `tauri-react-best-practices` | IPC/보안/번들 특화 규칙 병행 |
|
|
310
|
+
| 코드 구조 문제 | `refactor` | 구조적 리팩토링 계획 |
|
|
311
|
+
| 버그 발견 | `bug-fix` | 버그 수정 워크플로우 |
|
|
312
|
+
| 의존성 문서 필요 | `docs-fetch` | 라이브러리 문서 수집 |
|
|
313
|
+
| 배포 전 검증 | `pre-deploy` | typecheck/lint/build 전체 검증 |
|
|
314
|
+
|
|
315
|
+
### 우선순위 규칙
|
|
316
|
+
|
|
317
|
+
| 우선순위 | 규칙 |
|
|
318
|
+
|---------|------|
|
|
319
|
+
| 1 | **프레임워크 특화 스킬 우선**: 프레임워크 스킬의 규칙이 project-optimizer 범용 규칙보다 우선 |
|
|
320
|
+
| 2 | **충돌 시 특화 우선**: 동일 주제에서 범용 규칙과 프레임워크 규칙이 충돌하면 프레임워크 규칙 적용 |
|
|
321
|
+
| 3 | **보완 병행**: 프레임워크 스킬에 없는 카테고리 (concurrency, memory, deps 등)는 project-optimizer 규칙 적용 |
|
|
322
|
+
| 4 | **단계적 적용**: Phase 1-2에서 project-optimizer 분석 → Phase 3에서 프레임워크 스킬과 병합 실행 |
|
|
323
|
+
|
|
324
|
+
</skill_chaining>
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
<usage>
|
|
329
|
+
|
|
330
|
+
## 사용법
|
|
331
|
+
|
|
332
|
+
**상세 규칙 및 예시:**
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
rules/concurrency-parallel.md
|
|
336
|
+
rules/build-incremental.md
|
|
337
|
+
rules/io-batch-queries.md
|
|
338
|
+
rules/memory-leak-prevention.md
|
|
339
|
+
rules/code-dead-elimination.md
|
|
340
|
+
rules/deps-unused-removal.md
|
|
341
|
+
rules/dx-type-safety.md
|
|
342
|
+
rules/arch-module-boundary.md
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
각 규칙 파일 포함 내용:
|
|
346
|
+
- 중요한 이유 설명
|
|
347
|
+
- 여러 언어의 ❌ 잘못된 코드 예시
|
|
348
|
+
- 여러 언어의 ✅ 올바른 코드 예시
|
|
349
|
+
- 추가 컨텍스트 및 참조
|
|
350
|
+
|
|
351
|
+
</usage>
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
<references>
|
|
356
|
+
|
|
357
|
+
## 참고 자료
|
|
358
|
+
|
|
359
|
+
### 범용
|
|
360
|
+
1. [Google Engineering Practices](https://google.github.io/eng-practices/)
|
|
361
|
+
2. [The Twelve-Factor App](https://12factor.net/)
|
|
362
|
+
|
|
363
|
+
### 언어별
|
|
364
|
+
3. [Effective Go](https://go.dev/doc/effective_go)
|
|
365
|
+
4. [Rust Performance Book](https://nnethercote.github.io/perf-book/)
|
|
366
|
+
5. [Python Performance Tips](https://docs.python.org/3/howto/perf_profiling.html)
|
|
367
|
+
6. [Node.js Best Practices](https://github.com/goldbergyoni/nodebestpractices)
|
|
368
|
+
|
|
369
|
+
### 빌드/번들
|
|
370
|
+
7. [Vite Performance](https://vite.dev/guide/performance)
|
|
371
|
+
8. [webpack Tree Shaking](https://webpack.js.org/guides/tree-shaking/)
|
|
372
|
+
9. [Turborepo](https://turbo.build/repo/docs)
|
|
373
|
+
|
|
374
|
+
</references>
|