이 페이지는 GEODE 런타임의 SkillRegistry와 scaffold 측 .claude/skills/의 차이, 그리고 v0.71+에서 패키지화된 core/skills/reports/ 구조를 정리합니다.
두 종류의 스킬
| 구분 | 위치 | 역할 | 발견 시점 |
|---|---|---|---|
| Runtime skills | core/skills/ | 실행 중인 GEODE 에이전트가 호출하는 능력 (예: report 템플릿) | bootstrap에서 SkillRegistry가 로드 |
| Scaffold skills | .claude/skills/ | GEODE를 빌드할 때 Claude Code가 사용하는 능력 (예: code review, gitflow) | Claude Code session 시작 시 자동 |
SkillRegistry 구현 (core/skills/skill_registry.py)
SkillRegistry는 5계층 우선순위에 따라 디렉토리를 walk하며 SKILL.md 파일을 발견합니다. 파일은 frontmatter (YAML) + markdown 본문으로 구성됩니다.
--- name: my-skill description: 한 줄로 무엇을 하는 스킬인지 trigger_keywords: [keyword1, keyword2] priority: 100 --- (본문 markdown. 에이전트가 system prompt L3에 주입함)
5계층 발견 (lower wins on conflict)
- bundled — 코드와 함께 배포 (
core/skills/또는 plugin). bootstrap. - org — 조직 공유 (
~/.geode/org/skills/). 다수 프로젝트 공통. - user — 사용자 (
~/.geode/skills/). 개인 설정. - project — 현 프로젝트 (
./.geode/skills/). cwd 기반. - session — 1회용 (실행 중 동적 추가). 가장 높은 우선순위.
같은 name의 스킬이 여러 계층에 있으면 위쪽이 이깁니다. session ▸ project ▸ user ▸ org ▸ bundled.
Reports 패키지 (v0.71+)
core/skills/reports/는 분석 출력의 template을 모듈로 패키지화한 것입니다. 각 모듈은 특정 출력 형식의 schema + 어셈블 로직을 갖습니다.
| 모듈 | 역할 |
|---|---|
cross_llm.py | Cross-LLM 교차 검증 출력. |
generator.py | 구조화된 산출물을 조합한 최종 보고서 생성. |
models.py | 공유 데이터 모델 (Pydantic). |
발화되는 hook 이벤트
SESSION_START시 SkillRegistry 로드.- 스킬이 매칭되어 system prompt에 주입되면
PROMPT_ASSEMBLEDpayload의fragments_used에 포함.
스킬 작성 (3 step)
- 적절한 tier 디렉토리에
SKILL.md생성 (예:~/.geode/skills/my-skill/SKILL.md). - frontmatter에
name,description,trigger_keywords작성. - 본문 markdown 작성 (보통 200-500단어).
등록 시점: 다음 bootstrap 또는 session 재시작 시 자동 인식.
참조: Context System (5-layer prompt assembly에서 skill이 L3로 주입), wiki/concepts/geode-prompt-assembly.md, portfolio §3 Recursion (scaffold 측 skill discovery와 mirror).