Skip to main content

pumasi

Host-controlled parallel coding for Codex. The current Codex session stays the host (plans, writes signatures and gates, verifies, integrates) and delegates bounded implementation tasks to N parallel CLI workers โ€” Codex workers by default, or grok / cursor-agent / gjc / agy / claude CLI workers chosen per task. Best for 3 or more independent modules with clear gates and interfaces. Korean triggers โ€” "ํ’ˆ์•—์ด๋กœ ๋งŒ๋“ค์–ด์ค˜", "ํ’ˆ์•—์ด ์ผœ์ค˜", "๋ณ‘๋ ฌ๋กœ ์™ธ์ฃผ", "codex ์›Œ์ปค๋กœ", "grok์œผ๋กœ ์™ธ์ฃผ". English triggers โ€” "pumasi", "parallel codex workers", "delegate to codex", "parallel with grok". Image generation belongs to the separate pumasi-image skill โ€” do not trigger on "์ด๋ฏธ์ง€/๊ทธ๋ฆผ/์ธ๋„ค์ผ/๋กœ๊ณ  ๋งŒ๋“ค์–ด์ค˜" even when Codex is named.

Quellinformationen

Repository
fivetaku/gptaku-plugins-codex
Letzte Quellaktivitรคt
8. September 2026 um 07:59
Erkannte Sprache von SKILL.md
Koreanisch
Sterne
128
Forks
22

Installationsoptionen

StandardmรครŸig ist der Prompt ausgewรคhlt, der zuerst die Quelle prรผft. Sie kรถnnen zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prรผfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich fรผr eine Installation entscheiden.

