| name | claude-codex-guardrail-loop |
| description | Use after planning or implementing non-trivial tasks - runs Codex MCP background verification/review for quality gates (plan validation + implementation review) |
Codex-Claude ์์ง๋์ด๋ง ๋ฃจํ ์คํฌ
์ธ์ ์ฌ์ฉํ๋๊ฐ (When to Use)
๋ค์ ์์
ํ ์ฌ์ฉ ๊ถ์ฅ (Plan ๊ฒ์ฆ์ ์์ฒญ ์/ํฉ์ ์์๋ง ์คํ):
- ๋น trivialํ ๊ณํ ์๋ฆฝ ํ (3๋จ๊ณ ์ด์, ์ํคํ
์ฒ ์ํฅ, ์ฌ๋ฌ ํ์ผ ๋ณ๊ฒฝ) โ Plan ๊ฒ์ฆ์ ์ฌ์ฉ์ ํฉ์/์์ฒญ ์ ์งํ
- ์ฝ๋ ๊ตฌํ ์๋ฃ ํ (์ ๊ธฐ๋ฅ, ๋ฆฌํฉํฐ๋ง, API ๋ณ๊ฒฝ)
- ๋น๋/๋ฐฐํฌ ์ ์ต์ข
๊ฒ์ฆ
- ์ฃผ์ ์์
์๋ฃ ํ ํ์ง ๊ฒ์ดํธ ํต๊ณผ ํ์ธ
์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ:
- ๋จ์ ์ค์ ๋ณ๊ฒฝ (ํ๊ฒฝ ๋ณ์, ํฌ๋งท ์ค์ ๋ฑ)
- ๋ฌธ์ ์
๋ฐ์ดํธ๋ง ์ํํ ๊ฒฝ์ฐ
- 1-2์ค ๊ฐ๋จํ ์์ (์คํ, ์คํ์ผ ์กฐ์ )
์ญํ (Role)
- ๊ธฐ๋ณธ ์ญํ ์
CLAUDE.md ์ ์๋ฅผ ๋ฐ๋ฅธ๋ค. Codex๋ ๊ณํยท๊ตฌํ์ ๊ฒ์ฆํ๋ ๋ฆฌ๋ทฐ์ด๋ค.
- ํญ์ ๋ง์ง๋ง์ผ๋ก ์ ๋ฆฌํ ์์ด์ ํธ๊ฐ ์ด์ด๋ฐ์ ์์
ํ๋ค.
์ ์ฝ ๊ธฐ๋ฐ ๊ฐ๋๋ ์ผ (Gemini ํ๋กฌํํธ ์ ๋ต ๋ฐ์)
- ์ปจํ
์คํธ ๋ฒ์ ๋ช
์: ๋ณ๊ฒฝ ๋์ ํ์ผยทํด๋ ์ธ์๋ ์ถ์ธกยท๊ฐ์ ยท์์ ๊ธ์ง. ๊ทผ๊ฑฐ๋ ํ์ผ/๋ผ์ธ์ผ๋ก ์ง๋ชฉ.
- ์ฐ์ถ๋ฌผ ํ์ ๊ณ ์ : ์์ฒญ๋ ์ถ๋ ฅ ํฌ๋งท(Plan/Implementation/Review)๊ณผ ๊ธธ์ด ์ ํ์ ๋ช
์ํ๊ณ ์ ์งํ๋ค.
- ํ์ฉ/๊ธ์ง ํ๋ ์ ์ธ: ์ธ๋ถ ๋ฆฌ์์ค ํธ์ถ, ์๋ก์ด ์์กด์ฑ ์ถ๊ฐ, ๋๊ท๋ชจ ๋ฆฌํฉํฐ๋ ์ฌ์ ํฉ์ ์์ด๋ ๊ธ์ง.
- ๋ถํ์ค์ฑ ์ฒ๋ฆฌ: ์ ๋ณด ๋ถ์กฑยท๋ชจํธ ์ ์งง๊ฒ ์ง์ ํ ์งํ. ๋ชจ๋ฅผ ๋๋ ์ถ์ธก ๋์ โํ์ธ ํ์โ๋ก ๋ช
์.
- ์ฒดํฌ๋ฆฌ์คํธ ๊ธฐ๋ฐ ์๊ธฐ๊ฒ์ฆ: ์๋ต ์ง์ ํต์ฌ ์ ์ฝ(ํ์ผ ๋ฒ์, ํฌ๋งท, ๊ธ์ง ํญ๋ชฉ, ๋ฆฌ์คํฌ ํฌํจ ์ฌ๋ถ)์ ๋น ๋ฅด๊ฒ ์ ๊ฒ ํ ์ ์ถ.
์๋ต ํ
ํ๋ฆฟ
์ฌ์ฉ์ ์
๋ ฅ (User Context)
- ๋ณ๊ฒฝ ๋์ ํ์ผ/ํด๋:
- ํ์ฌ ๋์:
- ์ถ๊ฐ ๋งฅ๋ฝ:
- (ํ์ ์) ์ ์ฝ/์ฐ์ ์์: ํ์ฉ/๊ธ์ง ํ๋, ์ถ๋ ฅ ๊ธธ์ดยทํฌ๋งท, ๋ชจํธ์ฑ ํด์ ์ง๋ฌธ ํ์ ์ฌ๋ถ
์์
- ๋ณ๊ฒฝ ๋์ ํ์ผ/ํด๋:
src/app/page.tsx
src/store/dashboardStore.ts
- ํ์ฌ ๋์: ์๋ฒ์์ ๋ฐ์ดํฐ fetch ํ ๋ก์ปฌ ์ํ์ ์ ์ฅ
- ์ถ๊ฐ ๋งฅ๋ฝ: React 19 ๋์ ์์ ์ด๋ผ Suspense / useOptimistic ์ฌ์ฉ ๊ฐ๋ฅ
์์
(Task)
- ์ฌ์ฉ์๊ฐ ์์ฒญํ ์์
์ bullet๋ก ์ ๋ฆฌํ๋ค.
- ์์:
- dashboard ์ํ๊ด๋ฆฌ ๋ก์ง์ Zustand + Immer๋ก ๋ถ๋ฆฌ
- ๊ธฐ์กด ์ฝ๋์์ ๋ฐ์ ๊ฐ๋ฅํ breakage๋ฅผ ์ต์ํ
- ํ์
์์ ์ฑ(ํ์
์ขํ๊ธฐ, ReturnType ๋ฑ) ๊ณ ๋ ค
- ์ ์ฝ์ ๋ค์ ํ ๋ฒ ์์ฝํ๋ค(๊ธ์ง/ํ์ฉ ํ๋, ์ถ๋ ฅ ํฌ๋งท, ๊ธธ์ด, ํ์ธ ํ์ ์ฌํญ).
์ถ๋ ฅ ํ์ (Output Format)
- Plan(๊ณํ): ํต์ฌ ๋จ๊ณ, ๊ฐ์ค, ๋ฆฌ์คํฌ๋ฅผ ์์ฝํ๋ค.
- Implementation(๊ตฌํ): ํ์ผ๋ณ ๋ณ๊ฒฝ์ ๊ณผ ๊ทผ๊ฑฐ๋ฅผ ์์ฝํ๋ค.
- Review(๋ฆฌ๋ทฐ): edge case, ํ
์คํธ ๋ฐฉ๋ฒ, ๋จ์ ๋ฆฌ์คํฌ๋ฅผ ์ ๋ฆฌํ๋ค.
์ต์ข
์ง์ (Final Instruction)
- ๋ฐ๋์ Plan โ Implementation โ Review ์์๋ก ๋ต๋ณํ๋ค.
Codex-Claude Loop ์ ์ฐจ
- ๊ณํ(Claude): ์์ธ ๊ณํ์ ์๋ฆฝํ๊ณ
.claude/docs/tasks/context.md์ ๊ธฐ๋กํ๋ค.
- ๊ณํ ๊ฒ์ฆ(Codex) (์ต์
): ์ฌ์ฉ์ ์์ฒญ/ํฉ์๊ฐ ์์ ๋ MCP ๋๊ตฌ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋ ๊ฒ์ฆ์ ์์ฒญํ๋ค.
mcp__codex__spawn_agent ๋๊ตฌ ์ฌ์ฉ
- ํ๋กฌํํธ ์์:
์ด ๊ตฌํ ๊ณํ์ ๊ฒํ ํ๊ณ ๋ฌธ์ ๋ฅผ ์ฐพ์์ค:
[Claude์ ๊ณํ ๋ด์ฉ]
์๋๋ฅผ ์ค์ ์ ์ผ๋ก ํ์ธํด:
- ๋
ผ๋ฆฌ ์ค๋ฅ ๋ฐ ๋๋ฝ๋ ์ฃ์ง ์ผ์ด์ค
- ๋ฐ์ดํฐ/ํ๋ฆ ์ผ๊ด์ฑ, API ๊ณ์ฝ ์๋ฐ ์ฌ๋ถ
- ํ์
์์ ์ฑ(ํ์
์ขํ๊ธฐ, null/undefined ์ฒ๋ฆฌ)๊ณผ ์๋ฌ ์ฒ๋ฆฌ
- ์ฑ๋ฅ/์์ ๋ญ๋น ๊ฐ๋ฅ์ฑ
- ๋ณด์/๊ถํ/์
๋ ฅ ๊ฒ์ฆ
- ํ๋ ์์ํฌ/์ธ์ด ๋ฒ ์คํธํ๋ํฐ์ค ์ค์ ์ฌ๋ถ
- ํ๋ก์ ํธ๋ณ ์ฝ๋ ์ปจ๋ฒค์
๋ฐ ๋ ํฌ ๊ท์น ์ค์ ์ฌ๋ถ (CLAUDE.md ๋ฑ)
์ ์ฝ:
- Plan/Implementation/Review ํฌ๋งท ์ ์ง, ์ฐ์ถ๋ฌผ์ ์์ฝ๋ณธ๋ง
- ์ปจํ
์คํธ์ ์๋ ํ์ผยท์์กด์ฑ ์ธ๊ธ ๊ธ์ง, ๋ชจ๋ฅด๋ฉด โํ์ธ ํ์โ๋ก ํ์
- ๊ทผ๊ฑฐ๋ฅผ ํ์ผ/๋ผ์ธ ๊ทผ์ฒ๋ก ์ง๋ชฉ
- ๊ฒฐ๊ณผ ์์ฝ: Codex ์๋ต์์ ํต์ฌ ์ด์๋ง ์ถ์ถํด ์ฌ์ฉ์์๊ฒ ์ ๋ฌ (์ ์ฒด ๋ก๊ทธ๋ ํ์์๋ง)
- ํผ๋๋ฐฑ ๋ฃจํ: Codex๊ฐ ์ง์ ํ ํต์ฌ ์ด์๋ฅผ ์์ฝํด ๊ณต์ ํ๊ณ ๊ณํ์ ๋ณด์ํ๋ค. ํ์ ์ ์ฌ์ฉ์์๊ฒ "๊ณํ์ ์์ ํ๊ณ ์ฌ๊ฒ์ฆํ ๊น์, ์๋๋ฉด ์์ ํ๋ฉด์ ์งํํ ๊น์?"๋ก ํ์ธ ํ ์ฌ๊ฒ์ฆํ๋ค.
- ๊ตฌํ(Claude): ๊ฒ์ฆ๋ ๊ณํ๋๋ก ๋จ๊ณ๋ณ๋ก ๊ตฌํํ๊ณ , ์ค๋ฅ ์ฒ๋ฆฌ์ ๋ณ๊ฒฝ์ฌํญ์ ๋ช
์์ ์ผ๋ก ๊ธฐ๋กํ๋ค.
- ๊ต์ฐจ ๋ฆฌ๋ทฐ(Codex): ๊ตฌํ ํ MCP ๋๊ตฌ๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํ๋ค.
mcp__codex__spawn_agent ๋๊ตฌ ์ฌ์ฉ
- ํ๋กฌํํธ ์์:
๊ตฌํ์ ๋ฆฌ๋ทฐํ๊ณ ์๋๋ฅผ ํ์ธํด์ค:
- ๋
ผ๋ฆฌ/ํ๋ฆ ์ค๋ฅ, ์ฃ์ง ์ผ์ด์ค ๋๋ฝ
- ํ์
์์ ์ฑ ๋ฐ null/undefined ๋ฐฉ์ด, ์๋ฌ/์์ธ ์ฒ๋ฆฌ
- API ๊ณ์ฝ ๋ฐ ๋ฐ์ดํฐ ๋ชจ๋ธ ์ ํฉ์ฑ
- ์ฑ๋ฅ, ์์ ๋ญ๋น ๊ฐ๋ฅ์ฑ
- ๋ณด์/๊ถํ/์
๋ ฅ ๊ฒ์ฆ
- ํ๋ ์์ํฌ/์ธ์ด ๋ฒ ์คํธํ๋ํฐ์ค ์ค์
- ํ๋ก์ ํธ๋ณ ์ฝ๋ ์ปจ๋ฒค์
๋ฐ ๋ ํฌ ๊ท์น ์ค์ (CLAUDE.md ๋ฑ)
- ์ฝ๋ ๋ณต์ก๋ ๋ฐ ์ ์ง๋ณด์์ฑ
์ ์ฝ:
- ์๋ต์ Plan/Implementation/Review ํฌ๋งท์ผ๋ก ์์ฝ
- ์ปจํ
์คํธ ๋ฐ ์์กด์ฑยทํ์ผ ์ ์ ๊ธ์ง, ํ์ ์ โํ์ธ ํ์โ๋ก ๋ช
์
- ๋ฐ๊ฒฌ๋ง๋ค ํ์ผ/๋ผ์ธ ๊ทผ๊ฑฐ๋ฅผ ์งง๊ฒ ์ง๋ชฉ
- ๊ฒฐ๊ณผ ์์ฝ: ์น๋ช
์ ์ด์, ๊ฒฝ๊ณ , ์ ์์ ๋ถ๋ฅํด ์์ฝ ์ ๋ฌ
- ์ฌ๊ฒ์ฆ ๋ฐ ์ด์ด๊ฐ๊ธฐ: ์น๋ช
์ ์ด์๋ ์ฆ์ ์์ ํ๊ณ , ํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ ์ฌ์ฉ์์ ์์ํ๋ค. ์์ ํ ํ์์ MCP๋ก ์ฌ๊ฒ์ฆํ๋ค.
- ์๋ฌ ์ฒ๋ฆฌ: Codex ๋๋ ๊ตฌํ ์๋ฌ๊ฐ ๋๋ฉด ์์ธ ๋ถ์ โ ์์ ์ ๋ต ์กฐ์ โ ๋๊ท๋ชจ/ํ๊ธ ๋ณ๊ฒฝ ์ ์ฌ์ฉ์ ํ์ธ์ ๊ฑฐ์น๋ค.
Codex ๊ฒฐ๊ณผ ์์ฝ ๊ฐ์ด๋
์์ฝ ์์น
- ํต์ฌ๋ง ์ ๋ฌ: ์น๋ช
์ ์ด์ > ๊ฒฝ๊ณ > ์ ์ ์์ผ๋ก ์ฐ์ ์์
- ๊ฐ๊ฒฐ์ฑ: ์ฌ์ฉ์์๊ฒ๋ 3-5๊ฐ ํต์ฌ ํฌ์ธํธ๋ง ์ ๋ฌ
- ์ปจํ
์คํธ ์ ์ฝ: ์ ์ฒด Codex ๋ก๊ทธ๋ ์ฑํ
์ ํ์ํ์ง ์์
- ์ก์
์ค์ฌ: ๊ฐ ์ด์์ ๋ํ ์กฐ์น ๋ฐฉ์ ํฌํจ
์์ฝ ํ
ํ๋ฆฟ
Codex ๊ฒ์ฆ ์๋ฃ:
๐ด ์น๋ช
์ ์ด์ (์ฆ์ ์์ ํ์):
- [์ด์ 1]: [๊ฐ๋จํ ์ค๋ช
] โ [์กฐ์น ๋ฐฉ์]
๐ก ๊ฒฝ๊ณ (๊ฐ์ ๊ถ์ฅ):
- [์ด์ 2]: [๊ฐ๋จํ ์ค๋ช
] โ [์กฐ์น ๋ฐฉ์]
๐ก ์ ์:
- [์ด์ 3]: [๊ฐ๋จํ ์ค๋ช
]
์์
Codex ๊ฒ์ฆ ์๋ฃ:
๐ด ์น๋ช
์ ์ด์:
- ํ์
์์ ์ฑ: PagingResponse<T> ๋ฏธ์ฌ์ฉ โ API ์๋ต์ PagingResponse ํ์
์ ์ฉ ํ์
๐ก ๊ฒฝ๊ณ :
- ์๋ฌ ํธ๋ค๋ง: Either Left ์ผ์ด์ค ๋๋ฝ โ fold๋ก ์์ชฝ ์ฒ๋ฆฌ ์ถ๊ฐ ๊ถ์ฅ
๐ก ์ ์:
- ์ฑ๋ฅ: useMemo๋ก ๋ฆฌ์คํธ ํํฐ๋ง ์ต์ ํ ๊ณ ๋ ค
์ฐธ๊ณ ์ฌํญ
- Plan ๊ฒ์ฆ:
mcp__codex__spawn_agent ๋๊ตฌ๋ก ๊ณํ ๊ฒ์ฆ ํ๋กฌํํธ ์คํ
- ๊ตฌํ: Claude Edit/Write/Read ๋๊ตฌ ์ฌ์ฉ
- ๋ฆฌ๋ทฐ:
mcp__codex__spawn_agent ๋๊ตฌ๋ก ๊ตฌํ ๋ฆฌ๋ทฐ ํ๋กฌํํธ ์คํ
- ๋ณ๋ ฌ ๊ฒ์ฆ: ์ฌ๋ฌ ๊ด์ ์์ ๋์ ๊ฒ์ฆ์ด ํ์ํ๋ฉด
mcp__codex__spawn_agents_parallel ์ฌ์ฉ