| name | init |
| description | Initialize autonomous agent protocol in current project. Scaffolds .tars/ directory with core-based templates, creates heartbeat command, guard hook, and configures permissions. Supports solo and team execution modes. |
| disable-model-invocation | true |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
/tars:init โ ์์จ ์์ด์ ํธ ํ๋กํ ์ฝ ์ด๊ธฐํ
์ด ์คํฌ์ ํ์ฌ ํ๋ก์ ํธ์ .tars/ ์์จ ์ด์ ํ๊ฒฝ์ ์ค์นํฉ๋๋ค.
์คํ ์ ์ฐจ
Step 1: Core ์ค์บ
${CLAUDE_SKILL_DIR}/../../cores/ ํ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ค์บํฉ๋๋ค.
shared, team ๋๋ ํ ๋ฆฌ๋ ์ ์ธ
- ๊ฐ ๋๋ ํ ๋ฆฌ์์
core.json์ ์ฝ์ด ์ ํจ์ฑ ๊ฒ์ฆ:
core.json ์กด์ฌ ์ฌ๋ถ
- ํ์ ํ๋:
name, label, description
PROTOCOL.md ์กด์ฌ ์ฌ๋ถ
MISSION.md ์กด์ฌ ์ฌ๋ถ
- ์ ํจํ์ง ์์ core๋ ์ ์ธํ๊ณ ๊ฒฝ๊ณ ์ถ๋ ฅ
Step 2: ์ ๋ณด ์์ง
์ฌ์ฉ์์๊ฒ ๋ค์์ ์ง๋ฌธํฉ๋๋ค (AskUserQuestion ์ฌ์ฉ):
-
์คํ ๋ฐฉ์: solo (๋จ์ผ ์์ด์ ํธ) ๋๋ team (ํ ์์ด์ ํธ)
- solo: ํ๋์ ์์ด์ ํธ๊ฐ ํ๋์ core๋ก ์์จ ์ด์
- team: orchestrator + core๋ณ ์ ๋ฌธ ์์ด์ ํธ๊ฐ ํ์
-
Core ์ ํ:
- solo โ ๋จ์ผ ์ ํ. Step 1์์ ์ค์บํ core ๋ชฉ๋ก์ ์ ํ์ง๋ก ์ ์ (core.json์
label๊ณผ description ์ฌ์ฉ)
- team โ ๋ณต์ ์ ํ (multiSelect). ํ์ ํฌํจํ core๋ค์ ์ ํ
-
ํ๋ก์ ํธ๋ช
: ํ๋ก์ ํธ์ ์ด๋ฆ (MISSION.md์ {PROJECT_NAME}์ ์ฌ์ฉ)
-
๋ฏธ์
์ค๋ช
: ํ ์ค๋ก ํ๋ก์ ํธ์ ๋ชฉ์ (MISSION.md์ {MISSION_DESCRIPTION}์ ์ฌ์ฉ)
-
Core๋ณ ์ถ๊ฐ ์ง๋ฌธ: ์ ํ๋ core์ core.json โ placeholders ๋ฐฐ์ด์ ํ์ธํ์ฌ, ๊ฐ placeholder์ ๋ํด ์ง๋ฌธ
prompt ํ๋๋ฅผ ์ง๋ฌธ ํ
์คํธ๋ก ์ฌ์ฉ
example ํ๋๋ฅผ ์ฐธ๊ณ ์๋ด๋ก ํ์
- ์: dev core ์ ํ ์ โ
BUILD_CMD, TEST_CMD, LINT_CMD ์ง๋ฌธ
Step 3: ๋๋ ํ ๋ฆฌ ์์ฑ
mkdir -p .tars/protocol
mkdir -p .tars/logs/archive
mkdir -p .tars/logs/backlog-archive
.tars/.version ์์ฑ:
${CLAUDE_SKILL_DIR}/../../.claude-plugin/plugin.json์์ version ์ฝ๊ธฐ
- Write:
{
"version": "{plugin_version}",
"core": "{core_name}",
"core_version": "{core.json์ version}",
"execution": "{solo ๋๋ team}",
"team_cores": [],
"initialized_at": "{ํ์ฌ ISO ํ์์คํฌํ}",
"upgraded_at": null,
"upgrade_history": []
}
- team ๋ชจ๋์ผ ๊ฒฝ์ฐ:
team_cores์ ์ ํ๋ core ์ด๋ฆ ๋ฐฐ์ด ์ค์ (์: ["dev", "design"])
- solo ๋ชจ๋์ผ ๊ฒฝ์ฐ:
team_cores๋ ๋น ๋ฐฐ์ด
core.json์ extra_dirs ์ฒ๋ฆฌ:
- ์ ํ๋ core์
extra_dirs ๋ฐฐ์ด์ ์๋ ๊ฐ ๊ฒฝ๋ก์ ๋ํด:
mkdir -p .tars/{dir}
Step 4: ํ
ํ๋ฆฟ ๋ณต์ฌ ๋ฐ ํ๋ ์ด์คํ๋ ์นํ
tars ํ๋ฌ๊ทธ์ธ์ cores ๋๋ ํ ๋ฆฌ์์ ํ์ผ์ ์ฝ๊ณ , ๋ด์ฉ์ ํ๋ก์ ํธ์ .tars/์ Writeํฉ๋๋ค.
ํ
ํ๋ฆฟ ๊ฒฝ๋ก: ${CLAUDE_SKILL_DIR}/../../cores/
Solo ๋ชจ๋
Core๋ณ ํ์ผ:
cores/{core_name}/MISSION.md โ .tars/protocol/MISSION.md
{PROJECT_NAME} โ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ
{MISSION_DESCRIPTION} โ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ
- core.json placeholders์ ๊ฐ
{KEY} โ ์ฌ์ฉ์ ์
๋ ฅ๊ฐ
cores/{core_name}/PROTOCOL.md โ .tars/protocol/PROTOCOL.md
Team ๋ชจ๋
Orchestrator ํ๋กํ ์ฝ:
cores/team/ORCHESTRATOR_PROTOCOL.md โ .tars/protocol/PROTOCOL.md
Team ๋ชจ๋์์ MISSION.md:
- team_cores ์ค ์ฒซ ๋ฒ์งธ core์ MISSION.md๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ
- ํ๋ ์ด์คํ๋ ์นํ ๋์ผ
๊ณตํต ํ์ผ (solo/team ๋์ผ):
cores/shared/COMMS.md โ .tars/COMMS.md
cores/shared/BACKLOG.md โ .tars/BACKLOG.md
cores/shared/PROGRESS.md โ .tars/PROGRESS.md
{CORE} โ ์ ํํ core ์ด๋ฆ (team์ด๋ฉด team:{core1}+{core2})
cores/shared/LOG.md โ .tars/logs/LOG.md
cores/shared/RETRO.md โ .tars/logs/RETRO.md
cores/shared/MILESTONES.md โ .tars/MILESTONES.md
core.json์ extra_templates ์ฒ๋ฆฌ:
- ๊ฐ ํญ๋ชฉ์
source๋ฅผ cores/ ๊ธฐ์ค์ผ๋ก ์ฝ๊ณ , dest๋ฅผ .tars/ ๊ธฐ์ค์ผ๋ก Write
EVOLUTION.md (.tars/protocol/EVOLUTION.md์ ์ง์ ์์ฑ):
# Protocol Evolution Log
> RETRO์์ ๋ฐ๊ฒฌํ ์์คํ
๊ฐ์ ์ ์ถ์ ํฉ๋๋ค.
> Type: parameter-patch | structural-patch | revert | question
> Status: applied | proposed | reverted | resolved
| # | Heartbeat | Type | Change | Reason | Status |
|---|-----------|------|--------|--------|--------|
backlog-archive/INDEX.md (.tars/logs/backlog-archive/INDEX.md์ ์ง์ ์์ฑ):
# Backlog Archive Index
> ์๋ฃ๋ ํฐ์ผ ์์นด์ด๋ธ ๋ชฉ๋ก
(๋น์ด ์์)
Step 5: Team ์์ด์ ํธ ์์ฑ (team ๋ชจ๋๋ง)
team ๋ชจ๋ ์ ํ ์์๋ง ์คํํฉ๋๋ค.
5a. _workspace ๋๋ ํ ๋ฆฌ
mkdir -p .tars/_workspace
5b. ์ ๋ฌธ ์์ด์ ํธ ์์ฑ
.claude/agents/ ๋๋ ํ ๋ฆฌ ์์ฑ.
์ ํ๋ ๊ฐ core์ ๋ํด:
cores/team/core-agent.md ํ
ํ๋ฆฟ ์ฝ๊ธฐ
- ํ๋ ์ด์คํ๋ ์นํ:
{CORE_LABEL} โ core.json์ label
{CORE_DESCRIPTION} โ core.json์ description
.claude/agents/{core_name}-agent.md์ Write
5c. Orchestrator ์์ด์ ํธ ์์ฑ
cores/team/orchestrator-agent.md ํ
ํ๋ฆฟ ์ฝ๊ธฐ
{AGENT_LIST} ์นํ โ ์์ด์ ํธ ๋ชฉ๋ก ๋งํฌ๋ค์ด:
- **dev-agent**: ๊ฐ๋ฐ โ ๋น๋ ๊ฒ์ฆ, ์ฝ๋ ํจํธ๋กค, ํ
์คํธ ์ ๋ต
- **design-agent**: ๊ธฐํ โ ๋์์ธ ์ดํฐ๋ ์ด์
, ์ฐ์ถ๋ฌผ ๊ด๋ฆฌ
.claude/agents/orchestrator.md์ Write
Step 6: BACKLOG ์ด๊ธฐ ํฐ์ผ ๋ฑ๋ก
.tars/BACKLOG.md์ Active ์น์
์ ์ถ๊ฐ:
- [ ] P2 | ops/init-001 | MISSION.md ์ปค์คํฐ๋ง์ด์ง โ ํ๋ก์ ํธ์ ๋ง๊ฒ DoD, Testing Strategy, Constraints ์์
Step 7: .claude/ ์ค์
.claude/commands/heartbeat.md ์์ฑ:
.tars/protocol/PROTOCOL.md๋ฅผ ์ฝ๊ณ Heartbeat Cycle์ ์ ํํ ์คํํ์ธ์.
ํ์ฌ heartbeat ์๋ .tars/PROGRESS.md์์ ํ์ธํฉ๋๋ค.
์คํ์ด ๋๋๋ฉด PROGRESS.md์ heartbeat ์๋ฅผ +1 ํฉ๋๋ค.
.claude/guard.py ์์ฑ:
${CLAUDE_SKILL_DIR}/../../hooks/guard.py ํ์ผ ๋ด์ฉ์ ์ฝ๊ธฐ
{PROJECT_DIR} ํ๋ ์ด์คํ๋๋ฅผ ํ์ฌ ํ๋ก์ ํธ์ ์ ๋ ๊ฒฝ๋ก๋ก ์นํ
.claude/guard.py์ Write
.claude/settings.local.json ์์ฑ ๋๋ ๋ณํฉ:
- ์ด๋ฏธ ์กด์ฌํ๋ฉด ๊ธฐ์กด ๋ด์ฉ์ ์ฝ๊ณ ๋ณํฉ
- ์์ผ๋ฉด ์๋ก ์์ฑ
- ์ถ๊ฐํ ๋ด์ฉ:
{
"permissions": {
"allow": [
"Bash(mkdir:*)",
"Bash(ls:*)",
"Bash(git:*)"
]
},
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit|NotebookEdit|Bash",
"hooks": [
{
"type": "command",
"command": "python3 .claude/guard.py"
}
]
}
]
}
}
Step 8: .gitignore ์ค์
- ํ๋ก์ ํธ ๋ฃจํธ์
.gitignore ํ์ธ
- ์ด๋ฏธ
# tars ์น์
์ด ์์ผ๋ฉด ์คํต
- ์์ผ๋ฉด
${CLAUDE_SKILL_DIR}/../../cores/shared/gitignore.snippet ๋ด์ฉ์ ์ฝ๊ณ .gitignore ๋์ ์ถ๊ฐ
.gitignore๊ฐ ์์ผ๋ฉด snippet ๋ด์ฉ์ผ๋ก ์๋ก ์์ฑ
Step 9: ์๋ฃ ๋ฉ์์ง
Solo ๋ชจ๋
## tars ์ด๊ธฐํ ์๋ฃ
**Core**: {core_name} ({core_label})
**ํ๋ก์ ํธ**: {project_name}
**์คํ ๋ฐฉ์**: solo
### ์์ฑ๋ ํ์ผ
- .tars/ โ ์์จ ์ด์ ํ๋กํ ์ฝ ๋๋ ํ ๋ฆฌ
- .claude/commands/heartbeat.md โ heartbeat ์ปค๋งจ๋
- .claude/guard.py โ ํ์ผ ์์ ๊ฐ๋
- .claude/settings.local.json โ ํผ๋ฏธ์
+ ํ
์ค์
### ๋ค์ ๋จ๊ณ
1. `.tars/protocol/MISSION.md`๋ฅผ ํ๋ก์ ํธ์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์ง
2. `.tars/BACKLOG.md`์ ์์
ํฐ์ผ ๋ฑ๋ก
3. `/tars:heartbeat` ๋๋ `/loop 10m /tars:heartbeat`๋ก ์์จ ์ด์ ์์
Team ๋ชจ๋
## tars ํ ์ด๊ธฐํ ์๋ฃ
**Core**: {team_cores ๋ชฉ๋ก}
**ํ๋ก์ ํธ**: {project_name}
**์คํ ๋ฐฉ์**: team
### ์์ฑ๋ ํ์ผ
- .tars/ โ ์์จ ์ด์ ํ๋กํ ์ฝ ๋๋ ํ ๋ฆฌ
- .claude/agents/orchestrator.md โ ํ ์กฐ์จ์
- .claude/agents/{core}-agent.md โ ์ ๋ฌธ ์์ด์ ํธ (๊ฐ core๋ณ)
- .claude/commands/heartbeat.md โ heartbeat ์ปค๋งจ๋
- .claude/guard.py โ ํ์ผ ์์ ๊ฐ๋
### ๋ค์ ๋จ๊ณ
1. `.tars/protocol/MISSION.md`๋ฅผ ํ๋ก์ ํธ์ ๋ง๊ฒ ์ปค์คํฐ๋ง์ด์ง
2. `.tars/BACKLOG.md`์ ์์
ํฐ์ผ ๋ฑ๋ก
3. `/tars:heartbeat`๋ก orchestrator๊ฐ ํ์ ์กฐ์จํฉ๋๋ค
์ฃผ์์ฌํญ
- ์ด๋ฏธ
.tars/ ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํ๋ฉด ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ํ๊ณ ๋ฎ์ด์ธ์ง ํ์ธ
.claude/settings.local.json์ ๊ธฐ์กด ์ค์ ์ ๋ณด์กดํ๋ฉฐ ๋ณํฉ
- ๋ชจ๋ ํ์ผ Write ์ ์ ๋ ๊ฒฝ๋ก ์ฌ์ฉ