Datei-Explorer
11 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen ยท Schreibgeschรผtzte Vorschau
name
pumasi
description
Host-controlled parallel coding for Codex. The current Codex session stays the host (plans, writes signatures and gates, verifies, integrates) and delegates bounded implementation tasks to N parallel CLI workers โ€” Codex workers by default, or grok / cursor-agent / gjc / agy / claude CLI workers chosen per task. Best for 3 or more independent modules with clear gates and interfaces. Korean triggers โ€” "ํ’ˆ์•—์ด๋กœ ๋งŒ๋“ค์–ด์ค˜", "ํ’ˆ์•—์ด ์ผœ์ค˜", "๋ณ‘๋ ฌ๋กœ ์™ธ์ฃผ", "codex ์›Œ์ปค๋กœ", "grok์œผ๋กœ ์™ธ์ฃผ". English triggers โ€” "pumasi", "parallel codex workers", "delegate to codex", "parallel with grok". Image generation belongs to the separate pumasi-image skill โ€” do not trigger on "์ด๋ฏธ์ง€/๊ทธ๋ฆผ/์ธ๋„ค์ผ/๋กœ๊ณ  ๋งŒ๋“ค์–ด์ค˜" even when Codex is named.
# ํ’ˆ์•—์ด (Pumasi) โ€” Codex ๋ณ‘๋ ฌ ์™ธ์ฃผ ๊ฐœ๋ฐœ > ํ’ˆ์•—์ด: ์„œ๋กœ ํ˜‘๋ ฅํ•˜๋ฉฐ ์ผ์„ ๋‚˜๋ˆ  ํ•˜๋Š” ํ•œ๊ตญ ์ „ํ†ต ๋ฐฉ์‹ > Host = ์„ค๊ณ„/๊ฐ๋…(PM) | ์›Œ์ปค ร— N = ๋ณ‘๋ ฌ ๊ตฌํ˜„์ž > > ์ด ์Šคํ‚ฌ์„ ์‹คํ–‰ํ•˜๋Š” **ํ˜ธ์ŠคํŠธ๋Š” Codex ์ž์‹ **์ด๋‹ค. ๋ณ‘๋ ฌ ์›Œ์ปค๋Š” Codex ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ > (v0.139์—์„œ ์•ˆ์ •ํ™”) ๋˜๋Š” `codex exec` ์„ธ์…˜์œผ๋กœ ์Šคํฐํ•˜๊ณ , ํ•„์š”ํ•˜๋ฉด ๋‹ค๋ฅธ CLI ์›Œ์ปค๋กœ ๊ต์ฒดํ•œ๋‹ค. > ๋‹ค๋ฅธ ์—์ด์ „ํŠธ ์ „์šฉ ๋„๊ตฌยทํ›…ยท์„ค์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. ## ํ˜ธ์ŠคํŠธ์™€ ์›Œ์ปค ๊ณ„์•ฝ ํ’ˆ์•—์ด๋ฅผ ๋ถ€๋ฅธ **ํ˜„์žฌ ์„ธ์…˜์ด ํ•ญ์ƒ ํ˜ธ์ŠคํŠธ**(๊ธฐํšยท๊ฐ๋…ยท์Šน์ธยท์ตœ์ข… ๊ฒ€์ฆ ๋‹ด๋‹น)๋‹ค. ์›Œ์ปค๋Š” ๋ธŒ๋ฆฌํ”„ ํ•˜๋‚˜๋ฅผ ๋ฐ›์•„ ๊ฒฝ๊ณ„ ์•ˆ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์ฆ๊ฑฐ(ํŒŒ์ผยท๋ณด๊ณ )๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ์กด์žฌ๋‹ค. ์›Œ์ปค์—๊ฒŒ ์ „์ฒด ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ๋‹ค์‹œ ๋งก๊ธฐ๊ฑฐ๋‚˜ ํ’ˆ์•—์ด๋ฅผ ์žฌ๊ท€ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. - **ํ˜ธ์ŠคํŠธ = Codex, ๊ธฐ๋ณธ ์›Œ์ปค = Codex** (`codex exec`). ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์›Œ์ปค๋ฅผ ์ง€๋ช…ํ–ˆ๊ฑฐ๋‚˜ Phase 0.5์—์„œ ์„ ํƒํ–ˆ์œผ๋ฉด ๊ทธ ์›Œ์ปค์˜ ์Šคํฐ ๋ช…๋ น์„ ์“ด๋‹ค(์•„๋ž˜ "์™ธ์ฃผ ์›Œ์ปค ๊ต์ฒด"). ๋ช…์‹œ๋œ ์›Œ์ปค๋ฅผ ๋‹ค๋ฅธ ์›Œ์ปค๋กœ ๋ชฐ๋ž˜ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. - ์›Œ์ปค ๋ช…๋ น ์šฐ์„ ์ˆœ์œ„: ํƒœ์Šคํฌ๋ณ„ ์ง€์ • > ์žก ๊ธฐ๋ณธ ์ง€์ • > ํ˜ธ์ŠคํŠธ ๊ธฐ๋ณธ๊ฐ’(Codex). ํƒœ์Šคํฌ๋ณ„๋กœ ์„ž์–ด ์“ธ ์ˆ˜ ์žˆ๋‹ค. - `claude` CLI๋ฅผ ์›Œ์ปค๋กœ ์“ธ ๋•Œ์˜ ๋ช…๋ น์€ `claude --print --permission-mode acceptEdits`๋‹ค. ํ”„๋กฌํ”„ํŠธ๋Š” stdin์œผ๋กœ ์ฃผ๊ณ  `--output-format json`์œผ๋กœ ๊ตฌ์กฐํ™” ๋ณด๊ณ ๋ฅผ ๋ฐ›๋Š”๋‹ค. ๋ชจ๋ธยทํ—ˆ์šฉ ๋„๊ตฌยท๊ถŒํ•œ์€ ๋ช…์‹œ์  ๋ช…๋ น ์˜ต์…˜์œผ๋กœ ์กฐ์ •ํ•˜๋ฉฐ ํ˜ธ์ŠคํŠธ ์ธ์ฆ์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. `acceptEdits`๋Š” ๋ฌด์ œํ•œ ์…ธ ์Šน์ธ์ด ์•„๋‹ˆ๋‹ค โ€” ๊ฑฐ๋ถ€๋œ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ๋ณด๊ณ ์—์„œ ํ™•์ธํ•œ๋‹ค. - ์žก ์ƒํƒœ๋Š” ํ˜ธ์ถœ ํ”„๋กœ์ ํŠธ์˜ `.pumasi/`์— ๋‘”๋‹ค. ์›Œ์ปค ์ข…๋ฃŒ๊ฐ€ ๊ณง ์„ฑ๊ณต์€ ์•„๋‹ˆ๋‹ค โ€” **๊ฐ ์›Œ์ปค์˜ ์ข…๋ฃŒ ์ฝ”๋“œยท๋ณด๊ณ ์„œยท๊ฒŒ์ดํŠธ๋ฅผ ๋”ฐ๋กœ ํ™•์ธ**ํ•œ๋‹ค. ์‹คํŒจ/๋ถ€๋ถ„ ์™„๋ฃŒ/์ž˜๋ชป๋œ JSON/๋ˆ„๋ฝ๋œ ๋ณด๊ณ ๋Š” ์™„๋ฃŒ๋กœ ์Šน๊ฒฉํ•˜์ง€ ์•Š๊ณ , ์›๋ณธ stdoutยทstderr์™€ `report.json`์„ ๋ณด์กดํ•œ ๋’ค ํ˜ธ์ŠคํŠธ๊ฐ€ ์žฌ์œ„์ž„ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•œ๋‹ค. - ์ด ๋ฌธ์„œ์˜ ์˜ˆ์‹œ์—์„œ **ํ˜ธ์ŠคํŠธ(๊ธฐํš์ž)** ๋Š” ํ˜„์žฌ Codex ์„ธ์…˜, **Codex(๊ตฌํ˜„์ž)** ๋Š” ์„ ํƒ๋œ ์›Œ์ปค ์—ญํ• ๋กœ ์ฝ๋Š”๋‹ค. Codex ์ „์šฉ ์ฐธ๊ณ (`codex-guide.md`)๋Š” Codex ์›Œ์ปค์—๋งŒ ์ ์šฉํ•œ๋‹ค. ## ๋จผ์ € ์ฝ์„ ๊ฒƒ instruction(์ž‘์—… ๋ธŒ๋ฆฌํ”„) ์ž‘์„ฑ ์ „ ๋ฐ˜๋“œ์‹œ Read: - `$PLUGIN_ROOT/skills/pumasi/references/anti-patterns.md` โ€” ๋ณต๋ถ™ํ˜• instruction ์ ˆ๋Œ€ ๊ธˆ์ง€ ๊ทœ์น™ + Red Flags ์ž๊ฐ€์ฒดํฌํ‘œ - `$PLUGIN_ROOT/skills/pumasi/references/role-separation.md` โ€” ํ˜ธ์ŠคํŠธ vs ์›Œ์ปค ์—ญํ•  ๊ฒฝ๊ณ„ - `$PLUGIN_ROOT/skills/pumasi/references/codex-guide.md` โ€” Codex ์›Œ์ปค ํŠน์„ฑ, DO/DON'T, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์ฒด ๋ฐฉ์ง€ (Codex ์›Œ์ปค์ผ ๋•Œ๋งŒ) - `$PLUGIN_ROOT/skills/pumasi/references/instruction-templates.md` โ€” ํ…œํ”Œ๋ฆฟ, ์ข‹์€/๋‚˜์œ ์˜ˆ์‹œ, ์ž๊ธฐ ์ ๊ฒ€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ - `$PLUGIN_ROOT/skills/pumasi/references/tech-stack.md` โ€” 2025-2026 ๋ชจ๋˜ ์Šคํƒ ์ถ”์ฒœํ‘œ ํ•„์š”ํ•  ๋•Œ Read: - `$PLUGIN_ROOT/skills/pumasi/references/examples.md` โ€” ์‹คํ–‰ ์˜ˆ์‹œ (Todo ์•ฑ, ์ธ์ฆ ์‹œ์Šคํ…œ, ๋ธŒ๋ฆฌํ”„ ์˜ˆ์‹œ) ## ๊ฐœ๋… ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Host (Codex ์„ธ์…˜, ์„ค๊ณ„/๊ฐ๋…/PM) โ”‚ โ”‚ 1. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ โ†’ ๊ธฐํš โ†’ ๋…๋ฆฝ ์„œ๋ธŒํƒœ์Šคํฌ ๋ถ„ํ•ด โ”‚ โ”‚ 2. ์‹œ๊ทธ๋‹ˆ์ฒ˜ + ์š”๊ตฌ์‚ฌํ•ญ + ๊ฒŒ์ดํŠธ ์ž‘์„ฑ โ”‚ โ”‚ 3. .pumasi/tasks ๋ธŒ๋ฆฌํ”„ ์ž‘์„ฑ โ†’ ์›Œ์ปค ๋ณ‘๋ ฌ ์Šคํฐ โ”‚ โ”‚ 4. ๊ฒŒ์ดํŠธ ๊ฒ€์ฆ โ†’ ํ†ตํ•ฉ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ โ–ผ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Worker 1 โ”‚ โ”‚ Worker 2 โ”‚ โ”‚ Worker 3 โ”‚ โ”‚ ์‹œ๊ทธ๋‹ˆ์ฒ˜ โ”‚ โ”‚ ์‹œ๊ทธ๋‹ˆ์ฒ˜ โ”‚ โ”‚ ์‹œ๊ทธ๋‹ˆ์ฒ˜ โ”‚ โ”‚ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„ โ”‚ โ”‚ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„ โ”‚ โ”‚ ๊ธฐ๋ฐ˜ ๊ตฌํ˜„ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ ๊ฒŒ์ดํŠธ ๊ฒ€์ฆ โ†’ ํ†ตํ•ฉ โ†’ ์™„์„ฑ ``` ## ํ•ต์‹ฌ ๊ฐ€์น˜ **ํ’ˆ์•—์ด์˜ ์กด์žฌ ์ด์œ ๋Š” "ํ˜ธ์ŠคํŠธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์งœ์ง€ ์•Š๋Š” ๊ฒƒ"์ด๋‹ค.** | ๊ฐ€์น˜ | ์„ค๋ช… | |------|------| | ํ˜ธ์ŠคํŠธ ํ† ํฐ ์ ˆ์•ฝ | ํ˜ธ์ŠคํŠธ๋Š” ์„ค๊ณ„๋งŒ, ๊ตฌํ˜„์€ ์›Œ์ปค๊ฐ€ ๋‹ด๋‹น | | ์†๋„ ํ–ฅ์ƒ | N๊ฐœ ๋ชจ๋“ˆ์„ ์›Œ์ปค๊ฐ€ ๋ณ‘๋ ฌ๋กœ ๋™์‹œ ๊ตฌํ˜„ | | ๊ฒ€์ฆ ์ตœ์ ํ™” | ๋™์  ๊ฒŒ์ดํŠธ(bash, ํ† ํฐ 0)๋กœ ์ž๋™ ๊ฒ€์ฆ | **์ „์ œ ์กฐ๊ฑด**: ์›Œ์ปค๊ฐ€ **์‹ค์ œ ๊ตฌํ˜„**์„ ํ•ด์•ผ ํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋‹ค ์งœ๊ณ  ์›Œ์ปค์—๊ฒŒ ํŒŒ์ผ ์ €์žฅ๋งŒ ์‹œํ‚ค๋ฉด ํ† ํฐ ์ ˆ์•ฝ ํšจ๊ณผ = 0. --- ## ์•ˆํ‹ฐํŒจํ„ด ๋ฐ ์—ญํ•  ๋ถ„๋ฆฌ **ํ•ต์‹ฌ ์›์น™ ์š”์•ฝ**: ํ˜ธ์ŠคํŠธ๋Š” ์‹œ๊ทธ๋‹ˆ์ฒ˜+์š”๊ตฌ์‚ฌํ•ญ๋งŒ ์ž‘์„ฑ. ์ฝ”๋“œ ๋ณธ๋ฌธ(body)์€ ์ ˆ๋Œ€ ์ž‘์„ฑ ๊ธˆ์ง€. ๊ฐ•ํ•œ ๊ฒŒ์ดํŠธ(tsc/build/test)๋กœ ๊ฒ€์ฆ. ์ƒ์„ธ ๊ทœ์น™์€ ์œ„ `anti-patterns.md` / `role-separation.md` ์ฐธ์กฐ. --- ## ํŠธ๋ฆฌ๊ฑฐ ์กฐ๊ฑด ``` ๋ช…์‹œ์  ํŠธ๋ฆฌ๊ฑฐ: - "ํ’ˆ์•—์ด๋กœ [์ž‘์—…]ํ•ด์ค˜" - "ํ’ˆ์•—์ด ์ผœ์ค˜" - "codex ์›Œ์ปค๋กœ [์ž‘์—…]" / "grok์œผ๋กœ [์ž‘์—…] ์™ธ์ฃผ" - "๋ณ‘๋ ฌ๋กœ [์ž‘์—…] ์™ธ์ฃผ" ์ž๋™ ๊ฐ์ง€ (๋Œ€๊ทœ๋ชจ ์ฝ”๋”ฉ ์š”์ฒญ ์‹œ): - 4๊ฐœ ์ด์ƒ์˜ ๋…๋ฆฝ ํŒŒ์ผ/๋ชจ๋“ˆ ๋™์‹œ ์ž‘์„ฑ ์š”์ฒญ - "์ „์ฒด [๊ธฐ๋Šฅ] ๊ตฌํ˜„ํ•ด์ค˜" + ๊ทœ๋ชจ๊ฐ€ ํฐ ๊ฒฝ์šฐ - ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ/์„œ๋น„์Šค๋ฅผ ํ•œ ๋ฒˆ์— ๋งŒ๋“ค์–ด์•ผ ํ•  ๋•Œ ํŠธ๋ฆฌ๊ฑฐ ์ œ์™ธ: - "์ด๋ฏธ์ง€/๊ทธ๋ฆผ/์ธ๋„ค์ผ/๋กœ๊ณ  ๋งŒ๋“ค์–ด์ค˜" โ€” "์ฝ”๋ฑ์Šค๋กœ"๊ฐ€ ๋ถ™์–ด๋„ pumasi-image ์Šคํ‚ฌ ์†Œ์œ . ์—ฌ๊ธฐ๋กœ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ``` ### ์ธ์ž ์—†์ด ํ˜ธ์ถœ๋์„ ๋•Œ "ํ’ˆ์•—์ด ์ผœ์ค˜"์ฒ˜๋Ÿผ ๋งŒ๋“ค ๋Œ€์ƒ์ด ์—†์œผ๋ฉด ยงA ๋ฒˆํ˜ธํ˜• ๋ธ”๋ก์œผ๋กœ ํ•œ ๋ฒˆ ๋ฌป๊ณ , ๋‹ต๋ณ€์„ ๋ฐ›์€ ๋’ค ์ƒ์„ธ ์„ค๋ช…์„ ์š”์ฒญํ•œ๋‹ค: ```text ์งˆ๋ฌธ: ํ’ˆ์•—์ด ๋ชจ๋“œ๋กœ ๋ฌด์—‡์„ ๋งŒ๋“ค๊นŒ์š”? 1. ์ƒˆ ํ”„๋กœ์ ํŠธ โ€” ์ƒˆ๋กœ์šด ์•ฑ/์„œ๋น„์Šค๋ฅผ ํ’ˆ์•—์ด ๋ชจ๋“œ๋กœ ๊ตฌํ˜„ 2. ๊ธฐ๋Šฅ ์ถ”๊ฐ€ โ€” ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๋ณ‘๋ ฌ๋กœ ์ถ”๊ฐ€ 3. ๋ฆฌํŒฉํ† ๋ง โ€” ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์„ ๋™์‹œ์— ๋ฆฌํŒฉํ† ๋ง 4. ๋ฌธ์žฅ์œผ๋กœ ์ง์ ‘ ์•Œ๋ ค์ฃผ๊ธฐ ``` ### ์ž‘์—… ๊ทœ๋ชจ๋ณ„ ๋ถ„๊ธฐ (์ค‘์š”) | ๊ทœ๋ชจ | ๊ถŒ์žฅ ๋ฐฉ์‹ | ์ด์œ  | |------|----------|------| | ํƒœ์Šคํฌ 1~2๊ฐœ | **ํ˜ธ์ŠคํŠธ ์ง์ ‘ ์ฝ”๋”ฉ** | ํ’ˆ์•—์ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋” ํผ | | ํƒœ์Šคํฌ 3~4๊ฐœ | **ํ’ˆ์•—์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ** | ๋ณ‘๋ ฌ ์ด๋“์ด ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๋น„์Šท | | ํƒœ์Šคํฌ 5๊ฐœ+ | **ํ’ˆ์•—์ด ๊ฐ•๋ ฅ ๊ถŒ์žฅ** | ๋ณ‘๋ ฌ ์ด๋“์ด ํ™•์‹คํžˆ ํผ | **๋˜ํ•œ ๋‹ค์Œ ๊ฒฝ์šฐ์—๋Š” ํ’ˆ์•—์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค:** - ๊ธฐ์กด ์ฝ”๋“œ ์ˆ˜์ •/๋ฒ„๊ทธ ์ˆ˜์ • (์ปจํ…์ŠคํŠธ ์ฃผ์ž…์ด ๊ณผ๋„ํ•ด์ง) - ๋‹จ์ผ ํŒŒ์ผ ์ž‘์—… (๋ณ‘๋ ฌ ์ด์  ์—†์Œ) - ๊ฒŒ์ดํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ์ž‘์—… (UI ๋ฏธ์„ธ ์กฐ์ • ๋“ฑ) ### ํ’ˆ์•—์ด ๋ชจ๋“œ ์ง„์ž… ์‹œ ํ˜ธ์ŠคํŠธ์˜ ํ–‰๋™ ๋ณ€ํ™” ``` ์ผ๋ฐ˜ ๋ชจ๋“œ: ํ’ˆ์•—์ด ๋ชจ๋“œ: ํ˜ธ์ŠคํŠธ๊ฐ€ ์ง์ ‘ ์ฝ”๋”ฉ ํ˜ธ์ŠคํŠธ๊ฐ€ ์‹œ๊ทธ๋‹ˆ์ฒ˜+์š”๊ตฌ์‚ฌํ•ญ ์ž‘์„ฑ โ†’ .pumasi/tasks ๋ธŒ๋ฆฌํ”„ โ†’ ์›Œ์ปค ์Šคํฐ โ†’ ๊ฒŒ์ดํŠธ ์ž๋™ ๊ฒ€์ฆ โ†’ ํ†ตํ•ฉ ``` --- ## ์‚ฌ์šฉ์ž ์งˆ๋ฌธ ๊ทœ์น™ (ยงA) Codex CLI์—๋Š” ๊ฐ๊ด€์‹ ์นด๋“œํ˜• ์งˆ๋ฌธ UI๊ฐ€ **์—†๋‹ค.** ๊ฒฐ์ •์ด ๊ผญ ํ•„์š”ํ•  ๋•Œ๋Š” `$PLUGIN_ROOT/shared/questioning-policy.md ยงA`์˜ **์ฑ„ํŒ… ๋ฒˆํ˜ธํ˜• ์„ ํƒ์ง€ ๋ธ”๋ก**์œผ๋กœ ๋ฌป๋Š”๋‹ค. - ํ’ˆ์•—์ด ์š”์ฒญ์€ ๋Œ€๊ฐœ **์ด๋ฏธ ๊ตฌ์ฒด์ **์ด๋‹ค(๋งŒ๋“ค ๊ฒƒ์ด ๋ช…ํ™•). ยง1 + ยง2c์— ๋”ฐ๋ผ ์ถ”๋ก  ๊ฐ€๋Šฅํ•œ ๊ฑด ๋ฌป์ง€ ๋ง๊ณ , ์š”์ฒญ์ด ์ถฉ๋ถ„ํžˆ ๊ตฌ์ฒด์ ์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ง€์‹œํ–ˆ์œผ๋ฉด **์ฆ‰์‹œ ์ง„ํ–‰**ํ•œ๋‹ค(๊ณผ์ž‰ ์งˆ๋ฌธ = ๋งˆ์ฐฐ ์‹คํŒจ). - ์ง„์งœ๋กœ ๊ฒฐ์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ(์˜ˆ: ์Šคํƒ ์„ ํƒ์ง€๊ฐ€ ๊ฐˆ๋ฆด ๋•Œ)๋งŒ ์•„๋ž˜ ํ˜•์‹์œผ๋กœ ํ•œ ๋ฒˆ ๋ฌป๋Š”๋‹ค: ```text ์งˆ๋ฌธ: ์–ด๋–ค ๋ฐฑ์—”๋“œ ์Šคํƒ์œผ๋กœ ๊ฐˆ๊นŒ์š”? 1. Next.js Route Handlers โ€” ํ•œ ๋ ˆํฌ์— ํ†ตํ•ฉ, ๋ฐฐํฌ ๋‹จ์ˆœ. ํŠธ๋ ˆ์ด๋“œ์˜คํ”„: ๋ฌด๊ฑฐ์šด ๋ฐฑ์—”๋“œ์—” ๋ถ€๋‹ด 2. ๋ณ„๋„ Fastify API โ€” ์—ญํ•  ๋ถ„๋ฆฌ ๋ช…ํ™•. ํŠธ๋ ˆ์ด๋“œ์˜คํ”„: ๋ ˆํฌ/๋ฐฐํฌ 2๊ฐœ 3. ๋ฌธ์žฅ์œผ๋กœ ์ง์ ‘ ์•Œ๋ ค์ฃผ๊ธฐ ``` - ์ถ”์ฒœ์•ˆ์€ ํ•ญ์ƒ **1๋ฒˆ**. "๋ชจ๋ฅด๋ฉด 1๋ฒˆ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค"๋กœ ์•ˆ๋‚ดํ•œ๋‹ค. ์นด๋“œ UI๋ฅผ ํ‰๋‚ด๋‚ด์ง€ ๋ง ๊ฒƒ. - ์ด๋ฏธ ๋ช…์‹œ๋œ ์›Œ์ปคยท์Šคํƒ์€ ๋‹ค์‹œ ๋ฌป์ง€ ์•Š๋Š”๋‹ค. --- ## 7๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ์šฐ ### Phase 0: ๊ธฐํš (Host as PM) ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ๋ถ„์„ํ•˜์—ฌ **์™„์„ฑ๋„ ์žˆ๋Š” ๊ธฐํš์•ˆ**์„ ์ž‘์„ฑ. ๊ธฐํš ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ†ต๊ณผ ํ›„ ์‚ฌ์šฉ์ž ์Šน์ธ์„ ๋ฐ›๋Š”๋‹ค. **๊ธฐํš ์ฒดํฌ๋ฆฌ์ŠคํŠธ** (ํƒœ์Šคํฌ ๋ถ„ํ•ด ์ „ ๋ฐ˜๋“œ์‹œ ํ™•์ธ): ``` โ–ก ์ด ์•ฑ/๊ธฐ๋Šฅ์˜ ํ•ต์‹ฌ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š”? โ–ก ๊ฒฝ์Ÿ ์ œํ’ˆ/์ผ๋ฐ˜์  ๊ธฐ๋Œ€์น˜ ๋Œ€๋น„ ๋น ์ง„ ๊ธฐ๋Šฅ์€? โ–ก ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ํ•„์š”ํ•œ ํ•„๋“œ๊ฐ€ ์ถฉ๋ถ„ํ•œ๊ฐ€? โ–ก UX ๊ด€์ : ๊ฒ€์ƒ‰, ์ •๋ ฌ, ํ•„ํ„ฐ, ๋ฒŒํฌ ์ž‘์—…์ด ํ•„์š”ํ•œ๊ฐ€? โ–ก ๋น„๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ: ๋ฐ˜์‘ํ˜•, ๋‹คํฌ๋ชจ๋“œ, ์ ‘๊ทผ์„ฑ์€? โ–ก ํƒœ์Šคํฌ ์ˆ˜๊ฐ€ 4๊ฐœ ์ด์ƒ์ธ๊ฐ€? (์•„๋‹ˆ๋ฉด ํ˜ธ์ŠคํŠธ ์ง์ ‘ ์ฝ”๋”ฉ) ``` **๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„ ์›์น™**: ํƒ€์ž…/์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ์„ค๊ณ„. ๊ตฌํ˜„ ๋กœ์ง์€ ์›Œ์ปค๊ฐ€ ์ž‘์„ฑ. ### Phase 0.5: ์›Œ์ปค ์„ ํƒ (๊ธฐํš ์Šน์ธ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์— ํฌํ•จ โ€” ์Šคํ‚ต ์กฐ๊ฑด ์žˆ์Œ) ๊ธฐํš ์Šน์ธ์„ ๋ฐ›๋Š” **๊ฐ™์€ ํ„ด**์— ์›Œ์ปค ์„ ํƒ ๋ฌธํ•ญ์„ ยงA ๋ธ”๋ก์œผ๋กœ ํ•จ๊ป˜ ๋‚ธ๋‹ค. **์Šคํ‚ต ์กฐ๊ฑด**: ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์—์„œ ์›Œ์ปค๋ฅผ ์ด๋ฏธ ์ง€๋ช…ํ•œ ๊ฒฝ์šฐ("grok์œผ๋กœ", "codexํ•œํ…Œ", "cursor๋กœ", "agy ์™ธ์ฃผ") โ€” ์ง€๋ช…๋œ ์›Œ์ปค๋ฅผ ๊ทธ๋Œ€๋กœ ์“ฐ๊ณ  ๋ฌป์ง€ ์•Š๋Š”๋‹ค. ```text ์งˆ๋ฌธ: ์–ด๋–ค CLI ์›Œ์ปค์—๊ฒŒ ์™ธ์ฃผ๋ฅผ ๋งก๊ธธ๊นŒ์š”? 1. Codex ์›Œ์ปค (๊ถŒ์žฅ) โ€” codex exec. ๊ตฌ์กฐํ™” ๋ณด๊ณ (report.json) ์ง€์›, ๊ธฐ๋ณธ ์ƒŒ๋“œ๋ฐ•์Šค 2. Grok โ€” xAI Grok Build (grok-4.6). SuperGrok ๊ตฌ๋…์ด๋ฉด ํ•œ๊ณ„๋น„์šฉ 0. report.json ์—†์ด output.txt ํ†ตํ•ฉ 3. ํ˜ผํ•ฉ โ€” ํƒœ์Šคํฌ ์„ฑ๊ฒฉ๋ณ„๋กœ codex/grok/cursor/agy/gjc ๋‚˜๋ˆ  ๋ฐฐ์ • (๋ฐฐ์ •์•ˆ์€ ํ˜ธ์ŠคํŠธ๊ฐ€ ์ œ์•ˆ ํ›„ ํƒœ์Šคํฌ๋ณ„ ๋ช…๋ น์œผ๋กœ ๋ฐ˜์˜) 4. Cursor / agy / gjc / claude โ€” Cursor Ultra ๊ตฌ๋…์ด๋ฉด cursor-agent(ComposerยทCodexยทOpus/Fable๊ธ‰ ๋ชจ๋ธ๊นŒ์ง€ ์„ ํƒ ๊ฐ€๋Šฅ), ๋””์ž์ธยทUI๋Š” Antigravity(agy), ๋ฉ€ํ‹ฐ๋ชจ๋ธ์€ gajae-code(gjc), claude CLI(report.json ์ง€์›) ``` ์„ ํƒ ๊ฒฐ๊ณผ๋Š” Phase 2์˜ `.pumasi/job.json`์— `defaults.command`(ํ˜ผํ•ฉ์ด๋ฉด ํƒœ์Šคํฌ๋ณ„ `command`)๋กœ ๊ธฐ๋กํ•œ๋‹ค. ๊ฐ ์›Œ์ปค์˜ ์ •ํ™•ํ•œ ๋ช…๋ น ๋ฌธ์ž์—ด์€ ์•„๋ž˜ **"์™ธ์ฃผ ์›Œ์ปค ๊ต์ฒด"** ์ ˆ์˜ ๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์“ด๋‹ค. **์„ ํƒ ์งํ›„ ์„ค์น˜ ํ™•์ธ 1ํšŒ**: `command -v <cli>` (grok์€ ์‹คํŒจ ์‹œ `$HOME/.grok/bin/grok` ํด๋ฐฑ). ๋ฏธ์„ค์น˜ยท๋ฏธ์ธ์ฆ์ด๋ฉด ๊ทธ๋Œ€๋กœ ์•Œ๋ฆฌ๊ณ  ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜ ยงA ๋ธ”๋ก์œผ๋กœ ๋‹ค๋ฅธ ์›Œ์ปค๋ฅผ ๋‹ค์‹œ ์„ ํƒ๋ฐ›๋Š”๋‹ค. ๋ช…์‹œํ•œ ์›Œ์ปค๋ฅผ Codex๋กœ ๋ชฐ๋ž˜ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค. ### Phase 1: ๋ถ„์„ (Host) ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด **๋…๋ฆฝ์ ์œผ๋กœ ๋ณ‘๋ ฌ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ** ์„œ๋ธŒํƒœ์Šคํฌ๋กœ ๋ถ„ํ•ด. **์ข‹์€ ์„œ๋ธŒํƒœ์Šคํฌ ์กฐ๊ฑด**: - ๋‹ค๋ฅธ ์„œ๋ธŒํƒœ์Šคํฌ ์™„๋ฃŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์•„๋„ ๋จ - ๋ช…ํ™•ํ•œ ์ž…์ถœ๋ ฅ(์‹œ๊ทธ๋‹ˆ์ฒ˜) ์ •์˜ ๊ฐ€๋Šฅ - ์›Œ์ปค ํ˜ผ์ž ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„ - ํŒŒ์ผ/๊ธฐ๋Šฅ ๊ฒฝ๊ณ„๊ฐ€ ๋ช…ํ™•ํ•จ ### Phase 2: ๊ณต์œ  ์ƒํƒœ ์ดˆ๊ธฐํ™” + ๋ธŒ๋ฆฌํ”„ ์ž‘์„ฑ (Host) ```bash python3 $PLUGIN_ROOT/skills/pumasi/scripts/init_workspace.py --root "$PWD" --task "<์ž‘์—… ์š”์•ฝ>" ``` ์ƒ์„ฑ๋ฌผ: - `.pumasi/job.json` โ€” ์žก ์ƒํƒœ(ํƒœ์Šคํฌ/๋ผ์šด๋“œ/์„ ํƒ๋œ ์›Œ์ปค ๋ช…๋ น) - `.pumasi/plan.md` โ€” ํ†ตํ•ฉ ์ปจํ…์ŠคํŠธ (์›Œ์ปค ์‹คํ–‰ ์ค‘ ๊ณ„์† ๊ฐฑ์‹ ) - `.pumasi/tasks/<task>.md` โ€” ํƒœ์Šคํฌ๋ณ„ ์ž‘์—… ๋ธŒ๋ฆฌํ”„ - `.pumasi/reports/` โ€” ์›Œ์ปค ๋ณด๊ณ  ์ˆ˜์ง‘ ์œ„์น˜ **์ž‘์—… ๋ธŒ๋ฆฌํ”„(`.pumasi/tasks/<task>.md`)์— ๋ฐ˜๋“œ์‹œ ๋‹ด์„ ๊ฒƒ:** 1. ์‹œ๊ทธ๋‹ˆ์ฒ˜์™€ ์š”๊ตฌ์‚ฌํ•ญ๋งŒ ์ž‘์„ฑ (์ฝ”๋“œ ๋ณธ๋ฌธ ์ž‘์„ฑ ๊ธˆ์ง€) 2. owned files / ๋””๋ ‰ํ† ๋ฆฌ (๋‹ค๋ฅธ ์›Œ์ปค์™€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ) 3. ํ•„์ˆ˜ import / ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ + ๊ธˆ์ง€ ๋Œ€์ฒด 4. ๊ฐ•ํ•œ ๊ฒŒ์ดํŠธ ๋ช…๋ น (tsc/build/test ์ค‘์‹ฌ) 5. "๋‹ค๋ฅธ ์›Œ์ปค๊ฐ€ ๊ฐ™์€ ๋ ˆํฌ๋ฅผ ๋™์‹œ์— ํŽธ์ง‘ ์ค‘"์ด๋ผ๋Š” ์•Œ๋ฆผ 6. ๋ณด๊ณ  ํ˜•์‹ โ€” Codex/claude ์›Œ์ปค๋Š” `$PLUGIN_ROOT/skills/pumasi/scripts/codex-output-schema.json` ์Šคํ‚ค๋งˆ์˜ JSON์„ `.pumasi/reports/<task>.report.json`์œผ๋กœ, ๊ทธ ์™ธ ์›Œ์ปค๋Š” ๋งˆ์ง€๋ง‰ ์‘๋‹ต์„ `.pumasi/reports/<task>.output.txt`๋กœ ๋‚จ๊ธฐ๊ฒŒ ํ•œ๋‹ค ### Phase 3: ์›Œ์ปค ์Šคํฐ (Host โ†’ ๋ณ‘๋ ฌ ์›Œ์ปค) ํƒœ์Šคํฌ๋‹น ์›Œ์ปค 1๊ฐœ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์Šคํฐํ•œ๋‹ค. ๊ฐ ์›Œ์ปค ํ”„๋กฌํ”„ํŠธ์—๋Š” ํ•ด๋‹น `.pumasi/tasks/<task>.md` ๋ธŒ๋ฆฌํ”„๋ฅผ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•œ๋‹ค. - **Codex ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ**(v0.139+ ์•ˆ์ •): ํƒœ์Šคํฌ๋ณ„ sub-agent๋ฅผ ๋™์‹œ ์‹คํ–‰ - ๋˜๋Š” **`codex exec`** ์„ธ์…˜์„ ํƒœ์Šคํฌ๋ณ„๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šคํฐ โ€” ์˜ˆ: `codex exec --dangerously-bypass-approvals-and-sandbox --output-schema $PLUGIN_ROOT/skills/pumasi/scripts/codex-output-schema.json -o .pumasi/reports/<task>.report.json "<๋ธŒ๋ฆฌํ”„>" < /dev/null` - ๋‹ค๋ฅธ ์›Œ์ปค๋ฅผ ์„ ํƒํ–ˆ์œผ๋ฉด "์™ธ์ฃผ ์›Œ์ปค ๊ต์ฒด" ์ ˆ์˜ ๋ช…๋ น์œผ๋กœ ์Šคํฐํ•œ๋‹ค. **`--output-schema`/`-o`๋Š” Codex ์ „์šฉ ํ”Œ๋ž˜๊ทธ**๋ผ ๋‹ค๋ฅธ CLI์— ๋„˜๊ธฐ๋ฉด ์•Œ ์ˆ˜ ์—†๋Š” ํ”Œ๋ž˜๊ทธ๋กœ ์ฆ‰์‚ฌํ•œ๋‹ค โ€” ์ ˆ๋Œ€ ์ƒˆ์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค. > ์›Œ์ปค๋Š” ๋ธŒ๋ฆฌํ”„์˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜/์š”๊ตฌ์‚ฌํ•ญ/๊ฒŒ์ดํŠธ๋งŒ ๋ฐ›๊ณ  **๊ตฌํ˜„ ๋ณธ๋ฌธ์€ ์›Œ์ปค๊ฐ€ ์ž‘์„ฑ**ํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ ๋ณธ๋ฌธ์„ ์จ์„œ ๋„˜๊ธฐ๋ฉด ์•ˆ ๋œ๋‹ค. > โš ๏ธ **์ƒŒ๋“œ๋ฐ•์Šค/์Šน์ธ ์šฐํšŒ ๊ฒฝ๊ณ„ (opt-in).** ๋น„๋Œ€ํ™”ํ˜• ๋ณ‘๋ ฌ ์›Œ์ปค๊ฐ€ ์Šน์ธ ํ”„๋กฌํ”„ํŠธ ์—†์ด ํŒŒ์ผ์„ ์“ฐ๋ ค๋ฉด > `codex exec --dangerously-bypass-approvals-and-sandbox`(๋˜๋Š” `--full-auto`) / `--sandbox workspace --always-approve`(grok) / > `--force`(cursor-agent) / `--dangerously-skip-permissions`(agy)๊ฐ€ ํ•„์š”ํ•˜๋‹ค โ€” ๋ณ‘๋ ฌ ์™ธ์ฃผ ์ž๋™ํ™”๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๋™์ž‘์ด๋‹ค. > ๋”ฐ๋ผ์„œ ํ’ˆ์•—์ด๋Š” **์‹ ๋ขฐํ•˜๋Š” ๋ณธ์ธ ๋ ˆํฌ์—์„œ๋งŒ** ์‹คํ–‰ํ•˜๊ณ , ์™ธ๋ถ€์—์„œ ๋ฐ›์€/๊ฒ€ํ†  ์•ˆ ๋œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋‚˜ ํ”„๋กฌํ”„ํŠธ์—๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค. > ํ’ˆ์•—์ด ํ˜ธ์ถœ ์ž์ฒด๊ฐ€ ์ด ์šฐํšŒ์— ๋Œ€ํ•œ ๋ช…์‹œ์  ๋™์˜์ด๋ฉฐ, ์šฐํšŒ ์—†์ด ๋Œ๋ฆฌ๋ ค๋ฉด ํ•ด๋‹น ํ”Œ๋ž˜๊ทธ๋ฅผ ๋นผ๊ณ  codex ๊ธฐ๋ณธ ์ƒŒ๋“œ๋ฐ•์Šค(`--full-auto` ๋“ฑ)๋กœ ์›Œ์ปค๋ฅผ ์Šคํฐํ•œ๋‹ค. ### Phase 4: ๋ชจ๋‹ˆํ„ฐ๋ง (Host) ์›Œ์ปค๊ฐ€ ๋„๋Š” ๋™์•ˆ `.pumasi/plan.md`์˜ ํ†ตํ•ฉ ์ปจํ…์ŠคํŠธ๋ฅผ ์ตœ์‹ ์œผ๋กœ ์œ ์ง€ํ•œ๋‹ค. ์™„๋ฃŒ ๋ณด๊ณ /์‚ฐ์ถœ ํŒŒ์ผ์„ `.pumasi/reports/`์—์„œ ์ˆ˜์ง‘ํ•œ๋‹ค. ํ•œ ์›Œ์ปค๊ฐ€ ๋๋‚ฌ๋‹ค๊ณ  ์ „์ฒด๊ฐ€ ๋๋‚œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค โ€” ๋ชจ๋“  ์›Œ์ปค๊ฐ€ ์ข…๋ฃŒ ์ƒํƒœ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ๋’ค Phase 5๋กœ ๊ฐ„๋‹ค. ### Phase 5: ๊ฒŒ์ดํŠธ ๊ฒ€์ฆ + ์„ ํƒ์  ์ฝ”๋“œ ๋ฆฌ๋ทฐ (Host) **4๋‹จ๊ณ„ ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค:** ``` Step 0: ์˜์กด์„ฑ ํ™•์ธ (๊ฒŒ์ดํŠธ ์‹คํ–‰ ์ „ ํ•„์ˆ˜) โ””โ”€โ”€ node_modules๊ฐ€ ์—†์œผ๋ฉด: ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ npm install --silent โ””โ”€โ”€ tsc/build/test ๊ฒŒ์ดํŠธ๋Š” ์˜์กด์„ฑ ์„ค์น˜ ํ›„์—๋งŒ ์œ ํšจ Step 1: ์ž๋™ ๊ฒŒ์ดํŠธ ์‹คํ–‰ (bash, ํ† ํฐ 0) โ””โ”€โ”€ tsc --noEmit โ†’ npm run build โ†’ npm test โ†’ grep ํ™•์ธ Step 2: ๊ฒฐ๊ณผ ํŒ์ • โ”œโ”€โ”€ ์ „๋ถ€ ํ†ต๊ณผ โ†’ ์›Œ์ปค ๋ณด๊ณ ์„œ(report.json / output.txt)๋งŒ ์ฝ๊ธฐ (ํ† ํฐ ์†Œ๋Ÿ‰) โ””โ”€โ”€ ์‹คํŒจ ์žˆ์Œ โ†’ ์‹คํŒจํ•œ ๊ฒŒ์ดํŠธ ๊ด€๋ จ ์ฝ”๋“œ๋งŒ ์ฝ๊ธฐ (ํ† ํฐ ์ตœ์†Œํ™”) Step 3: ์„œ๋ธŒํƒœ์Šคํฌ ๊ฐ„ ์ธํ„ฐํŽ˜์ด์Šค ํ™•์ธ โ””โ”€โ”€ ํƒ€์ž…/import ๊ฒฝ๋กœ ๋“ฑ ๊ต์ฐจ ๊ฒ€์ฆ ``` ๋ณด๊ณ ์„œ๋ฅผ ์ฝ์„ ๋•Œ๋Š” ์›๋ฌธ ํ”„๋กฌํ”„ํŠธยทstdoutยทstderr๋ฅผ ๋‹ค์‹œ ํŽผ์น˜์ง€ ๋ง๊ณ  **๊ตฌ์กฐํ™” ๋ณด๊ณ  + ๊ฒŒ์ดํŠธ ๊ฒฐ๊ณผ + ์›๋ณธ ํŒŒ์ผ ๊ฒฝ๋กœ**๋งŒ ๋ณด๋Š” compact ๋ฐฉ์‹์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค. ์‹คํŒจยท๋ถ€๋ถ„ ์™„๋ฃŒยท๋ณด๊ณ  ๋ˆ„๋ฝ์„ ์กฐ์‚ฌํ•  ๋•Œ๋งŒ ํ•ด๋‹น ์›๋ณธ ํŒŒ์ผ์„ ์ฝ๋Š”๋‹ค. **๊ณต์œ  ์ฝ๊ธฐ ์ „์šฉ ๊ฒŒ์ดํŠธ**: ์—ฌ๋Ÿฌ ํƒœ์Šคํฌ๊ฐ€ ๊ฐ™์€ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๊ฐ™์€ ๊ฒฐ์ •๋ก ์ ยท์ฝ๊ธฐ ์ „์šฉ ๊ฒ€์‚ฌ(์˜ˆ: `npx tsc --noEmit`)๋ฅผ ์š”๊ตฌํ•˜๋ฉด, ๋ชจ๋“  ์›Œ์ปค๊ฐ€ ์™„๋ฃŒ๋œ ๋’ค ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•ด ํ†ต๊ณผ ๊ฒฐ๊ณผ๋ฅผ ํƒœ์Šคํฌ๋ณ„๋กœ ๊ท€์†์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์‹คํŒจยทํƒ€์ž„์•„์›ƒ, ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ ๊ฒ€์‚ฌ, ํฌ๋งทํ„ฐยท์Šค๋ƒ…์ƒท ๊ฐฑ์‹ ยท์™ธ๋ถ€ ์„œ๋น„์Šคยท์‹คํ–‰ ์ˆœ์„œ์— ์˜์กดํ•˜๋Š” ๊ฒ€์‚ฌ์—๋Š” ์ ์šฉํ•˜์ง€ ์•Š๊ณ , ๋‹ค์Œ ๊ฒ€์ฆ ๋ผ์šด๋“œ์—์„œ๋Š” ํ•ญ์ƒ ๋‹ค์‹œ ๊ฒ€์‚ฌํ•œ๋‹ค. ### Phase 5.5: ์ฝ”๋“œ ์ •๋ฆฌ (์„ ํƒ์ ) > ๊ฒŒ์ดํŠธ๊ฐ€ ๋ชจ๋‘ ํ†ต๊ณผํ–ˆ์ง€๋งŒ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ํ•œ ๋‹จ๊ณ„ ๋†’์ด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. **์กฐ๊ฑด**: Phase 5 ๊ฒŒ์ดํŠธ ์ „๋ถ€ PASS + ํƒœ์Šคํฌ 3๊ฐœ ์ด์ƒ์ผ ๋•Œ ๊ถŒ์žฅ. ์ •๋ฆฌ(simplify) ํŒจ์Šค ํ›„ ๊ฒŒ์ดํŠธ๋ฅผ ์žฌ์‹คํ–‰ํ•˜๊ณ  Phase 6 ํ†ตํ•ฉ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ### Phase 6: ํ†ตํ•ฉ ๋ฐ ์ˆ˜์ • (Host ํŒ๋‹จ + ์›Œ์ปค ์žฌ์œ„์ž„) **์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ**: ํ˜ธ์ŠคํŠธ๊ฐ€ ์ง์ ‘ ๊ณ ์น˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ํƒœ์Šคํฌ๋งŒ ์›Œ์ปค์—๊ฒŒ ์žฌ์œ„์ž„. ์žฌ์œ„์ž„์—๋„ Phase 0.5์—์„œ ๊ณ ๋ฅธ ์›Œ์ปค๋ฅผ ๊ทธ๋Œ€๋กœ ์“ด๋‹ค. ``` ํ˜ธ์ŠคํŠธ๊ฐ€ ํ•˜๋Š” ์ผ: "๋ญ˜ ๊ณ ์น ์ง€" ๊ฒฐ์ • (์ž์—ฐ์–ด ์ˆ˜์ • ์ง€์‹œ + ์ขํžŒ ์ปจํ…์ŠคํŠธ) ์›Œ์ปค๊ฐ€ ํ•˜๋Š” ์ผ: ์‹ค์ œ ์ˆ˜์ • ์‹คํ–‰ ``` **์ˆ˜์ •์ด ํ•„์š” ์—†๋Š” ๊ฒฝ์šฐ**: ์„œ๋ธŒํƒœ์Šคํฌ ๊ฐ„ ์—ฐ๊ฒฐ๋งŒ ํ™•์ธ ํ›„ ํ†ตํ•ฉํ•œ๋‹ค. ๊ฒ€์ฆ์ด ๋๋‚˜๊ธฐ ์ „์—๋Š” `.pumasi/` ์‚ฐ์ถœ๋ฌผ์„ ์ง€์šฐ์ง€ ์•Š๋Š”๋‹ค. > **์‹คํ–‰ ์˜ˆ์‹œ ์ฐธ๊ณ **: `$PLUGIN_ROOT/skills/pumasi/references/examples.md` --- ## ๋ผ์šด๋“œ (์ˆœ์„œ ์˜์กด์„ฑ ์ฒ˜๋ฆฌ) ํƒœ์Šคํฌ ๊ฐ„ ์˜์กด์„ฑ์ด ์žˆ์œผ๋ฉด **๋ผ์šด๋“œ**๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค. ๊ณต์œ  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‘๊ณ  ๋ณ‘๋ ฌ ์›Œ์ปค๊ฐ€ ๊ฒฝ์Ÿ(race)ํ•˜์ง€ ์•Š๋„๋ก, ์˜์กด์„ฑ์ด ์žˆ์„ ๋•Œ๋Š” ํ•ญ์ƒ ๋ผ์šด๋“œ๋ฅผ ์“ด๋‹ค. ``` Round 1: ๊ณต์œ  ํƒ€์ž…/์Šคํ‚ค๋งˆ/์œ ํ‹ธ๋ฆฌํ‹ฐ (3๊ฐœ ๋ณ‘๋ ฌ) Round 2+: Round 1 ๊ฒฐ๊ณผ(์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํƒœ์Šคํฌ (2๊ฐœ ๋ณ‘๋ ฌ) Final: ํ˜ธ์ŠคํŠธ๊ฐ€ ์ง์ ‘ ๋กœ์ปฌ ํ†ตํ•ฉ ๋ฐ ๊ฒ€์ฆ ``` --- ## ์›Œ์ปค ๋ฃฐ (์š”์•ฝ) - ํ˜ธ์ŠคํŠธ(lead)๊ฐ€ ์‹œ๊ทธ๋‹ˆ์ฒ˜ยทํƒ€์ž…ยท์ œ์•ฝยท๊ฒŒ์ดํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. - ์›Œ์ปค๊ฐ€ ๊ตฌํ˜„ ๋ณธ๋ฌธ์„ ์ž‘์„ฑํ•œ๋‹ค. - ์ž‘์—… ๋ธŒ๋ฆฌํ”„์— ์™„์„ฑ๋œ ํ•จ์ˆ˜ ๋ณธ๋ฌธ์„ ์ ˆ๋Œ€ ๋ถ™์—ฌ๋„ฃ์ง€ ์•Š๋Š”๋‹ค. - ๋ชจ๋“  ์›Œ์ปค ํ”„๋กฌํ”„ํŠธ์— ๋ฐ˜๋“œ์‹œ ํฌํ•จ: - owned files / ๋””๋ ‰ํ† ๋ฆฌ - ํ•„์ˆ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜์™€ import - ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ + ๊ธˆ์ง€ ๋Œ€์ฒด - ์ •ํ™•ํ•œ ๊ฒŒ์ดํŠธ ๋ช…๋ น - ๋‹ค๋ฅธ ์›Œ์ปค๊ฐ€ ๊ฐ™์€ ๋ ˆํฌ๋ฅผ ํŽธ์ง‘ ์ค‘์ด๋ผ๋Š” ์•Œ๋ฆผ --- ## ์™ธ์ฃผ ์›Œ์ปค ๊ต์ฒด (์„ ํƒ) โ€” Grok(`grok`) / Cursor(`cursor-agent`) / gajae-code(`gjc`) / Antigravity CLI(`agy`) / `claude` ๊ธฐ๋ณธ ์›Œ์ปค(Codex) ๋Œ€์‹  ํƒœ์Šคํฌ๋ณ„ ๋˜๋Š” ์žก ์ „์ฒด์— ๋‹ค๋ฅธ CLI๋ฅผ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ(๋ธŒ๋ฆฌํ”„)๋Š” **๋งˆ์ง€๋ง‰ positional ์ธ์ž**๋กœ ์ „๋‹ฌํ•œ๋‹ค (`claude`๋งŒ stdin). Codex ์ „์šฉ `--output-schema`/`-o`๋Š” ๋‹ค๋ฅธ CLI์— ๋„ฃ์ง€ ์•Š๋Š”๋‹ค โ†’ ๊ทธ ์›Œ์ปค๋“ค์€ `report.json` ์—†์ด `output.txt` ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ตํ•ฉํ•œ๋‹ค(graceful). **Grok CLI(`grok`)** โ€” xAI Grok Build (์ฝ”๋“œยท๋Œ€๊ทœ๋ชจ ๋ถ„์„): ```text grok --no-auto-update --no-alt-screen --sandbox workspace --always-approve -p "<๋ธŒ๋ฆฌํ”„>" ``` - ์‹ค์ธก(2026-08-23, grok 1.0.4): ์›Œ์ปค 3๊ฐœ ๋™์‹œ ์‹คํ–‰ ์ „๋ถ€ exit 0, ๊ฒŒ์ดํŠธ 9/9 ํ†ต๊ณผ, ๋น„-TTY ํŒŒ์ดํ”„์—์„œ stdout ์ •์ƒ โ€” agy ๊ฐ™์€ ๋ˆ„๋ฝ ๋ฒ„๊ทธ ์—†์Œ. - **์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ๊ธฐ๋ณธ off**๋ผ `--sandbox workspace`๋กœ ์กฐ์ธ๋‹ค (codex์™€ ๋ฐ˜๋Œ€ โ€” codex๋Š” ๊ธฐ๋ณธ ์ƒŒ๋“œ๋ฐ•์Šค). - **์ž๋™ ์—…๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ๋Œ๋ฏ€๋กœ `--no-auto-update` ํ•„์ˆ˜.** ๋„ฃ์ง€ ์•Š์œผ๋ฉด ์›Œ์ปค ์‹คํ–‰ ์ค‘ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ผ์–ด๋“ ๋‹ค. - grok ์ž์ฒด๋Š” `--json-schema`๋กœ ๊ตฌ์กฐํ™” ์ถœ๋ ฅ์„ ์ง€์›ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ stdout JSON์˜ `.text`์— **๋ฌธ์ž์—ด๋กœ ์ค‘์ฒฉ**๋˜๋ฏ€๋กœ ํŒŒ์ผ๋กœ ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค (์–ธ๋žฉ ํ•„์š” โ€” ๋ฏธ๊ตฌํ˜„). - ๋ชจ๋ธ์€ grok ๊ธฐ๋ณธ๊ฐ’(`grok-4.6`) ์‚ฌ์šฉ. `grok-code-fast-1`์€ 2026-08-15 ํ๊ธฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. - ์ธ์ฆ: `grok login`(๊ตฌ๋… ์„ธ์…˜, `XAI_API_KEY` ๋ถˆํ•„์š”) ๋˜๋Š” `XAI_API_KEY` ํ™˜๊ฒฝ๋ณ€์ˆ˜. - โš ๏ธ **PATH ์ฃผ์˜**: `~/.grok/bin/grok`์— ์„ค์น˜๋˜๊ณ  ์…ธ ํ”„๋กœํ•„์„ ํ†ตํ•ด PATH์— ๋“ค์–ด๊ฐ„๋‹ค. ๋น„๋Œ€ํ™”ํ˜• ์…ธ์—์„œ `command -v grok`์ด ์‹คํŒจํ•˜๋ฉด ์ ˆ๋Œ€๊ฒฝ๋กœ(`$HOME/.grok/bin/grok`)๋กœ ์ง€์ •ํ•œ๋‹ค. npm ์„œ๋“œํŒŒํ‹ฐ `@vibe-kit/grok-cli`๊ฐ€ ๊ฐ™์€ `grok` ์ด๋ฆ„์„ ์“ฐ๋ฏ€๋กœ ์–ด๋А ์ชฝ์ด ์žกํžˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. - ์„ค์น˜: `curl -fsSL https://x.ai/cli/install.sh | bash` (์›๊ฒฉ ์Šคํฌ๋ฆฝํŠธ ์ฆ‰์‹œ ์‹คํ–‰ โ€” ๋‚ด์šฉ์„ ๋จผ์ € ํ™•์ธํ•˜๋ ค๋ฉด `-o`๋กœ ๋ฐ›์•„์„œ ์ฝ๊ณ  ์‹คํ–‰). **Cursor CLI(`cursor-agent`)** โ€” Cursor Ultra ๊ตฌ๋… ์›Œ์ปค (Composer/Codex/OpusยทFable๊ธ‰ ๋ฉ€ํ‹ฐ๋ชจ๋ธ): ```text cursor-agent -p --force --output-format text "<๋ธŒ๋ฆฌํ”„>" # ๋ชจ๋ธ ํ•€ ์˜ˆ: cursor-agent -p --force --model composer-2.5 --output-format text "<๋ธŒ๋ฆฌํ”„>" ``` - **๋ชจ๋ธ ์„ ํƒ์ด ์ตœ๋Œ€ ๊ฐ•์ **: `--model`๋กœ `composer-2.5`(๋น ๋ฅธ ํŽธ์ง‘), `gpt-5.3-codex-*` ๊ณ„์—ด, `claude-opus-5-thinking-high` / `claude-fable-5-thinking-high`๊นŒ์ง€ ์ง€์ • ๊ฐ€๋Šฅ โ€” ๋‹ค๋ฅธ ๊ตฌ๋… ์ฟผํ„ฐ๊ฐ€ ์†Œ์ง„๋์„ ๋•Œ Cursor ๊ตฌ๋…์œผ๋กœ ์ž‡๋Š” ์šฐํšŒ ๊ฒฝ๋กœ๊ฐ€ ๋œ๋‹ค. ๋ชฉ๋ก: `cursor-agent --list-models`. - `-p`(print) + `--output-format text` ํ•„์ˆ˜.
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen