| name | new-project |
| description | 코드베이스에 새 프로젝트를 추가하는 skill. "새 프로젝트 만들어줘", "프로젝트 추가", "프로젝트 생성", "new project" 등 프로젝트 생성 관련 요청에 트리거된다. 프로젝트 목적과 담당자(DRI)를 포함한 자연어 프롬프트를 받아 처리한다. |
New Project — 프로젝트 생성
사용자의 자연어 프롬프트에서 프로젝트 목적과 담당자를 파악하여, 프로젝트 디렉토리를 생성한다.
디렉토리 구조
new-project/
├── SKILL.md
└── scripts/
├── preflight.py # 사전 정보 수집 (read-only)
└── create_project.py # 프로젝트 생성 (write)
모든 스크립트는 <skill-directory>/scripts/ 경로에 있다. 실행 시 skill 디렉토리의 절대 경로를 확인하여 사용한다.
Invariants
- DRI는 반드시
org-info/crew.json에 존재하는 멤버여야 한다 — 검증 없이 생성하지 않는다
- project ID는 kebab-case이며 기존 프로젝트와 중복되지 않아야 한다
- 프로젝트 생성 시
projects/{project-id}/AGENTS.md를 반드시 함께 생성한다
org-info/crew.json의 DRI driProjects 필드를 반드시 업데이트한다
- 디렉토리 유형(contents/sessions/logs)은 사용자에게 확인받은 뒤 결정한다
플로우
Step 1. 프롬프트 파싱
사용자 프롬프트에서 다음을 추출한다:
| 필드 | 예시 | 필수 |
|---|
| 프로젝트 목적/설명 | 뉴스레터에 발행될 컨텐츠들을 관리 | Y |
| 담당자 (DRI) | 홍길동 | Y |
| project_id | newsletter-contents | N (자동 생성) |
| 일회성 여부 | 세미나, 외부 강연, 단발성 이벤트 등 | N (기본: 일반 프로젝트) |
일회성 프로젝트(세미나, 외부 강연, 단발 이벤트 등)는 one-time-projects/ 하위에 생성한다.
일반 프로젝트(지속 운영)는 기존처럼 projects/ 하위에 생성한다.
누락된 필수 정보가 있으면 사용자에게 물어본다.
Step 2. Preflight — 사전 정보 수집
python3 <skill-dir>/scripts/preflight.py \
--project-root <project-root> \
--crew-query "<담당자 이름 또는 별칭>" \
[--project-id "<project-id>"] \
[--base-dir "one-time-projects"]
출력 JSON에서 세 가지를 확인한다:
2-1. DRI 검증 (crew)
found: true → 확정. 사용자에게 "DRI: {name} ({id})" 표시
found: false → candidates 목록을 보여주고 선택 요청
2-2. Project ID 검증 (project_id)
- 사용자가 project_id를 지정하지 않은 경우: 프로젝트 설명에서 영문 kebab-case ID를 생성하여 제안한다. 기존 목록(
existing)과 중복되지 않아야 한다.
available: true → 사용 가능
available: false → 다른 ID를 제안
2-3. Principles 목록 (principles)
사용 가능한 원칙 문서 목록이 반환된다. 생성하려는 프로젝트의 성격에 맞는 것들을 골라 사용자에게 제안한다.
Step 3. 프로젝트 유형 결정
프로젝트 설명을 분석하여 디렉토리 유형을 판별한다:
| dir-type | 패턴 | 적합한 프로젝트 |
|---|
contents | contents/{YYMMDD}_{title}/draft.md | 컨텐츠 제작 (SNS, 뉴스레터, 영상 등) |
sessions | sessions/{YYMMDD}_{title}/draft.md | 모임/세션 기록 (스터디, 독서모임 등) |
logs | logs/{YYMMDD}_{title}.md | 미팅/인터뷰/기록 중심 |
판별한 유형을 사용자에게 확인받는다.
Step 4. 추가 Frontmatter 필드 제안
모든 프로젝트는 root의 document frontmatter 규칙을 자동 상속한다 (author_id, created_at, status, project, project_docs_id).
프로젝트 성격에 맞는 추가 필드를 제안한다. 예시:
- 뉴스레터 프로젝트:
published_url, published_at, issue_number
- 이벤트/모임 프로젝트:
participants, event_date
- 외부 플랫폼 컨텐츠:
published_url, published_at
Step 5. 최종 확인
생성될 내용을 요약하여 사용자에게 보여주고 확인받는다.
Step 6. 프로젝트 생성
python3 <skill-dir>/scripts/create_project.py \
--project-root <project-root> \
--id "<project-id>" \
--description "<한 줄 설명>" \
--dir-type "<contents|sessions|logs>" \
--dri-id "<crew-id>" \
[--base-dir "one-time-projects"] \
[--frontmatter-fields '<JSON object>'] \
[--principles '<JSON array>']
이 스크립트가 한 번에 처리하는 작업:
{base-dir}/{project-id}/ 디렉토리 생성 (기본: projects/, 일회성: one-time-projects/)
{base-dir}/{project-id}/AGENTS.md 작성
- 컨텐츠 하위 디렉토리 생성
org-info/crew.json의 DRI driProjects에 project-id 추가
Step 7. 결과 보고
생성된 파일 목록과 AGENTS.md 내용을 사용자에게 보여준다.