• Superpowers๋Š” AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ composable skills ๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ ํ”Œ๋Ÿฌ๊ทธ์ธ
  • ์—์ด์ „ํŠธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ , ์ฒด๊ณ„์ ์ธ ํ”„๋กœ์„ธ์Šค(๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ โ†’ ์„ค๊ณ„ โ†’ ํ”Œ๋žœ โ†’ ๊ตฌํ˜„ โ†’ ๋ฆฌ๋ทฐ)๋ฅผ ์ž๋™์œผ๋กœ ๋”ฐ๋ฅด๊ฒŒ ๊ฐ•์ œํ•˜๋Š” ํ–‰๋™ ์ œ์–ด ์‹œ์Šคํ…œ
  • Jesse Vincent๊ณผ Prime Radiant ํŒ€์ด ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ์„œ๋“œํŒŒํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ (MIT ๋ผ์ด์„ผ์Šค)
  • Claude Code, Cursor, Codex, OpenCode, GitHub Copilot CLI, Gemini CLI ๋“ฑ ๋ฉ€ํ‹ฐ ํ•˜๋„ค์Šค(multi-harness) ์ง€์›
  • oh-my-claudecode๊ณผ ๊ฐ™์€ ๋ฒ”์ฃผ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด์ง€๋งŒ, Claude Code ์ „์šฉ์ด ์•„๋‹Œ ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ๋ฐฐํฌ๊ฐ€ ํŠน์ง•

ํ•ด๋‹น ๊ฐœ๋…์ด ํ•„์š”ํ•œ ์ด์œ 

  • AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๋Š” ์ง€์‹œ๋ฅผ ๋ฐ›์œผ๋ฉด ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์–ด, ์„ค๊ณ„ ์—†์ด ๊ตฌํ˜„์— ๋Œ์ž…ํ•˜๋ฉด ํ’ˆ์งˆ์ด ๋–จ์–ด์ง
  • ํ…Œ์ŠคํŠธ ์—†์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ฆ ์—†์ด โ€œ์™„๋ฃŒโ€๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ๋“ฑ ์—์ด์ „ํŠธ์˜ ๋‚˜์œ ์Šต๊ด€์„ ๊ต์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ
  • ๋ณต์žกํ•œ ์ž‘์—…์„ 2-5๋ถ„์งœ๋ฆฌ bite-sized task๋กœ ๋ถ„ํ•ดํ•˜๊ณ , ๊ฐ task๋งˆ๋‹ค ์„œ๋ธŒ์—์ด์ „ํŠธ๋ฅผ dispatchํ•˜๋Š” ์ฒด๊ณ„์  ์ ‘๊ทผ์ด ํ•„์š”
  • ์—์ด์ „ํŠธ๊ฐ€ ์Šค์Šค๋กœ ํ•ฉ๋ฆฌํ™”(rationalization)ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฒƒ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ฐจ๋‹จํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”

AS-IS

sequenceDiagram
    autonumber
    actor User
    participant Agent as AI Agent
    participant Code as Codebase

    User->>Agent: "์ด ๊ธฐ๋Šฅ ๋งŒ๋“ค์–ด์ค˜"
    Agent->>Code: ๋ฐ”๋กœ ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ์ž‘
    Agent->>Code: ํ…Œ์ŠคํŠธ ์—†์ด ๊ตฌํ˜„
    Agent->>User: "์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค!" (๊ฒ€์ฆ ์—†์Œ)
    User->>Code: ์ง์ ‘ ํ™•์ธ โ†’ ๋ฒ„๊ทธ ๋ฐœ๊ฒฌ
    User->>Agent: "์ด๊ฑฐ ์•ˆ ๋˜๋Š”๋ฐ?"
    Agent->>Code: ์ถ”์ธก ๊ธฐ๋ฐ˜ ์ˆ˜์ • (guess-and-check)
    Note over Agent,Code: ๋ฐ˜๋ณต... ์‹œ๊ฐ„ ๋‚ญ๋น„

TO-BE

