Files
hanarang-rails/.plans/sprints/SPRINT-000-safety-and-audit.md
이랑이 28a03f8bb4 docs(plans): Sprint 000 완료 마크 — 전체 플랜 문서 세트 확정
Sprint 000 전체 태스크 cc:완료 처리.
다음: Sprint 001 (스켈레톤 — TypeScript + XState + CLI)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:37:25 +09:00

64 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SPRINT-000 — 세이프티 네트 + 실패 감사 + 프로젝트 세팅
> **목표**: 기존 hanarang-harness 를 안전하게 보존하고, 실패 모드를 감사하고, hanarang-rails 의 계획 문서 뼈대를 세운다. 코드는 단 한 줄도 작성하지 않는다.
## Scope
- 기존 자산 보존 (push, archive, repo 가시성 전환)
- 실패 감사 문서화 (F1F6)
- `.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` 작성 (F1F6) | 문서 존재, 각 실패에 증거 인용 포함 | 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 14 명시 | 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 완료 커밋이 보임
- 사용자(나봄하랑) 가 계획 문서 확인 후 승인