update-projectlisted
Install: claude install-skill kangraemin/ai-knowledge
# /update-project
프로젝트의 살아있는 문서 `PROJECT.md`를 만들거나 최신 작업을 반영해 업데이트한다.
워크로그가 "내가 뭘 했나"를 기록한다면, PROJECT.md는 "프로젝트가 어떻게 생겼나"를 담는다.
---
## PROJECT.md 포맷
```markdown
# [프로젝트 이름]
## 이게 뭔가
한 줄 설명
## 왜 만들었나
개발 동기, 해결하려는 문제
## 구조
폴더/파일 구조 + 각 역할 간략히
## 기술 스택
주요 기술 선택과 이유
## 주요 결정들
- 결정 내용: 이유
## 해결한 문제들
- 문제: 어떻게 해결했나
## 지금 상태
현재 뭐가 됐고 뭐가 안 됨, 다음에 알아야 할 것
```
---
## 실행 흐름
### Step 1: PROJECT.md 존재 여부 확인
프로젝트 루트에 `PROJECT.md`가 있는지 확인한다.
---
### Step 2A: PROJECT.md 없을 때 — 생성
1. 프로젝트 코드를 훑는다:
- `README.md`, `package.json`, `pyproject.toml`, `Cargo.toml` 등 메타파일 읽기
- 루트 디렉토리 구조 파악 (`ls` 또는 Glob)
- `git log --oneline -10`으로 최근 작업 흐름 파악
2. 파악한 내용으로 각 섹션 초안 작성
3. 코드만으론 알 수 없는 항목(왜 만들었나, 주요 결정 이유 등)은 사용자에게 자연스럽게 물어봄
- 한 번에 몰아서 묻지 않고 섹션 단위로 확인
4. 완성되면 프로젝트 루트에 `PROJECT.md` 생성
5. 생성 완��� 후 내용 요약해서 사용자에게 보여줌
---
### Step 2B: PROJECT.md 있을 때 — 갭 분석 후 업데이트
1. 최근 작업 파악:
```bash
git log --oneline -20
git diff HEAD~5..HEAD --name-only
```
2. 현재 `PROJECT.md` 읽기
3. 갭 분석:
- 최근 커밋/변경 중 PROJECT.md에 반영 안 된 내용 추출
- 새 기능, 구조 변경, 해결한 문제, 기술 스택 변경 등
4. **갭이 있으면**: 구체적으로 어떤 내용을 어느 섹션에 추가할지 제안
```
이번 작업에서 PROJECT.md에 반영 안 된 내용:
- [주요 결정들] 섹션: ...
- [해결한 문제들] 섹션: ...
추가할까?
```
5. **갭이 없으면**: "PROJECT.md 최신 상태입니다." 출력
6. 승인 시 해당 섹션만 업데이트 (나머지는 그대로 유지)
---
## 톤
팀원한테 설명하듯 대화체로. "구현하였습니다" 같은 공문서 투 금지.
"~해서 이렇게 됨", "~때문에 이 방식 선택" 같은 자연스러운 서술.