sequenceDiagram
    autonumber
    actor User
    participant Agent as Superpowers Agent
    participant Sub as Subagent
    participant Code as Codebase

    User->>Agent: "์ด ๊ธฐ๋Šฅ ๋งŒ๋“ค์–ด์ค˜"
    Agent->>User: ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์งˆ๋ฌธ (ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ)
    User->>Agent: ๋‹ต๋ณ€ + ํ”ผ๋“œ๋ฐฑ
    Agent->>Agent: ์„ค๊ณ„ ๋ฌธ์„œ ์ž‘์„ฑ + ์œ ์ € ์Šน์ธ
    Agent->>Agent: ๊ตฌํ˜„ ํ”Œ๋žœ ์ž‘์„ฑ (bite-sized tasks)
    Agent->>Sub: Task 1 dispatch (TDD ๊ฐ•์ œ)
    Sub->>Code: RED โ†’ GREEN โ†’ REFACTOR
    Sub->>Agent: ์™„๋ฃŒ ๋ณด๊ณ 
    Agent->>Sub: Spec ์ค€์ˆ˜ ๋ฆฌ๋ทฐ dispatch
    Agent->>Sub: ์ฝ”๋“œ ํ’ˆ์งˆ ๋ฆฌ๋ทฐ dispatch
    Agent->>Sub: Task 2 dispatch...
    Note over Agent,Code: ๋ชจ๋“  task ์™„๋ฃŒ ํ›„ ์ตœ์ข… ๊ฒ€์ฆ
    Agent->>User: ๋จธ์ง€/PR ์˜ต์…˜ ์ œ์‹œ

Plugin / Skill / Agent / Harness ๊ณ„์ธต ๊ตฌ์กฐ

Superpowers ์ƒํƒœ๊ณ„์—์„œ ์ด ๋„ค ์šฉ์–ด๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ„์ธต์ด๋‹ค.

๊ณ„์ธต์˜๋ฏธ์˜ˆ์‹œ
Harness์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”Œ๋žซํผ/ํ™˜๊ฒฝClaude Code, Cursor, Codex, Gemini CLI, GitHub Copilot CLI
AgentHarness ์œ„์—์„œ ์‹คํ–‰๋˜๋Š” AI ์—์ด์ „ํŠธ ์ธ์Šคํ„ด์ŠคClaude (main agent), code-reviewer subagent
Skill์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์ œ์–ดํ•˜๋Š” ๊ฐœ๋ณ„ ์ง€์นจ ๋ฌธ์„œbrainstorming, TDD, systematic-debugging (14๊ฐœ)
Plugin์—ฌ๋Ÿฌ skill + agent + hook + command๋ฅผ ๋ฌถ์–ด์„œ ๋ฐฐํฌํ•˜๋Š” ํŒจํ‚ค์ง€Superpowers ์ž์ฒด๊ฐ€ ์ด๊ฒƒ

Superpowers๋Š” Plugin์ด๋‹ค. 14๊ฐœ skill, 1๊ฐœ agent config, hook, command๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์€ ํŒจํ‚ค์ง€.

superpowers/                  โ† Plugin (๋ฐฐํฌ ๋‹จ์œ„)
โ”œโ”€โ”€ .claude-plugin/           โ† Claude Code์šฉ ์„ค์ •
โ”œโ”€โ”€ .cursor-plugin/           โ† Cursor์šฉ ์„ค์ •
โ”œโ”€โ”€ .codex/                   โ† Codex์šฉ (INSTALL.md)
โ”œโ”€โ”€ .opencode/                โ† OpenCode์šฉ
โ”œโ”€โ”€ GEMINI.md                 โ† Gemini CLI์šฉ
โ”œโ”€โ”€ gemini-extension.json     โ† Gemini CLI ํ™•์žฅ
โ”œโ”€โ”€ skills/                   โ† 14๊ฐœ Skill (ํ–‰๋™ ์ œ์–ด ๋ฌธ์„œ)
โ”‚   โ”œโ”€โ”€ brainstorming/
โ”‚   โ”œโ”€โ”€ test-driven-development/
โ”‚   โ”œโ”€โ”€ subagent-driven-development/
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ agents/                   โ† 1๊ฐœ Agent config
โ”‚   โ””โ”€โ”€ code-reviewer.md
โ”œโ”€โ”€ commands/                 โ† ์œ ์ €๊ฐ€ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด
โ”‚   โ”œโ”€โ”€ brainstorm.md
โ”‚   โ”œโ”€โ”€ write-plan.md
โ”‚   โ””โ”€โ”€ execute-plan.md
โ””โ”€โ”€ hooks/                    โ† ์ž๋™ ์‹คํ–‰๋˜๋Š” ํŠธ๋ฆฌ๊ฑฐ
    โ”œโ”€โ”€ hooks.json            โ† Claude Code/Codex hook
    โ””โ”€โ”€ hooks-cursor.json     โ† Cursor hook

