Communitygithub.com

tuannv0069/claude-doc-genome

Claude Code 한 방 플러그인: AI 에이전트 문서화 시스템(CLAUDE.md + 규칙 + 에이전트 가이드)을 부트스트랩합니다.

claude-doc-genome란 무엇인가요?

이 스킬은 새로운 프로젝트에서 AI 에이전트가 사용할 문서화 시스템을 단 한 번의 명령으로 구축해주는 Claude Code 플러그인입니다. `init`, `update`, `check`, `promote` 네 가지 모드를 통해 프로젝트 생명주기 전반을 관리합니다. `init` 모드는 프로젝트 스택을 자동 탐지하고, 사용자와의 간단한 인터뷰를 통해 모듈을 선택한 후, 휴대용 규칙, 에이전트 가이드, 스킬 파일들을 배포하고 템플릿을 렌더링합니다. 이후 `update` 모드를 통해 중앙 번들에서 최신 휴대용 파일을 안전하게 병합할 수 있으며, 충돌이 있는 파일은 건드리지 않습니다. 마스터 저장소에서는 `check`로 번들과 실제 파일 간의 차이를 확인하고 `promote`로 변경 사항을 번들에 반영합니다. 결과물은 완전히 자체 유지보수 가능하며, 배포된 규칙과 에이전트 가이드에 따라 프로젝트 스스로 문서를 진화시킵니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add tuannv0069/claude-doc-genome

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

init-project

목적

휴대용 번들로 새 프로젝트의 에이전트 문서화 시스템을 한 번에 부트스트랩합니다. 초기화 후 프로젝트는 배포된 표준(doc-organization.md §8.3 결정 트리 + 휴대용 메타 표준)을 사용하여 자체 유지보수합니다. init은 프로젝트당 한 번 실행되며, update는 나중에 해당 프로젝트에서 다시 실행하여 번들에서 최신 휴대용 파일을 가져올 수 있습니다(3방향 안전 병합 — 승격되지 않은 로컬 편집을 절대 덮어쓰지 않음). check/promote는 번들 자체를 유지보수하며 이 마스터 저장소에서만 실행됩니다.

의존성

  • ./portable/rules/ — 7개의 휴대용 규칙(항상 로드됨 + 경로 범위)
  • ./portable/agent-guide/ — five-why.md, markdown.md, mermaid.md, orchestration-policy.md, worktree.md (docs/agent-guide/general/에 배포)
  • ./portable/skills/ — skill-designer/, skill-writer/, document-writer/ (전체 트리)
  • ./portable/agents/ — skill-writer-auditor.md
  • ./templates/ — CLAUDE.md.tpl, agent-guide/index.md.tpl, docs/index.md.tpl
  • ./VERSION — 번들 버전, 모든 승격 시 증가
  • scripts/update.mjs (저장소 루트) — update 모드용 엔진(3방향 번들→실행 중 병합); scripts/sync-version.mjs — 버전 단일 소스 동기화

모드

호출실행 위치동작
/init-project새 프로젝트번들 배포 (아래 워크플로우)
/init-project check마스터 저장소§맵에 따라 번들 ↔ 실행 중 파일 sha256 비교 → 차이 보고
/init-project promote마스터 저장소매핑된 모든 파일에 대해 실행 중 → 번들 복사, VERSION 증가
/init-project update초기화된 프로젝트최신 휴대용 파일 번들 → 실행 중, 3방향 안전 (매니페스트 ↔ 실행 중 ↔ 번들); 충돌 건너뜀 (아래 워크플로우)

