--- trigger: manual --- # ๐ŸŽฏ Anti-Gravity ํ†ตํ•ฉ ์ž‘์—… ์ง€์นจ์„œ ์ด ๋ฌธ์„œ๋Š” `.agent/rules/`์˜ ์ปค์Šคํ…€ ๋ฃฐ๊ณผ `.agent/skills/`์˜ Skill๋“ค์„ **์ƒํ™ฉ๋ณ„๋กœ ์ž๋™ ์กฐํ•ฉ**ํ•˜์—ฌ ์ตœ์ ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋งˆ์Šคํ„ฐ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ์ฃผ์‹ ์˜ˆ์ œ๋Š” ๊ณต์‹ ํ•œ๊ตญํˆฌ์ž์ฆ๊ถŒ์—์„œ ์ œ๊ณตํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ํ•ญ์ƒ ์ด์šฉํ•ด์„œ ํŒŒ์ด์„  ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹์˜ˆ์ œ๊ฒฝ๋กœ: .tmp\open-trading-api ๊ณต์‹ ์‚ฌ์ดํŠธ ๋ฌด์กฐ๊ฑด์ฐธ๊ณ ํ•ด์„œ ์ˆ˜์ •ํ•ด ๊ณต์‹์‚ฌ์ดํŠธ๋Š” ์—ฌ๊ธฐ์•ผ 'https://github.com/koreainvestment/open-trading-api' --- ## ๐Ÿ“‹ ์ž‘์—… ์œ ํ˜•๋ณ„ ๋ฃฐ+Skill ์กฐํ•ฉํ‘œ | ์ž‘์—… ์œ ํ˜• | ์ฃผ ๋ฃฐ(Primary) | ๋ณด์กฐ ๋ฃฐ(Secondary) | ํ™œ์šฉ Skill | MCP ๋„๊ตฌ | | ------------------- | ----------------------- | -------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------- | | **์ƒˆ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ** | `builder-rule.md` | - | `nextjs-app-router-patterns`
`vercel-react-best-practices` | `sequential-thinking` (๋ณต์žกํ•œ ๋กœ์ง)
`context7` (๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™•์ธ) | | **์ฝ”๋“œ ๋ถ„์„/์ดํ•ด** | `code-analysis-rule.md` | - | `nextjs-app-router-patterns` (๊ตฌ์กฐ ์ดํ•ด) | `sequential-thinking` (ํ”Œ๋กœ์šฐ ๋ถ„์„) | | **์ฃผ์„ ์ถ”๊ฐ€** | `doc-rule.md` | `code-analysis-rule.md` | - | - | | **๋ฆฌํŒฉํ† ๋ง** | `refactoring-rule.md` | `builder-rule.md` (์žฌ๊ตฌํ˜„) | `vercel-react-best-practices` (์„ฑ๋Šฅ ๊ฐœ์„ ) | `sequential-thinking` (์˜์กด์„ฑ ๋ถ„์„)
`context7` (์ตœ์‹  ํŒจํ„ด ํ™•์ธ) | | **์„ฑ๋Šฅ ์ตœ์ ํ™”** | `builder-rule.md` | `refactoring-rule.md` | `vercel-react-best-practices` | `context7` (์ตœ์‹  ์ตœ์ ํ™” ๊ธฐ๋ฒ•) | | **์ฃผ์„ + ๋ฆฌํŒฉํ† ๋ง** | `refactoring-rule.md` | `doc-rule.md` | `vercel-react-best-practices` | `sequential-thinking` | --- ## ๐Ÿ”„ ์ž‘์—… ํ๋ฆ„๋ณ„ ์„ธ๋ถ€ ๊ฐ€์ด๋“œ ### 1๏ธโƒฃ ์ƒˆ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ (Feature Development) **ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ**: "์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ", "์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€", "API ์—ฐ๋™", "ํŽ˜์ด์ง€ ์ƒ์„ฑ" **์ž‘์—… ์ˆœ์„œ**: ``` [1๋‹จ๊ณ„] builder-rule.md ๊ธฐ์ค€์œผ๋กœ ๊ตฌ์กฐ ์„ค๊ณ„ โ†“ [2๋‹จ๊ณ„] nextjs-app-router-patterns๋กœ Next.js App Router ํŒจํ„ด ํ™•์ธ โ†“ (๋ณต์žกํ•œ ๋กœ์ง์ด ์žˆ๋‹ค๋ฉด) [2-1] sequential-thinking์œผ๋กœ ๋กœ์ง ๊ฒ€์ฆ โ†“ (SpreadJS ๋“ฑ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ ์‹œ) [2-2] context7๋กœ ๊ณต์‹ ๋ฌธ์„œ ์กฐํšŒ โ†“ [3๋‹จ๊ณ„] vercel-react-best-practices๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™” ํŒจํ„ด ์ ์šฉ โ†“ [4๋‹จ๊ณ„] builder-rule.md์˜ ์ถœ๋ ฅ ํ˜•์‹๋Œ€๋กœ ์ฝ”๋“œ ์ œ๊ณต - [๊ฐ€์ •] ์„น์…˜ - ํ•ต์‹ฌ ์ฝ”๋“œ ๋ธ”๋ก - ํ•œ ์ค„ ํ•œ ์ค„ ๋œฏ์–ด๋ณด๊ธฐ - ์ž‘๋™ ํ๋ฆ„ - ํ•ต์‹ฌ ํฌ์ธํŠธ ``` **๊ตฌ์ฒด์  ํ†ตํ•ฉ ์˜ˆ์‹œ**: ```markdown # [์˜ˆ์‹œ] CreateLeadDialog ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ## [1๋‹จ๊ณ„] builder-rule.md ์ ์šฉ - Tech Stack ํ™•์ธ: Next.js 15.3, React 19, TanStack Query v5, Zustand v5 - ํด๋” ๊ตฌ์กฐ: `src/features/leads/components/CreateLeadDialog.tsx` - 'use client' ํ•„์š” (Form ์ธํ„ฐ๋ž™์…˜) ## [2๋‹จ๊ณ„] nextjs-app-router-patterns ์ฐธ๊ณ  - Client Component๋Š” 'use client' ์„ ์–ธ - Server Action ์‚ฌ์šฉ ์‹œ "use server" ๋ถ„๋ฆฌ - Suspense ๊ฒฝ๊ณ„ ์„ค์ • ## [2-1] sequential-thinking (๋ณต์žกํ•œ ๊ฒ€์ฆ ๋กœ์ง์ด ์žˆ๋Š” ๊ฒฝ์šฐ) - Form ์ œ์ถœ โ†’ ์‚ฌ์ „ ๊ฒ€์ฆ โ†’ API ํ˜ธ์ถœ โ†’ ์„ฑ๊ณต/์‹คํŒจ ์ฒ˜๋ฆฌ - ์—ฃ์ง€ ์ผ€์ด์Šค: ์ค‘๋ณต ์ œ์ถœ, ๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜, ํ•„์ˆ˜๊ฐ’ ๋ˆ„๋ฝ ## [3๋‹จ๊ณ„] vercel-react-best-practices ์ ์šฉ - `rerender-memo`: ๋ฌด๊ฑฐ์šด Form ๋กœ์ง์€ memo๋กœ ๊ฐ์‹ธ๊ธฐ - `client-swr-dedup`: TanStack Query๋กœ ์ค‘๋ณต ์š”์ฒญ ๋ฐฉ์ง€ - `rendering-conditional-render`: ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์€ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ## [4๋‹จ๊ณ„] ์ตœ์ข… ์ฝ”๋“œ ์ถœ๋ ฅ - builder-rule.md์˜ ์ถœ๋ ฅ ํ˜•์‹ ์ค€์ˆ˜ - ์ฃผ์„์€ ํ•œ๊ธ€๋กœ, ์ž‘์„ฑ์ž 'jihoon87.lee' ``` --- ### 2๏ธโƒฃ ์ฝ”๋“œ ๋ถ„์„/์ดํ•ด (Code Analysis) **ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ**: "์ฝ”๋“œ ๋ถ„์„", "ํ๋ฆ„ ์„ค๋ช…", "์–ด๋–ป๊ฒŒ ์ž‘๋™", "ํ”Œ๋กœ์šฐ ํŒŒ์•…" **์ž‘์—… ์ˆœ์„œ**: ``` [1๋‹จ๊ณ„] code-analysis-rule.md์˜ ๋ถ„์„ ์ˆœ์„œ ์ค€์ˆ˜ - ์ง„์ž…์  (app/page) - ์ปดํฌ๋„ŒํŠธ ์‹œ์ž‘ - Hook ํ˜ธ์ถœ - API โ†’ ์ƒํƒœ โ†’ ๋ฆฌ๋ Œ๋” - TypeScript ํƒ€์ž… ์„ค๋ช… โ†“ (๋ณต์žกํ•œ ํ๋ฆ„์ธ ๊ฒฝ์šฐ) [1-1] sequential-thinking์œผ๋กœ ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„ ๊ฒ€์ฆ โ†“ [2๋‹จ๊ณ„] nextjs-app-router-patterns๋กœ Next.js ๊ตฌ์กฐ ๋งคํ•‘ - Server Component vs Client Component - Parallel Routes, Intercepting Routes ๋“ฑ โ†“ [3๋‹จ๊ณ„] code-analysis-rule.md ์‘๋‹ต ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ - ํ•œ๊ธ€ ์ฃผ์„ - ํ”Œ๋กœ์šฐ ๋‹ค์ด์–ด๊ทธ๋žจ - ๋ฆฌ๋ Œ๋”๋ง ์กฐ๊ฑด ํ‘œ ``` **ํ†ตํ•ฉ ์˜ˆ์‹œ**: ```markdown # [์˜ˆ์‹œ] PersonnelTableContainer ๋ถ„์„ ## [์ ์šฉ ๋ฃฐ] - code-analysis-rule.md: ๋ถ„์„ ์ˆœ์„œ ๋ฐ ํ…œํ”Œ๋ฆฟ - nextjs-app-router-patterns: Server/Client ๊ตฌ๋ถ„ - sequential-thinking: ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์ˆœ์„œ ๊ฒ€์ฆ ## [๋ถ„์„ ๊ฒฐ๊ณผ] ### 1๏ธโƒฃ ์ง„์ž…์  - URL: /standards/personnel - Server Component (page.tsx) โ†’ Client Component (PersonnelTableContainer) ### 3๏ธโƒฃ ์ปดํฌ๋„ŒํŠธ ์‹œ์ž‘ ํ”Œ๋กœ์šฐ (sequential-thinking ๊ฒ€์ฆ) ใ€1๋‹จ๊ณ„ใ€‘useState ์ดˆ๊ธฐ๊ฐ’ ์„ค์ • ใ€2๋‹จ๊ณ„ใ€‘useDataTablePersonnel ํ›… ํ˜ธ์ถœ ใ€3๋‹จ๊ณ„ใ€‘TanStack Query๊ฐ€ queryFn ์‹คํ–‰ ใ€4๋‹จ๊ณ„ใ€‘personnelApi.getList() ํ˜ธ์ถœ ใ€5๋‹จ๊ณ„ใ€‘์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ Query ์บ์‹œ์— ์ €์žฅ ใ€6๋‹จ๊ณ„ใ€‘์ปดํฌ๋„ŒํŠธ ๋ฆฌ๋ Œ๋”๋ง ``` --- ### 3๏ธโƒฃ ์ฃผ์„ ์ถ”๊ฐ€ (Documentation) **ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ**: "์ฃผ์„ ์ถ”๊ฐ€", "๋ฌธ์„œํ™”", "JSDoc ์ž‘์„ฑ" **์ž‘์—… ์ˆœ์„œ**: ``` [1๋‹จ๊ณ„] code-analysis-rule.md๋กœ ์ฝ”๋“œ ํ๋ฆ„ ํŒŒ์•… โ†“ [2๋‹จ๊ณ„] doc-rule.md ๊ทœ์น™ ์ ์šฉ - ํŒŒ์ผ ์ƒ๋‹จ TSDoc - ํ•จ์ˆ˜/ํƒ€์ž… TSDoc - Step ์ฃผ์„ (๋ณต์žกํ•œ ํ•จ์ˆ˜๋งŒ) โ†“ [3๋‹จ๊ณ„] ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ์ฃผ์„๋งŒ ์ถ”๊ฐ€ ``` **ํ†ตํ•ฉ ์˜ˆ์‹œ**: ```typescript /** * @file PersonnelTableContainer.tsx * @description ์ธ์‚ฌ ๊ธฐ์ค€์ •๋ณด ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ๊ด€๋ฆฌ ์ปจํ…Œ์ด๋„ˆ * @author jihoon87.lee * @remarks * - [๋ ˆ์ด์–ด] Components (UI) * - [์‚ฌ์šฉ์ž ํ–‰๋™] ๋ชฉ๋ก ์กฐํšŒ โ†’ ๊ฒ€์ƒ‰/ํ•„ํ„ฐ โ†’ ์ƒ์„ธ โ†’ ํŽธ์ง‘/์‚ญ์ œ * - [๋ฐ์ดํ„ฐ ํ๋ฆ„] UI โ†’ useDataTablePersonnel โ†’ personnelApi โ†’ TanStack Query ์บ์‹œ โ†’ UI * - [์—ฐ๊ด€ ํŒŒ์ผ] useDataTablePersonnel.ts, personnelApi.ts */ "use client"; // (code-analysis-rule๋กœ ๋ถ„์„ โ†’ doc-rule๋กœ ์ฃผ์„ ์ถ”๊ฐ€) ``` --- ### 4๏ธโƒฃ ๋ฆฌํŒฉํ† ๋ง (Refactoring) **ํŠธ๋ฆฌ๊ฑฐ ํ‚ค์›Œ๋“œ**: "๋ฆฌํŒฉํ† ๋ง", "๊ตฌ์กฐ ๊ฐœ์„ ", "ํด๋” ์ •๋ฆฌ", "์„ฑ๋Šฅ ๊ฐœ์„ " **์ž‘์—… ์ˆœ์„œ**: ``` [1๋‹จ๊ณ„] refactoring-rule.md์˜ ์›Œํฌํ”Œ๋กœ์šฐ ์ ์šฉ โ†“ [1-1] sequential-thinking์œผ๋กœ ์˜์กด์„ฑ ์ง€๋„ ์ž‘์„ฑ - ํŒŒ์ผ ์ด๋™ ์ „ ์˜ํ–ฅ ๋ฒ”์œ„ ๋ถ„์„ - import ๊ฒฝ๋กœ ๋ณ€๊ฒฝ ๋ชฉ๋ก ์ž‘์„ฑ โ†“ [1-2] context7๋กœ ์ตœ์‹  ํด๋” ๊ตฌ์กฐ ํŒจํ„ด ํ™•์ธ - TanStack Query v5 ๊ถŒ์žฅ ๊ตฌ์กฐ - Next.js 15 App Router ์ตœ์ ํ™” โ†“ [2๋‹จ๊ณ„] refactoring-rule.md์˜ ํ‘œ์ค€ ๊ตฌ์กฐ๋กœ ์žฌ๊ตฌ์„ฑ - apis/, hooks/, types/, stores/, components/ โ†“ [3๋‹จ๊ณ„] vercel-react-best-practices๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™” - bundle-barrel-imports: ์ง์ ‘ import - rerender-memo: ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋” ๋ฐฉ์ง€ โ†“ [4๋‹จ๊ณ„] builder-rule.md๋กœ ์žฌ๊ตฌํ˜„ (ํ•„์š” ์‹œ) ``` **ํ†ตํ•ฉ ์˜ˆ์‹œ**: ```markdown # [์˜ˆ์‹œ] work-execution ๊ธฐ๋Šฅ ๋ฆฌํŒฉํ† ๋ง ## [1๋‹จ๊ณ„] sequential-thinking ์˜์กด์„ฑ ๋ถ„์„ - ํ˜„์žฌ ํŒŒ์ผ: workExecutionOld.tsx (800์ค„, ๋‹จ์ผ ํŒŒ์ผ) - ์˜์กดํ•˜๋Š” ์™ธ๋ถ€ ํŒŒ์ผ: app/standards/work-execution/page.tsx - ์˜ํ–ฅ๋ฐ›๋Š” import: 3๊ฐœ ํŒŒ์ผ ## [1-2] context7 ์ตœ์‹  ํŒจํ„ด ์กฐํšŒ - TanStack Query v5: queryKeys๋ฅผ ๋ณ„๋„ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌ ๊ถŒ์žฅ - Next.js 15: Parallel Routes๋กœ loading ์ƒํƒœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ ## [2๋‹จ๊ณ„] refactoring-rule ํ‘œ์ค€ ๊ตฌ์กฐ ์ ์šฉ src/features/standards/work-execution/ โ”œโ”€โ”€ apis/ โ”‚ โ”œโ”€โ”€ workExecution.api.ts โ”‚ โ””โ”€โ”€ workExecutionForm.adapter.ts โ”œโ”€โ”€ hooks/ โ”‚ โ”œโ”€โ”€ queryKeys.ts โ”‚ โ””โ”€โ”€ useWorkExecutionList.ts โ”œโ”€โ”€ types/ โ”‚ โ””โ”€โ”€ workExecution.types.ts โ”œโ”€โ”€ stores/ โ”‚ โ””โ”€โ”€ workExecutionStore.ts โ””โ”€โ”€ components/ โ”œโ”€โ”€ WorkExecutionContainer.tsx โ””โ”€โ”€ WorkExecutionModal.tsx ## [3๋‹จ๊ณ„] vercel-react-best-practices ์ ์šฉ - bundle-barrel-imports: index.ts ์ œ๊ฑฐ, ์ง์ ‘ ๊ฒฝ๋กœ ์‚ฌ์šฉ - rerender-memo: WorkExecutionModal์„ React.memo๋กœ ๊ฐ์‹ธ๊ธฐ - async-parallel: API ํ˜ธ์ถœ์„ Promise.all๋กœ ๋ณ‘๋ ฌํ™” ``` --- ## ๐Ÿ› ๏ธ MCP ๋„๊ตฌ ํ™œ์šฉ ๊ฐ€์ด๋“œ ### Sequential Thinking ์‚ฌ์šฉ ์‹œ์  1. **๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ตฌํ˜„ ์ „** - ์˜ˆ: ๋‹ค๋‹จ๊ณ„ Form ๊ฒ€์ฆ, ๋ณต์žกํ•œ ์ƒํƒœ ๋จธ์‹  - ๋ชฉ์ : ์—ฃ์ง€ ์ผ€์ด์Šค ์‚ฌ์ „ ๋„์ถœ 2. **๋ฆฌํŒฉํ† ๋ง ์‹œ ์˜์กด์„ฑ ๋ถ„์„** - ์˜ˆ: ํŒŒ์ผ ์ด๋™ ์‹œ ์˜ํ–ฅ ๋ฒ”์œ„ ํŒŒ์•… - ๋ชฉ์ : Broken Import ๋ฐฉ์ง€ 3. **์ฝ”๋“œ ๋ถ„์„ ์‹œ ๋ฐ์ดํ„ฐ ํ”Œ๋กœ์šฐ ๊ฒ€์ฆ** - ์˜ˆ: ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋‹จ๊ณ„, ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์ˆœ์„œ - ๋ชฉ์ : ๋…ผ๋ฆฌ์  ํ๋ฆ„ ๋ช…ํ™•ํ™” ### Context7 ์‚ฌ์šฉ ์‹œ์  1. **์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ตœ์‹  API ํ™•์ธ** - ์˜ˆ: SpreadJS v18, TanStack Query v5 - ๋ชฉ์ : ๊ณต์‹ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„ 2. **๋ฆฌํŒฉํ† ๋ง ์‹œ ์ตœ์‹  ํŒจํ„ด ํ™•์ธ** - ์˜ˆ: Next.js 15 App Router ๊ถŒ์žฅ ๊ตฌ์กฐ - ๋ชฉ์ : ์ตœ์‹  ํ‘œ์ค€๊ณผ ํ”„๋กœ์ ํŠธ ๋ฃฐ ๊ฒฐํ•ฉ 3. **์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ฒ€์ฆ** - ์˜ˆ: React 19 ์‹ ๊ทœ Hook ํ™œ์šฉ๋ฒ• - ๋ชฉ์ : ์ตœ์‹  ๊ธฐ๋ฒ• ์ ์šฉ --- ## ๐Ÿ“Œ ์‹ค์ „ ์ ์šฉ ์˜ˆ์‹œ ### ์˜ˆ์‹œ 1: ์ƒˆ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์š”์ฒญ **์‚ฌ์šฉ์ž ์š”์ฒญ**: "๋ฆฌ๋“œ ์ƒ์„ฑ ๋ชจ๋‹ฌ์„ ๋งŒ๋“ค์–ด์ค˜" **AI ์ž‘์—… ํ”„๋กœ์„ธ์Šค**: 1. `builder-rule.md` ๋กœ๋“œ โ†’ Tech Stack ํ™•์ธ 2. `nextjs-app-router-patterns` ์ฐธ๊ณ  โ†’ Client Component ํŒจํ„ด ํ™•์ธ 3. `vercel-react-best-practices` ์ ์šฉ โ†’ `rerender-memo`, `rendering-conditional-render` 4. `builder-rule.md` ์ถœ๋ ฅ ํ˜•์‹์œผ๋กœ ์ฝ”๋“œ ์ œ๊ณต ### ์˜ˆ์‹œ 2: ์ฝ”๋“œ ํ”Œ๋กœ์šฐ ๋ถ„์„ ์š”์ฒญ **์‚ฌ์šฉ์ž ์š”์ฒญ**: "PersonnelTableContainer๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด์ค˜" **AI ์ž‘์—… ํ”„๋กœ์„ธ์Šค**: 1. `code-analysis-rule.md` ๋กœ๋“œ โ†’ ๋ถ„์„ ์ˆœ์„œ ์ค€์ˆ˜ 2. `sequential-thinking` ์‚ฌ์šฉ โ†’ ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์ˆœ์„œ ๊ฒ€์ฆ 3. `nextjs-app-router-patterns` ์ฐธ๊ณ  โ†’ Server/Client ๊ตฌ๋ถ„ ์„ค๋ช… 4. `code-analysis-rule.md` ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ### ์˜ˆ์‹œ 3: ๋ฆฌํŒฉํ† ๋ง ์š”์ฒญ **์‚ฌ์šฉ์ž ์š”์ฒญ**: "work-execution ํด๋”๋ฅผ ์ •๋ฆฌํ•ด์ค˜" **AI ์ž‘์—… ํ”„๋กœ์„ธ์Šค**: 1. `refactoring-rule.md` ๋กœ๋“œ โ†’ ์›Œํฌํ”Œ๋กœ์šฐ ํ™•์ธ 2. `sequential-thinking` ์‚ฌ์šฉ โ†’ ์˜์กด์„ฑ ์ง€๋„ ์ž‘์„ฑ 3. `context7` ์กฐํšŒ โ†’ TanStack Query v5 ๊ถŒ์žฅ ๊ตฌ์กฐ ํ™•์ธ 4. `refactoring-rule.md` ํ‘œ์ค€ ๊ตฌ์กฐ๋กœ ์žฌ๊ตฌ์„ฑ 5. `vercel-react-best-practices` ์ ์šฉ โ†’ `bundle-barrel-imports`, `rerender-memo` --- ## โœ… ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ž‘์—… ์‹œ์ž‘ ์ „ ํ•ญ์ƒ ํ™•์ธ: - [ ] ์ž‘์—… ์œ ํ˜•์ด ๋ฌด์—‡์ธ๊ฐ€? (๊ฐœ๋ฐœ/๋ถ„์„/์ฃผ์„/๋ฆฌํŒฉํ† ๋ง) - [ ] ์ฃผ ๋ฃฐ(Primary)๊ณผ ๋ณด์กฐ ๋ฃฐ(Secondary)์€? - [ ] ์–ด๋–ค Skill์„ ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? - [ ] MCP ๋„๊ตฌ(sequential-thinking, context7)๊ฐ€ ํ•„์š”ํ•œ๊ฐ€? - [ ] ์ถœ๋ ฅ ํ˜•์‹์€ ์–ด๋–ค ๋ฃฐ์„ ๋”ฐ๋ฅด๋Š”๊ฐ€? --- ## ๐ŸŽ“ ํ•™์Šต ์ž๋ฃŒ - **builder-rule.md**: Tech Stack, ์ฝ”๋”ฉ ์›์น™, ์ถœ๋ ฅ ํ˜•์‹ - **code-analysis-rule.md**: ๋ถ„์„ ์ˆœ์„œ, TypeScript ํƒ€์ž… ์„ค๋ช… - **doc-rule.md**: TSDoc ํ˜•์‹, Step ์ฃผ์„ ๊ทœ์น™ - **refactoring-rule.md**: ํด๋” ๊ตฌ์กฐ, ์›Œํฌํ”Œ๋กœ์šฐ - **nextjs-app-router-patterns**: Next.js ํŒจํ„ด, Server/Client ๊ตฌ๋ถ„ - **vercel-react-best-practices**: ์„ฑ๋Šฅ ์ตœ์ ํ™” 57๊ฐœ ๋ฃฐ