<div align="center">
<img src="https://raw.githubusercontent.com/andreaswasita/copilot-agents-dojo/HEAD/docs/assets/banner.png?v=2" alt="Copilot Agents Dojo" width="100%">
Copilot Agents Dojo 🏯
GitHub Copilot 에이전트를 위한 규율 프레임워크.
AI 에이전트를 즉흥적인 어시스턴트에서 체계적이고, 측정 가능하며, 반복 가능한 엔지니어링 파트너로 전환하는 종단 간(End-to-end) 프레임워크.
<p align="center">
<a href="https://andreaswasita.github.io/copilot-agents-dojo/quests/"><img src="https://img.shields.io/badge/%F0%9F%A5%8B_New%3F_Walk_the_Zen_Quest-f59e0b?style=for-the-badge" alt="Walk the Zen Quest"></a>
</p>
📖 Wiki · 시작하기 · 🥋 벨트 퀘스트 · Skills · Agents · Spec · 기여자 가이드
license
version
spec
skills
tiers
agents
curator
gate
</div
당신의 AI 에이전트는 훈련되지 않았습니다. 도장으로 보내야 할 시간입니다.
GitHub Copilot 에이전트를 위한 스킬 및 규율 프레임워크 — 매일 Copilot과 함께 계획하고, 코딩하고, 테스트하고, 검토하고, 배포하고, 학습하는 자율적인 툴링(tooling)을 사용하는 엔지니어들을 위해.
Copilot Cowork Dojo가 지식 노동(knowledge work)을 위한 AI 동료를 훈련하는 곳이라면, 이 도장은 소프트웨어 엔지니어, 아키텍트, TPMs, 보안 엔지니어, 테스트 엔지니어 등 Copilot을 IDE, 터미널 및 CI에서 실행하는 AI 빌더를 훈련합니다.
skills/ + optional-skills/ + .github/copilot-instructions.md 파일을 모든 레포에 넣으면 → Copilot 에이전트가 인덱스를 자동 발견하고 워크플로우를 따릅니다. CI 또는 PR 전의 단일 게이트로 bash scripts/verify.sh를 실행합니다.
내용물:
core / practical / optional 티어에 걸친 33가지 프로덕션 스킬 (항상 발견 가능한 29개 + 선택적 4개) — 표준 목록은 자동 생성된 skills.md 인덱스를 참조
- 8가지 전문 에이전트 페르소나 — 일반적인
architect, TOGAF 전문가 3명(비즈니스/솔루션/플랫폼), 그리고 security-engineer, software-engineer, technical-program-manager, test-engineer가 포함됨
- 필수 BRAINSTORM → PLAN → TDD → REVIEW → FINISH 파이프라인
- 자체 개선 큐레이터 — 상태 기계(state machine), 백업, 유휴 기반 트리거, 실행별 감사 추적(audit trail)
- 메모리 금고 (Memory vault) — 영구적인 연결 지식 그래프(Obsidian 호환)
- MCP 메모리 서버 — 모든 MCP 지원 에이전트가 금고를 읽고 쓸 수 있음
- Git 작업 트리 격리 및 캐시 인식 스킬 수정
- 단일 강제 게이트:
scripts/verify.sh (+ GitHub Actions)
필수 워크플로우 (The Mandatory Workflow)
모든 사소하지 않은(non-trivial) 작업은 이 파이프라인을 따릅니다 — 건너뛰거나 즉흥적으로 처리할 수 없습니다:
BRAINSTORM → WORKTREE → PLAN → EXECUTE → TEST → REVIEW → FINISH → LEARN
| 단계 (Step) | 스킬 (Skill) | 내용 (What happens) |
|---|
| 1 | brainstorming | 소크라테스식 정제(Socratic refinement) → 승인된 설계 |
| ... | | |
하나의 명령으로 전체 스프린트를 실행합니다. Copilot Chat에서, /dojo-sprint <목표>는 위의 모든 단계를 순서대로 거치고; /dojo-swarm <목표>는 동일한 작업을 수행하지만 EXECUTE + TEST를 병렬 서브 에이전트로 분산(fan out)시킵니다. 둘 다 scripts/sprint.sh에 의해 구동되며, 이 스크립트의 단계→스킬 매핑은 scripts/pipeline.tsv에서 단일 진실 공급원(single source of truth)입니다: | | |
bash scripts/sprint.sh steps
bash scripts/sprint.sh start
도조(Dojo)가 처음이신가요? 인터랙티브하게 학습하세요. **[The Belt Quest](./docs/quests/)**는 게이미피케이션된, 독립적인 온보딩 과정으로, 여러분을 **백대 (白帯 white belt)**에서 **흑대 (黒帯 black belt)**까지 이끌어갑니다. 프레임워크를 설치하고, 핵심 카타(kata)를 반복 숙달하며, 필수 워크플로우를 거치고, 마스터리에 도달하게 합니다.
⚪ 백대 White → 🔵 청대 Blue → 🟤 갈대 Brown → ⚫ 흑대 Black
Dojo 입장 (Enter the Dojo) | 핵심 카타 (Core Kata) | 워크플로우 (The Workflow) | 마스터리 (Mastery)
| 벨트 (Belt) | 단계 (Phase) | 학습 내용 (You learn to…) |
|------|-------|---------------|
| ⚪ **백대 White** | Dojo 입장 (Enter the Dojo) | Dojo 설치, `verify.sh` 실행, 스캐폴드 탐색 |
| ... |
**23개의 체크포인트**로 이루어진 구불구불한 돌길을 따라가며, 각 단계마다 복사하여 사용할 수 있는 명령어와
| Skill | 목적 |
|---|---|
| [brainstorming](./skills/brainstorming/SKILL.md) | 코드 작성 전 소크라테스식 설계 개선 |
| ... | |
### 실전 훈련 (Practical Kumite — 実践組手)
가장 일반적인 엔지니어링 작업을 위한 작업별 스킬.
| Skill | 목적 |
|-------|---------|
| [code-review](./skills/code-review/SKILL.md) | 심각도 기반 피드백을 통한 구조화된 검토 |
| ... | |
### 선택적 스킬 (Optional Skills — 選択)
무겁거나 전문적인 영역의 스킬. [optional-skills/](./optional-skills)에서 명시적으로 설치합니다.
| Skill | 목적 |
|---|---|
| [writing-skills](./optional-skills/writing-skills/SKILL.md) | SKILL.md 템플릿 + 사양 준수 |
| ... | -
---
## 전문 에이전트 페르소나 (Specialized Agent Personas)
[agents/](./agents)에 있는 페르소나들은 단일 진실 공급원(single source of truth)을 가지며, 이는 `agents/registry.yaml`에 있습니다. `scripts/verify.sh`는 레지스트리와 브리프 간의 불일치(drift)를 방지합니다.
| Persona | 초점 |
|---|---|
| [architect](./agents/architect.md) | 일반적인 설계 — 시스템 설계, 영향 분석, 리팩토링 전략. 레드 스레드 작업에는 전문화된 TOGAF 페르소나를 선호합니다. |
| ... | -
---
## 단일 게이트, 단일 진실 공급원 (Single Gate, Single Sources of Truth)
`scripts/verify.sh`가 유일한 강제 적용 진입점입니다. 네 가지 모드가 있습니다: `spec`(기본값), `plan`, `tests`, `all`.
| Source of truth | 생성된 아티팩트 | 불일치 감지기 (Drift detector) |
|---|---|
| `skills/*/SKILL.md` + `optional-skills/*/SKILL.md` 프런트매터 | `skills.md` | `verify.sh spec` |
| ... | -
만약 진실 공급원 중 어느 것이 변경되면, 게이트는 아티팩트를 자동 재생성하거나 명확하게 실패합니다. 조용한 불일치는 없습니다.
---
## 헬퍼 스크립트 (Helper Scripts)
`scripts/`의 모든 내용은 `${DOJO_ROOT:-…}`을 준수하여, 어느 작업 디렉토리(cwd)에서든 작동하며 다중 인스턴스 프로필을 지원합니다.
| 스크립트 | 용도 |
|---|---|
| [scripts/init.sh](./scripts/init.sh) | 첫 클론 시 `tasks/{todo,lessons}.md`를 구성합니다 |
| ... |
```bash
bash scripts/init.sh # 리포지토리에 dojo 초기화
bash scripts/verify.sh # PR 제출 전 단일 게이트 실행
bash scripts/regen-skills-index.sh # skills.md + bundled-manifest.txt 재구축
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
슬래시 명령어 (Slash Commands)
모든 스킬과 페르소나는 발견 가능한 GitHub Copilot 슬래시 명령어로도 노출됩니다. scripts/regen-prompts.sh는 각 스킬 및 에이전트별로 .github/prompts/ 아래에 프롬프트 앳(prompt shim)을 생성하므로, Copilot Chat에서 다음과 같이 입력할 수 있습니다:
/dojo-debugging # 디버깅 스킬 로드 및 적용
/dojo-plan-before-code # 계획 스킬 로드 및 적용
/dojo-agent-architect # Architect 페르소나 채택
...
이 앳들은 자동 생성되며(수동 편집 불가), skills.md와 동일한 게이트에 의해 동기화됩니다: verify.sh는 드리프트(drift)가 발생하면 경고하고, tests/test_prompts.py는 이들이 오래되었을 경우 CI를 실패시킵니다. 두 파이프라인 앳(/dojo-sprint, /dojo-swarm)은 scripts/pipeline.tsv로부터 생성됩니다. 스킬이나 페르소나를 추가하거나 이름을 변경한 후에는 다음 명령어로 재구축합니다:
bash scripts/regen-prompts.sh
bash scripts/regen-prompts.sh --check
요구 사항 (Requirements)
bash (Git for Windows는 Windows 호스트에서 작동) 및 표준 POSIX 도구.
jq — curator.sh와 lesson-updater.sh에서 사용됩니다. Windows의 경우: winget install jqlang.jq.
- Python 3.10 이상 (선택 사항)은
cli/dojo_cli/ CLI 및 --profile 다중 인스턴스 지원용입니다.
Curator + Telemetry
scripts/curator.sh는 .dojo/skill-usage.json (gitignore 대상)을 읽고, active → stale → archived 라이프사이클을 강제하며, 실행별 보고서와 tarball 백업 파일을 작성합니다. v1.1은 데몬(daemon)을 추가하지 않고 hermes-agent의 자체 개선 패턴을 포팅했습니다.
bash scripts/curator.sh status
bash scripts/curator.sh pin debugging
bash scripts/curator.sh transition --dry-run
...
유휴 기반 트리거 (Idle-based trigger) (hermes 스타일 — 에이전트가 활동을 멈췄을 때만 작동):
bash scripts/curator-tick.sh
bash scripts/curator-tick.sh --force --dry-run
pwsh scripts/curator-tick.ps1
이를 셸 초기화(shell init), pre-commit hook, 또는 예약 작업에 연결하세요. 설정값은 .dojo/curator.env에 있습니다 (DOJO_CURATOR_STALE_DAYS, DOJO_CURATOR_ARCHIVE_DAYS, DOJO_CURATOR_INTERVAL_HOURS, DOJO_CURATOR_MIN_IDLE_HOURS, DOJO_CURATOR_BACKUP_KEEP, DOJO_CURATOR_REPORT_KEEP).
3단계 출처 보호 장치 (Three-layer provenance guard). 번들된 스킬은 절대 자동 보관(auto-archived)될 수 없습니다. 세 가지 확인 사항 중 하나라도 스킬이 모든 자동 전환에서 제외되도록 합니다:
- SKILL.md의 프런트매터에
created_by: human 포함.
.dojo/bundled-manifest.txt 내 폴더 이름 (재실행 시 regen-skills-index.sh에서 재생성됨).
- 사용량 사이커(usage sidecar) (
bash scripts/curator.sh pin <name>)에 pinned: true 포함.
오직 에이전트가 작성하고, 고정되지 않았으며(unpinned), 번들링되지 않은(un-bundled) 스킬만이 '보관됨(archived)' 상태에 도달할 수 있습니다. 그리고 설령 그렇게 되더라도
여러 프로젝트를 동시에 진행하고 계신가요? 각 프로필은 ~/.dojo/profiles/<이름>/ 아래에 자체적인 skills/, tasks/, .dojo/ 디렉토리를 갖습니다:
dojo --profile work status
dojo --profile experiment menu
DOJO_ROOT는 자동으로 내보내지므로 모든 셸 스크립트와 verify.sh 게이트가 올바른 루트를 기반으로 작동합니다.
Memory Vault 🧠
memory/ 디렉토리는 에이전트의 **영구 지식 그래프(persistent knowledge graph)**입니다. 구조화되고, 연결되며, 질의할 수 있습니다. 이는 Obsidian 같은 도구가 강력한 기능을 구현하는 방식처럼 평면 파일 메모리를 대체하며, 일반 마크다운과 스크립트로 구현되어 모든 에이전트가 사용할 수 있습니다.
무엇을 대체하는가
| Obsidian 기능 | Dojo 등가물 |
|---|
| 위키 링크 + 그래프 뷰 | scripts/link-index.sh → .link-graph.json + 자동 역링크 |
| ... | |
Vault 구조