์๋ฆฌ์ฆ: oh-my-codex ์ํคํ ์ฒ ํด๋ถ
์ด ์๋ฆฌ์ฆ๋ OpenAI Codex CLI ํ์ฅ ๋ฐํ์์ธ oh-my-codex(OMX)์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋จ๊ณ๋ณ๋ก ํด๋ถํ๋ ๊ณผ์ ์ด๋ค.
| ํธ | ๋ด์ฉ | ํต์ฌ |
|---|---|---|
| 0ํธ | Overview | 3-Plane ์ํคํ ์ฒ, OMC์์ ์ฐจ์ด, ์ ์ฒด ํ๋ฆ |
| 1ํธ | Codex CLI Foundation | Codex CLI ์์ฒด์ ๊ตฌ์กฐ์ ํ์ฅ ํฌ์ธํธ |
| 2ํธ | OMX Integration | OMX๊ฐ Codex์ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋ |
| 3ํธ | Skill System | ์ํฌํ๋ก์ฐ๋ฅผ ์ด๋ป๊ฒ ์ ์ํ๋ |
| 4ํธ (๋ณธ๋ฌธ) | Prompt & Agent System | ์์ด์ ํธ๋ ๋ญ๊ณ ์ด๋ป๊ฒ ์ ํ๋๋ |
| 5ํธ | MCP Servers | ์ด๋ค MCP ๋๊ตฌ๋ฅผ ์ธ ์ ์๋ |
| 6ํธ | State & Lifecycle | ์ํ๋ฅผ ์ด๋ป๊ฒ ์ ์งํ๋ |
| 7ํธ | Team Orchestration | Team ๋ชจ๋๋ ์ด๋ป๊ฒ ๋์ํ๋ |
| 8ํธ | Native & Spark | Rust ๋ค์ดํฐ๋ธ ๋๊ตฌ๋ ๋ญ๊ฐ |
- Prompt & Agent System์ OMX์ 33๊ฐ ์์ด์ ํธ ์ญํ ์ ์์ ๋ชจ๋ธ ๋ผ์ฐํ ์ฒด๊ณ
prompts/*.md๋ก ์ ์๋๋ XML ํ๊ทธ ๊ธฐ๋ฐ ์ญํ ํ๋กฌํํธ์,definitions.ts๋ก ์ค์ ๊ด๋ฆฌ๋๋ ์์ด์ ํธ ๋ฉํ๋ฐ์ดํฐ(reasoningEffort,posture,modelClass)๋ฅผ ๋ถ๋ฆฌํ 2ํ์ผ ์ํคํ ์ฒ/prompts:name์ผ๋ก ํธ์ถ๋๋ฉฐ, ๋น๋ ํ์์ ํ๋กฌํํธ + ๋ฉํ๋ฐ์ดํฐ + posture overlay๊ฐ ํฉ์ฑ๋์ด.toml์์ด์ ํธ ์ค์ ํ์ผ๋ก ์ค์น๋๋ ๊ตฌ์กฐ
ํด๋น ๊ฐ๋ ์ด ํ์ํ ์ด์
- 3ํธ์์ Skill์ด โ์์ด์ ํธ๋ฅผ ํ์ฉํ์ฌ ๋ณ๋ ฌ๋ก ์คํํ๋ผโ๊ณ ์ง์ํ๋ ๊ตฌ์กฐ๋ฅผ ์ดํดํ์
- ํ์ง๋ง **โ์ด๋ค ์์ด์ ํธ๊ฐ ์๊ณ , ๊ฐ๊ฐ ๋ญ ํ ์ ์๊ณ , ์ด๋ค ๋ชจ๋ธ์ ์ฐ๋์งโ**๊ฐ ๋น ์ ธ ์์
- ์ด ํํธ๋ ์์ด์ ํธ์ ์ ์(prompts/*.md), ๋ฉํ๋ฐ์ดํฐ(definitions.ts), ๋ชจ๋ธ ๋ผ์ฐํ (3-Tier), ์์ ํ๋กํ ์ฝ์ ๋ค๋ฃจ์ด ๊ทธ ๊ฐ๊ทน์ ๋ฉ์
AS-IS (OMC Agent โ Claude Code ๋ฐฉ์)
sequenceDiagram autonumber participant U as User participant CC as Claude Code participant AD as agents/executor.md participant SA as Subagent U->>CC: Task(subagent_type="omc:executor") CC->>AD: YAML frontmatter์์ model ํ๋ ์ฝ๊ธฐ Note over AD: model, disallowedTools ๋ฑ ๋ฉํ๋ฐ์ดํฐ๊ฐ<br/>ํ๋กฌํํธ ํ์ผ ์์ฒด์ ๋ด์ฅ CC->>SA: subagent spawn (model ์ง์ ) SA-->>CC: ๊ฒฐ๊ณผ ๋ฐํ
TO-BE (OMX Agent โ Codex CLI ๋ฐฉ์)
sequenceDiagram autonumber participant U as User participant CX as Codex CLI participant PM as prompts/executor.md participant DF as definitions.ts participant NC as native-config.ts participant TM as ~/.omx/agents/executor.toml Note over NC,TM: omx setup ์ (๋น๋ ํ์) NC->>PM: โ prompts/*.md ๋ก๋ + frontmatter ์ ๊ฑฐ NC->>DF: โก ๋ฉํ๋ฐ์ดํฐ ํ์ธ (posture, modelClass) NC->>NC: โข ํ๋กฌํํธ + posture overlay + modelClass overlay ํฉ์ฑ NC->>TM: โฃ .toml ํ์ผ ์์ฑยท์ค์น Note over U,CX: ์ธ์ ์ (๋ฐํ์) U->>CX: "/prompts:executor refactor API" CX->>TM: executor.toml ๋ก๋ (developer_instructions) CX->>CX: ์ง์นจ์ ๋ฐ๋ผ ์์ ์ํ
ํต์ฌ ์ฐจ์ด: OMC๋ ํ๋กฌํํธ ํ์ผ ๋ด frontmatter์ ๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ง๋ง, OMX๋ ํ๋กฌํํธ(prompts/*.md)์ ๋ฉํ๋ฐ์ดํฐ(definitions.ts)๋ฅผ ๋ถ๋ฆฌํ๊ณ ๋น๋ ํ์์ ํฉ์ฑํ๋ค.
Agent Prompt ๊ตฌ์กฐ โ prompts/*.md ํด๋ถ
XML ํ๊ทธ ๊ตฌ์กฐ
๋ชจ๋ ์์ด์ ํธ ํ๋กฌํํธ๋ YAML frontmatter + XML ํ๊ทธ ์น์ ์ผ๋ก ๊ตฌ์ฑ๋๋ค. 3ํธ์ SKILL.md์ ๊ฐ์ ํจํด์ด์ง๋ง ๋ค๋ฅธ ํ๊ทธ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ค.
---
description: "์ญํ ์ค๋ช
(complexity tier)"
argument-hint: "task description"
---
<identity> # ์์ด์ ํธ์ ์ ์ฒด์ฑ๊ณผ ๋ฏธ์
(1-2๋ฌธ์ฅ)
<constraints> # ํ๋ ์ ์ฝ
<reasoning_effort> # ์ถ๋ก ๋
ธ๋ ฅ ์์ค ์ง์นจ
<scope_guard> # ๋ฒ์ ์ ํ ๊ท์น
<ask_gate> # ์ง๋ฌธ vs ์ง์ ํ์ ํ๋จ ๊ธฐ์ค
<execution_loop> # ๋จ๊ณ๋ณ ์คํ ์ ์ฐจ
<success_criteria> # ์๋ฃ ์กฐ๊ฑด
<verification_loop> # ๊ฒ์ฆ ์ ์ฐจ
<tools> # ์ฌ์ฉ ๊ฐ๋ฅ ๋๊ตฌ ๋ชฉ๋ก
<style> # ์ถ๋ ฅ ํ์
<output_contract> # ์๋ต ๊ตฌ์กฐ ํ
ํ๋ฆฟSKILL.md vs prompts/*.md โ ํ๊ทธ ๋น๊ต
| ๊ตฌ๋ถ | SKILL.md (์ํฌํ๋ก์ฐ) | prompts/*.md (์์ด์ ํธ) |
|---|---|---|
| ์ญํ | ๋ฌด์์ ํ ์ง (์ํฌํ๋ก์ฐ ์ ์ฐจ) | ๋๊ฐ ํ ์ง (์์ด์ ํธ ํ๋) |
| ์ ์ฒด์ฑ | <Purpose> | <identity> |
| ์ฌ์ฉ ์กฐ๊ฑด | <Use_When> / <Do_Not_Use_When> | <constraints> / <scope_guard> |
| ์คํ ์ ์ฐจ | <Steps> | <execution_loop> |
| ์๋ฃ ํ์ธ | <Final_Checklist> | <success_criteria> + <verification_loop> |
| ๋๊ตฌ ๊ณ์ฝ | <Tool_Usage> | <tools> |
| ์ถ๋ ฅ ํ์ | (์์) | <style> / <output_contract> |
๋ํ ํ๋กฌํํธ ๋น๊ต โ complexity ๋ณ ์ฐจ์ด
| ํญ๋ชฉ | explore.md (Low) | executor.md (Standard) | architect.md (High) |
|---|---|---|---|
| identity | โfind files, code patterns" | "implement, verify, finish" | "diagnose, analyze, recommendโ |
| scope_guard | ์ฝ๊ธฐ ์ ์ฉ, ํ์ผ ์์ ๊ธ์ง | ์ต์ viable diff ์ ํธ | ํ์ผ ์ฐ๊ธฐ/์์ ๊ธ์ง (read-only) |
| ask_gate | โsearch first, ask never" | "explore first, ask last" | "ask only when scope changesโ |
| ๊ฒ์ฆ | ๋ชจ๋ ๊ฒฝ๋ก ์ ๋๊ฒฝ๋ก, ๊ด๊ณ ์ค๋ช | diagnostics + tests + build | evidence ๊ธฐ๋ฐ root cause |
| output | files, relationships, next_steps | Changes, Verification, Summary | Summary, Analysis, Root Cause, Recommendations, Trade-offs |
33๊ฐ ์์ด์ ํธ ๋ถ๋ฅ
prompts/ ๋๋ ํ ๋ฆฌ์ 33๊ฐ .md ํ์ผ์ด ์กด์ฌํ๋ฉฐ, ์ด ์ค definitions.ts์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ๋ฑ์ฌ๋ ๊ฒ์ 30๊ฐ๋ค. ๋๋จธ์ง 3๊ฐ(team-orchestrator, sisyphus-lite, explore-harness)๋ ํน์ ๋ชฉ์ ์ผ๋ก ๋ณ๋ ๊ด๋ฆฌ๋๋ค.
Build Lane (7๊ฐ)
| ์์ด์ ํธ | ์ญํ | reasoning | posture | modelClass |
|---|---|---|---|---|
explore | ๋น ๋ฅธ ์ฝ๋๋ฒ ์ด์ค ํ์ (์ฝ๊ธฐ ์ ์ฉ) | low | fast-lane | fast |
analyst | ์๊ตฌ์ฌํญ ๋ช ํํ, ์์ฉ ๊ธฐ์ค | medium | frontier-orchestrator | frontier |
planner | ์์ ๋ถํด, ์คํ ๊ณํ | medium | frontier-orchestrator | frontier |
architect | ์์คํ ์ค๊ณ, ์ธํฐํ์ด์ค (์ฝ๊ธฐ ์ ์ฉ) | high | frontier-orchestrator | frontier |
debugger | ๊ทผ๋ณธ ์์ธ ๋ถ์, ํ๊ท ๊ฒฉ๋ฆฌ | medium | deep-worker | standard |
executor | ์ฝ๋ ๊ตฌํ, ๋ฆฌํฉํฐ (๊ธฐ๋ณธ ๊ตฌํ ์ญํ ) | medium | deep-worker | standard |
verifier | ์๋ฃ ์ฆ๊ฑฐ ๊ฒ์ฆ, ํ ์คํธ ์ ์ ์ฑ | medium | frontier-orchestrator | standard |
Review Lane (6๊ฐ)
| ์์ด์ ํธ | ์ญํ | reasoning | posture | modelClass |
|---|---|---|---|---|
style-reviewer | ํฌ๋งทํ , ๋ค์ด๋ฐ, lint ์ปจ๋ฒค์ | low | fast-lane | fast |
quality-reviewer | ๋ก์ง ๊ฒฐํจ, ์ ์ง๋ณด์์ฑ | medium | frontier-orchestrator | standard |
api-reviewer | API ๊ณ์ฝ, ํ์ ํธํ์ฑ | medium | frontier-orchestrator | standard |
security-reviewer | ์ทจ์ฝ์ , ์ ๋ขฐ ๊ฒฝ๊ณ, ์ธ์ฆ | medium | frontier-orchestrator | standard |
performance-reviewer | ํซ์คํ, ๋ฉ๋ชจ๋ฆฌ/์ง์ฐ ์ต์ ํ | medium | frontier-orchestrator | standard |
code-reviewer | ์ ์ฒด ๊ด์ฌ์ฌ ํตํฉ ๋ฆฌ๋ทฐ | high | frontier-orchestrator | frontier |
Domain Specialists (11๊ฐ)
| ์์ด์ ํธ | ์ญํ | reasoning | posture | modelClass |
|---|---|---|---|---|
dependency-expert | ์ธ๋ถ SDK/API/ํจํค์ง ํ๊ฐ | medium | frontier-orchestrator | standard |
test-engineer | ํ ์คํธ ์ ๋ต, ์ปค๋ฒ๋ฆฌ์ง | medium | deep-worker | standard |
build-fixer | ๋น๋/ํ์ ์ค๋ฅ ์์ | medium | deep-worker | standard |
designer | UX/UI ์ํคํ ์ฒ, ์ธํฐ๋์ ์ค๊ณ | medium | deep-worker | standard |
writer | ๋ฌธ์, ๋ง์ด๊ทธ๋ ์ด์ ๋ ธํธ | low | fast-lane | fast |
qa-tester | CLI/์๋น์ค ๋ฐํ์ ๊ฒ์ฆ | low | deep-worker | standard |
git-master | ์ปค๋ฐ ์ ๋ต, ํ์คํ ๋ฆฌ ๊ด๋ฆฌ | medium | deep-worker | standard |
code-simplifier | ์ฝ๋ ๋จ์ํ, ์ผ๊ด์ฑ ๊ฐ์ | high | deep-worker | frontier |
researcher | ์ธ๋ถ ๋ฌธ์, ๋ ํผ๋ฐ์ค ๋ฆฌ์์น | low | fast-lane | standard |
quality-strategist | ํ์ง ์ ๋ต, ๋ฆด๋ฆฌ์ค ์ค๋น | medium | frontier-orchestrator | standard |
team-executor | ๊ฐ๋ ๋ Team ์คํ | medium | deep-worker | standard |
Product Lane (4๊ฐ)
| ์์ด์ ํธ | ์ญํ | reasoning | posture | modelClass |
|---|---|---|---|---|
product-manager | ๋ฌธ์ ํ๋ ์ด๋ฐ, ํ๋ฅด์๋, PRD | medium | frontier-orchestrator | standard |
ux-researcher | ํด๋ฆฌ์คํฑ ๊ฐ์ฌ, ์ฌ์ฉ์ฑ, ์ ๊ทผ์ฑ | medium | frontier-orchestrator | standard |
information-architect | ๋ถ๋ฅ ์ฒด๊ณ, ๋ด๋น๊ฒ์ด์ , ํ์์ฑ | low | frontier-orchestrator | standard |
product-analyst | ํ๋ก๋ํธ ๋ฉํธ๋ฆญ, ํผ๋ ๋ถ์ | low | frontier-orchestrator | standard |
Coordination (2๊ฐ)
| ์์ด์ ํธ | ์ญํ | reasoning | posture | modelClass |
|---|---|---|---|---|
critic | ๊ณํ/์ค๊ณ ๋นํ์ ๋ฆฌ๋ทฐ | high | frontier-orchestrator | frontier |
vision | ์ด๋ฏธ์ง/์คํฌ๋ฆฐ์ท/๋ค์ด์ด๊ทธ๋จ ๋ถ์ | low | fast-lane | standard |
definitions.ts ๋ฏธ๋ฑ์ฌ (3๊ฐ)
| ์์ด์ ํธ | ์ญํ | ๋น๊ณ |
|---|---|---|
team-orchestrator | Team Worker ์กฐ์จ | team ์คํฌ์ด ์ง์ ์ฒ๋ฆฌ |
sisyphus-lite | ๊ฒฝ๋ ์ถ๋ก /๋ผ์ฐํ | specialized prompt contract๋ก ๋ณ๋ ๊ฒ์ฆ |
explore-harness | ์ ํ๋ ํ์ ํ๋ค์ค | explore์ ์ ํ ๋ณํ |
Agent Metadata โ definitions.ts ์ฌ์ธต ๋ถ์
AgentDefinition ์ธํฐํ์ด์ค
export interface AgentDefinition {
name: string;
description: string;
reasoningEffort: 'low' | 'medium' | 'high';
posture: 'frontier-orchestrator' | 'deep-worker' | 'fast-lane';
modelClass: 'frontier' | 'standard' | 'fast';
routingRole: 'leader' | 'specialist' | 'executor';
tools: 'read-only' | 'analysis' | 'execution' | 'data';
category: 'build' | 'review' | 'domain' | 'product' | 'coordination';
}๊ฐ ํ๋์ ์ญํ :
| ํ๋ | ์ญํ | ๊ฐ ๋ฒ์ |
|---|---|---|
reasoningEffort | Codex CLI์ ์ถ๋ก ๋ ธ๋ ฅ ์์ค ์ง์ | low / medium / high |
posture | ํ๋ ์ฑํฅ ์ค๋ฒ๋ ์ด | frontier-orchestrator / deep-worker / fast-lane |
modelClass | ์ฌ์ฉํ ๋ชจ๋ธ ๋ฑ๊ธ | frontier / standard / fast |
routingRole | ์์ ์ฒด๊ณ์์์ ์ญํ | leader / specialist / executor |
tools | ํ์ฉ๋ ๋๊ตฌ ๋ฒ์ | read-only / analysis / execution / data |
category | ์์ด์ ํธ ๋ถ๋ฅ | build / review / domain / product / coordination |
๋ชจ๋ธ ๋ถํฌ ์์ฝ
graph LR subgraph Frontier["frontier (6๊ฐ)"] F1["architect"] F2["analyst"] F3["planner"] F4["code-reviewer"] F5["critic"] F6["code-simplifier"] end subgraph Standard["standard (20๊ฐ)"] S1["executor, debugger, verifier ..."] S2["quality/api/security/perf-reviewer"] S3["dependency-expert, test-engineer ..."] S4["product-manager, ux-researcher ..."] end subgraph Fast["fast (4๊ฐ)"] FA1["explore"] FA2["style-reviewer"] FA3["writer"] FA4["vision"] end style Frontier fill:#d4edda style Standard fill:#cce5ff style Fast fill:#fff3cd
Model Routing โ 3-Tier Complexity
๋ชจ๋ธ ํด์๋ ์ฐ์ ์์
Frontier ๋ชจ๋ธ (๊ธฐ๋ณธ: gpt-5.4):
- ํ๊ฒฝ๋ณ์:
OMX_DEFAULT_FRONTIER_MODEL - ์ค์ ํ์ผ:
.omx-config.jsonโenv.OMX_DEFAULT_FRONTIER_MODEL - ๋ชจ๋๋ณ ์ค์ :
.omx-config.jsonโmodels.<mode-name> - ๊ธฐ๋ณธ ์ค์ :
.omx-config.jsonโmodels.default - ํ๋์ฝ๋ฉ ํด๋ฐฑ:
gpt-5.4
Fast/Spark ๋ชจ๋ธ (๊ธฐ๋ณธ: gpt-5.3-codex-spark):
- ํ๊ฒฝ๋ณ์:
OMX_DEFAULT_SPARK_MODEL - ๋ ๊ฑฐ์:
OMX_SPARK_MODEL - ์ค์ ํ์ผ:
.omx-config.jsonโenv.OMX_DEFAULT_SPARK_MODEL - Low-complexity ํค:
models.team_low_complexity - ํ๋์ฝ๋ฉ ํด๋ฐฑ:
gpt-5.3-codex-spark
Low-Complexity ์์ด์ ํธ ์๋ ๊ฐ์ง
const LOW_COMPLEXITY_AGENT_TYPES = new Set([
'explore', 'explorer', 'style-reviewer', 'writer'
]);
// ์ด๋ฆ์ด '-low'๋ก ๋๋๋ ์์ด์ ํธ๋ ์๋์ผ๋ก low-complexity ์ทจ๊ธ
// ์: 'executor-low' โ spark ๋ชจ๋ธ ์ฌ์ฉreasoningEffort โ model_reasoning_effort ๋งคํ
definitions.ts์ reasoningEffort๋ ์์ฑ๋ .toml ํ์ผ์ model_reasoning_effort ํค์ ์ง์ ๋งคํ๋๋ค. ์ด ๊ฐ์ Codex CLI๊ฐ ๋ชจ๋ธ์๊ฒ ์ ๋ฌํ๋ ์ถ๋ก ๋
ธ๋ ฅ ํ๋ผ๋ฏธํฐ๋ก, LLM์ think ์๊ฐ์ ์ ์ดํ๋ค.
| reasoningEffort | ์ ์ฉ ์์ด์ ํธ ์์ | ํจ๊ณผ |
|---|---|---|
low | explore, writer, style-reviewer, vision | ๋น ๋ฅธ ์๋ต, ์ต์ ์ถ๋ก |
medium | executor, debugger, planner, designer | ๊ท ํ ์กํ ์ถ๋ก |
high | architect, code-reviewer, critic, code-simplifier | ๊น์ ์ถ๋ก , ๋๋ฆฐ ์๋ต |
Posture ์์คํ โ ํ๋ ์ค๋ฒ๋ ์ด
Posture๋ ์์ด์ ํธ์ ํ๋ ์ฑํฅ์ ๊ฒฐ์ ํ๋ ์ค๋ฒ๋ ์ด๋ค. native-config.ts๊ฐ ํ๋กฌํํธ ํฉ์ฑ ์ posture๋ณ ํ๋ ์ง์นจ์ <posture_overlay> ํ๊ทธ๋ก ์ฝ์
ํ๋ค.
3๊ฐ์ง Posture
frontier-orchestrator โ ์๋ ๋ถ๋ฅ + ์์ ์ฐ์
โPrioritize intent classification before implementation.โ
- ์ฒซ ๊ฒฐ์ ์ ๋ผ์ฐํ ๋ฌธ์ ๋ก ์ทจ๊ธ (๋ฆฌ์์น vs ๊ณํ vs ๊ตฌํ vs ๊ฒ์ฆ)
- ์ ๋ฌธ executor๊ฐ ์์ผ๋ฉด ์์ ์ ํธ
- ์๋ชป๋ ์ฌ์ฉ์ ๊ฐ์ ์ ์คํ ์ ๊ฐ๊ฒฐํ ๋ฐ๋ก
- ํด๋น ์์ด์ ํธ: analyst, planner, architect, code-reviewer, critic, verifier, ๋๋ถ๋ถ์ reviewer, product ๊ณ์ด
deep-worker โ ์ง์ ์คํ + ๊ฒ์ฆ ํ์
โBias toward direct execution and end-to-end completion.โ
- ๊ตฌํ ์งํฅ ํ์คํฌ๋ฉด ์ง์ ์คํ์ ํธํฅ
- ํ์ โ ์ต์ ๋ณ๊ฒฝ โ ๊ธฐ์กด ํจํด ๋ฐ๋ฅด๊ธฐ
- diagnosticsยทtestsยทbuild ์ฆ๊ฑฐ ํ์ (์๋ฃ ์ ์ธ ์ )
- ์์ค์ปฌ๋ ์ด์ ์ ๋ค๋ฅธ ์ ๊ทผ์ด ์คํจํ ํ์๋ง
- ํด๋น ์์ด์ ํธ: executor, team-executor, debugger, test-engineer, build-fixer, designer, qa-tester, git-master, code-simplifier
fast-lane โ ๋น ๋ฅธ ๋ถ๋ฅ + ์์ค์ปฌ๋ ์ด์
โOptimize for fast triage, search, lightweight synthesis.โ
- ๋น ๋ฅธ ๊ฒ์ยท๋ถ๋ฅยท๊ฒฝ๋ ํฉ์ฑ์ ์ต์ ํ
- ๊น์ ๊ตฌํ์ด ํ์ํ๋ฉด ์์ค์ปฌ๋ ์ด์ (frontier-orchestrator ๋๋ deep-worker๋ก)
- ๋ชจํธํ ๋ ๋ณด์์ ์๋ต
- ํด๋น ์์ด์ ํธ: explore, style-reviewer, writer, vision, researcher
Posture โ Model Class ๋งคํ ๋ค์ด์ด๊ทธ๋จ
graph TD subgraph Posture["Posture (ํ๋ ์ฑํฅ)"] FO["frontier-orchestrator<br/>์๋ ๋ถ๋ฅ + ์์"] DW["deep-worker<br/>์ง์ ์คํ + ๊ฒ์ฆ"] FL["fast-lane<br/>๋น ๋ฅธ ๋ถ๋ฅ + ์์ค์ปฌ๋ ์ด์ "] end subgraph ModelClass["Model Class (๋ชจ๋ธ ๋ฑ๊ธ)"] FR["frontier<br/>gpt-5.4"] ST["standard<br/>๊ธฐ๋ณธ ๋ชจ๋ธ"] FA["fast<br/>gpt-5.3-codex-spark"] end FO --> FR FO --> ST DW --> ST DW --> FR FL --> FA FL --> ST style FO fill:#d4edda style DW fill:#cce5ff style FL fill:#fff3cd
Posture์ ModelClass๋ ๋ ๋ฆฝ์ ์ธ ์ถ์ด๋ค. frontier-orchestrator posture๋ผ๊ณ ๋ฐ๋์ frontier ๋ชจ๋ธ์ ์ฐ๋ ๊ฒ์ด ์๋๋ฉฐ (์: verifier๋ frontier-orchestrator์ด์ง๋ง standard ๋ชจ๋ธ), deep-worker๋ผ๊ณ ๋ฐ๋์ standard ๋ชจ๋ธ์ ์ฐ๋ ๊ฒ๋ ์๋๋ค (์: code-simplifier๋ deep-worker์ด์ง๋ง frontier ๋ชจ๋ธ).
Delegation Protocol โ ์์ ํ๋จ๊ณผ Child Agent ๊ท์น
๊ธฐ๋ณธ ์์ธ: ์ง์ ์์
โDefault posture: work directly. Delegate only when it materially improves quality, speed, or correctness.โ
AGENTS.md <delegation_rules>์ ๋ช
์๋ ์์น์ด๋ค. ์์ด์ ํธ๋ ํญ์ ์ง์ ์์
์ ๋จผ์ ์๋ํ๊ณ , ์ค์ง์ ์ด์ ์ด ์์ ๋๋ง ์์ํ๋ค.
์์ ์กฐ๊ฑด 4๊ฐ์ง
| ์กฐ๊ฑด | ์์ |
|---|---|
| multi-file | ์ฌ๋ฌ ํ์ผ์ ๊ฑธ์น ๋ณ๊ฒฝ์ด ํ์ํ ๋ |
| specialist-heavy | ์ ๋ฌธ SDK/API/ํ๋ ์์ํฌ ์ฌ์ฉ โ dependency-expert |
| highly parallel | ๋ ๋ฆฝ์ ํ์คํฌ๋ฅผ ๋์ ์คํ ๊ฐ๋ฅํ ๋ |
| ์์ ์ฑ | ์ ๋ฌธ ์ญํ ์ด ์์ ํ๋ ๊ฒ์ด ๋ ์์ ํ ๋ |
Child Agent Protocol
sequenceDiagram autonumber participant L as Leader Agent participant PM as prompts/{role}.md participant C1 as Child Agent 1 participant C2 as Child Agent 2 L->>PM: โ ์ญํ ํ๋กฌํํธ ์ฝ๊ธฐ L->>C1: โก ํ๋กฌํํธ + ๊ตฌ์ฒด์ ํ์คํฌ๋ก spawn L->>C2: โก ํ๋กฌํํธ + ๊ตฌ์ฒด์ ํ์คํฌ๋ก spawn Note over L: ์ต๋ 6๊ฐ ๋์ child agent C1-->>L: โข ๊ฒฐ๊ณผ ๋ฐํ (์ฌ๊ท ์ค์ผ์คํธ๋ ์ด์ ๊ธ์ง) C2-->>L: โข ๊ฒฐ๊ณผ ๋ฐํ Note over C1,C2: child๋ ํ ๋น๋ ์ญํ ๋ด์์๋ง ์๋ฃ
ํต์ฌ ๊ท์น:
- ์ต๋ 6๊ฐ ๋์ child agent (AGENTS.md
<child_agent_protocol>) - child ํ๋กฌํํธ๋ AGENTS.md ๊ถํ ํ์ ๋์
worker๋ team ๋ชจ๋ ์ ์ฉ โ ์ผ๋ฐ ์์์ ์ฌ์ฉ ๊ธ์ง- child agent๋ ํ ๋น๋ ์ญํ ๋ด์์ ์๋ฃํด์ผ ํจ (์ฌ๊ท ์ค์ผ์คํธ๋ ์ด์ ๊ธ์ง)
Child Agent vs Team Worker โ ์ฐจ์ด
| ํญ๋ชฉ | Child Agent (์์) | Team Worker (team ๋ชจ๋) |
|---|---|---|
| ์ต๋ ๋์ ์ | 6๊ฐ | 20๊ฐ |
| ๊ฒฉ๋ฆฌ | ๊ฐ์ ์ธ์ ๋ด | tmux ๊ฐ๋ณ pane |
| ์ญํ ์ง์ | /prompts:name | role-router.ts ์๋ ๋ฐฐ์ |
| ์ค์ผ์คํธ๋ ์ด์ | leader agent๊ฐ ์ง์ ๊ด๋ฆฌ | team ์คํฌ์ด ํ์ดํ๋ผ์ธ ๊ด๋ฆฌ |
| ์ํ ๊ด๋ฆฌ | ์์ | .omx/state/team/ |
Prompt Guidance Contract โ ํ๋กฌํํธ ๊ตฌ์กฐ ๊ฒ์ฆ
4๊ฐ ํต์ฌ ํ๋ ํจํด
OMX์ ๋ชจ๋ ํ๋กฌํํธ ํ๋ฉด(AGENTS.md, prompts/.md, skills//SKILL.md)์ ๊ฐ์ ์ ์ฉ๋๋ 4๊ฐ์ง ํ๋ ๊ณ์ฝ์ด๋ค. src/hooks/prompt-guidance-contract.ts๊ฐ regex ํจํด ๋งค์นญ์ผ๋ก ๊ฒ์ฆํ๋ค.
| # | ํจํด | ๋ํ ๋ฌธ๊ตฌ |
|---|---|---|
| 1 | Compact output | โDefault to compact, information-dense responsesโ |
| 2 | Automatic follow-through | โProceed automatically on clear, low-risk, reversible next stepsโ |
| 3 | Scoped overrides | โTreat newer user task updates as local overridesโ |
| 4 | Evidence-backed completion | โPersist with tool use when correctness depends on retrievalโ |
๊ณ์ฝ ์นดํ ๊ณ ๋ฆฌ์ ๊ฒ์ฆ ๊ณ์ธต
graph TD PGC["prompt-guidance-contract.ts<br/>regex ํจํด ๋งค์นญ"] PGC --> ROOT["ROOT_TEMPLATE<br/>AGENTS.md"] PGC --> CORE["CORE_ROLE<br/>executor, planner, verifier"] PGC --> W2["WAVE_TWO<br/>architect, critic, debugger ..."] PGC --> CAT["CATALOG<br/>analyst, api-reviewer, designer ..."] PGC --> SPEC["SPECIALIZED<br/>sisyphus-lite"] PGC --> SKILL["SKILL<br/>skills/*.md"] style PGC fill:#e8f0fe
๊ฐ ์นดํ
๊ณ ๋ฆฌ๋ณ๋ก required regex patterns๊ฐ ์ ์๋์ด ์์ผ๋ฉฐ, ํ
์คํธ(prompt-guidance-contract.test.ts)๊ฐ ๋ชจ๋ ํ๋กฌํํธ ํ์ผ์ ๋ํด ํจํด ์กด์ฌ๋ฅผ ์๋ ๊ฒ์ฆํ๋ค. ํจํด์ด ๋๋ฝ๋ ํ๋กฌํํธ๋ CI์์ ์คํจํ๋ค.
Guidance Schema โ 6๊ฐ ํ์ค ์น์
docs/guidance-schema.md์ ์ ์๋ ๋ชจ๋ ํ๋กฌํํธ ํ๋ฉด์ ํ์ค ๊ตฌ์กฐ:
| ์น์ | ์ญํ |
|---|---|
| Role & Intent | ์์ด์ ํธ์ ์ ์ฒด์ฑ๊ณผ ์ฑ๊ณต ๊ธฐ์ค |
| Operating Principles | ๊ณ ์์ค ํ๋จ ๊ท์น (ํ์ง, ์๋, ์์ , ๊ฒ์ฆ) |
| Execution Protocol | ํ์คํฌ ์คํ ์ํฌํ๋ก์ฐ |
| Constraints & Safety | ๊ธ์ง ํ๋, ํธํ์ฑ ์ ์ฝ |
| Verification & Completion | ์๋ฃ ์ ์ธ ์ ํ์ํ ์ฆ๊ฑฐ |
| Recovery & Lifecycle | ์ทจ์/์ ๋ฆฌ/์ฌ๊ฐ ํ๋ |
OMC Agent์์ ๋น๊ต
| ํญ๋ชฉ | OMC (19๊ฐ) | OMX (33๊ฐ) |
|---|---|---|
| ์ ์ ํ์ผ | agents/*.md + definitions.ts | prompts/*.md + definitions.ts |
| ํธ์ถ ๋ฐฉ์ | Task(subagent_type="omc:name") | /prompts:name |
| ๋ชจ๋ธ ์ง์ | YAML frontmatter์ model ํ๋ | definitions.ts์ modelClass |
| ๋ฉํ๋ฐ์ดํฐ ์์น | ํ๋กฌํํธ ํ์ผ์ ๋ด์ฅ | ๋ถ๋ฆฌ (ํ๋กฌํํธ / ๋ฉํ๋ฐ์ดํฐ / overlay) |
| ๋ฆฌ๋ทฐ์ด | code-reviewer 1๊ฐ | 6๊ฐ ์ธ๋ถํ (code/security/quality/style/perf/api) |
| ๋๋ฉ์ธ ์ ๋ฌธ๊ฐ | designer 1๊ฐ | 7๊ฐ (designer, PM, analyst, UX, IA, vision, QS) |
| ๋๊ตฌ ์ ํ | disallowedTools | tools ์นดํ
๊ณ ๋ฆฌ (read-only/analysis/execution/data) |
| ์ต๋ ๋์ agent | ์ ํ ์์ | ์ต๋ 6๊ฐ (child), 20๊ฐ (team) |
| ํ๋ ์ค๋ฒ๋ ์ด | ์์ | Posture ์์คํ (frontier-orchestrator/deep-worker/fast-lane) |
| ๊ตฌ์กฐ ๊ฒ์ฆ | ์์ | Prompt Guidance Contract (regex ๊ธฐ๋ฐ CI ๊ฒ์ฆ) |