oh-my-claudecode์€ Claude Code ์ „์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ธ ๋ฐ˜๋ฉด, Superpowers๋Š” ํ•˜๋„ค์Šค๋งˆ๋‹ค ์Šคํ‚ฌ ๋กœ๋”ฉ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— (Claude Code๋Š” Skill tool, Gemini CLI๋Š” activate_skill tool, Codex๋Š” URL fetch ๋ฐฉ์‹) ๊ฐ ํ”Œ๋žซํผ์— ๋งž๋Š” ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

ํ•ต์‹ฌ ์›Œํฌํ”Œ๋กœ์šฐ 7๋‹จ๊ณ„

Superpowers์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” 7๊ฐœ์˜ ์Šคํ‚ฌ์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ž๋™ ํ™œ์„ฑํ™”๋˜๋ฉฐ ์ง„ํ–‰๋œ๋‹ค.

1๋‹จ๊ณ„: Brainstorming (๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ)

์ฝ”๋“œ ์ž‘์„ฑ ์ „์— ๋ฐ˜๋“œ์‹œ ๋ฐœ๋™๋˜๋Š” ์„ค๊ณ„ ํƒ์ƒ‰ ๋‹จ๊ณ„. ์—์ด์ „ํŠธ๊ฐ€ ๋ฐ”๋กœ ๊ตฌํ˜„์— ๋›ฐ์–ด๋“œ๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๋Š” HARD-GATE๊ฐ€ ๊ฑธ๋ ค ์žˆ๋‹ค.

ํ•ต์‹ฌ ๊ทœ์น™:

  • ํ•œ ๋ฒˆ์— ์งˆ๋ฌธ ํ•˜๋‚˜์”ฉ (multiple choice ์„ ํ˜ธ)
  • 2-3๊ฐœ ์ ‘๊ทผ๋ฒ•์„ trade-off์™€ ํ•จ๊ป˜ ์ œ์•ˆ
  • ์„ค๊ณ„๋ฅผ ์„น์…˜๋ณ„๋กœ ๋‚˜๋ˆ ์„œ ์ ์ง„์ ์œผ๋กœ ์Šน์ธ
  • โ€œ์ด๊ฑด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•ด์„œ ์„ค๊ณ„๊ฐ€ ํ•„์š” ์—†์–ดโ€๋ผ๋Š” ํŒ๋‹จ ๊ธˆ์ง€ โ€” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ์ ์šฉ
  • Visual Companion(๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ๋ชฉ์—…/๋‹ค์ด์–ด๊ทธ๋žจ) ์„ ํƒ์  ์ œ๊ณต
  • ์„ค๊ณ„ ์™„๋ฃŒ ํ›„ โ†’ docs/superpowers/specs/ ์— ์ €์žฅ โ†’ Spec Self-Review โ†’ ์œ ์ € ๋ฆฌ๋ทฐ โ†’ writing-plans ์Šคํ‚ฌ๋กœ ์ „ํ™˜

2๋‹จ๊ณ„: Using Git Worktrees (๊ฒฉ๋ฆฌ ์›Œํฌ์ŠคํŽ˜์ด์Šค)

์„ค๊ณ„ ์Šน์ธ ํ›„, ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋ฅผ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด Git Worktree๋กœ ๊ฒฉ๋ฆฌ๋œ ์ž‘์—… ๊ณต๊ฐ„์„ ์ƒ์„ฑํ•œ๋‹ค.

ํ”„๋กœ์„ธ์Šค:

  1. ๊ธฐ์กด .worktrees/ ๋˜๋Š” worktrees/ ๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ
  2. .gitignore์— ํฌํ•จ ์—ฌ๋ถ€ ๊ฒ€์ฆ (ํฌํ•จ ์•ˆ ๋˜์–ด ์žˆ์œผ๋ฉด ์ฆ‰์‹œ ์ถ”๊ฐ€)
  3. git worktree add ๋กœ ์ƒˆ ๋ธŒ๋žœ์น˜์™€ ํ•จ๊ป˜ ์›ŒํฌํŠธ๋ฆฌ ์ƒ์„ฑ
  4. ํ”„๋กœ์ ํŠธ ์…‹์—… ์ž๋™ ๊ฐ์ง€ (npm install, cargo build ๋“ฑ)
  5. ํ…Œ์ŠคํŠธ ์‹คํ–‰ํ•˜์—ฌ clean baseline ํ™•์ธ

3๋‹จ๊ณ„: Writing Plans (๊ตฌํ˜„ ํ”Œ๋žœ ์ž‘์„ฑ)

