| name | draft-public-rules |
| description | > Use when this capability is needed. |
draft-public-rules
ํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ถ์ํด ํ ๊ณต๊ฐ ์ง์นจ(public rules) ์ด์์ ์์ฑํ๋ค. ๋ ํธ๋ ์ง์:
- ํธ๋ A (Multi-agent) โ ๋ฃจํธ
AGENTS.md๊ฐ source-of-truth. Claude Code์ Gemini CLI๋ ํ ์ค์ง๋ฆฌ ๋ธ๋ฆฟ์ง๋ก ์ฐ๊ฒฐ.
- ํธ๋ B (Claude-only) โ ๋ฃจํธ
CLAUDE.md ์์ฒด๊ฐ ๊ณต๊ฐ ์ง์นจ. ๋ธ๋ฆฟ์ง ๋ถํ์.
์ด๋ฆ ๊ทธ๋๋ก ์ด์์ด๋ฉฐ, ์์ฑ ํ์๋ ํ์ ์คํฌ๋ก ๊ณ์ ๋ค๋ฌ์ด๋๊ฐ๋ ๊ฒ์ ์ ์ ๋ก ํ๋ค.
AGENTS.md๋ 60,000๊ฐ ์ด์์ ํ๋ก์ ํธ๊ฐ ์ฑํํ ๋๊ตฌ ์ค๋ฆฝ ํ์ค. ํ ๋ฒ ์ฐ๋ฉด Cursor, GitHub Copilot, Codex CLI, Windsurf ๋ฑ 30+ ์์ด์ ํธ๊ฐ ์๋์ผ๋ก ์ฝ๋๋ค. ํ์ด ๋ชจ๋ Claude Code๋ง ์ด๋ค๋ฉด ํ์ค ์ฐํ ๋น์ฉ ์์ด ๋ฃจํธ CLAUDE.md๋ก ๋จ์ํํ๋ ๊ฒ๋ ํฉ๋ฆฌ์ ์ด๋ค โ ๋ ํธ๋์ ์ฐ์ด์ด ์๋๋ผ ํ ๊ตฌ์ฑ์ ๋ฐ๋ฅธ ์ ํ.
์ฒ ํ
- Earn its place. ๋ชจ๋ ์น์
์ ์์ด์ ํธ๊ฐ ๋์น๊ฑฐ๋ ์๋ชป ์ถ์ธกํ ๋ด์ฉ๋ง ๋ด๋๋ค. ๋น placeholder, ์ํฌ์ด,
package.json/README/git log์์ ์ฝ์ ์ ์๋ ๋ด์ฉ์ ์ฐ์ง ์๋๋ค.
- Curate, don't enumerate.
## External Tools๋ ์ค์น๋ ๋ชจ๋ ์คํฌ/MCP์ ๋คํ๊ฐ ์๋๋ค. ์ด ํ๋ก์ ํธ์์ ์ค์ ๋ก ํ์ํ๊ฑฐ๋ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ๊ฒ๋ง ๋ด๋๋ค.
- Draft-first. ๋ถ์ โ ์์ฑ ์ด์ โ ์ฌ์ฉ์ ๋นํ. 9๋จ๊ณ ์์ฐจ ์ธํฐ๋ทฐ๋ณด๋ค ํ ๋ฒ์ ๋ฆฌ๋ทฐ ๋ฃจํ๊ฐ ๋ซ๋ค.
- ์ต์๋ก ์์. ํ์ ์น์
์ 2๊ฐ๋ฟ. ๋๋จธ์ง๋ ์ค์ ๋ด์ฉ์ด ์์ ๋๋ง ๋ฑ์ฅํ๋ค.
๋ฒ์
In scope:
- ํธ๋ ๊ฒฐ์ (Multi-agent vs Claude-only) โ ์ฌ์ฉ์ ๋ช
์ ์ ํ
- ํ๋ก์ ํธ ๋ถ์ + ์ค์น๋ ์คํฌ/MCP ์ธ๋ฒคํ ๋ฆฌ ์์ง
- ์ธ๋ฒคํ ๋ฆฌ ์ค ์ด ํ๋ก์ ํธ์ ๊ด๋ จ๋ ๊ฒ๋ง ํ๋ ์ดํธ
- ๊ณต๊ฐ ์ง์นจ ์ด์ ์์ฑ (ํธ๋ A: ๋ฃจํธ
AGENTS.md / ํธ๋ B: ๋ฃจํธ CLAUDE.md, ํ์ ์ ์ต์ ํํ)
- ์ ํธ๊ฐ ๋น์ฝํ๋ฉด ํ ๊ฐ์ง ์ง๋ฌธ์ ๋์ง
- ํธ๋ A ํ์ : Claude Code ๋ธ๋ฆฟ์ง(
CLAUDE.md ๋๋ .claude/CLAUDE.md) ์์ฑ
- ํธ๋ A ํ์ : Gemini CLI ์ค์ ๊ฐ์ด๋ ์ถ๋ ฅ (์ธ๋ถ ํ์ผ์ ๊ฑด๋๋ฆฌ์ง ์์)
- ์ด์์ ๋ํ ์ฌ์ฉ์ ๋นํ ๊ธฐ๋ฐ iteration
Out of scope:
- ๊ฐ๋ณ ์น์
์ ์ฅ๊ธฐ ๊ด๋ฆฌ (Boundaries ์ ์ , References ๊ด๋ฆฌ ๋ฑ โ ๋ณ๋ ์คํฌ)
- ํฉ์ด์ง ๊ธฐ์กด config ํตํฉ (๋ณ๋ migrate ์คํฌ)
- ์ค์น๋ ์คํฌ/MCP ์ค์ ์ ๋ฆฌ (๊ณต๊ฐ ์ง์นจ์ source of truth๋ก ์ฐ๋ ๋ณ๋ cleanup ์คํฌ ์์ )
- ๊ฐ์ธ/์ฌ์ ์ค์ (
*.local.md ๊ณ์ด)
- ํธ๋ AโB ๋ง์ด๊ทธ๋ ์ด์
(audit-public-rules์์ ์ฒ๋ฆฌ)
๊ฐ๋๋ ์ผ
| # | ํ์ธ | ์คํจ ์ |
|---|
| 1 | CWD๊ฐ ์ฌ์ฉ์๊ฐ ์ค์บํด๋ฉํ๋ ค๋ ๋๋ ํ ๋ฆฌ์ธ๊ฐ | ์งํ โ git ์ฌ๋ถ ๊ฐ์ X. ๊ฐ์ธ scratch ํ๋ก์ ํธ๋ ์ ํจ |
| 2 | (ํธ๋ A) ๋ฃจํธ AGENTS.md๊ฐ ์ด๋ฏธ ์กด์ฌํ๋๊ฐ | ์ฌ์ฉ์์๊ฒ ๋ฌธ์: ๋ฎ์ด์ฐ๊ธฐ / ๋ณํฉ / ์ทจ์ |
| 3 | (ํธ๋ B) ๋ฃจํธ CLAUDE.md๊ฐ ์ด๋ฏธ ์กด์ฌํ๋๊ฐ | ์๋ "๊ธฐ์กด CLAUDE.md ๋ถ๋ฅ" ํ์ ๋ฐ๋ผ ๋ถ๊ธฐ |
๊ธฐ์กด CLAUDE.md ๋ถ๋ฅ (ํธ๋ B)
| ๋ด์ฉ ์ ํ | ํ์ ๊ธฐ์ค | ์ฒ๋ฆฌ |
|---|
| import-only | @... ํ ์ค(ํน์ ๋งค์ฐ ์งง์ import ๋ธ๋ก)๋ง ์์ | ์์ ๋ฎ์ด์ฐ๊ธฐ (์ฌ์ฉ์ 1ํ ํ์ธ) |
| ๋ฉ๋ชจ์ฑ | ์งง๊ณ (<50์ค) ๋น๊ตฌ์กฐ์ , ์น์
ํค๋ฉ ๊ฑฐ์ ์์ | CLAUDE.md.bak๋ก ๋ฐฑ์
ํ ๋ฎ์ด์ฐ๊ธฐ |
| ๋ณธ๊ฒฉ ๊ท์น | ## Boundaries ๋ฑ ๊ตฌ์กฐ์ ์น์
ํค๋ฉ ๋ค์ | "๋ณํฉ / ์ทจ์"๋ง ์ ์ (๋ฎ์ด์ฐ๊ธฐ ์ต์
์ ๊ฑฐ) |
์ธ์ด ์ ์ฑ
์์ฑ๋๋ ๊ณต๊ฐ ์ง์นจ ํ์ผ(ํธ๋ A: AGENTS.md / ํธ๋ B: CLAUDE.md)์์ ๊ตฌ์กฐ์ ์์๋ง ์์ด ๊ณ ์ , ๋๋จธ์ง๋ ์ฌ์ฉ์ ์ธ์ด๋ฅผ ๋ฐ๋ฅธ๋ค. ์ฌ์ฉ์ ์ธ์ด๋ ํ์ฌ ์ธ์
์ ์ต๊ทผ ๋ฉ์์ง์์ ๊ฐ์ง. ๋ ํธ๋ ๋์ผ ์ ์ฉ โ ํธ๋ B(CLAUDE.md)์์ ํค๋ฉ์ ํ๊ตญ์ด๋ก ํ๊ฑฐ๋, ์น์
์ ๋ ์งง๊ฒ ์ฐ์ง ๋ง ๊ฒ.
| ์์ | ์ธ์ด |
|---|
๋ชจ๋ ํค๋ฉ(#, ##, ###) | ์์ด ๊ณ ์ โ ์์ด์ ํธ/ํด์ด ## Boundaries ๊ฐ์ ์ ํํ ๋ฌธ์์ด์ ์ฐพ์ ์ ์์ด์ผ ํจ |
3-tier ์๋ธํค๋ฉ(### Always do / ### Ask first / ### Never do) | ์์ด ๊ณ ์ โ ํ์ ์คํฌ(Boundaries ๋์ ๋ฑ)์ด ํ์ฑํ๋ ๊ตฌ์กฐ |
## External Tools์ ### {name} ({type}) ํค๋ฉ | ์์ด ๊ณ ์ โ (MCP), (Skill) ๋ผ๋ฒจ ํฌํจ |
| overview ๋ณธ๋ฌธ | ์ฌ์ฉ์ ์ธ์ด |
| ๊ฐ ์น์
์ ์ค๋ช
/๊ท์น/์์ ๋ฌธ์ฅ | ์ฌ์ฉ์ ์ธ์ด |
HTML ์ฃผ์(<!-- ... -->) | ์ฌ์ฉ์ ์ธ์ด |
| ์ฝ๋ ๋ธ๋ก ๋ด ๋ช
๋ น/์๋ณ์ | ์๋ณธ ๊ทธ๋๋ก |
(ํธ๋ A) ๋ธ๋ฆฟ์ง ํ์ผ(CLAUDE.md ๋๋ .claude/CLAUDE.md)์ @AGENTS.md ํ ์ค์ด๋ผ ์ธ์ด ๋ฌด๊ด.
์ฌ์ฉ์ ๋๋ฉด ๋ํ ๋ฉ์์ง(์ง๋ฌธ, diff ํ์, ์์ฝ)๋ ๋ชจ๋ ์ฌ์ฉ์ ์ธ์ด๋ก.
์ํฌํ๋ก์ฐ
Step 0: ํธ๋ ๊ฒฐ์
์ฌ์ฉ์์๊ฒ ํ ๊ฐ์ง ์ง๋ฌธ (์๋ ์ถ์ธก ๊ธ์ง):
ํ์ด ์ด๋ค ์์ด์ ํธ๋ค์ ์ฐ๋์?
a) ๋ค์ํ ์์ด์ ํธ (Claude/Codex/Gemini/Cursor ๋ฑ) โ ๋ฃจํธ AGENTS.md + ๋ธ๋ฆฟ์ง
b) Claude Code๋ง โ ๋ฃจํธ CLAUDE.md ์์ฒด๋ฅผ ๊ณต๊ฐ ์ง์นจ์ผ๋ก ์ฌ์ฉ
์ด ์ ํ์ audit/refine ๋์๋ ํจ๊ป ๋ฐ๊ฟ๋๋ค.
๋ต๋ณ์ ๋ฐ๋ผ:
a โ ํธ๋ A. ์ถ๋ ฅ ํ์ผ AGENTS.md. Step 7(๋ธ๋ฆฟ์ง) ์คํ.
b โ ํธ๋ B. ์ถ๋ ฅ ํ์ผ CLAUDE.md. Step 7 ์คํต.
์ดํ Step 1~6์ ๋ถ์ยท์ธ๋ฒคํ ๋ฆฌยท์ด์ ์์ฑ ํ๋ฆ์ ๋ ํธ๋ ๋์ผ.
์น์
๊ท์น(ํค๋ฉ ์์ด ๊ณ ์ , Boundaries 3-tier, External Tools ํ๋ ์ด์
๋ฑ)๋ ๋์ผ โ ํธ๋ B์์ ๋ ์งง๊ฒ ์ฐ์ง ๋ง ๊ฒ.
์ ํ์ ๋ฐ์ ์ฆ์ ๊ฐ๋๋ ์ผ(์น์
์)์ ํธ๋๋ณ๋ก ์ ์ฉํ๋ค โ ํธ๋ A๋ฉด AGENTS.md ์กด์ฌ ์ฒดํฌ, ํธ๋ B๋ฉด CLAUDE.md ์กด์ฌ + ๋ด์ฉ ๋ถ๋ฅ.
Step 1: ํ๋ก์ ํธ ๋ถ์
๋ณ๋ ฌ๋ก ์ ํธ ์์ง. ์๋ณธ ๋ถ์์ AGENTS.md์ ๊ทธ๋๋ก ๋ถ์ฌ๋ฃ์ง ๋ง ๊ฒ โ ์ถ๋ ฅ์ ์์ด์ ํธ๊ฐ ์ถ๋ก ํด์ผ ํ ๊ฒ์ด์ง, ๋ฐ๊ฒฌํ ๊ฒ ์ ๋ถ๊ฐ ์๋๋ค.
| ์์ค | ์์งํ ์ ํธ |
|---|
package.json / pyproject.toml / pom.xml / Cargo.toml / go.mod / Gemfile | ํ๋ก์ ํธ ์ด๋ฆ, ํ๋ ์์ํฌ, ์ฃผ์ ์์กด์ฑ |
README.md (์ฒซ ~40์ค) | ํ๋ก์ ํธ ๋ชฉ์ (๋ณต์ฌ ๊ธ์ง, ํจ๋ฌํ๋ ์ด์ฆ) |
.claude/skills/, .cursor/rules/ | ํ๋ก์ ํธ ๋ ๋ฒจ ์์ด์ ํธ ์คํฌ |
.mcp.json, .cursor/mcp.json | ํ๋ก์ ํธ ๋ ๋ฒจ MCP ์ค์ |
git log --oneline -20 (git ์ ์ฅ์) | ์ปค๋ฐ ๋ฉ์์ง ํจํด |
.github/workflows/, ๋ธ๋์น ๋ชฉ๋ก | CI, ๋จธ์ง ์ ์ฑ
ํํธ |
๊ธฐ์กด .cursorrules, copilot-instructions.md, CLAUDE.md ๋ณธ๋ฌธ | ์ด๊ด ๊ฐ์น ์๋ ๊ธฐ์กด ๊ท์น |
Step 2: ์คํฌ / MCP ์ธ๋ฒคํ ๋ฆฌ ์ค์บ
์ ์ญ + ํ๋ก์ ํธ ๋ ๋ฒจ์์ ์ฌ์ฉ์๊ฐ ์ง๊ธ ์ ๊ทผ ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ์ ๋ถ ์์งํ๋ค. ๋ ๊ฐ์ง ๋ฐฐํฌ ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ ๊ณ ๋ ค:
์คํฌ ์ค์บ ๊ฒฝ๋ก
| ๊ฒฝ๋ก | ์ค์ฝํ | ๋ฐฐํฌ ๋ฐฉ์ |
|---|
~/.claude/skills/ | ์ ์ญ | skills.sh (npx skills add -g) + ์๋ ์ค์น |
~/.claude/plugins/*/skills/ | ์ ์ญ | Claude ๋ง์ผํ๋ ์ด์ค ํ๋ฌ๊ทธ์ธ |
.claude/skills/ | ํ๋ก์ ํธ | skills.sh + ์๋ |
.claude/plugins/*/skills/ | ํ๋ก์ ํธ | Claude ํ๋ฌ๊ทธ์ธ |
~/.cursor/rules/, .cursor/rules/ | ์ ์ญ/ํ๋ก์ ํธ | Cursor MDC |
~/.windsurf/rules/, .windsurf/rules/ | ์ ์ญ/ํ๋ก์ ํธ | Windsurf |
๊ฐ SKILL.md์์ name๊ณผ description์ ๋ฝ์ ์ธ๋ฒคํ ๋ฆฌ์ ๋ด๋๋ค.
์ฌ๋์ ํธ์ถ ๊ฐ๋ฅ์ฑ (๊ฒ์ฆ๋ ๋์๋ง ์๋ด)
| ๋ฐฐํฌ ๊ฒฝ๋ก | ์ฌ๋์ ์๋์์ฑ |
|---|
~/.claude/plugins/*/skills/ (๋ง์ผํ๋ ์ด์ค) | /plugin:skill ๋
ธ์ถ โ ๊ณต์ |
~/.claude/skills/ (๊ฐ์ธ ๋๋กญ) | /skill ๋
ธ์ถ โ ๊ณต์ |
Claude Code ๋ด์ฅ ๋ฒ๋ค (%AppData%/.../skills-plugin/...) | ๋
ธ์ถ ์ ๋จ โ description ์๋ ํ์ฑํ๋ง. ๋น๊ณต์ |
์ธ๋ฒคํ ๋ฆฌ ๋ฐ๊ฒฌ โ ์ฌ๋์ ํธ์ถ ๊ฐ๋ฅ. ๋ชจ๋ฅด๋ฉด ์๋ด ์๋ตํ๊ณ description ๋งค์นญ์ ๋งก๊ธธ ๊ฒ.
MCP ์ค์บ ๊ฒฝ๋ก
| ์์ด์ ํธ | ์ ์ญ | ํ๋ก์ ํธ |
|---|
| Claude Code | ~/.claude/settings.json, ~/.claude.json | .mcp.json, .claude/settings.json, .claude/settings.local.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| Gemini CLI | ~/.gemini/settings.json | .gemini/settings.json |
| Codex CLI | ~/.codex/config.toml | (ํ๋ก์ ํธ ๋ ๋ฒจ ์์) |
| Windsurf | ~/.windsurf/config.json | .windsurf/config.json |
๊ฐ config์์ MCP ์๋ฒ์ ์ด๋ฆ + ์ฉ๋ ํํธ(command/args)๋ฅผ ๋ฝ๋๋ค. ๋ชจ๋ ์์ด์ ํธ๋ฅผ ๋ค ์ค์บํ๋, ์๋ ๊ฒฝ๋ก๋ ์กฐ์ฉํ ๋์ด๊ฐ๋ค.
์ธ๋ฒคํ ๋ฆฌ ๊ฒฐ๊ณผ
์์ง ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ํํ๋ก ๋ด๋ถ์ ์ ์ง:
SKILLS:
Global (skills.sh): [skill-a, skill-b, ...]
Global (plugin): [plugin-skill-1, ...]
Project: [project-skill-1, ...]
MCPs:
Global (Claude Code): [pencil, gmail, ...]
Global (Cursor): [...]
Project (.mcp.json): [...]
Step 3: ๋ชจ๋ ๊ฒฐ์
Step 1์ ํ๋ก์ ํธ ๋ถ์์ ์์ฒด ํ๊ฐ: "์ฌ์ฉ์๊ฐ ์ถ์ธกํ์ง ์์๋ ๋ ๋งํผ ์ด์์ ์ธ ์ ์๋๊ฐ?"
-
Yes โ Mode A (detected). Step 4๋ก.
-
No โ Mode B (sparse). ์ ํํ ํ ๊ฐ์ง๋ง ์ง๋ฌธ:
์ด ํ๋ก์ ํธ์์ ๋ญ ๋ง๋ค๋ ค๊ณ ํ์ธ์? ํ ์ค๋ก ์๋ ค์ฃผ์๋ฉด ์ด์์ ๋ง๋ค์ด๋ณผ๊ฒ์.
๋ต๋ณ์ ๋ฐ์ Step 4์ ๋ถ์ ๊ฒฐ๊ณผ ๋์ ์ฌ์ฉ.
์๊ณ์น(ํ์ผ ์ ๋ฑ)๋ฅผ ํ๋์ฝ๋ฉํ์ง ๋ง ๊ฒ. ์ ๋งคํ๋ฉด Mode B ์ ํธ โ ์งง์ ์ง๋ฌธ ํ ๋ฒ์ด ์๋ชป๋ ์ด์๋ณด๋ค ์ธ๋ค.
Step 2์ ์ธ๋ฒคํ ๋ฆฌ๋ Mode A/B ํ๋จ์ ์ฐ์ง ์๋๋ค (ํ๋ก์ ํธ์ ์ฑ๊ฒฉ๊ณผ ๋ฌด๊ด).
Step 4: ์ด์ ์์ฑ + ์ฌ์ ํ๋ ์ด์
์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์ฌ์ ํํฐ๋งํด์ ์ด์์ ## External Tools์ ๋ด๋๋ค. ํ๋ ์ด์
๊ท์น์ ๋ ํธ๋ ๋์ผ:
| ๊ฐ์ง ์์น | ๊ธฐ๋ณธ ์ ํ |
|---|
| ํ๋ก์ ํธ ๋ ๋ฒจ config | โ
์ ํ๋จ (ํ์์ด ์์์ผ ํ ๊ฐ๋ฅ์ฑ ๋์) |
| ์ ์ญ์ด์ง๋ง ๋ถ์์์ ๊ด๋ จ์ฑ ํ์ธ | โ
์ ํ๋จ (์: Java ํ๋ก์ ํธ์ obsidian-md ์คํฌ โ ๋ฌด๊ด, Next.js ํ๋ก์ ํธ์ svelte MCP โ ๋ฌด๊ด) |
| ์ ์ญ์ด๊ณ ๊ด๋ จ์ฑ ๋ถ๋ช
ํ | โ ์ ํ ์ ๋จ (๊ฐ์ธ ๋๊ตฌ์ผ ๊ฐ๋ฅ์ฑ) |
์ ํ๋ ๊ฒ๋ง์ผ๋ก ์น์
๊ท์น์ ๋ฐ๋ผ ๊ณต๊ฐ ์ง์นจ ํ์ผ(ํธ๋ A: AGENTS.md / ํธ๋ B: CLAUDE.md) ์ ์ฒด๋ฅผ ์์ฑํ๋ค. ์น์
๋ณ๋ก ์ชผ๊ฐ์ง ๋ง๊ณ ์์ฑ๋ ํ์ผ์ ์ ์.
Step 5: ๋ฆฌ๋ทฐ + ํ๋ ์ด์
ํ์ธ
์ด์ + ์ธ๋ฒคํ ๋ฆฌ ํ๋ ์ด์
๊ฒฐ๊ณผ๋ฅผ ํจ๊ป ๋ณด์ฌ์ฃผ๊ณ ๋นํ์ ๋ฐ๋๋ค:
[์ด์ ์ ์ฒด]
## External Tools ํ๋ ์ด์
์๋์ผ๋ก ์๋ {N}๊ฐ๋ฅผ ํฌํจํ์ต๋๋ค (๊ทผ๊ฑฐ: ํ๋ก์ ํธ ๋ ๋ฒจ ๋๋ ๋ถ์ ๊ด๋ จ์ฑ):
โ
svelte (MCP) - .mcp.json์ ์ ์ธ๋จ
โ
audit-rules (Skill) - .claude/skills/์ ์์
์ถ๊ฐ ํ๋ณด (์ ํ ์ ๋จ):
โธ pencil (MCP, ์ ์ญ) - ๋์์ธ ๋๊ตฌ. ์ด ํ๋ก์ ํธ์ ํ์?
โธ gws-gmail (MCP, ์ ์ญ) - Gmail. ์ด ํ๋ก์ ํธ์ ํ์?
... (์ต๋ 10๊ฐ๊น์ง, ๋๋จธ์ง๋ "(์ธ {M}๊ฐ)")
์ด๋ป๊ฒ ํ ๊น์?
1. ์ข์ โ ์ด๋๋ก ์ ์ฅ
2. ๊ณ ์น ๋ถ๋ถ ์์ โ ์ด๋๋ฅผ ์ด๋ป๊ฒ (์์ ๊ธฐ์ )
3. ๋๊ตฌ ์ ํ ๋ณ๊ฒฝ โ ์ถ๊ฐํ ์ด๋ฆ / ๋บ ์ด๋ฆ
4. ๋ค์ โ ์ด ๊ด์ ์ ๊ฐ์กฐํด์ ({๊ฐ์กฐ์ })
5. ์ทจ์
Step 6: Iteration
2 โ ์ง์ ๋ ๋ถ๋ถ๋ง ์์ , ์
๋ฐ์ดํธ๋ ์ ์ฒด ํ์ผ ๋ค์ ์ ์, Step 5๋ก.
3 โ ์ฌ์ฉ์๊ฐ ์ง์ ํ ๋๊ตฌ ์ถ๊ฐ/์ ๊ฑฐ ๋ฐ์, ์ ์ฒด ํ์ผ ๋ค์ ์ ์, Step 5๋ก.
4 โ ์ ๊ฐ์กฐ์ ์ผ๋ก ์ฌ์์ฑ, Step 5๋ก.
1 โ ๋์คํฌ์ ์ฐ๊ธฐ. ํธ๋ A โ Step 7. ํธ๋ B โ Step 8.
5 โ ์กฐ์ฉํ ์ค๋จ.
๋ฐ๋ณต ์ Step 1 ๋ถ์๊ณผ Step 2 ์ธ๋ฒคํ ๋ฆฌ ์ฌ์คํ ๊ธ์ง. ์ด๋ฏธ ์์งํ ๋ฐ์ดํฐ๋ก ์ด์๋ง ์ฌ์์ฑํ๋ค.
Step 7: ๋ธ๋ฆฟ์ง (ํธ๋ A ํ์ )
ํธ๋ B๋ ์ด ๋จ๊ณ๋ฅผ ์คํตํ๊ณ Step 8๋ก. CLAUDE.md๊ฐ source-of-truth๋ผ ๋ธ๋ฆฟ์ง๊ฐ ํ์ ์๋ค.
Claude Code๋ AGENTS.md๋ฅผ ์ง์ ์ฝ์ง ์์ต๋๋ค. ๋ธ๋ฆฟ์ง๋ฅผ ์ด๋์ ๋๊น์?
a) .claude/CLAUDE.md (๊ฐ์ธ๋ณ, .gitignore์ ์ถ๊ฐ)
b) CLAUDE.md (์ ์ฅ์ ๋ฃจํธ, ํ ๊ณต์ )
a โ .claude/CLAUDE.md์ @../AGENTS.md ํ ์ค. .gitignore์ .claude/ ์์ผ๋ฉด ์ถ๊ฐ.
b โ CLAUDE.md (๋ฃจํธ)์ @AGENTS.md ํ ์ค.
Gemini CLI ๊ฐ์ด๋๋ ์ถ๋ ฅ๋ง ํ๋ค (์ธ๋ถ config ๊ธ์ง):
Gemini CLI ์ฌ์ฉ์๋ ~/.gemini/settings.json์ ๋ค์์ ์ถ๊ฐํ๋ฉด AGENTS.md๋ฅผ ์๋์ผ๋ก ์ฝ์ต๋๋ค:
"context": { "fileName": ["AGENTS.md", "GEMINI.md"] }
Step 8: ์์ฝ
ํธ๋ A:
์๋ฃ:
- AGENTS.md ({N}์ค) โ External Tools์ {K}๊ฐ ๋๊ตฌ ์ ์ธ๋จ
- {๋ธ๋ฆฟ์ง ๊ฒฝ๋ก}
๋ค์์ ํ ์ ์๋ ๊ฒ:
- ์์ด์ ํธ๊ฐ ์ค์ํ ๋๋ง๋ค Boundaries์ ๋์ โ ๊ฐ์ ์ค์ ๋ฐ๋ณต ๋ฐฉ์ง
- ๊ณต๊ฐ ์ง์นจ์ ์ ์ธ๋ ๋๊ตฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ญ ์คํฌ/MCP ์ ๋ฆฌ
(ํฅํ ๋ณ๋ ์คํฌ์ด ์๊ธฐ๋ฉด ์ฌ๊ธฐ์ ์๋ด)
ํธ๋ B:
์๋ฃ:
- CLAUDE.md ({N}์ค) โ External Tools์ {K}๊ฐ ๋๊ตฌ ์ ์ธ๋จ
- ๋ธ๋ฆฟ์ง ์์ (CLAUDE.md๊ฐ source-of-truth)
๋ค์์ ํ ์ ์๋ ๊ฒ:
- ์์ด์ ํธ๊ฐ ์ค์ํ ๋๋ง๋ค Boundaries์ ๋์ โ ๊ฐ์ ์ค์ ๋ฐ๋ณต ๋ฐฉ์ง
- ํ ๊ตฌ์ฑ์ด ๋ฐ๋์ด ๋ค๋ฅธ ์์ด์ ํธ๋ ์ฐ๊ฒ ๋๋ฉด audit-public-rules์
ํธ๋ ๋ง์ด๊ทธ๋ ์ด์
์ผ๋ก AGENTS.md + ๋ธ๋ฆฟ์ง๋ก ์ ํ ๊ฐ๋ฅ
์น์
๊ท์น
ํญ์ ํฌํจ (2๊ฐ)
-
# {Project Name} + 1โ3๋ฌธ์ฅ overview. ๋ฌด์์ด๊ณ ๋๊ตฌ๋ฅผ ์ํ ๊ฒ์ธ์ง ์์ . ์ด๋ป๊ฒ ๋น๋ํ๋์ง๋ ์ฐ์ง ์๋๋ค.
-
## Boundaries โ ๋น 3-tier ์ค์ผ๋ ํค. ํค๋ฉ์ ์์ด ๊ณ ์ , ์ฃผ์์ ์ฌ์ฉ์ ์ธ์ด. ํ๊ตญ์ด ์:
## Boundaries
### Always do
### Ask first
### Never do
<!-- ์์ด์ ํธ๊ฐ ์ค์ํ ๋๋ง๋ค ์ฌ๊ธฐ์ ๊ท์น์ ๋์ ํ์ธ์.
Error-driven growth: ์์ด์ ํธ๊ฐ ์ ์ ๋์์ ๋ ๊ต์ ๋ด์ฉ์
๊ธฐ๋กํด๋๋ฉด, ๋ค์ ์์ด์ ํธ๊ฐ ๊ฐ์ ์ค์๋ฅผ ๋ฐ๋ณตํ๊ธฐ ์ ์
์ด ์น์
์ ์ฝ๊ณ ์ฐธ๊ณ ํฉ๋๋ค. -->
์กฐ๊ฑด๋ถ โ ์ค์ ๋ด์ฉ์ด ์์ ๋๋ง ํฌํจ
| ์น์
| ํฌํจ ์กฐ๊ฑด |
|---|
## External Tools | Step 4์ ํ๋ ์ด์
๊ฒฐ๊ณผ๊ฐ 1๊ฐ ์ด์. ๊ฐ ํญ๋ชฉ์ ### {name} ({type}) ํค๋ฉ + 1์ค ์ค๋ช
|
## Git Workflow | git log์์ ๋ช
ํํ ์ปค๋ฐ ํจํด(Conventional Commits, ํฐ์ผ prefix) ๊ฐ์ง |
## References | ๋ฆฌ๋ทฐ ๋ฃจํ์์ ์ฌ์ฉ์๊ฐ spec/ADR/design doc ๋ช
์ |
## Project Structure | ๋ค์ค ๋ชจ๋ + ๋น์๋ช
ํ ์ปจ๋ฒค์
(source of truth, ์์ฑ ๋๋ ํ ๋ฆฌ, ์์ ๊ธ์ง ์์ญ) |
## Code Style | linter/formatter๊ฐ ๊ฐ์ ํ์ง ์๋ ์คํ์ผ ๊ท์น์ด ๋๋ฌ๋จ |
## Testing | ๋น์๋ช
ํ ํ
์คํธ ์ปจ๋ฒค์
(mock ์ ์ฑ
, fixture ์์น, ๋จ์ผ ์คํ ๋ช
๋ น) |
์กฐ๊ฑด๋ถ ์น์
์ด ํ๋๋ ํด๋นํ์ง ์์ผ๋ฉด AGENTS.md๋ # Project Name + overview + ## Boundaries๋ง์ผ๋ก ์์ฑ. ์ ํจํ๊ณ ์๊ฒฐ๋ ๊ฒฐ๊ณผ โ ์คํจ๊ฐ ์๋๋ค.
## External Tools ํฌ๋งท ์์
## External Tools
### svelte (MCP)
Svelte 5 ๋ฌธ์/์ง๋จ/์๋์์ . `list-sections`๋ก ๋ชฉ์ฐจ ํ์ธ ํ `get-documentation`
์ผ๋ก ํ์ํ ์น์
์ ๊ฐ์ ธ์ค๊ณ , `svelte-autofixer`๋ฅผ ๋ชจ๋ Svelte ์ฝ๋์ ์ ์ฉํ๋ค.
### audit-rules (Skill)
AGENTS.md ํ์ง ์ง๋จ ๋ฐ ๋ธ๋ฆฟ์ง ์ฐ๊ฒฐ์ฑ ์ฒดํฌ. AGENTS.md๋ ๋ธ๋ฆฟ์ง ์์ ํ ์คํํ๋ค.
๊ฐ ํญ๋ชฉ์ ๋๊ตฌ ์ด๋ฆ + ํ์
+ ์ด ํ๋ก์ ํธ์์์ ์ฌ์ฉ ๋งฅ๋ฝ 1โ3์ค. ์ผ๋ฐ์ ์ธ ๋๊ตฌ ์ค๋ช
์ ์ฐ์ง ์๋๋ค.
์์ฑ ์์น (์์ฑํ AGENTS.md ๋ณธ๋ฌธ ๋์)
- ์ํฌ์ด ๊ธ์ง. "write clean code", "follow best practices" โ ์ญ์ .
- ์ฝ๋์์ ์ฝ์ ์ ์๋ ๋ด์ฉ ๊ธ์ง. ๊ธฐ์ ์คํ ๋์ด, ์์กด์ฑ ๋ฒ์ , ๋๋ ํ ๋ฆฌ ํธ๋ฆฌ, ๋ณต์ฌ๋
package.json scripts โ ์์ด์ ํธ๋ ์๋ณธ์ ์ง์ ์ฝ๋๋ค.
- ๋ชฉํ 150์ค ์ดํ, ์ํ 300์ค. 150์ ๋์ผ๋ฉด ์ ๋ ๊ท์น์ ์ด๊ธด ๊ฒ.
- ๋ช
๋ นํ. "X๋ฅผ Y๋ณด๋ค ๋จผ์ ์คํํ๋ค." "X๋ฅผ ์คํํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค" ๊ธ์ง.
- ๊ท์น ํ๋๋น ํ ๋ฌธ์ฅ ์งํฅ.
๊ธ์ง ํ๋
- 5์น์
ํ
ํ๋ฆฟ์ ์ฑ์ฐ๊ธฐ ์ํด ๋น placeholder ์น์
์์ฑํ๊ธฐ
README.md ๋ด์ฉ์ overview์ ๊ทธ๋๋ก ๋ณต์ฌํ๊ธฐ (1โ3๋ฌธ์ฅ ํจ๋ฌํ๋ ์ด์ฆ)
- ํค๋ฉ์ ์ฌ์ฉ์ ์ธ์ด๋ก ๋ฒ์ญํ๊ธฐ (
## ๊ฒฝ๊ณ โ, ## Boundaries โ
)
- ๋ณธ๋ฌธ/์ฃผ์/์ค๋ช
์ ์์ด๋ก ๊ฐ์ ํ๊ธฐ (์ฌ์ฉ์ ์ธ์ด ์กด์ค)
- ์ธ๋ฒคํ ๋ฆฌ ์ ์ฒด๋ฅผ
## External Tools์ ๋คํํ๊ธฐ (Curate, don't enumerate)
- ๋ถ์ ๊ด๋ จ์ฑ ์๋ ์ ์ญ ๋๊ตฌ๋ฅผ ์ฌ์ฉ์ ํ์ธ ์์ด ๊ธฐ๋ณธ ์ ํํ๊ธฐ
- Iteration ์ ๋ถ์(Step 1)์ด๋ ์ธ๋ฒคํ ๋ฆฌ(Step 2)๋ฅผ ๋ค์ ์คํํ๊ธฐ โ ์ฌ์์ฑ๋ง ํ๋ค
~/.gemini/settings.json ๋ฑ ์ธ๋ถ ์์ด์ ํธ config ์์ ํ๊ธฐ (๊ฐ์ด๋ ์ถ๋ ฅ๋ง)
- ์ค์น๋ ์คํฌ/MCP ํ์ผ์ ์ค์ ๋ก ์์ /์ญ์ ํ๊ธฐ (์ด ์คํฌ์ ์ฝ๊ธฐ ์ ์ฉ)
- ์คํฌ์ ์ฌ๋์๋ก ๋ถ๋ฅด๋ ๋ฐฉ๋ฒ(
/xxx)์ ๊ฒ์ฆ ์์ด ์ถ์ธกํด์ ์ฌ์ฉ์์๊ฒ ์๋ดํ๊ธฐ
- ๊ณต๊ฐ ์ง์นจ ํ์ผ์
## External Tools ๋ณธ๋ฌธ์ ์ฌ๋์ ํธ์ถ ๋ฐฉ์ ๋ช
์ (ํ๊ฒฝ๋ง๋ค ๋ค๋ฆ)
- ํธ๋(A/B)์ ํ๋ก์ ํธ ์ ํธ๋ก ์๋ ์ถ์ธกํ๊ธฐ โ Step 0์์ ๋ฐ๋์ ์ฌ์ฉ์์๊ฒ ๋ช
์ ์ ํ์ ๋ฐ๋๋ค
- ํธ๋ B์์ CLAUDE.md๋ฅผ "๊ฐ๋จํ ๋ฉ๋ชจ์ฒ๋ผ" ๋ ์งง๊ฒ ์ฐ๊ธฐ โ ์น์
๊ท์น๊ณผ ์์ฑ ์์น์ ๋ ํธ๋ ๋์ผ
Source: dev-goraebap/grimoire โ distributed by TomeVault.