워크플로우 (init — 새 프로젝트)

  1. 프로젝트 스캔: ## module matrix 신호 열에 따라 스택 + 선택적 모듈 감지. 출력: 제안된 모듈 세트 + 발견된 슬롯 값.
  2. 인터뷰: 제안된 모듈 세트 확인; 스캔 불가능한 슬롯 질문 (사용 중인 개발 포트, 범위 소유권, 문서 언어). 답변 불가능 슬롯 → TODO 마커 남기고, 값을 절대 임의로 생성하지 않음; 모듈 불확실 → 건너뜀.
  3. portable/ 그대로 복사: portable/rules/* → .claude/rules/; portable/agent-guide/* → docs/agent-guide/general/; portable/skills/* → .claude/skills/; portable/agents/* → .claude/agents/.
  4. 템플릿 렌더링: 인터뷰에서 얻은 {{slots}}를 CLAUDE.md, docs/agent-guide/index.md, docs/index.md에 채움; 누락된 슬롯 → TODO 마커 유지.
  5. 선택적 규칙 생성: 확인된 각 선택적 모듈에 대해 rule-writing-standards에 따라 프로젝트에 맞춘 규칙을 docs/agent-guide/general/에 작성하고, 같은 단계에서 트리거 라인을 CLAUDE.md에 추가 — 하드코딩된 템플릿 없음.
  6. 매니페스트 작성 .claude/init-manifest.json: { version, deployedAt, files:[{path,sha256}], templates:[{path,sha256}], modules:[...] } (출처; files[]는 update에서 3방향 드리프트 감지를 위해 읽음 — sha256 정확히 유지; templates[]는 각 렌더링된 파일이 빌드된 .tpl sha를 기록 — path = templates/에 상대적인 템플릿 경로 (예: CLAUDE.md.tpl), update에서 템플릿이 배포 이후 변경되었을 때 WARN을 발행하는 데 사용).
  7. 검증: 모든 배포 파일이 올바른 계층에 있는지; 모든 규칙/에이전트-가이드 파일이 scope: 프론트매터를 가지고 있는지; CLAUDE.md가 토큰 예산 내에 있는지; 모든 행동에 영향을 미치는 온디맨드 파일에 트리거 라인 또는 라우터 항목이 있는지 (도달 가능성, 파일→트리거); 모든 MUST Read 트리거가 CLAUDE.md에서 배포된 파일로 연결되는지 (도달 가능성, 트리거→파일 — 죽은 트리거 없음); 의도적인 TODO 마커를 제외하고 렌더링되지 않은 {{slot}}이 없는지. 완료 = 체크리스트 통과 + 매니페스트 기록됨.

번들 ↔ 실행 중 맵 (check / promote — 마스터 저장소; update — 초기화된 프로젝트)

번들 경로실행 중 경로
portable/rules/*.claude/rules/*
portable/agent-guide/*docs/agent-guide/general/*
portable/skills/*.claude/skills/*
portable/agents/*.claude/agents/*
  • check: 각 쌍 sha256 → 불일치 목록. 기본 업데이트 방향은 실행 중 → 번들 (promote); 실행 중을 먼저 수정한 후 승격.
  • promote: 매핑된 모든 파일에 대해 실행 중 → 번들 복사, 그런 다음 node scripts/sync-version.mjs set <x.y.z>를 통해 버전 증가 (정식 VERSION 기록 + .claude-plugin/* 및 README 배지에 미러링).

워크플로우 (update — 초기화된 프로젝트)

방향 번들 → 실행 중 (promote의 반대). 그대로 복사된 휴대용 세트에만 영향을 미침; 렌더링된 표현형(CLAUDE.md, index.md, 프로젝트 작성 가이드)은 범위 밖입니다. 설치된 플러그인 내부의 경로로 update.mjs를 호출합니다 (플러그인이 자신의 위치에서 번들을 찾음); --project는 초기화된 프로젝트 루트이며 기본값은 현재 디렉터리입니다.

  1. 드라이런: node <plugin>/scripts/update.mjs --project <project-root> → ADD / UPDATE / CONFLICT 계획 및 버전 델타 검토.
  2. 먼저 모든 CONFLICT 해결 — 충돌 = 배포 이후 로컬에서 편집된 휴대용 파일. 업스트림으로 승격 (개선 사항이 번들에 들어가도록) 또는 검토 후 수동으로 덮어씀. 절대 블라인드 덮어쓰기 금지.
  3. 적용: node <plugin>/scripts/update.mjs --apply --project <project-root> → ADD + UPDATE 작성, 충돌 건너뜀, 매니페스트 version + files[].sha256 갱신.
  4. 추가 및 제자리 수정만 — update는 절대 삭제하지 않음: 번들에서 제거된 파일은 프로젝트에 남아 있고, 로컬에서 삭제된 파일은 다시 추가됨. 필요시 수동으로 정리.
    • templates/* (CLAUDE.md, index.md — 렌더링된 표현형)는 절대 덮어쓰지 않음: 해당 슬롯은 프로젝트별 값을 보유함. update는 배포 이후 .tpl이 변경되었을 때만 WARN을 발행함 (sha vs manifest.templates[]); 수동으로 다시 렌더링 (.tpl과 실행 중 파일 비교, 구조적 변경 사항 재적용, 슬롯 값 유지) 또는 /init-project 재실행. WARN은 다음 init이 템플릿 sha를 다시 기록할 때까지 지속됨.
  5. 종료 코드: 0 = 최신 상태이거나 깔끔하게 적용됨; 1 = 충돌이 남아 있음; 2 = 설정 오류 (매니페스트 없음 → 프로젝트가 이 플러그인으로 초기화되지 않음).

모듈 매트릭스

모듈포함 항목배포 시기스캔 신호 (예시, 완전하지 않음)
핵심portable/* (4개 그룹 모두) + 3개 템플릿항상—
런타임agent-guide/general/local-runtime.md + CLAUDE.md 트리거 (스캔에 따라 스킬이 작성, 5단계)프로젝트가 자체적으로 dev 서버를 실행package.json dev/start 스크립트, launchSettings.json, vite/next/dotnet/django/cargo 설정
e2eagent-guide/general/<도구>.md (감지된 도구 이름으로) + CLAUDE.md 트리거 (5단계)프로젝트에 E2E 브라우저 테스트 존재playwright/cypress/selenium 의존성, e2e/ 폴더, E2E 설정
  • 선택적 모듈은 스캔이 확인하거나 사용자가 인터뷰에서 확인한 경우에만 배포됨; 불확실 → 건너뜀.
  • Git: 최소 보호 장치 (요청 시에만 커밋, 절대 푸시 금지)는 CLAUDE.md.tpl에 포함됨; 상세 정책은 scope: project — 프로젝트가 필요 시 docs/agent-guide/general/git.md를 작성하고, 같은 커밋에서 트리거 라인을 추가함 (도달 가능성 — 존재하지 않는 파일을 가리키는 트리거 금지).
  • 나중에 건너뛴 모듈이 필요해지면 → 프로젝트가 배포된 표준에 따라 규칙을 직접 작성함. 새 모듈은 실제 프로젝트에서 패턴이 검증된 후에만 promote를 통해 번들에 들어감.

독립성 규칙

  • 스킬은 프로젝트당 한 번 실행됨; 배포된 파일은 이 마스터 저장소의 어떤 파일도 참조하지 않음; 프로젝트 규칙은 이 스킬을 절대 언급하지 않음.
  • 위의 번들↔실행 중 맵을 제외하고 자체 포함됨; 이 맵은 check/promote를 위해 마스터 저장소에서만 실행됨.

예시

✅ 스캔 결과 package.json에 "dev" 스크립트 발견 → 런타임 모듈 제안 → 5단계에서
   general/local-runtime.md 작성 + CLAUDE.md에 "self-run dev 서버 → MUST Read ..." 추가
❌ 스캔 신호도 인터뷰 확인도 없이 런타임 모듈 배포 (추측된 모듈)

✅ /init-project check → "불일치: portable/rules/doc-organization.md != .claude/rules/doc-organization.md"
   → 실행 중 파일 먼저 수정 → /init-project promote
❌ portable/*를 직접 편집한 후 새 프로젝트 초기화 (번들이 실행 중 파일과 조용히 분기됨)

참조 파일

  • 번들: ./portable/**
  • 템플릿: ./templates/**
  • 버전: ./VERSION

관련 스킬