โ€œ์—ด์ •์ ์ด์ง€๋งŒ ๋งฅ๋ฝ์ด ์—†๊ณ , ํŒ๋‹จ๋ ฅ์ด ๋ถ€์กฑํ•˜๋ฉฐ, ํ…Œ์ŠคํŠธ๋ฅผ ์‹ซ์–ดํ•˜๋Š” ์ฃผ๋‹ˆ์–ด ์—”์ง€๋‹ˆ์–ดโ€ ๋„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ƒ์„ธํ•œ ํ”Œ๋žœ์„ ์ž‘์„ฑํ•œ๋‹ค.

Task ๋‹จ์œ„๋Š” 2-5๋ถ„์งœ๋ฆฌ ํ•œ ๋™์ž‘:

  • โ€œ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ž‘์„ฑโ€ โ€” ํ•œ step
  • โ€œํ…Œ์ŠคํŠธ ์‹คํ–‰ํ•ด์„œ ์‹คํŒจ ํ™•์ธโ€ โ€” ํ•œ step
  • โ€œํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์†Œ ์ฝ”๋“œ ๊ตฌํ˜„โ€ โ€” ํ•œ step
  • โ€œํ…Œ์ŠคํŠธ ์‹คํ–‰ํ•ด์„œ ํ†ต๊ณผ ํ™•์ธโ€ โ€” ํ•œ step
  • โ€œ์ปค๋ฐ‹โ€ โ€” ํ•œ step

์ฒ ์ €ํ•œ No Placeholder ์ •์ฑ…: โ€œTBDโ€, โ€œTODOโ€, โ€œimplement laterโ€, โ€œAdd appropriate error handlingโ€ ๊ฐ™์€ ํ‘œํ˜„ ๊ธˆ์ง€. ๋ชจ๋“  step์— ์‹ค์ œ ์ฝ”๋“œ์™€ ์ •ํ™•ํ•œ ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•œ๋‹ค.

YAGNI: ํ”Œ๋žœ ์ž‘์„ฑ์˜ ํ•ต์‹ฌ ์›์น™

YAGNI(You Arenโ€™t Gonna Need It)๋Š” Extreme Programming์—์„œ ์œ ๋ž˜ํ•œ ์›์น™์œผ๋กœ, **โ€œ์ง€๊ธˆ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ์€ ๋งŒ๋“ค์ง€ ๋งˆ๋ผโ€**๋Š” ๋œป์ด๋‹ค. Kent Beck์ด C3 ํ”„๋กœ์ ํŠธ์—์„œ ๋™๋ฃŒ Chet Hendrickson์ด โ€œ๋‚˜์ค‘์— ํ•„์š”ํ•  ๊ธฐ๋Šฅโ€์„ ์ œ์•ˆํ•  ๋•Œ๋งˆ๋‹ค โ€œYou arenโ€™t gonna need itโ€์ด๋ผ๊ณ  ๋ฐ˜๋ณตํ•œ ๋ฐ์„œ ์‹œ์ž‘๋˜์—ˆ๋‹ค.

๋ฏธ๋ฆฌ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์™œ ๋‚˜์œ๊ฐ€ โ€” Martin Fowler๋Š” โ€œ๋ฏธ๋ฆฌ ๋งŒ๋“  ๊ธฐ๋Šฅ(presumptive feature)โ€œ์˜ ๋น„์šฉ์„ 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค:

๋น„์šฉ ์œ ํ˜•์„ค๋ช…
Build ๋น„์šฉ๊ฒฐ๊ตญ ์•ˆ ์“ธ ๊ธฐ๋Šฅ์„ ๋ถ„์„, ๊ตฌํ˜„, ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์“ด ์‹œ๊ฐ„
Delay ๋น„์šฉ๊ทธ ์‹œ๊ฐ„์— ์ง„์งœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๋จผ์ € ๋ฐฐํฌํ–ˆ์œผ๋ฉด ์–ป์—ˆ์„ ๊ฐ€์น˜ (๊ธฐํšŒ๋น„์šฉ)
Carry ๋น„์šฉ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๊ฐ€ ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ณต์žก๋„๋ฅผ ๋†’์—ฌ, ์ดํ›„ ๋ชจ๋“  ๊ฐœ๋ฐœ๊ณผ ๋””๋ฒ„๊น…์„ ๋А๋ฆฌ๊ฒŒ ๋งŒ๋“œ๋Š” ๋น„์šฉ

