doc-work-archivelisted
Install: claude install-skill Finfra/fpm
# doc-work-archive
nPTiR 산출물(plan/task/report)이 `_doc_work/` 하위에 누적되면 탐색 비용이 증가함. 완료된 이슈의 산출물을 `_doc_work/z_done/` 로 이동하고 영향받는 모든 참조를 자동 갱신함.
## 트리거
다음 표현이 감지되면 본 스킬을 발동함:
- "doc-work-archive", "/doc-work-archive"
- "_doc_work 정리", "plan/task/report 아카이브"
- "완료된 이슈 산출물 정리"
## 입력 조건
- 필수: nPTiR 루트(가장 가까운 `Issue.md` 보유 디렉토리) 탐지 가능해야 함
- 선택 인자: 특정 이슈 번호 지정 (ex: `Issue2,Issue3`) — 미지정 시 ✅ 완료 섹션 전체
## 종료 조건
- 완료된 이슈의 산출물이 `_doc_work/z_done/` 하위로 전부 이동됨
- `Issue.md`의 `* plan:`/`* task:`/`* report:` 경로가 신규 위치로 갱신됨
- 이동된 파일의 frontmatter `plan:`/`task:` 상호 참조가 신규 위치로 갱신됨
- 요약 보고 출력 후 종료
**자동으로 다음 단계 진행 금지** — 이슈 상태 변경(완료 이동), git commit 등은 별도 커맨드(`/issue-closer-g`, 수동 commit)로 처리.
## 워크플로우
### 1단계: nPTiR 루트 탐지
다음 순서로 1회씩 시도하고 첫 성공 시 확정. 전부 실패 시 사용자에게 경로 확인 요청.
1. 현재 작업 디렉토리에서 상위로 `Issue.md` 탐색 (`git rev-parse --show-toplevel` 경계까지)
2. 1단계 실패 시: CWD 또는 상위 3단계까지에서 `*.xcodeproj` 발견 → 그 부모 디렉토리(또는 형제 디렉토리 `prj25`, `prj26` 등)에서 `_doc_work/` 보유 폴더 탐색
3. 2단계 실패 시: 사용자에게 nPTiR 루트 경로 직접 입력 요청 후 중단
탐지 결과:
- `NPTIR_ROOT`: `Issue.md` 위치
- `DOC_WORK`: `$NPTIR_ROOT/_doc_work`
### 2단계: 완료 이슈 파싱
`$NPTIR_ROOT/Issue.md`에서 `✅ 완료` 섹션 블록을 추출하고, 각 이슈 항목에서 다음 패턴을 수집:
```
## Issue{N}: ... ✅
* plan: `_doc_work/plan/{name}_plan.md` ← 있을 때만
* task: `_doc_work/tasks/{name}_task.md` ← 있을 때만
* report: `_doc_work/report/{name}_issue{N}_report.md` ← 있을 때만
```
수집 항목: `(issue_number, kind, src_path)` 튜플 목록. 각 `src_path`에 대해 실제 파일 존재 여부 확인.
**필터**:
- 이미 `_doc_work/z_done/` 하위 경로 → 스킵 (재아카이브