Sprint 000 전체 태스크 cc:완료 처리. 다음: Sprint 001 (스켈레톤 — TypeScript + XState + CLI) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64 lines
3.6 KiB
Markdown
64 lines
3.6 KiB
Markdown
# SPRINT-000 — 세이프티 네트 + 실패 감사 + 프로젝트 세팅
|
||
|
||
> **목표**: 기존 hanarang-harness 를 안전하게 보존하고, 실패 모드를 감사하고, hanarang-rails 의 계획 문서 뼈대를 세운다. 코드는 단 한 줄도 작성하지 않는다.
|
||
|
||
## Scope
|
||
|
||
- 기존 자산 보존 (push, archive, repo 가시성 전환)
|
||
- 실패 감사 문서화 (F1–F6)
|
||
- `.plans/` 계층 문서 세트 작성 (OVERVIEW, failure-audit, design/*, sprints/*, migration/*)
|
||
- Gitea 에 신규 repo 생성 + 초기 커밋
|
||
- Claude Code harness-setup init (CLAUDE.md, Plans.md, .claude/rules, hooks)
|
||
|
||
## Non-Goals
|
||
|
||
- package.json, src/, TypeScript 코드 — **Sprint 001 에서 시작**
|
||
- XState 머신 구현, orchestrator 구현
|
||
- 자매 spawn 로직
|
||
- 디스코드 브릿지 코드
|
||
|
||
## Tasks
|
||
|
||
| # | 내용 | DoD | Status |
|
||
|---|---|---|---|
|
||
| 0.1 | 기존 hanarang-harness dirty 파일 커밋 + 24커밋 push | `origin/main == HEAD` | cc:완료 |
|
||
| 0.2 | 중복 clone 삭제 + archive 이름 변경 | `hanarang-harness-archive` 존재, `openclaw-harness` 없음 | cc:완료 |
|
||
| 0.3 | Gitea `openclaw-harness` repo private 전환 | API 로 `private: true` 확인 | cc:완료 |
|
||
| 0.4 | Gitea `hanarang-rails` repo 생성 (public) | URL 접근 가능 | cc:완료 |
|
||
| 0.5 | 로컬 `hanarang-rails/` 스캐폴딩 (README, LICENSE, .gitignore) | 초기 커밋 push 완료 | cc:완료 |
|
||
| 0.6 | `harness-setup init` — CLAUDE.md (분할), Plans.md, .claude/rules/, hooks/ | 전부 생성 + CLAUDE.md ≤ 30 lines | cc:완료 |
|
||
| 0.7 | `.plans/OVERVIEW.md` 작성 | 문서 존재, 성공 기준 8개 명시 | cc:완료 |
|
||
| 0.8 | `.plans/failure-audit.md` 작성 (F1–F6) | 문서 존재, 각 실패에 증거 인용 포함 | cc:완료 |
|
||
| 0.9 | `.plans/design/state-machine.md` 작성 | 문서 존재, 상태 다이어그램 포함 | cc:완료 |
|
||
| 0.10 | `.plans/design/sprint-contract.md` 작성 | Zod schema 초안 포함 | cc:완료 |
|
||
| 0.11 | `.plans/design/skill-enforcement.md` 작성 | Layer 1–4 명시 | cc:완료 |
|
||
| 0.12 | `.plans/design/handoff.md` 작성 | HandoffMessage 스키마 포함 | cc:완료 |
|
||
| 0.13 | `.plans/design/retry-policy.md` 작성 | backoff 수식 + 에스컬레이션 트리거 | cc:완료 |
|
||
| 0.14 | `.plans/design/qa-template.md` 작성 | 타입별 템플릿 4종 이상 | cc:완료 |
|
||
| 0.15 | `.plans/sprints/SPRINT-001~007.md` 초안 작성 | 각 파일 존재 + Scope/Tasks/DoD | cc:완료 |
|
||
| 0.16 | `.plans/migration/from-hanarang-harness.md` 초안 작성 | 유지/계승/폐기 자산 매트릭스 | cc:완료 |
|
||
| 0.17 | Plans.md 루트 인덱스 완성 (스프린트 목차 + 링크) | 모든 스프린트 링크 유효 | cc:완료 |
|
||
| 0.18 | Sprint 000 전체 commit + push | Gitea 에 반영 | cc:완료 |
|
||
|
||
## Definition of Done
|
||
|
||
Sprint 000 은 다음 조건을 **전부** 만족해야 완료:
|
||
|
||
1. 기존 자산 손실 0건 (git push 완료, dirty 변경 보존)
|
||
2. `.plans/` 하위 17개 문서 존재 + 최소 스켈레톤 내용
|
||
3. README, CLAUDE.md, Plans.md 루트 인덱스 유효
|
||
4. Gitea `hanarang-rails` 에 Sprint 000 전체가 push 되어있음
|
||
5. `harness-setup init` 이 생성한 hook/settings 파일이 정상
|
||
6. CLAUDE.md ≤ 30 lines (분할 완료)
|
||
|
||
## Risks
|
||
|
||
- 장문의 문서 작성 중 컨텍스트 한도 초과 → **해결**: 병렬 Write + phase 단위 commit
|
||
- 디자인 문서가 Sprint 001 에서 뒤집힐 가능성 → **허용**: Sprint 000 은 "초안" 품질. 001 에서 정제
|
||
|
||
## Exit Criteria
|
||
|
||
- Plans.md 상단에 "Current Sprint: SPRINT-001" 표시
|
||
- `git log --oneline` 에 Sprint 000 완료 커밋이 보임
|
||
- 사용자(나봄하랑) 가 계획 문서 확인 후 승인
|