Microsoft ์—ฐ๊ตฌ(Kohavi et al.)์— ๋”ฐ๋ฅด๋ฉด, ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณ„ํšํ•œ ๊ธฐ๋Šฅ์กฐ์ฐจ 1/3๋งŒ์ด ์˜๋„ํ•œ ์„ฑ๊ณผ๋ฅผ ๋‹ฌ์„ฑํ–ˆ๋‹ค. ๋‚˜๋จธ์ง€ 2/3๋Š” ์˜ˆ์ธก์ด ํ‹€๋ ธ๋‹ค๋Š” ๋œป์ด๋‹ค.

Superpowers์—์„œ YAGNI๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹:

Reviewer: "๋‚˜์ค‘์„ ์œ„ํ•ด CSV export ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒŒ ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค"

์—์ด์ „ํŠธ (YAGNI ์ ์šฉ):
  โ†’ codebase grep โ†’ ์ด endpoint๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ ์—†์Œ
  โ†’ "์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ œ๊ฑฐํ• ๊นŒ์š”? (YAGNI)"
  • Writing Plans์—์„œ: ํ”Œ๋žœ์— โ€œํ˜น์‹œ ํ•„์š”ํ• โ€ step์„ ๋„ฃ์ง€ ์•Š์Œ. ํ˜„์žฌ ์š”๊ตฌ์‚ฌํ•ญ๋งŒ task๋กœ ๋ถ„ํ•ด
  • Code Review์—์„œ: ๋ฆฌ๋ทฐ์–ด๊ฐ€ โ€œproperํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๋ผโ€๊ณ  ์ œ์•ˆํ•˜๋ฉด, ๋จผ์ € grep์œผ๋กœ ์‹ค์ œ ์‚ฌ์šฉ ์—ฌ๋ถ€ ํ™•์ธ
  • TDD์—์„œ: ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑ. over-engineering ๊ธˆ์ง€

YAGNI๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ: ๋ฏธ๋ž˜๋ฅผ ์œ„ํ•œ ๊ตฌํ˜„์ด ์ง€๊ธˆ ๋ณต์žก๋„๋ฅผ ์ „ํ˜€ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๊ตณ์ด ํ”ผํ•  ์ด์œ ๋Š” ์—†๋‹ค. ๋˜ํ•œ YAGNI๋Š” ์ฝ”๋“œ๋ฅผ ๋‚˜์ค‘์— ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” malleable code(๋ฆฌํŒฉํ† ๋ง, ์ž๋™ ํ…Œ์ŠคํŠธ, CI/CD)๊ฐ€ ์ „์ œ๋˜์–ด์•ผ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค.

4๋‹จ๊ณ„: Subagent-Driven Development (์„œ๋ธŒ์—์ด์ „ํŠธ ๊ตฌ๋™ ๊ฐœ๋ฐœ)

๊ฐ task๋งˆ๋‹ค fresh subagent๋ฅผ dispatchํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๊ณ , 2๋‹จ๊ณ„ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์นœ๋‹ค.

flowchart TD
    A[Task ํ…์ŠคํŠธ + ์ปจํ…์ŠคํŠธ ์ค€๋น„] --> B[Implementer Subagent Dispatch]
    B --> C{์งˆ๋ฌธ ์žˆ์Œ?}
    C -->|Yes| D[์ปจํ…์ŠคํŠธ ์ œ๊ณต] --> B
    C -->|No| E[๊ตฌํ˜„ + ํ…Œ์ŠคํŠธ + ์ปค๋ฐ‹ + ์…€ํ”„๋ฆฌ๋ทฐ]
    E --> F[Spec Reviewer Subagent Dispatch]
    F --> G{Spec ์ค€์ˆ˜?}
    G -->|No| H[Implementer๊ฐ€ ์ˆ˜์ •] --> F
    G -->|Yes| I[Code Quality Reviewer Subagent Dispatch]
    I --> J{ํ’ˆ์งˆ ํ†ต๊ณผ?}
    J -->|No| K[Implementer๊ฐ€ ์ˆ˜์ •] --> I
    J -->|Yes| L[Task ์™„๋ฃŒ โ†’ ๋‹ค์Œ Task]

