/wiki수집 — 외부 폴더 → INPUT raw md 변환·수집 절차
Procedure (절차)aiverifiedFri Apr 24

/wiki수집 — 외부 폴더 → INPUT raw md 변환·수집 절차

별칭: wiki수집 · Wiki Collect Command · INPUT 일괄 수집

#procedure#slash-command#INPUT#9001-900101#SNLW#SNLC#미션필터링

/wiki수집 — 외부 폴더 → INPUT raw md 변환·수집 절차

개요

본 프로젝트가 신설한 슬래시 커맨드. 외부 폴더의 흩어진 자료를 한 번에 스캔·필터·변환하여 90 입력 자료(INPUT)/ 하위에 raw md로 정착시킨다. 프로젝트 미션 적합성 필터링이 핵심 — 모든 파일을 가져오지 않고, 본 프로젝트(교회 사역 + AI 선용)에 부합하는 것만 채택.

입력 (Input)

  • 인자: 외부 폴더 절대 경로 (예: D:\Dropbox (개인용)\Code_차세대 AI 선용)
  • 본 프로젝트 CLAUDE.md (미션 키워드 추출용)
  • 사용자 승인 (dry-run 후)

처리 (Processing) — 10 Step

Step 1. 사전 확인

  • 현재 작업 디렉토리가 LLMWiki 프로젝트인지 (CLAUDE.md + 10 LLMwiki/WIKI_CLAUDE.md 존재)
  • 인자 폴더 존재·읽기 권한
  • 90 입력 자료(INPUT)/ 디렉토리 존재 (없으면 mkdir)

Step 2. 1차 필터 (확장자·노이즈)

  • 화이트리스트: .md .markdown .txt .docx .doc .pdf .hwp .hwpx .html .htm .epub .rtf .odt .pptx
  • 블랙리스트: 코드(.py .js .ts ...)·빌드·미디어·OS 메타·숨김 폴더(.git/ .obsidian/ node_modules/)

Step 3. 2차 필터 (키워드 매칭)

파일명 + 첫 200~500자 본문에 매칭:

  • 3축 엔지니어링: 프롬프트·컨텍스트·하네스
  • AI 도메인: AI·LLM·GPT·Claude·Gemini·생성형·인공지능
  • 사역 도메인: 사역·목회·설교·제자훈련·교회·신앙·신학·복음·선교·예배
  • 가드레일: 가드레일·guardrail·안전·윤리·분별·정체성
  • 선용: 선용·활용·도입·적용

매칭 ≥ 2 → 자동 채택 / 매칭 1 → LLM 판정 큐 / 매칭 0 → 자동 제외

Step 4. 3차 필터 (LLM 판정, 애매한 것만)

매칭 1개인 파일에 대해 LLM이 첫 1000자 읽고 accept / reject / unclear 판정.

Step 5. Dry-run 보고

사용자에게 테이블 출력: | # | 원본 | 형식 | 1차 | 키워드 | LLM | 결정 | 9001 | 900101 | 스캔/채택/제외/skip 카운트, 형식·카테고리 분포. 사용자 승인 받기 전 어떤 파일도 쓰지 않음.

Step 6. 카테고리 자동 분류 (9001 / 900101)

  • 중분류 (9001~9099): 소스의 1depth 폴더명 → 9001부터 등장 순서 + 한글명
    • Code_차세대 AI 선용/9001 차세대AI선용
  • 세분류 (900101~9001NN): 2depth 폴더명 → 중분류 번호 + 01부터 + 한글명
    • Code_차세대 AI 선용/00_지침서/9001 차세대AI선용/900101 지침서
  • 3depth 이하: 원본 폴더 계층 그대로 보존
  • 사용자가 dry-run에서 한글명 수정 가능

Step 7. md 변환

원본명령
.md/.txtUTF-8 변환 후 복사
.docx/.odt/.rtfpandoc <in> -o <out.md> --extract-media=_attachments/<rel>
.pdfpdftotext -layout 또는 pymupdf fallback
.hwp/.hwpxhwp5htmlpandoc
.htmlpandoc
.pptxpandoc 시도, 실패 시 _skipped/

도구 미설치 = fail-soft (해당 형식만 _skipped/, 나머지 진행)

Step 8. SNLW + SNLC 하이브리드 frontmatter 부착

각 변환된 md 상단에 YAML 삽입:

  • SNLW 필수 6: wiki_id: raw/<중분류>-<세분류>/<slug> · title · created · status: draft · visibility: private · subdomain
  • SNLW 권장: type: raw · aliases: [원본 한글] · tags · language: ko · version: 1 · last_edited_at
  • SNLC 메타 (raw staging 추적): capture_session · capture_source · original_format · converter · mutation_count: 0 · last_mutator: wiki수집
  • Tier: tier: raw · promoted_to_source_at: null

Step 9. _attachments/ 처리

pandoc --extract-media=_attachments/<중분류>/<세분류>/<slug>/로 추출. 본문에서는 상대경로 ![](_attachments/9001/900101/charter/img1.png) 유지.

Step 10. wiki/log.md 엔트리 append

세션 ID + 스캔/채택/제외 카운트 + 중분류 트리 + 변환 도구별 카운트 + 다음 단계 안내.

출력 (Output)

90 입력 자료(INPUT)/
├── 9001 [중분류 한글]/900101 [세분류 한글]/<원본 폴더 계층>/<slug>.md
├── 9002 [중분류 한글]/...
├── _attachments/9001/900101/<slug>/
├── _skipped/                            ← 변환 실패·도구 누락
└── README.md                            ← 자동 갱신

다음 단계는 procedure/source-promotion로 이어진다 (raw → sources/ 승격은 사람이).

통신 (Communication)

송신수신메시지형식
사용자/wiki수집폴더 경로 인자CLI
/wiki수집LLM 판정unclear 파일 검토 요청본문 1000자
/wiki수집사용자dry-run 테이블 + 승인 요청Markdown
/wiki수집wiki/log.md수집 엔트리 appendMarkdown

사용 예시

/wiki수집 "D:\Dropbox (개인용)\Code_차세대 AI 선용"
/wiki수집 "D:\Dropbox (개인용)\Code_Vibe Coding"

주의사항

  • 소스 폴더는 read-only — 절대 수정하지 않음
  • 이미 존재하는 INPUT 파일은 덮어쓰지 않음 (<slug>-2.md 접미사)
  • dry-run 사용자 승인 전 0 파일 쓰기
  • sources/ · wiki/는 이 커맨드가 건드리지 않음 (INPUT까지만)
  • 개인정보·민감정보 카드는 visibility: private 고정
  • SSOT는 LLMwiki_init/commands/wiki수집.md, 글로벌 복사본은 ~/.claude/commands/wiki수집.md

관련