From project-init
새 프로젝트를 시작할 때 기본 지침을 자동으로 설정합니다. 사용자가 "새 프로젝트 시작", "프로젝트 초기화", "레포 새로 만들기", "initialize a project", "set up a new repo"처럼 새 프로젝트를 준비하려는 의도를 보이거나, 현재 디렉토리가 비어 있고 `CLAUDE.md`가 없을 때 자동으로 활성화됩니다. 각 카테고리의 지침 생성은 형제 스킬(`*-rule-creator`)에 위임합니다.
How this skill is triggered — by the user, by Claude, or both
Slash command
/project-init:bootstrapThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
현재 작업 디렉토리를 새 프로젝트로 부트스트랩합니다. 이 스킬은 **오케스트레이터**로서 `CLAUDE.md`를 생성하고, 각 카테고리의 지침 파일은 같은 플러그인의 **형제 생성기 스킬**을 통해 `rules/` 아래에 생성합니다.
현재 작업 디렉토리를 새 프로젝트로 부트스트랩합니다. 이 스킬은 오케스트레이터로서 CLAUDE.md를 생성하고, 각 카테고리의 지침 파일은 같은 플러그인의 형제 생성기 스킬을 통해 rules/ 아래에 생성합니다.
루트 확인. 현재 작업 디렉토리가 의도한 프로젝트 루트인지 확인합니다. 비어 있거나 거의 비어 있으면 바로 2단계로 진행합니다.
이미 CLAUDE.md가 있거나 rules/ 하위에 일부 카테고리 파일이 존재하는 등 기존 초기화 흔적이 보이면, 곧바로 진행하지 않고 아래 절차로 사용자에게 확인합니다.
먼저 "남은 카테고리 집합"을 계산합니다 — 3단계에서 도출될 전체 카테고리 목록 중 아직 카테고리 산출물이 존재하지 않는 것들. 카테고리 존재 판정은 평면 파일 rules/<name>.md와 디렉터리 카테고리 rules/<name>/ 두 형태 모두를 "이미 존재"로 간주합니다 — 형제 생성기 스킬이 평면 파일을 만드는 카테고리(예: context)와 sub-룰 디렉터리를 만드는 카테고리(예: engineering)가 공존하기 때문입니다. 두 형태 모두 부재일 때만 "남은 카테고리"로 분류합니다. 그 결과에 따라 AskUserQuestion(single-select)의 옵션 셋이 달라집니다.
남은 집합이 1개 이상일 때 (3옵션):
남은 집합이 비어 있을 때 (2옵션, 모든 카테고리가 이미 존재):
CLAUDE.md 생성 (이미 존재하지 않는 경우에만). 같은 디렉토리의 CLAUDE.md 전체를 프로젝트 루트의 CLAUDE.md에 그대로 기록합니다. 프로젝트 세부 정보(도메인, 스택 등)는 이 파일에 넣지 않고 각 지침 파일(rules/<category>.md)로 분리합니다.
생성할 카테고리 확인. 사용 가능한 형제 *-rule-creator 스킬을 열거하고 접미사 -rule-creator를 제거해 카테고리 목록을 런타임에 도출합니다 (예: git-rule-creator → git). 1단계에서 "남은 카테고리 중 선택해서 추가"를 고른 경우, 이 목록에서 이미 산출물이 존재하는 카테고리를 제외합니다 — 1단계와 동일하게 평면 파일 rules/<name>.md와 디렉터리 카테고리 rules/<name>/ 두 형태 모두를 "이미 존재"로 간주합니다. 목록은 하드코딩하지 않습니다.
열거 방법. 이 SKILL.md가 위치한 디렉토리의 부모(즉, 이 스킬의 형제 스킬들이 있는 skills/ 디렉토리)에서 *-rule-creator로 끝나는 디렉토리만 추립니다. 예: 이 파일이 <plugin-root>/skills/bootstrap/SKILL.md라면 <plugin-root>/skills/를 스캔하여 git-rule-creator/, bash-rule-creator/, … 같은 디렉토리를 찾습니다. 플러그인 설치 경로를 추측하거나 작업 디렉토리/홈 디렉토리를 전역 탐색하지 않습니다.
도출한 목록은 AskUserQuestion 호출 직전 일반 메시지 프리앰블로 한 번 출력합니다 (예: 생성할 카테고리 후보: git, bash, security, …). 옵션의 preview 필드는 사용하지 않습니다 — preview는 mockup·코드 스니펫처럼 시각적 비교가 필요한 경우용이며, 단순 카테고리 나열에는 적합하지 않습니다.
그 다음 AskUserQuestion(single-select)로 확인합니다:
CLAUDE.md만 두고 rules/ 카테고리 지침은 생성하지 않습니다. 4단계를 건너뛰고 5단계 요약으로 진행하며, 나중에 개별 *-rule-creator 스킬로 추가할 수 있음을 안내합니다."일부만 선택" 분기에서는 각 multiSelect 질문에 카테고리를 최대 4개까지만 넣습니다 (스키마 options.maxItems: 4 제약). 카테고리가 4개를 넘으면 반드시 여러 질문으로 분할합니다. 체크된 카테고리만 실행 대상으로 삼습니다. 사용자가 어떤 카테고리도 체크하지 않은 채 응답한 경우, "아무것도 생성하지 않음"과 동일하게 처리합니다.
한 AskUserQuestion 호출에는 최대 4개의 질문을 담을 수 있습니다. 도출된 카테고리 수가 16개 이하면 한 호출로, 16개를 초과하면 여러 호출로 나눠 순차적으로 선택을 받습니다. 옵션을 번들링하거나 일부 카테고리를 누락해서는 안 됩니다.
지침 생성기 스킬 호출. 3단계에서 선택된 카테고리에 해당하는 형제 *-rule-creator 스킬만 호출하여 각 카테고리의 rules/<category>.md를 생성합니다. 각 생성기는 프로젝트 스캔과 파일 기록을 스스로 수행하며, 이미 존재하는 파일은 덮어쓰지 않고 사용자에게 확인합니다.
domain 카테고리는 메타 지침 파일만 생성합니다. 실제 도메인 내용(용어집·엔티티·불변식 등)은 사용자 입력이 필요하므로 자동 생성하지 않고, 필요한 주제 스켈레톤 생성을 사용자에게 제안합니다.요약. 생성된 파일 트리와 다음 단계 제안을 간단히 출력합니다. 선택에서 빠진 카테고리가 있으면, 나중에 해당 *-rule-creator 스킬을 개별 호출해 언제든 추가할 수 있음을 한 줄로 안내합니다.
CLAUDE.md 하나뿐입니다. rules/<category>.md는 각 생성기 스킬이 책임지고 만듭니다..gitignore, README.md, .claude/settings.json, 언어별 설정 파일 등은 이 스킬의 범위 밖입니다.CLAUDE.md에는 Claude 사용 지침만 넣습니다. 프로젝트 세부 정보는 rules/ 아래로 분리합니다.git init, 의존성 설치, 패키지 매니저 실행 등 파일 생성 외 작업을 하지 않습니다.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub ch-courtesy/claude-plugins --plugin project-init