Implementer ์ƒํƒœ ์ฒ˜๋ฆฌ:

  • DONE โ†’ ๋ฆฌ๋ทฐ ์ง„ํ–‰
  • DONE_WITH_CONCERNS โ†’ ์šฐ๋ ค์‚ฌํ•ญ ํ™•์ธ ํ›„ ์ง„ํ–‰
  • NEEDS_CONTEXT โ†’ ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ ์ œ๊ณต ํ›„ ์žฌdispatch
  • BLOCKED โ†’ ๋ชจ๋ธ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๋Š” task ๋ถ„ํ• , ํ•„์š”์‹œ human์—๊ฒŒ escalate

๋ชจ๋ธ ์„ ํƒ ์ „๋žต: task ๋ณต์žก๋„์— ๋”ฐ๋ผ cheap/standard/capable ๋ชจ๋ธ์„ ๊ตฌ๋ถ„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์šฉ ์ ˆ๊ฐ.

5๋‹จ๊ณ„: Test-Driven Development (TDD)

๋ชจ๋“  ๊ตฌํ˜„์— RED-GREEN-REFACTOR ์‚ฌ์ดํด์„ ๊ฐ•์ œํ•œ๋‹ค.

Iron Law: ํ…Œ์ŠคํŠธ ์—†์ด ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ์ž‘์„ฑ ๊ธˆ์ง€

  • RED: ์‹คํŒจํ•˜๋Š” ํ…Œ์ŠคํŠธ ํ•˜๋‚˜ ์ž‘์„ฑ โ†’ ์‹คํŒจ ํ™•์ธ (ํ•„์ˆ˜)
  • GREEN: ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ ์ž‘์„ฑ โ†’ ํ†ต๊ณผ ํ™•์ธ (ํ•„์ˆ˜)
  • REFACTOR: ์ค‘๋ณต ์ œ๊ฑฐ, ์ด๋ฆ„ ๊ฐœ์„ , ํ—ฌํผ ์ถ”์ถœ (ํ…Œ์ŠคํŠธ green ์œ ์ง€)

ํ…Œ์ŠคํŠธ ์ „์— ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด? ์‚ญ์ œ. โ€œ์ฐธ๊ณ ์šฉโ€์œผ๋กœ ๋ณด๊ด€ ๊ธˆ์ง€. โ€œ์ ์‘โ€ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๊ธˆ์ง€. ์‚ญ์ œ = ์‚ญ์ œ.

ํ•ฉ๋ฆฌํ™” ๋ฐฉ์ง€ ํ…Œ์ด๋ธ”์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด, ์—์ด์ „ํŠธ๊ฐ€ โ€œ์ด๊ฑด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•ด์„œ ํ…Œ์ŠคํŠธ ํ•„์š” ์—†์–ดโ€, โ€œ๋‚˜์ค‘์— ํ…Œ์ŠคํŠธํ• ๊ฒŒโ€, โ€œTDD๋Š” ๊ต์กฐ์ ์ด์•ผโ€ ๊ฐ™์€ ๋ณ€๋ช…์„ ํ•˜๋ฉด ์ฆ‰์‹œ ์ฐจ๋‹จํ•œ๋‹ค.

6๋‹จ๊ณ„: Requesting/Receiving Code Review (์ฝ”๋“œ ๋ฆฌ๋ทฐ)

task ์‚ฌ์ด๋งˆ๋‹ค code-reviewer subagent๋ฅผ dispatchํ•˜์—ฌ ๋ฆฌ๋ทฐํ•œ๋‹ค.

๋ฆฌ๋ทฐ ์š”์ฒญ ์‹œ:

  • Git SHA ๋ฒ”์œ„ ์ง€์ • (BASE โ†’ HEAD)
  • ๊ตฌํ˜„ ๋‚ด์šฉ + ํ”Œ๋žœ/์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฆฌ๋ทฐ์–ด์—๊ฒŒ ์ „๋‹ฌ
  • Critical/Important/Minor ์‹ฌ๊ฐ๋„๋กœ ์ด์Šˆ ๋ถ„๋ฅ˜

๋ฆฌ๋ทฐ ์ˆ˜์‹  ์‹œ (receiving-code-review):

  • โ€œYouโ€™re absolutely right!โ€ ๊ฐ™์€ performative agreement ๊ธˆ์ง€
  • ์™ธ๋ถ€ ๋ฆฌ๋ทฐ์–ด ํ”ผ๋“œ๋ฐฑ์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฒ€์ฆ ํ›„ ๊ตฌํ˜„
  • ๋ถˆ๋ช…ํ™•ํ•œ ํ•ญ๋ชฉ์€ ์ „๋ถ€ clarify ํ›„ ์ง„ํ–‰ (๋ถ€๋ถ„ ๊ตฌํ˜„ ๊ธˆ์ง€)
  • YAGNI ์ฒดํฌ โ€” ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ œ์•ˆ์€ ๊ฑฐ๋ถ€

