adopt 스킬 — 외부 마크다운 wiki 통합 워크플로
다른 도구(Notion·HackMD·외부 편집기·직접 작성)에서 만들어진 마크다운 파일을 wiki 체계로 흡수하는 절차. 핵심은 저작 주체 판별로, 이에 따라 처리 경로가 완전히 달라진다.
왜 만들었나
/ingest 스킬은 외부 URL(웹 아티클·YouTube·PDF)을 wiki/sources/로 처리하도록 설계되어 있다. 그러나 다음 시나리오는 커버되지 않았다:
- 이미 마크다운으로 작성된 외부 자료 (Notion export, 공유 문서)
- 사용자가 직접 작성한 개념 정리·커리큘럼·분석 노트
- 다른 Obsidian vault에서 이전하는 페이지
raw/에 잘못 놓인 내부 문서
이 갭을 메우기 위해 /adopt 스킬이 신설되었다.
설계 결정
스킬명: import → adopt
초기 이름 후보는 import였으나 Python 예약어와의 혼동 가능성을 이유로 adopt로 변경. “wiki가 외부 문서를 채택·수용한다”는 의미가 더 명확하다.
핵심 분기: 케이스 A vs 케이스 B
단순히 파일을 wiki에 추가하는 것이 아니라, 저작 주체에 따라 완전히 다른 경로를 밟는다.
| 구분 | 케이스 A (외부 자료) | 케이스 B (본인 저작) |
|---|---|---|
| 저작자 | 타인·외부 기관 | 사용자 본인 |
| raw/ 보관 | 필요 (원본 불변 원칙) | 불필요, 이주 후 제거 권고 |
| 산출 폴더 | wiki/sources/ | wiki/concepts/ · entities/ · insights/ · projects/ |
이 분기가 없으면 raw/ 불변 원칙과 충돌한다. 본인이 작성한 문서가 raw/에 들어가면 안 된다.
자동 판정 금지 원칙
파일명이나 내용으로 저작 주체를 추측하지 않고, 반드시 사용자에게 1줄 확인한다. 맥락 없이 판단하면 오분류 위험이 있다.
처리 흐름 (4단계)
Phase 0 저작 주체 판별 (사용자 확인 게이트)
└─ A: 외부 자료 B: 본인 저작
Phase 1 파일 분석 & 분류 대화
└─ 첫 tag 선택 → 대상 폴더 결정
└─ 300줄 초과 시 분할 검토
Phase 2 Frontmatter 재생성 & 슬러그 결정
└─ 기존 frontmatter 전면 교체 (Notion props 등 제거)
└─ wikilink 존재 검증 → 미매칭은 TODO callout
Phase 3 파일 배치
└─ A: raw/articles/ 보관 + wiki/sources/ 생성
└─ B: wiki/<폴더>/ 직행, raw/에 있었으면 삭제 권고
Phase 4 log.md (먼저) → wiki/index.md 갱신
주요 품질 규칙
insights/분류: 케이스 B에서만 허용,sources배열이 비어 있으면 경고 callout 추가projects/분류: CLAUDE.md 프로젝트 내용 제한 적용 (링크·상태·일정만, 실제 지식은 concepts/로 분리)- 수치·통계 포함 시
valid_as_of필수 - 양방향 링크 규칙 적용 (A→B 추가 시 B→A 역링크도 동시 추가)
- 슬러그 충돌 시
-v2suffix 또는 기존 파일 업데이트 중 선택
첫 테스트: raw/정규교과_커리큘럼_통합.md
2026-04-27 진행.
- 케이스: A (외부 자료 — 기관 제공 정규교과 커리큘럼)
- 처리:
raw/articles/2026-04-27-regular-curriculum-data-analysis-generative-ai.md보관 +wiki/sources/regular-curriculum-data-analysis-generative-ai.md생성 - 발견된 교차참조: Gen-1~Gen-6 학습목표 페이지, fastapi·docker entity와 직접 연결됨
- 원본 위치 문제:
raw/루트에 있던 파일 →raw/articles/로 정규화
관련 개념
- agentic-ai-curriculum — adopt 스킬이 처리한 커리큘럼 관련 개념
- regular-curriculum-data-analysis-generative-ai — 첫 테스트 소스