adopt 스킬 — 외부 마크다운 wiki 통합 워크플로

다른 도구(Notion·HackMD·외부 편집기·직접 작성)에서 만들어진 마크다운 파일을 wiki 체계로 흡수하는 절차. 핵심은 저작 주체 판별로, 이에 따라 처리 경로가 완전히 달라진다.

왜 만들었나

/ingest 스킬은 외부 URL(웹 아티클·YouTube·PDF)을 wiki/sources/로 처리하도록 설계되어 있다. 그러나 다음 시나리오는 커버되지 않았다:

  • 이미 마크다운으로 작성된 외부 자료 (Notion export, 공유 문서)
  • 사용자가 직접 작성한 개념 정리·커리큘럼·분석 노트
  • 다른 Obsidian vault에서 이전하는 페이지
  • raw/에 잘못 놓인 내부 문서

이 갭을 메우기 위해 /adopt 스킬이 신설되었다.

설계 결정

스킬명: importadopt

초기 이름 후보는 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 역링크도 동시 추가)
  • 슬러그 충돌 시 -v2 suffix 또는 기존 파일 업데이트 중 선택

첫 테스트: 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/로 정규화

관련 개념