7๋‹จ๊ณ„: Finishing a Development Branch (๋ธŒ๋žœ์น˜ ์™„๋ฃŒ)

๋ชจ๋“  task ์™„๋ฃŒ ํ›„ ๊ตฌ์กฐํ™”๋œ 4๊ฐ€์ง€ ์˜ต์…˜์„ ์ œ์‹œํ•œ๋‹ค:

  1. ๋กœ์ปฌ ๋จธ์ง€ โ€” base ๋ธŒ๋žœ์น˜๋กœ merge + worktree ์ •๋ฆฌ
  2. PR ์ƒ์„ฑ โ€” push + gh pr create
  3. ๋ธŒ๋žœ์น˜ ์œ ์ง€ โ€” ๋‚˜์ค‘์— ์ฒ˜๋ฆฌ
  4. ์ž‘์—… ํ๊ธฐ โ€” typed โ€œdiscardโ€ ํ™•์ธ ํ•„์ˆ˜

๋ณด์กฐ ์Šคํ‚ฌ

Systematic Debugging (์ฒด๊ณ„์  ๋””๋ฒ„๊น…)

Iron Law: ๊ทผ๋ณธ ์›์ธ ์กฐ์‚ฌ ์—†์ด ์ˆ˜์ • ์‹œ๋„ ๊ธˆ์ง€

4๋‹จ๊ณ„ ํ”„๋กœ์„ธ์Šค:

  1. Root Cause Investigation โ€” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ •๋…, ์žฌํ˜„, ์ตœ๊ทผ ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธ, ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ถ”์ 
  2. Pattern Analysis โ€” ๋™์ž‘ํ•˜๋Š” ์œ ์‚ฌ ์ฝ”๋“œ์™€ ๋น„๊ต, ์ฐจ์ด์  ์‹๋ณ„
  3. Hypothesis & Testing โ€” ๋‹จ์ผ ๊ฐ€์„ค, ์ตœ์†Œ ๋ณ€๊ฒฝ, ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ
  4. Implementation โ€” ์‹คํŒจ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ƒ์„ฑ โ†’ ์ˆ˜์ • โ†’ ๊ฒ€์ฆ

3ํšŒ ์ด์ƒ ์ˆ˜์ • ์‹คํŒจ ์‹œ โ†’ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์ œ๋ฅผ ์˜์‹ฌํ•˜๊ณ , ์ถ”๊ฐ€ ์ˆ˜์ • ๋Œ€์‹  human partner์™€ ๋…ผ์˜.

Verification Before Completion (์™„๋ฃŒ ์ „ ๊ฒ€์ฆ)

Iron Law: ๊ฒ€์ฆ ์ฆ๊ฑฐ ์—†์ด ์™„๋ฃŒ ์ฃผ์žฅ ๊ธˆ์ง€

  • โ€œshould work nowโ€, โ€œlooks correctโ€ โ†’ ๊ธˆ์ง€
  • โ€œGreat!โ€, โ€œPerfect!โ€, โ€œDone!โ€ โ†’ ๊ฒ€์ฆ ์—†์ด ๊ธˆ์ง€
  • ๋ฐ˜๋“œ์‹œ ์ปค๋งจ๋“œ ์‹คํ–‰ โ†’ ์ถœ๋ ฅ ํ™•์ธ โ†’ ๊ทธ ๋‹ค์Œ์— ์™„๋ฃŒ ์ฃผ์žฅ

Dispatching Parallel Agents (๋ณ‘๋ ฌ ์—์ด์ „ํŠธ)

2๊ฐœ ์ด์ƒ์˜ ๋…๋ฆฝ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ฐ ๋ฌธ์ œ ๋„๋ฉ”์ธ๋‹น ํ•˜๋‚˜์˜ ์—์ด์ „ํŠธ๋ฅผ ๋ณ‘๋ ฌ๋กœ dispatch.

Writing Skills (์Šคํ‚ฌ ์ž‘์„ฑ)

