create-ax-project 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +374 -0
- package/bin/create.js +193 -0
- package/package.json +38 -0
- package/template/.claude/CLAUDE.md +7 -0
- package/template/.claude/commands/CLAUDE.md +0 -0
- package/template/.claude/commands/benchmark.md +103 -0
- package/template/.claude/commands/brainstorm.md +67 -0
- package/template/.claude/commands/checkpoint.md +93 -0
- package/template/.claude/commands/codex.md +107 -0
- package/template/.claude/commands/collaborate.md +85 -0
- package/template/.claude/commands/context.md +154 -0
- package/template/.claude/commands/deploy.md +102 -0
- package/template/.claude/commands/fork.md +142 -0
- package/template/.claude/commands/gemini.md +84 -0
- package/template/.claude/commands/handoff.md +80 -0
- package/template/.claude/commands/implement.md +82 -0
- package/template/.claude/commands/init-project.md +49 -0
- package/template/.claude/commands/next.md +125 -0
- package/template/.claude/commands/planning.md +69 -0
- package/template/.claude/commands/qa.md +81 -0
- package/template/.claude/commands/refactor.md +95 -0
- package/template/.claude/commands/research.md +60 -0
- package/template/.claude/commands/restore.md +113 -0
- package/template/.claude/commands/run-stage.md +78 -0
- package/template/.claude/commands/stages.md +109 -0
- package/template/.claude/commands/status.md +73 -0
- package/template/.claude/commands/tasks.md +80 -0
- package/template/.claude/commands/test.md +93 -0
- package/template/.claude/commands/ui-ux.md +61 -0
- package/template/.claude/commands/validate.md +174 -0
- package/template/.claude/hooks/CLAUDE.md +0 -0
- package/template/.claude/hooks/ai-selector.sh +223 -0
- package/template/.claude/hooks/auto-checkpoint.sh +187 -0
- package/template/.claude/hooks/output-validator.sh +289 -0
- package/template/.claude/hooks/post-stage.sh +123 -0
- package/template/.claude/hooks/pre-stage.sh +186 -0
- package/template/.claude/hooks/session-start.sh +90 -0
- package/template/.claude/hooks/statusline.sh +115 -0
- package/template/.claude/hooks/stop.sh +104 -0
- package/template/.claude/settings.json +149 -0
- package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
- package/template/.claude/skills/ai-collaboration/README.md +61 -0
- package/template/.claude/skills/ai-collaboration/debate.md +148 -0
- package/template/.claude/skills/ai-collaboration/parallel.md +96 -0
- package/template/.claude/skills/ai-collaboration/prompts/CLAUDE.md +107 -0
- package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
- package/template/.claude/skills/auto-checkpoint/README.md +77 -0
- package/template/.claude/skills/auto-checkpoint/prompts/CLAUDE.md +113 -0
- package/template/.claude/skills/auto-checkpoint/rollback.md +152 -0
- package/template/.claude/skills/auto-checkpoint/trigger.md +122 -0
- package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/README.md +121 -0
- package/template/.claude/skills/context-compression/analyze.md +114 -0
- package/template/.claude/skills/context-compression/compress.md +175 -0
- package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/prompts/compression.md +172 -0
- package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
- package/template/.claude/skills/output-validator/README.md +86 -0
- package/template/.claude/skills/output-validator/prompts/CLAUDE.md +119 -0
- package/template/.claude/skills/output-validator/validate.md +182 -0
- package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
- package/template/.claude/skills/smart-handoff/README.md +59 -0
- package/template/.claude/skills/smart-handoff/extract.md +76 -0
- package/template/.claude/skills/smart-handoff/prompts/CLAUDE.md +86 -0
- package/template/.claude/skills/smart-handoff/summarize.md +94 -0
- package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/README.md +84 -0
- package/template/.claude/skills/stage-transition/handoff-gen.md +160 -0
- package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/prompts/transition.md +145 -0
- package/template/.claude/skills/stage-transition/validate.md +108 -0
- package/template/CLAUDE.md +528 -0
- package/template/config/CLAUDE.md +0 -0
- package/template/config/ai_benchmarking.yaml +184 -0
- package/template/config/ai_collaboration.yaml +159 -0
- package/template/config/ai_logging.yaml +129 -0
- package/template/config/auto_checkpoint.yaml +189 -0
- package/template/config/context.yaml +78 -0
- package/template/config/git.yaml +161 -0
- package/template/config/handoff_intelligence.yaml +229 -0
- package/template/config/implementation.yaml.template +181 -0
- package/template/config/mcp_fallbacks.yaml +252 -0
- package/template/config/memory_integration.yaml +200 -0
- package/template/config/model_enforcement.yaml +141 -0
- package/template/config/models.yaml +242 -0
- package/template/config/output_validation.yaml +352 -0
- package/template/config/pipeline.yaml +357 -0
- package/template/config/pipeline_forking.yaml +236 -0
- package/template/config/qa_logging.yaml +166 -0
- package/template/config/smart_rollback.yaml +209 -0
- package/template/config/stage_personas.yaml +354 -0
- package/template/config/workflow.yaml +54 -0
- package/template/scripts/CLAUDE.md +0 -0
- package/template/scripts/ai-benchmark.sh +272 -0
- package/template/scripts/codex-wrapper.sh +97 -0
- package/template/scripts/context-manager.sh +528 -0
- package/template/scripts/create-checkpoint.sh +116 -0
- package/template/scripts/gemini-wrapper.sh +96 -0
- package/template/scripts/init-project.sh +109 -0
- package/template/scripts/list-stages.sh +245 -0
- package/template/scripts/next-stage.sh +228 -0
- package/template/scripts/output-validate.sh +12 -0
- package/template/scripts/pipeline-fork.sh +293 -0
- package/template/scripts/pre-run-check.sh +361 -0
- package/template/scripts/restore-checkpoint.sh +247 -0
- package/template/scripts/run-stage.sh +139 -0
- package/template/scripts/show-status.sh +185 -0
- package/template/scripts/smart-handoff.sh +254 -0
- package/template/stages/01-brainstorm/CLAUDE.md +103 -0
- package/template/stages/01-brainstorm/HANDOFF.md +110 -0
- package/template/stages/01-brainstorm/HANDOFF.md.template +112 -0
- package/template/stages/01-brainstorm/README.md +97 -0
- package/template/stages/01-brainstorm/config.yaml +92 -0
- package/template/stages/01-brainstorm/inputs/.gitkeep +0 -0
- package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/inputs/project_brief.md +40 -0
- package/template/stages/01-brainstorm/outputs/.gitkeep +0 -0
- package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/outputs/ideas.md +159 -0
- package/template/stages/01-brainstorm/outputs/requirements_analysis.md +222 -0
- package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/prompts/collaboration.md +46 -0
- package/template/stages/01-brainstorm/prompts/ideation.md +62 -0
- package/template/stages/01-brainstorm/prompts/persona.md +73 -0
- package/template/stages/01-brainstorm/prompts/requirements.md +73 -0
- package/template/stages/01-brainstorm/prompts/validation.md +50 -0
- package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/templates/ideas.md +91 -0
- package/template/stages/01-brainstorm/templates/requirements_analysis.md +129 -0
- package/template/stages/02-research/CLAUDE.md +101 -0
- package/template/stages/02-research/HANDOFF.md +158 -0
- package/template/stages/02-research/HANDOFF.md.template +102 -0
- package/template/stages/02-research/config.yaml +68 -0
- package/template/stages/02-research/inputs/.gitkeep +0 -0
- package/template/stages/02-research/outputs/.gitkeep +0 -0
- package/template/stages/02-research/outputs/CLAUDE.md +0 -0
- package/template/stages/02-research/outputs/feasibility_report.md +176 -0
- package/template/stages/02-research/outputs/tech_research.md +403 -0
- package/template/stages/02-research/prompts/CLAUDE.md +0 -0
- package/template/stages/02-research/prompts/collaboration.md +51 -0
- package/template/stages/02-research/prompts/feasibility.md +73 -0
- package/template/stages/02-research/prompts/market_analysis.md +58 -0
- package/template/stages/02-research/prompts/tech_stack.md +60 -0
- package/template/stages/02-research/prompts/validation.md +51 -0
- package/template/stages/02-research/templates/.gitkeep +0 -0
- package/template/stages/03-planning/CLAUDE.md +98 -0
- package/template/stages/03-planning/HANDOFF.md +168 -0
- package/template/stages/03-planning/HANDOFF.md.template +91 -0
- package/template/stages/03-planning/config.yaml +64 -0
- package/template/stages/03-planning/inputs/.gitkeep +0 -0
- package/template/stages/03-planning/outputs/.gitkeep +0 -0
- package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
- package/template/stages/03-planning/outputs/architecture.md +400 -0
- package/template/stages/03-planning/outputs/implementation.yaml +209 -0
- package/template/stages/03-planning/outputs/project_plan.md +204 -0
- package/template/stages/03-planning/outputs/tech_stack.md +176 -0
- package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
- package/template/stages/03-planning/prompts/architecture.md +62 -0
- package/template/stages/03-planning/prompts/collaboration.md +57 -0
- package/template/stages/03-planning/prompts/validation.md +59 -0
- package/template/stages/03-planning/templates/.gitkeep +0 -0
- package/template/stages/04-ui-ux/CLAUDE.md +88 -0
- package/template/stages/04-ui-ux/HANDOFF.md +165 -0
- package/template/stages/04-ui-ux/HANDOFF.md.template +92 -0
- package/template/stages/04-ui-ux/config.yaml +57 -0
- package/template/stages/04-ui-ux/inputs/.gitkeep +0 -0
- package/template/stages/04-ui-ux/outputs/.gitkeep +0 -0
- package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/outputs/design_system.md +449 -0
- package/template/stages/04-ui-ux/outputs/user_flows.md +321 -0
- package/template/stages/04-ui-ux/outputs/wireframes.md +241 -0
- package/template/stages/04-ui-ux/prompts/.gitkeep +0 -0
- package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/prompts/collaboration.md +56 -0
- package/template/stages/04-ui-ux/prompts/validation.md +54 -0
- package/template/stages/04-ui-ux/templates/.gitkeep +0 -0
- package/template/stages/05-task-management/CLAUDE.md +105 -0
- package/template/stages/05-task-management/HANDOFF.md +187 -0
- package/template/stages/05-task-management/HANDOFF.md.template +97 -0
- package/template/stages/05-task-management/config.yaml +81 -0
- package/template/stages/05-task-management/inputs/.gitkeep +0 -0
- package/template/stages/05-task-management/outputs/.gitkeep +0 -0
- package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
- package/template/stages/05-task-management/outputs/milestones.md +253 -0
- package/template/stages/05-task-management/outputs/sprint_plan.md +203 -0
- package/template/stages/05-task-management/outputs/tasks.md +402 -0
- package/template/stages/05-task-management/prompts/.gitkeep +0 -0
- package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
- package/template/stages/05-task-management/prompts/collaboration.md +54 -0
- package/template/stages/05-task-management/prompts/validation.md +66 -0
- package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
- package/template/stages/05-task-management/templates/notion_integration.md +176 -0
- package/template/stages/05-task-management/templates/parallel_groups.yaml +153 -0
- package/template/stages/05-task-management/templates/task_schema.yaml +154 -0
- package/template/stages/06-implementation/CLAUDE.md +163 -0
- package/template/stages/06-implementation/HANDOFF.md +184 -0
- package/template/stages/06-implementation/HANDOFF.md.template +192 -0
- package/template/stages/06-implementation/config.yaml +62 -0
- package/template/stages/06-implementation/inputs/.gitkeep +0 -0
- package/template/stages/06-implementation/outputs/.gitkeep +0 -0
- package/template/stages/06-implementation/prompts/.gitkeep +0 -0
- package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
- package/template/stages/06-implementation/prompts/collaboration.md +64 -0
- package/template/stages/06-implementation/prompts/validation.md +65 -0
- package/template/stages/06-implementation/templates/.gitkeep +0 -0
- package/template/stages/07-refactoring/CLAUDE.md +180 -0
- package/template/stages/07-refactoring/HANDOFF.md +82 -0
- package/template/stages/07-refactoring/HANDOFF.md.template +97 -0
- package/template/stages/07-refactoring/config.yaml +68 -0
- package/template/stages/07-refactoring/inputs/.gitkeep +0 -0
- package/template/stages/07-refactoring/outputs/.gitkeep +0 -0
- package/template/stages/07-refactoring/outputs/refactoring_report.md +102 -0
- package/template/stages/07-refactoring/prompts/.gitkeep +0 -0
- package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
- package/template/stages/07-refactoring/prompts/collaboration.md +71 -0
- package/template/stages/07-refactoring/prompts/validation.md +76 -0
- package/template/stages/07-refactoring/templates/.gitkeep +0 -0
- package/template/stages/08-qa/CLAUDE.md +93 -0
- package/template/stages/08-qa/HANDOFF.md +114 -0
- package/template/stages/08-qa/HANDOFF.md.template +96 -0
- package/template/stages/08-qa/config.yaml +56 -0
- package/template/stages/08-qa/inputs/.gitkeep +0 -0
- package/template/stages/08-qa/outputs/.gitkeep +0 -0
- package/template/stages/08-qa/outputs/qa_report.md +138 -0
- package/template/stages/08-qa/prompts/.gitkeep +0 -0
- package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
- package/template/stages/08-qa/prompts/collaboration.md +65 -0
- package/template/stages/08-qa/prompts/validation.md +71 -0
- package/template/stages/08-qa/templates/.gitkeep +0 -0
- package/template/stages/09-testing/CLAUDE.md +124 -0
- package/template/stages/09-testing/HANDOFF.md +118 -0
- package/template/stages/09-testing/HANDOFF.md.template +113 -0
- package/template/stages/09-testing/config.yaml +65 -0
- package/template/stages/09-testing/inputs/.gitkeep +0 -0
- package/template/stages/09-testing/outputs/.gitkeep +0 -0
- package/template/stages/09-testing/outputs/test_report.md +146 -0
- package/template/stages/09-testing/prompts/.gitkeep +0 -0
- package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
- package/template/stages/09-testing/prompts/collaboration.md +77 -0
- package/template/stages/09-testing/prompts/validation.md +83 -0
- package/template/stages/09-testing/templates/.gitkeep +0 -0
- package/template/stages/10-deployment/CLAUDE.md +117 -0
- package/template/stages/10-deployment/HANDOFF.md +141 -0
- package/template/stages/10-deployment/HANDOFF.md.template +148 -0
- package/template/stages/10-deployment/config.yaml +61 -0
- package/template/stages/10-deployment/inputs/.gitkeep +0 -0
- package/template/stages/10-deployment/outputs/.gitkeep +0 -0
- package/template/stages/10-deployment/prompts/.gitkeep +0 -0
- package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
- package/template/stages/10-deployment/prompts/collaboration.md +80 -0
- package/template/stages/10-deployment/prompts/validation.md +93 -0
- package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
- package/template/stages/10-deployment/templates/github-actions-cd.yaml +118 -0
- package/template/stages/10-deployment/templates/github-actions-ci.yaml +136 -0
- package/template/state/progress.json.template +111 -0
- package/template/state/templates/CLAUDE.md +0 -0
- package/template/state/templates/handoff_base.md.template +187 -0
- package/template/state/templates/phase_state.md.template +97 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# 🎯 Snake Game - 마일스톤 정의
|
|
2
|
+
|
|
3
|
+
> 생성일: 2026-01-21
|
|
4
|
+
> 스테이지: 05-task-management
|
|
5
|
+
> 프로젝트: snake-game
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 마일스톤 개요
|
|
10
|
+
|
|
11
|
+
| ID | 마일스톤 | 목표 | 완료 스테이지 |
|
|
12
|
+
|----|---------|------|-------------|
|
|
13
|
+
| M1 | MVP 기반 | 게임 코어 로직 완성 | 06-implementation (전반) |
|
|
14
|
+
| M2 | MVP 완성 | 플레이 가능한 게임 | 06-implementation (완료) |
|
|
15
|
+
| M3 | 품질 개선 | 모바일 지원 + 버그 수정 | 08-qa |
|
|
16
|
+
| M4 | 배포 | 프로덕션 배포 | 10-deployment |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## M1: MVP 기반 (Foundation)
|
|
21
|
+
|
|
22
|
+
### 목표
|
|
23
|
+
게임의 핵심 로직과 인프라를 구축합니다.
|
|
24
|
+
|
|
25
|
+
### 포함 태스크
|
|
26
|
+
- TASK-001 ~ TASK-009, TASK-016
|
|
27
|
+
|
|
28
|
+
### 산출물
|
|
29
|
+
|
|
30
|
+
| 산출물 | 위치 | 설명 |
|
|
31
|
+
|--------|------|------|
|
|
32
|
+
| 프로젝트 구조 | `snake-game/` | Vite + React + TS |
|
|
33
|
+
| 타입 정의 | `src/types/index.ts` | 모든 게임 타입 |
|
|
34
|
+
| 상수 | `src/constants/config.ts` | 게임 설정값 |
|
|
35
|
+
| 게임 루프 훅 | `src/hooks/useGameLoop.ts` | rAF 기반 |
|
|
36
|
+
| 키보드 훅 | `src/hooks/useKeyboard.ts` | 방향키 처리 |
|
|
37
|
+
| 충돌 감지 | `src/engine/collision.ts` | 벽/몸통/먹이 |
|
|
38
|
+
| 렌더러 | `src/engine/renderer.ts` | Canvas 렌더링 |
|
|
39
|
+
| 리듀서 | `src/engine/gameReducer.ts` | 상태 관리 |
|
|
40
|
+
| 유틸리티 | `src/utils/random.ts` | 랜덤 위치 |
|
|
41
|
+
|
|
42
|
+
### 성공 기준
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
[ ] TypeScript 컴파일 성공 (tsc --noEmit)
|
|
46
|
+
[ ] ESLint 경고 0개
|
|
47
|
+
[ ] 콘솔에서 게임 루프 틱 확인
|
|
48
|
+
[ ] 빈 Canvas에 그리드 렌더링
|
|
49
|
+
[ ] 키보드 입력 감지 (콘솔 로그)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 검증 방법
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# 타입 체크
|
|
56
|
+
npm run typecheck
|
|
57
|
+
|
|
58
|
+
# 린트
|
|
59
|
+
npm run lint
|
|
60
|
+
|
|
61
|
+
# 개발 서버 실행 후 콘솔 확인
|
|
62
|
+
npm run dev
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## M2: MVP 완성 (Playable)
|
|
68
|
+
|
|
69
|
+
### 목표
|
|
70
|
+
사용자가 실제로 플레이할 수 있는 게임을 완성합니다.
|
|
71
|
+
|
|
72
|
+
### 포함 태스크
|
|
73
|
+
- TASK-010 ~ TASK-014, TASK-018 ~ TASK-021
|
|
74
|
+
|
|
75
|
+
### 산출물
|
|
76
|
+
|
|
77
|
+
| 산출물 | 위치 | 설명 |
|
|
78
|
+
|--------|------|------|
|
|
79
|
+
| GameEngine | `src/GameEngine.tsx` | 게임 통합 컴포넌트 |
|
|
80
|
+
| CanvasLayer | `src/components/CanvasLayer.tsx` | Canvas 래퍼 |
|
|
81
|
+
| ScoreBoard | `src/components/ScoreBoard.tsx` | 점수판 |
|
|
82
|
+
| GameOverModal | `src/components/GameOverModal.tsx` | 게임 오버 |
|
|
83
|
+
| useHighScore | `src/hooks/useHighScore.ts` | 최고 점수 |
|
|
84
|
+
| 스타일 | `src/styles/` | CSS Modules |
|
|
85
|
+
|
|
86
|
+
### 성공 기준
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
[ ] 방향키로 뱀 조작 가능
|
|
90
|
+
[ ] 먹이 먹으면 뱀 성장 + 점수 증가
|
|
91
|
+
[ ] 벽/몸통 충돌 시 게임 오버
|
|
92
|
+
[ ] 게임 오버 모달에서 재시작 가능
|
|
93
|
+
[ ] 최고 점수 localStorage 저장/불러오기
|
|
94
|
+
[ ] 레벨업 시 속도 증가
|
|
95
|
+
[ ] 일시정지/재개 동작
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 검증 방법
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# 개발 서버에서 직접 플레이
|
|
102
|
+
npm run dev
|
|
103
|
+
|
|
104
|
+
# 체크리스트
|
|
105
|
+
# 1. 방향키로 이동
|
|
106
|
+
# 2. 먹이 먹기
|
|
107
|
+
# 3. 벽에 부딪히기
|
|
108
|
+
# 4. 재시작
|
|
109
|
+
# 5. 최고 점수 확인
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## M3: 품질 개선 (Quality)
|
|
115
|
+
|
|
116
|
+
### 목표
|
|
117
|
+
모바일 지원, 코드 품질, 버그 수정을 완료합니다.
|
|
118
|
+
|
|
119
|
+
### 포함 태스크
|
|
120
|
+
- TASK-015, TASK-017, TASK-013
|
|
121
|
+
- 07-refactoring, 08-qa 태스크
|
|
122
|
+
|
|
123
|
+
### 산출물
|
|
124
|
+
|
|
125
|
+
| 산출물 | 위치 | 설명 |
|
|
126
|
+
|--------|------|------|
|
|
127
|
+
| useSwipe | `src/hooks/useSwipe.ts` | 터치 스와이프 |
|
|
128
|
+
| MobileControls | `src/components/MobileControls.tsx` | D-Pad |
|
|
129
|
+
| StartScreen | `src/components/StartScreen.tsx` | 시작 화면 |
|
|
130
|
+
| 리팩토링 결과 | - | 코드 개선 |
|
|
131
|
+
| 버그 수정 | - | 이슈 해결 |
|
|
132
|
+
|
|
133
|
+
### 성공 기준
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
[ ] 모바일에서 스와이프로 조작 가능
|
|
137
|
+
[ ] 모바일에서 D-Pad로 조작 가능
|
|
138
|
+
[ ] 시작 화면 표시
|
|
139
|
+
[ ] 코드 중복 제거
|
|
140
|
+
[ ] 60fps 유지 (Chrome DevTools)
|
|
141
|
+
[ ] 알려진 버그 0개
|
|
142
|
+
[ ] 반응형 레이아웃 동작
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 검증 방법
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# 모바일 에뮬레이션
|
|
149
|
+
# Chrome DevTools > Device Toolbar
|
|
150
|
+
|
|
151
|
+
# 성능 확인
|
|
152
|
+
# Chrome DevTools > Performance Tab
|
|
153
|
+
|
|
154
|
+
# 버그 체크리스트
|
|
155
|
+
# - 빠른 방향 전환
|
|
156
|
+
# - 경계 조건 (벽 바로 앞에서 방향 전환)
|
|
157
|
+
# - 긴 플레이 시 메모리 누수
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## M4: 배포 (Deployment)
|
|
163
|
+
|
|
164
|
+
### 목표
|
|
165
|
+
프로덕션 환경에 배포하고 테스트를 완료합니다.
|
|
166
|
+
|
|
167
|
+
### 포함 태스크
|
|
168
|
+
- TASK-022 ~ TASK-025
|
|
169
|
+
|
|
170
|
+
### 산출물
|
|
171
|
+
|
|
172
|
+
| 산출물 | 위치 | 설명 |
|
|
173
|
+
|--------|------|------|
|
|
174
|
+
| 단위 테스트 | `src/__tests__/` | Vitest |
|
|
175
|
+
| E2E 테스트 | `e2e/` | Playwright |
|
|
176
|
+
| 빌드 | `dist/` | 프로덕션 빌드 |
|
|
177
|
+
| 배포 URL | - | 공개 URL |
|
|
178
|
+
|
|
179
|
+
### 성공 기준
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
[ ] 단위 테스트 커버리지 80%+
|
|
183
|
+
[ ] E2E 테스트 통과 (선택)
|
|
184
|
+
[ ] 빌드 성공
|
|
185
|
+
[ ] 번들 크기 < 200KB
|
|
186
|
+
[ ] 배포 URL 접근 가능
|
|
187
|
+
[ ] 프로덕션에서 게임 플레이 가능
|
|
188
|
+
[ ] 모바일 브라우저에서 동작
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 검증 방법
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# 테스트
|
|
195
|
+
npm run test
|
|
196
|
+
npm run test:coverage
|
|
197
|
+
|
|
198
|
+
# 빌드
|
|
199
|
+
npm run build
|
|
200
|
+
|
|
201
|
+
# 빌드 크기 확인
|
|
202
|
+
ls -la dist/
|
|
203
|
+
|
|
204
|
+
# 프리뷰
|
|
205
|
+
npm run preview
|
|
206
|
+
|
|
207
|
+
# 배포 후 URL 테스트
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 마일스톤 타임라인
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
M1: MVP 기반 M2: MVP 완성
|
|
216
|
+
[======|======] [======|======]
|
|
217
|
+
Sprint 1 Sprint 2
|
|
218
|
+
|
|
219
|
+
M3: 품질 개선 M4: 배포
|
|
220
|
+
[======|======] [======|====]
|
|
221
|
+
Sprint 3 Sprint 4
|
|
222
|
+
|
|
223
|
+
────────────────────────────────────────
|
|
224
|
+
06-impl 07-ref 09-test
|
|
225
|
+
08-qa 10-deploy
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 체크포인트 정책
|
|
231
|
+
|
|
232
|
+
| 마일스톤 | 체크포인트 | 설명 |
|
|
233
|
+
|---------|-----------|------|
|
|
234
|
+
| M1 완료 | checkpoint_m1 | 코어 로직 완성 시점 |
|
|
235
|
+
| M2 완료 | checkpoint_m2 | MVP 완성 시점 (중요) |
|
|
236
|
+
| M3 완료 | checkpoint_m3 | 품질 개선 완료 |
|
|
237
|
+
| M4 완료 | checkpoint_final | 최종 배포 |
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
# 체크포인트 생성 예시
|
|
241
|
+
/checkpoint --name "m2_mvp_complete" --description "MVP 게임 완성"
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## ✅ 마일스톤 체크리스트
|
|
247
|
+
|
|
248
|
+
- [x] 4개 마일스톤 정의
|
|
249
|
+
- [x] 각 마일스톤 산출물 명시
|
|
250
|
+
- [x] 성공 기준 정의
|
|
251
|
+
- [x] 검증 방법 제공
|
|
252
|
+
- [x] 타임라인 작성
|
|
253
|
+
- [x] 체크포인트 정책 수립
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# 🏃 Snake Game - 스프린트 계획
|
|
2
|
+
|
|
3
|
+
> 생성일: 2026-01-21
|
|
4
|
+
> 스테이지: 05-task-management
|
|
5
|
+
> 프로젝트: snake-game
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 스프린트 개요
|
|
10
|
+
|
|
11
|
+
| 스프린트 | 기간 | 목표 | 태스크 수 |
|
|
12
|
+
|---------|------|------|----------|
|
|
13
|
+
| Sprint 1 | 06-implementation (전반) | MVP 기반 구축 | 10 |
|
|
14
|
+
| Sprint 2 | 06-implementation (후반) | MVP 완성 | 8 |
|
|
15
|
+
| Sprint 3 | 07-refactoring ~ 08-qa | 품질 개선 | 4 |
|
|
16
|
+
| Sprint 4 | 09-testing ~ 10-deployment | 테스트 & 배포 | 3 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Sprint 1: MVP 기반 구축
|
|
21
|
+
|
|
22
|
+
**목표**: 프로젝트 설정 + 게임 코어 로직 구현
|
|
23
|
+
|
|
24
|
+
**스테이지**: 06-implementation (전반)
|
|
25
|
+
|
|
26
|
+
### 태스크 목록
|
|
27
|
+
|
|
28
|
+
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 |
|
|
29
|
+
|------|-----|--------|---------|----------|
|
|
30
|
+
| 1 | TASK-001 | Vite + React + TS 초기화 | Must | 10분 |
|
|
31
|
+
| 2 | TASK-002 | 타입 정의 | Must | 15분 |
|
|
32
|
+
| 3 | TASK-003 | 상수 정의 | Must | 10분 |
|
|
33
|
+
| 4 | TASK-004 | 글로벌 스타일 | Must | 15분 |
|
|
34
|
+
| 5 | TASK-005 | useGameLoop 훅 | Must | 20분 |
|
|
35
|
+
| 6 | TASK-007 | collision.ts | Must | 15분 |
|
|
36
|
+
| 7 | TASK-009 | random.ts | Must | 10분 |
|
|
37
|
+
| 8 | TASK-008 | renderer.ts | Must | 25분 |
|
|
38
|
+
| 9 | TASK-006 | gameReducer | Must | 30분 |
|
|
39
|
+
| 10 | TASK-016 | useKeyboard 훅 | Must | 20분 |
|
|
40
|
+
|
|
41
|
+
**예상 총 시간**: ~2시간 50분
|
|
42
|
+
|
|
43
|
+
### 완료 기준
|
|
44
|
+
|
|
45
|
+
- [ ] 프로젝트 빌드 및 실행 가능
|
|
46
|
+
- [ ] 타입 정의 완료 (tsc --noEmit 통과)
|
|
47
|
+
- [ ] 게임 루프 동작 (콘솔에서 확인)
|
|
48
|
+
- [ ] 충돌 감지 함수 동작
|
|
49
|
+
- [ ] 렌더러 함수 동작 (빈 Canvas에 그리드 표시)
|
|
50
|
+
- [ ] 키보드 입력 감지
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Sprint 2: MVP 완성
|
|
55
|
+
|
|
56
|
+
**목표**: UI 컴포넌트 + 통합 + 확장 기능
|
|
57
|
+
|
|
58
|
+
**스테이지**: 06-implementation (후반)
|
|
59
|
+
|
|
60
|
+
### 태스크 목록
|
|
61
|
+
|
|
62
|
+
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 |
|
|
63
|
+
|------|-----|--------|---------|----------|
|
|
64
|
+
| 1 | TASK-011 | CanvasLayer 컴포넌트 | Must | 15분 |
|
|
65
|
+
| 2 | TASK-012 | ScoreBoard 컴포넌트 | Must | 15분 |
|
|
66
|
+
| 3 | TASK-014 | GameOverModal 컴포넌트 | Must | 20분 |
|
|
67
|
+
| 4 | TASK-010 | GameEngine 통합 | Must | 30분 |
|
|
68
|
+
| 5 | TASK-018 | 입력 통합 | Must | 15분 |
|
|
69
|
+
| 6 | TASK-020 | useHighScore 훅 | Should | 15분 |
|
|
70
|
+
| 7 | TASK-019 | 레벨 시스템 | Should | 20분 |
|
|
71
|
+
| 8 | TASK-021 | 일시정지 기능 | Should | 15분 |
|
|
72
|
+
|
|
73
|
+
**예상 총 시간**: ~2시간 25분
|
|
74
|
+
|
|
75
|
+
### 완료 기준
|
|
76
|
+
|
|
77
|
+
- [ ] 전체 게임 플레이 가능
|
|
78
|
+
- [ ] 점수 표시 및 증가
|
|
79
|
+
- [ ] 게임 오버 모달 동작
|
|
80
|
+
- [ ] 최고 점수 저장/불러오기
|
|
81
|
+
- [ ] 레벨업 시 속도 증가
|
|
82
|
+
- [ ] 일시정지/재개 동작
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Sprint 3: 품질 개선
|
|
87
|
+
|
|
88
|
+
**목표**: 모바일 지원 + 코드 리팩토링 + QA
|
|
89
|
+
|
|
90
|
+
**스테이지**: 06-implementation (마무리) → 07-refactoring → 08-qa
|
|
91
|
+
|
|
92
|
+
### 태스크 목록
|
|
93
|
+
|
|
94
|
+
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 | 스테이지 |
|
|
95
|
+
|------|-----|--------|---------|----------|---------|
|
|
96
|
+
| 1 | TASK-017 | useSwipe 훅 | Should | 25분 | 06 |
|
|
97
|
+
| 2 | TASK-015 | MobileControls | Should | 25분 | 06 |
|
|
98
|
+
| 3 | TASK-013 | StartScreen | Should | 20분 | 06 |
|
|
99
|
+
| 4 | - | 코드 리팩토링 | Should | 30분 | 07 |
|
|
100
|
+
| 5 | - | 성능 최적화 | Should | 20분 | 07 |
|
|
101
|
+
| 6 | - | 버그 수정 | Must | 20분 | 08 |
|
|
102
|
+
| 7 | - | 엣지 케이스 검증 | Should | 15분 | 08 |
|
|
103
|
+
|
|
104
|
+
**예상 총 시간**: ~2시간 35분
|
|
105
|
+
|
|
106
|
+
### 완료 기준
|
|
107
|
+
|
|
108
|
+
- [ ] 모바일 터치/스와이프 동작
|
|
109
|
+
- [ ] 모바일 D-Pad 컨트롤 동작
|
|
110
|
+
- [ ] 시작 화면 구현
|
|
111
|
+
- [ ] 코드 중복 제거
|
|
112
|
+
- [ ] 60fps 유지 확인
|
|
113
|
+
- [ ] 알려진 버그 0개
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Sprint 4: 테스트 & 배포
|
|
118
|
+
|
|
119
|
+
**목표**: 테스트 작성 + 프로덕션 배포
|
|
120
|
+
|
|
121
|
+
**스테이지**: 09-testing → 10-deployment
|
|
122
|
+
|
|
123
|
+
### 태스크 목록
|
|
124
|
+
|
|
125
|
+
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 | 스테이지 |
|
|
126
|
+
|------|-----|--------|---------|----------|---------|
|
|
127
|
+
| 1 | TASK-022 | 단위 테스트 | Should | 30분 | 09 |
|
|
128
|
+
| 2 | TASK-023 | E2E 테스트 | Could | 30분 | 09 |
|
|
129
|
+
| 3 | TASK-024 | 빌드 설정 | Must | 15분 | 10 |
|
|
130
|
+
| 4 | TASK-025 | 배포 | Must | 20분 | 10 |
|
|
131
|
+
|
|
132
|
+
**예상 총 시간**: ~1시간 35분
|
|
133
|
+
|
|
134
|
+
### 완료 기준
|
|
135
|
+
|
|
136
|
+
- [ ] 테스트 커버리지 80%+
|
|
137
|
+
- [ ] E2E 테스트 통과
|
|
138
|
+
- [ ] 빌드 성공 (번들 < 200KB)
|
|
139
|
+
- [ ] 배포 URL 접근 가능
|
|
140
|
+
- [ ] 프로덕션에서 게임 플레이 가능
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 스프린트 타임라인
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Sprint 1 (MVP 기반) Sprint 2 (MVP 완성)
|
|
148
|
+
[===================] [===================]
|
|
149
|
+
~2:50 ~2:25
|
|
150
|
+
|
|
151
|
+
Sprint 3 (품질 개선) Sprint 4 (테스트 & 배포)
|
|
152
|
+
[===================] [===============]
|
|
153
|
+
~2:35 ~1:35
|
|
154
|
+
|
|
155
|
+
────────────────────────────────────────────────
|
|
156
|
+
총 예상 시간: ~9시간 25분
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 버퍼 및 리스크 관리
|
|
162
|
+
|
|
163
|
+
### 버퍼 시간
|
|
164
|
+
|
|
165
|
+
| 스프린트 | 예상 시간 | 버퍼 (20%) | 총 시간 |
|
|
166
|
+
|---------|----------|-----------|--------|
|
|
167
|
+
| Sprint 1 | 2:50 | 34분 | 3:24 |
|
|
168
|
+
| Sprint 2 | 2:25 | 29분 | 2:54 |
|
|
169
|
+
| Sprint 3 | 2:35 | 31분 | 3:06 |
|
|
170
|
+
| Sprint 4 | 1:35 | 19분 | 1:54 |
|
|
171
|
+
|
|
172
|
+
**총 예상 시간 (버퍼 포함)**: ~11시간 18분
|
|
173
|
+
|
|
174
|
+
### 리스크 항목
|
|
175
|
+
|
|
176
|
+
| 리스크 | 확률 | 영향 | 대응 |
|
|
177
|
+
|--------|------|------|------|
|
|
178
|
+
| 모바일 터치 이슈 | 중 | 중 | Sprint 3에서 해결, 폴백으로 D-Pad만 사용 |
|
|
179
|
+
| 성능 이슈 | 낮 | 중 | requestAnimationFrame 최적화 |
|
|
180
|
+
| 테스트 지연 | 중 | 낮 | E2E는 Could로 분류, 필요시 스킵 |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 마일스톤 매핑
|
|
185
|
+
|
|
186
|
+
| 마일스톤 | 완료 스프린트 | 검증 방법 |
|
|
187
|
+
|---------|-------------|----------|
|
|
188
|
+
| M1: MVP 기반 | Sprint 1 | 게임 루프 동작, 키보드 입력 |
|
|
189
|
+
| M2: MVP 완성 | Sprint 2 | 전체 게임 플레이 가능 |
|
|
190
|
+
| M3: 품질 개선 | Sprint 3 | 모바일 지원, 버그 0 |
|
|
191
|
+
| M4: 배포 | Sprint 4 | 프로덕션 URL 접근 |
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## ✅ 스프린트 계획 체크리스트
|
|
196
|
+
|
|
197
|
+
- [x] 4개 스프린트 정의
|
|
198
|
+
- [x] 태스크 배분
|
|
199
|
+
- [x] 예상 시간 산정
|
|
200
|
+
- [x] 완료 기준 정의
|
|
201
|
+
- [x] 버퍼 시간 포함
|
|
202
|
+
- [x] 리스크 관리 계획
|
|
203
|
+
- [x] 마일스톤 매핑
|