์Šคํ‚ฌ ์ž‘์„ฑ ์ž์ฒด๊ฐ€ TDD ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ฆ„:

  • RED: ์Šคํ‚ฌ ์—†์ด pressure scenario ์‹คํ–‰ โ†’ ์—์ด์ „ํŠธ์˜ ์‹คํŒจ ํ–‰๋™ ๊ธฐ๋ก
  • GREEN: ํ•ด๋‹น ์‹คํŒจ๋ฅผ ๊ต์ •ํ•˜๋Š” ์ตœ์†Œํ•œ์˜ ์Šคํ‚ฌ ๋ฌธ์„œ ์ž‘์„ฑ
  • REFACTOR: ์—์ด์ „ํŠธ๊ฐ€ ์ฐพ๋Š” ์ƒˆ๋กœ์šด ํ•ฉ๋ฆฌํ™” ๋ฃจํ”„ํ™€์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ฐจ๋‹จ

์•„ํ‚คํ…์ฒ˜์™€ ์„ค๊ณ„ ์ฒ ํ•™

Zero-Dependency ์„ค๊ณ„

์™ธ๋ถ€ ์˜์กด์„ฑ ์—†๋Š” ์ˆœ์ˆ˜ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ. Shell(58.8%), JavaScript(29.6%), HTML(4.3%), Python(3.7%), TypeScript(2.8%)๋กœ ๊ตฌ์„ฑ.

Skill = ํ–‰๋™์„ ์ œ์–ดํ•˜๋Š” ์ฝ”๋“œ

์Šคํ‚ฌ์€ ๋‹จ์ˆœํ•œ ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ์—์ด์ „ํŠธ์˜ ํ–‰๋™์„ ์ œ์–ดํ•˜๋Š” ์ฝ”๋“œ๋กœ ์ทจ๊ธ‰๋œ๋‹ค. ์ˆ˜์ • ์‹œ TDD์™€ adversarial pressure testing์ด ํ•„์ˆ˜์ด๋ฉฐ, 94%์˜ PR์ด ๊ฑฐ๋ถ€๋  ๋งŒํผ ์—„๊ฒฉํ•œ ํ’ˆ์งˆ ๊ธฐ์ค€์„ ์ ์šฉํ•œ๋‹ค.

โ€Human Partnerโ€ ์šฉ์–ด

์˜๋„์ ์œผ๋กœ โ€œuserโ€ ๋Œ€์‹  โ€œhuman partnerโ€๋ฅผ ์‚ฌ์šฉ. ์—์ด์ „ํŠธ๊ฐ€ ์ธ๊ฐ„์„ ๋‹จ์ˆœํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ ํ˜‘์—… ํŒŒํŠธ๋„ˆ๋กœ ์ธ์‹ํ•˜๋„๋ก ์œ ๋„ํ•˜๋Š” ํ–‰๋™ ์ œ์–ด ์žฅ์น˜.

ํ•ฉ๋ฆฌํ™” ๋ฐฉ์ง€ ํŒจํ„ด

๋ชจ๋“  discipline ์Šคํ‚ฌ์— ๊ณตํ†ต์ ์œผ๋กœ ์ ์šฉ๋˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜:

  1. Iron Law โ€” ์ ˆ๋Œ€ ์–ด๊ธธ ์ˆ˜ ์—†๋Š” ํ•ต์‹ฌ ๊ทœ์น™ (e.g., โ€œํ…Œ์ŠคํŠธ ์—†์ด ์ฝ”๋“œ ๊ธˆ์ง€โ€)
  2. Rationalization Table โ€” ์—์ด์ „ํŠธ๊ฐ€ ์‚ฌ์šฉํ•  ๋ณ€๋ช…๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๋ฐ˜๋ฐ•์„ ๋ฏธ๋ฆฌ ํ…Œ์ด๋ธ”๋กœ ์ž‘์„ฑ
  3. Red Flags List โ€” โ€œ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค๋ฉด STOPํ•˜๋ผโ€๋Š” ์ž๊ฐ€ ์ ๊ฒ€ ๋ชฉ๋ก

Claude Search Optimization (CSO)

์Šคํ‚ฌ์˜ description ํ•„๋“œ๋Š” ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”์ง€๋งŒ ๊ธฐ์ˆ ํ•˜๊ณ , ๋ฌด์—‡์„ ํ•˜๋Š”์ง€/์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€๋Š” ๊ธฐ์ˆ ํ•˜์ง€ ์•Š์Œ. ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ, description์— ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์š”์•ฝํ•˜๋ฉด ์—์ด์ „ํŠธ๊ฐ€ ์Šคํ‚ฌ ๋ณธ๋ฌธ์„ ์ฝ์ง€ ์•Š๊ณ  description๋งŒ ๋”ฐ๋ฅด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ.

์ฐธ๊ณ  ๋ฌธ์„œ