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,321 @@
|
|
|
1
|
+
# 🔄 Snake Game - 사용자 플로우
|
|
2
|
+
|
|
3
|
+
> 생성일: 2026-01-21
|
|
4
|
+
> 스테이지: 04-ui-ux
|
|
5
|
+
> 프로젝트: snake-game
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 전체 게임 플로우
|
|
10
|
+
|
|
11
|
+
```mermaid
|
|
12
|
+
graph TD
|
|
13
|
+
A[앱 접속] --> B[Start Screen]
|
|
14
|
+
|
|
15
|
+
B --> |Start 버튼 클릭| C[Game Playing]
|
|
16
|
+
B --> |How to Play| B1[Instructions Modal]
|
|
17
|
+
B1 --> |닫기| B
|
|
18
|
+
|
|
19
|
+
C --> |방향키/스와이프| C
|
|
20
|
+
C --> |ESC/P/Pause버튼| D[Pause Overlay]
|
|
21
|
+
|
|
22
|
+
D --> |Resume| C
|
|
23
|
+
D --> |Quit| B
|
|
24
|
+
|
|
25
|
+
C --> |벽/자기몸 충돌| E[Game Over Modal]
|
|
26
|
+
|
|
27
|
+
E --> F{최고 점수 갱신?}
|
|
28
|
+
F -- Yes --> G[localStorage 저장]
|
|
29
|
+
F -- No --> H[점수 표시]
|
|
30
|
+
G --> H
|
|
31
|
+
|
|
32
|
+
H --> |Play Again| C
|
|
33
|
+
H --> |Main Menu| B
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. 핵심 사용자 플로우
|
|
39
|
+
|
|
40
|
+
### 2.1 게임 시작 플로우
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
[Start Screen]
|
|
44
|
+
│
|
|
45
|
+
▼
|
|
46
|
+
사용자: Start 버튼 클릭 또는 Enter 키
|
|
47
|
+
│
|
|
48
|
+
▼
|
|
49
|
+
시스템: 게임 상태 초기화
|
|
50
|
+
│ - snake: 초기 위치 (10,10)
|
|
51
|
+
│ - food: 랜덤 위치 생성
|
|
52
|
+
│ - score: 0
|
|
53
|
+
│ - direction: RIGHT
|
|
54
|
+
│ - status: PLAYING
|
|
55
|
+
│
|
|
56
|
+
▼
|
|
57
|
+
시스템: 게임 루프 시작 (requestAnimationFrame)
|
|
58
|
+
│
|
|
59
|
+
▼
|
|
60
|
+
[Game Playing]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 2.2 게임 플레이 루프
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
[Game Playing]
|
|
67
|
+
│
|
|
68
|
+
▼
|
|
69
|
+
┌─────────────────────────────────┐
|
|
70
|
+
│ 1. 입력 처리 │
|
|
71
|
+
│ - 키보드: Arrow Keys / WASD │
|
|
72
|
+
│ - 터치: Swipe / D-Pad │
|
|
73
|
+
│ - 역방향 입력 무시 │
|
|
74
|
+
└──────────────┬──────────────────┘
|
|
75
|
+
▼
|
|
76
|
+
┌─────────────────────────────────┐
|
|
77
|
+
│ 2. 게임 틱 (TICK) │
|
|
78
|
+
│ - 뱀 머리 위치 계산 │
|
|
79
|
+
│ - 충돌 감지 실행 │
|
|
80
|
+
└──────────────┬──────────────────┘
|
|
81
|
+
▼
|
|
82
|
+
┌──────┴──────┐
|
|
83
|
+
│ 충돌 타입? │
|
|
84
|
+
└──────┬──────┘
|
|
85
|
+
┌────────┼────────┐
|
|
86
|
+
▼ ▼ ▼
|
|
87
|
+
[벽/자기] [먹이] [없음]
|
|
88
|
+
│ │ │
|
|
89
|
+
▼ ▼ ▼
|
|
90
|
+
Game Over 성장+점수 이동
|
|
91
|
+
│ │
|
|
92
|
+
└────────┴─────► Canvas 렌더링
|
|
93
|
+
│
|
|
94
|
+
▼
|
|
95
|
+
다음 프레임 대기
|
|
96
|
+
│
|
|
97
|
+
└──► [루프 반복]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 2.3 일시정지 / 재개 플로우
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
[Game Playing]
|
|
104
|
+
│
|
|
105
|
+
▼
|
|
106
|
+
사용자: ESC / P / Pause 버튼
|
|
107
|
+
│
|
|
108
|
+
▼
|
|
109
|
+
시스템: status → PAUSED
|
|
110
|
+
│ - 게임 루프 정지
|
|
111
|
+
│ - Pause Overlay 표시
|
|
112
|
+
│
|
|
113
|
+
▼
|
|
114
|
+
[Pause Overlay]
|
|
115
|
+
│
|
|
116
|
+
├──► 사용자: Resume 버튼
|
|
117
|
+
│ │
|
|
118
|
+
│ ▼
|
|
119
|
+
│ 시스템: status → PLAYING
|
|
120
|
+
│ │ - 게임 루프 재개
|
|
121
|
+
│ ▼
|
|
122
|
+
│ [Game Playing]
|
|
123
|
+
│
|
|
124
|
+
└──► 사용자: Quit 버튼
|
|
125
|
+
│
|
|
126
|
+
▼
|
|
127
|
+
시스템: 게임 상태 초기화
|
|
128
|
+
│
|
|
129
|
+
▼
|
|
130
|
+
[Start Screen]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### 2.4 게임 오버 플로우
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
[Collision Detected]
|
|
137
|
+
│
|
|
138
|
+
▼
|
|
139
|
+
시스템: status → GAME_OVER
|
|
140
|
+
│ - 게임 루프 정지
|
|
141
|
+
│
|
|
142
|
+
▼
|
|
143
|
+
시스템: 최고 점수 비교
|
|
144
|
+
│
|
|
145
|
+
├──► score > highScore
|
|
146
|
+
│ │
|
|
147
|
+
│ ▼
|
|
148
|
+
│ localStorage 저장
|
|
149
|
+
│ "NEW HIGH SCORE!" 표시
|
|
150
|
+
│
|
|
151
|
+
└──► score <= highScore
|
|
152
|
+
│
|
|
153
|
+
▼
|
|
154
|
+
일반 점수 표시
|
|
155
|
+
│
|
|
156
|
+
▼
|
|
157
|
+
[Game Over Modal]
|
|
158
|
+
│
|
|
159
|
+
├──► 사용자: Play Again (Enter)
|
|
160
|
+
│ │
|
|
161
|
+
│ ▼
|
|
162
|
+
│ 시스템: 게임 리셋 + 시작
|
|
163
|
+
│ │
|
|
164
|
+
│ ▼
|
|
165
|
+
│ [Game Playing]
|
|
166
|
+
│
|
|
167
|
+
└──► 사용자: Main Menu
|
|
168
|
+
│
|
|
169
|
+
▼
|
|
170
|
+
시스템: 게임 리셋
|
|
171
|
+
│
|
|
172
|
+
▼
|
|
173
|
+
[Start Screen]
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 3. 입력 처리 플로우
|
|
179
|
+
|
|
180
|
+
### 3.1 키보드 입력
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
키보드 이벤트 (keydown)
|
|
184
|
+
│
|
|
185
|
+
▼
|
|
186
|
+
┌─────────────────────────────────┐
|
|
187
|
+
│ 키 매핑 │
|
|
188
|
+
│ ArrowUp / W → UP │
|
|
189
|
+
│ ArrowDown / S → DOWN │
|
|
190
|
+
│ ArrowLeft / A → LEFT │
|
|
191
|
+
│ ArrowRight / D → RIGHT │
|
|
192
|
+
│ ESC / P → PAUSE │
|
|
193
|
+
│ Enter / Space → RESTART │
|
|
194
|
+
└──────────────┬──────────────────┘
|
|
195
|
+
▼
|
|
196
|
+
┌────────┴────────┐
|
|
197
|
+
│ 현재 상태? │
|
|
198
|
+
└────────┬────────┘
|
|
199
|
+
┌──────┴──────┐
|
|
200
|
+
▼ ▼
|
|
201
|
+
[PLAYING] [GAME_OVER]
|
|
202
|
+
│ │
|
|
203
|
+
▼ ▼
|
|
204
|
+
방향 변경 재시작 처리
|
|
205
|
+
(역방향 무시)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 3.2 터치/스와이프 입력
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
터치 이벤트
|
|
212
|
+
│
|
|
213
|
+
├──► touchstart
|
|
214
|
+
│ - 시작 좌표 저장 (startX, startY)
|
|
215
|
+
│ - 시작 시간 저장
|
|
216
|
+
│
|
|
217
|
+
└──► touchend
|
|
218
|
+
- 종료 좌표 (endX, endY)
|
|
219
|
+
│
|
|
220
|
+
▼
|
|
221
|
+
┌─────────────────────────────┐
|
|
222
|
+
│ 스와이프 판정 │
|
|
223
|
+
│ - 거리 > 50px (threshold) │
|
|
224
|
+
│ - 시간 < 500ms │
|
|
225
|
+
└──────────────┬──────────────┘
|
|
226
|
+
▼
|
|
227
|
+
방향 계산 (X vs Y delta)
|
|
228
|
+
│
|
|
229
|
+
┌─────────┴─────────┐
|
|
230
|
+
▼ ▼
|
|
231
|
+
|deltaX| > |deltaY| |deltaY| > |deltaX|
|
|
232
|
+
│ │
|
|
233
|
+
┌────┴────┐ ┌────┴────┐
|
|
234
|
+
▼ ▼ ▼ ▼
|
|
235
|
+
LEFT RIGHT UP DOWN
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 4. 에러/예외 플로우
|
|
241
|
+
|
|
242
|
+
### 4.1 localStorage 접근 실패
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
localStorage 작업 시도
|
|
246
|
+
│
|
|
247
|
+
▼
|
|
248
|
+
┌─────────────────────────────────┐
|
|
249
|
+
│ try-catch 처리 │
|
|
250
|
+
│ │
|
|
251
|
+
│ 실패 시: │
|
|
252
|
+
│ - 콘솔 경고 출력 │
|
|
253
|
+
│ - highScore = 0 유지 │
|
|
254
|
+
│ - 게임은 정상 진행 │
|
|
255
|
+
└─────────────────────────────────┘
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 4.2 Canvas 지원 안 됨
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
Canvas 초기화
|
|
262
|
+
│
|
|
263
|
+
▼
|
|
264
|
+
┌─────────────────────────────────┐
|
|
265
|
+
│ getContext('2d') 호출 │
|
|
266
|
+
│ │
|
|
267
|
+
│ null 반환 시: │
|
|
268
|
+
│ - 에러 메시지 화면 표시 │
|
|
269
|
+
│ - "Your browser does not │
|
|
270
|
+
│ support Canvas" │
|
|
271
|
+
└─────────────────────────────────┘
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 5. 상태 전이 다이어그램
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
START_GAME
|
|
280
|
+
┌──────────────────┐
|
|
281
|
+
│ │
|
|
282
|
+
▼ │
|
|
283
|
+
[IDLE] ────────► [PLAYING]
|
|
284
|
+
▲ │
|
|
285
|
+
│ RESTART │ PAUSE_GAME
|
|
286
|
+
│ ▼
|
|
287
|
+
│ [PAUSED]
|
|
288
|
+
│ │
|
|
289
|
+
│ RESUME_GAME │
|
|
290
|
+
│ ┌───────────────┘
|
|
291
|
+
│ │
|
|
292
|
+
│ ▼
|
|
293
|
+
│ [PLAYING]
|
|
294
|
+
│ │
|
|
295
|
+
│ │ GAME_OVER (충돌)
|
|
296
|
+
│ ▼
|
|
297
|
+
└── [GAME_OVER]
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### 상태별 허용 액션
|
|
301
|
+
|
|
302
|
+
| 현재 상태 | 허용 액션 |
|
|
303
|
+
|----------|----------|
|
|
304
|
+
| IDLE | START_GAME |
|
|
305
|
+
| PLAYING | CHANGE_DIRECTION, PAUSE_GAME, TICK, GAME_OVER |
|
|
306
|
+
| PAUSED | RESUME_GAME, RESTART |
|
|
307
|
+
| GAME_OVER | RESTART |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## ✅ 사용자 플로우 체크리스트
|
|
312
|
+
|
|
313
|
+
- [x] 전체 게임 플로우 다이어그램
|
|
314
|
+
- [x] 게임 시작 플로우
|
|
315
|
+
- [x] 게임 플레이 루프
|
|
316
|
+
- [x] 일시정지/재개 플로우
|
|
317
|
+
- [x] 게임 오버 플로우
|
|
318
|
+
- [x] 키보드 입력 처리
|
|
319
|
+
- [x] 터치/스와이프 입력 처리
|
|
320
|
+
- [x] 에러/예외 플로우
|
|
321
|
+
- [x] 상태 전이 다이어그램
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
# 🎨 Snake Game - 와이어프레임
|
|
2
|
+
|
|
3
|
+
> 생성일: 2026-01-21
|
|
4
|
+
> 스테이지: 04-ui-ux
|
|
5
|
+
> 프로젝트: snake-game
|
|
6
|
+
> AI 도구: Gemini CLI
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. 화면 개요
|
|
11
|
+
|
|
12
|
+
| 화면 | 설명 | 컴포넌트 |
|
|
13
|
+
|------|------|----------|
|
|
14
|
+
| Start Screen | 게임 시작 전 타이틀 화면 | StartScreen |
|
|
15
|
+
| Desktop Play | 데스크톱 게임 플레이 | GameEngine, CanvasLayer, ScoreBoard |
|
|
16
|
+
| Mobile Play | 모바일 게임 플레이 + 터치 컨트롤 | GameEngine, MobileControls |
|
|
17
|
+
| Pause Overlay | 일시정지 오버레이 | PauseOverlay |
|
|
18
|
+
| Game Over | 게임 오버 모달 | GameOverModal |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 시작 화면 (Start Screen)
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
+----------------------------------------+
|
|
26
|
+
| |
|
|
27
|
+
| S N A K E |
|
|
28
|
+
| (Neon Logo) |
|
|
29
|
+
| |
|
|
30
|
+
| High Score: 1,250 |
|
|
31
|
+
| |
|
|
32
|
+
| +--------------------------+ |
|
|
33
|
+
| | GAME START | |
|
|
34
|
+
| +--------------------------+ |
|
|
35
|
+
| |
|
|
36
|
+
| [ How to Play ] [ Settings ] |
|
|
37
|
+
| |
|
|
38
|
+
| (c) 2026 Snake Game |
|
|
39
|
+
+----------------------------------------+
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 상세 명세
|
|
43
|
+
|
|
44
|
+
| 요소 | 스타일 | 상호작용 |
|
|
45
|
+
|------|--------|----------|
|
|
46
|
+
| 로고 | 네온 그린 (#00ff88), Glow 효과 | - |
|
|
47
|
+
| High Score | 노란색 (#f0e130), 서브 텍스트 | - |
|
|
48
|
+
| Start 버튼 | Primary 버튼, 네온 테두리 | 클릭/Enter → 게임 시작 |
|
|
49
|
+
| How to Play | 텍스트 링크 | 클릭 → 설명 모달 |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. 게임 플레이 - 데스크톱 (Desktop)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
+----------------------------------------+
|
|
57
|
+
| SCORE: 120 BEST: 1,250 |
|
|
58
|
+
+----------------------------------------+
|
|
59
|
+
| |
|
|
60
|
+
| +----------------------------------+ |
|
|
61
|
+
| | | |
|
|
62
|
+
| | [Canvas 400 x 400] | |
|
|
63
|
+
| | | |
|
|
64
|
+
| | ###O @ | |
|
|
65
|
+
| | (Snake) (Food) | |
|
|
66
|
+
| | | |
|
|
67
|
+
| | | |
|
|
68
|
+
| +----------------------------------+ |
|
|
69
|
+
| |
|
|
70
|
+
| [ESC/P] Pause [Arrow Keys] Move |
|
|
71
|
+
+----------------------------------------+
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 레이아웃 명세
|
|
75
|
+
|
|
76
|
+
| 영역 | 크기 | 배치 |
|
|
77
|
+
|------|------|------|
|
|
78
|
+
| ScoreBoard | 100% width, 48px height | 상단 고정 |
|
|
79
|
+
| Canvas | 400x400px (20x20 * 20px) | 중앙 |
|
|
80
|
+
| Controls Hint | Auto | 하단 |
|
|
81
|
+
|
|
82
|
+
### 요소 명세
|
|
83
|
+
|
|
84
|
+
| 요소 | 스타일 |
|
|
85
|
+
|------|--------|
|
|
86
|
+
| Score 텍스트 | 화이트 (#ffffff), 좌측 정렬 |
|
|
87
|
+
| Best Score 텍스트 | 골드 (#f0e130), 우측 정렬 |
|
|
88
|
+
| Canvas 배경 | #16213e |
|
|
89
|
+
| Grid Lines | rgba(255, 255, 255, 0.05) |
|
|
90
|
+
| Snake Head | #00cc6a + Glow |
|
|
91
|
+
| Snake Body | #00ff88 + Glow |
|
|
92
|
+
| Food | #ff6b6b + Glow |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 4. 게임 플레이 - 모바일 (Mobile + Touch Controls)
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
+----------------------------------------+
|
|
100
|
+
| SCORE: 120 [||] (Pause) |
|
|
101
|
+
+----------------------------------------+
|
|
102
|
+
| |
|
|
103
|
+
| +----------------------------------+ |
|
|
104
|
+
| | | |
|
|
105
|
+
| | [Responsive Canvas] | |
|
|
106
|
+
| | (max-width) | |
|
|
107
|
+
| | | |
|
|
108
|
+
| +----------------------------------+ |
|
|
109
|
+
| |
|
|
110
|
+
| [ ^ ] |
|
|
111
|
+
| UP |
|
|
112
|
+
| |
|
|
113
|
+
| [ < ] [ > ] |
|
|
114
|
+
| LEFT RIGHT |
|
|
115
|
+
| |
|
|
116
|
+
| [ v ] |
|
|
117
|
+
| DOWN |
|
|
118
|
+
+----------------------------------------+
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 모바일 레이아웃
|
|
122
|
+
|
|
123
|
+
| 영역 | 크기 | 배치 |
|
|
124
|
+
|------|------|------|
|
|
125
|
+
| ScoreBoard | 100% width, 44px | 상단 |
|
|
126
|
+
| Pause 버튼 | 44x44px | 상단 우측 |
|
|
127
|
+
| Canvas | calc(100vw - 32px), max 400px | 중앙 |
|
|
128
|
+
| D-Pad Controls | 200x200px | 하단 중앙 |
|
|
129
|
+
|
|
130
|
+
### D-Pad 버튼 명세
|
|
131
|
+
|
|
132
|
+
| 버튼 | 크기 | 터치 영역 |
|
|
133
|
+
|------|------|----------|
|
|
134
|
+
| 상/하/좌/우 | 56x56px | 64x64px (최소) |
|
|
135
|
+
| 활성 상태 | 배경 Primary, 테두리 강조 |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 5. 일시정지 오버레이 (Pause Overlay)
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
+----------------------------------------+
|
|
143
|
+
| SCORE: 120 BEST: 1,250 |
|
|
144
|
+
+----------------------------------------+
|
|
145
|
+
| +----------------------------------+ |
|
|
146
|
+
| | | |
|
|
147
|
+
| | ▌▌ PAUSED | |
|
|
148
|
+
| | | |
|
|
149
|
+
| | +----------------+ | |
|
|
150
|
+
| | | RESUME | | |
|
|
151
|
+
| | +----------------+ | |
|
|
152
|
+
| | | |
|
|
153
|
+
| | +----------------+ | |
|
|
154
|
+
| | | QUIT | | |
|
|
155
|
+
| | +----------------+ | |
|
|
156
|
+
| | | |
|
|
157
|
+
| +----------------------------------+ |
|
|
158
|
+
| |
|
|
159
|
+
+----------------------------------------+
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 오버레이 명세
|
|
163
|
+
|
|
164
|
+
| 요소 | 스타일 |
|
|
165
|
+
|------|--------|
|
|
166
|
+
| 배경 | rgba(0, 0, 0, 0.8), 블러 효과 |
|
|
167
|
+
| PAUSED 텍스트 | 화이트, 큰 폰트 |
|
|
168
|
+
| Resume 버튼 | Primary 버튼 (#00ff88) |
|
|
169
|
+
| Quit 버튼 | Secondary 버튼 (투명, 테두리만) |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 6. 게임 오버 모달 (Game Over Modal)
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
+----------------------------------------+
|
|
177
|
+
| (Dimmed Background Overlay) |
|
|
178
|
+
| |
|
|
179
|
+
| +------------------------------+ |
|
|
180
|
+
| | | |
|
|
181
|
+
| | G A M E O V E R | |
|
|
182
|
+
| | | |
|
|
183
|
+
| | Final Score: 120 | |
|
|
184
|
+
| | | |
|
|
185
|
+
| | ★ NEW HIGH SCORE! ★ | |
|
|
186
|
+
| | | |
|
|
187
|
+
| | +------------------------+ | |
|
|
188
|
+
| | | PLAY AGAIN (Enter) | | |
|
|
189
|
+
| | +------------------------+ | |
|
|
190
|
+
| | | |
|
|
191
|
+
| | [ Main Menu ] | |
|
|
192
|
+
| +------------------------------+ |
|
|
193
|
+
| |
|
|
194
|
+
+----------------------------------------+
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 모달 명세
|
|
198
|
+
|
|
199
|
+
| 요소 | 스타일 | 조건 |
|
|
200
|
+
|------|--------|------|
|
|
201
|
+
| 배경 오버레이 | rgba(0, 0, 0, 0.85) | - |
|
|
202
|
+
| 모달 박스 | #16213e, 네온 테두리, 둥근 모서리 | - |
|
|
203
|
+
| GAME OVER | 레드 (#ff6b6b), Glow | - |
|
|
204
|
+
| Final Score | 화이트, 큰 폰트 | - |
|
|
205
|
+
| NEW HIGH SCORE | 골드 (#f0e130), 깜빡임 | score > highScore |
|
|
206
|
+
| Play Again | Primary 버튼, 전체 너비 | - |
|
|
207
|
+
| Main Menu | 텍스트 링크 | - |
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 7. 반응형 브레이크포인트
|
|
212
|
+
|
|
213
|
+
| 브레이크포인트 | 화면 너비 | 변경 사항 |
|
|
214
|
+
|--------------|----------|----------|
|
|
215
|
+
| Mobile | < 480px | 터치 컨트롤 활성화, 캔버스 축소 |
|
|
216
|
+
| Tablet | 480px - 768px | 터치 컨트롤 선택적 |
|
|
217
|
+
| Desktop | > 768px | 키보드 컨트롤, 풀 캔버스 |
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 8. 애니메이션 명세
|
|
222
|
+
|
|
223
|
+
| 애니메이션 | 트리거 | 효과 |
|
|
224
|
+
|-----------|--------|------|
|
|
225
|
+
| Score Pulse | 점수 증가 | scale(1.2) → scale(1), 200ms |
|
|
226
|
+
| Modal Enter | 모달 열림 | opacity 0→1, scale(0.9→1), 300ms |
|
|
227
|
+
| Modal Exit | 모달 닫힘 | opacity 1→0, 200ms |
|
|
228
|
+
| Button Hover | 버튼 호버 | 배경색 채움, 100ms |
|
|
229
|
+
| Snake Glow | 항상 | box-shadow pulse, 1s loop |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## ✅ 와이어프레임 체크리스트
|
|
234
|
+
|
|
235
|
+
- [x] 시작 화면
|
|
236
|
+
- [x] 게임 플레이 (데스크톱)
|
|
237
|
+
- [x] 게임 플레이 (모바일)
|
|
238
|
+
- [x] 일시정지 오버레이
|
|
239
|
+
- [x] 게임 오버 모달
|
|
240
|
+
- [x] 반응형 브레이크포인트
|
|
241
|
+
- [x] 애니메이션 명세
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# AI 협업 프롬프트 - UI/UX Planning
|
|
2
|
+
|
|
3
|
+
## 협업 모드: Debate + Parallel
|
|
4
|
+
|
|
5
|
+
이 스테이지에서는 **토론 모드**로 UX 방향성을 결정하고, **병렬 모드**로 세부 설계를 진행합니다.
|
|
6
|
+
|
|
7
|
+
### 참여 모델
|
|
8
|
+
- **Gemini**: 창의적 UI 설계, 와이어프레임 생성
|
|
9
|
+
- **Claude**: 사용성 검토, 접근성 평가
|
|
10
|
+
|
|
11
|
+
### 협업 프롬프트
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
# UX 방향 토론
|
|
15
|
+
/collaborate --mode debate --topic "사용자 경험 방향성" --rounds 2
|
|
16
|
+
|
|
17
|
+
# 병렬 설계
|
|
18
|
+
/collaborate --mode parallel --models gemini,claude --task "UI 컴포넌트 설계"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 토론 주제
|
|
22
|
+
|
|
23
|
+
1. **인터랙션 패턴**: 전통적 vs 혁신적
|
|
24
|
+
2. **정보 아키텍처**: 평면 vs 계층
|
|
25
|
+
3. **디자인 시스템**: 기존 사용 vs 커스텀
|
|
26
|
+
|
|
27
|
+
### 작업 분담
|
|
28
|
+
|
|
29
|
+
| AI | 담당 영역 | 출력 |
|
|
30
|
+
|----|----------|------|
|
|
31
|
+
| Gemini | 와이어프레임, 시각 설계 | wireframes.md |
|
|
32
|
+
| Claude | 사용자 플로우, 접근성 검토 | user_flows.md |
|
|
33
|
+
|
|
34
|
+
### 디자인 검토 체크리스트
|
|
35
|
+
|
|
36
|
+
- [ ] 사용자 시나리오 기반 설계
|
|
37
|
+
- [ ] 반응형 고려
|
|
38
|
+
- [ ] 접근성 (WCAG 2.1)
|
|
39
|
+
- [ ] 일관된 디자인 언어
|
|
40
|
+
|
|
41
|
+
### 출력 형식
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
## AI 협업 결과
|
|
45
|
+
|
|
46
|
+
### Gemini 설계
|
|
47
|
+
- 와이어프레임 (ASCII/Mermaid)
|
|
48
|
+
- 색상/타이포그래피 제안
|
|
49
|
+
|
|
50
|
+
### Claude 검토
|
|
51
|
+
- 사용성 평가
|
|
52
|
+
- 접근성 개선점
|
|
53
|
+
|
|
54
|
+
### 통합 디자인 시스템
|
|
55
|
+
- [최종 컴포넌트 목록]
|
|
56
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 산출물 검증 프롬프트 - UI/UX Planning
|
|
2
|
+
|
|
3
|
+
## 검증 대상
|
|
4
|
+
|
|
5
|
+
| 산출물 | 필수 조건 | 검증 방법 |
|
|
6
|
+
|--------|----------|----------|
|
|
7
|
+
| `wireframes.md` | 주요 화면 5개+ | 수량 확인 |
|
|
8
|
+
| `user_flows.md` | 핵심 플로우 3개+ | 수량 확인 |
|
|
9
|
+
| `design_system.md` | 색상/타이포/스페이싱 | 구조 확인 |
|
|
10
|
+
| `HANDOFF.md` | 컴포넌트 목록 | 항목 확인 |
|
|
11
|
+
|
|
12
|
+
## 검증 명령
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
/validate --stage 04-ui-ux
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 품질 기준
|
|
19
|
+
|
|
20
|
+
### wireframes.md
|
|
21
|
+
- [ ] 주요 화면 5개 이상
|
|
22
|
+
- [ ] 각 화면 설명
|
|
23
|
+
- [ ] 반응형 breakpoint 고려
|
|
24
|
+
- [ ] 상호작용 설명
|
|
25
|
+
|
|
26
|
+
### user_flows.md
|
|
27
|
+
- [ ] 핵심 사용자 플로우 3개 이상
|
|
28
|
+
- [ ] 각 플로우 다이어그램
|
|
29
|
+
- [ ] 엣지 케이스 처리
|
|
30
|
+
- [ ] 에러 상태 정의
|
|
31
|
+
|
|
32
|
+
### design_system.md
|
|
33
|
+
- [ ] 색상 팔레트 (Primary, Secondary, Neutral)
|
|
34
|
+
- [ ] 타이포그래피 스케일
|
|
35
|
+
- [ ] 스페이싱 시스템
|
|
36
|
+
- [ ] 컴포넌트 목록 및 변형
|
|
37
|
+
|
|
38
|
+
### HANDOFF.md
|
|
39
|
+
- [ ] 구현할 컴포넌트 목록
|
|
40
|
+
- [ ] 우선순위 지정
|
|
41
|
+
- [ ] 기술적 고려사항
|
|
42
|
+
|
|
43
|
+
## 자동 검증 스크립트
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 와이어프레임 수 확인
|
|
47
|
+
grep -c "^### " outputs/wireframes.md
|
|
48
|
+
|
|
49
|
+
# 사용자 플로우 수 확인
|
|
50
|
+
grep -c "^## Flow" outputs/user_flows.md
|
|
51
|
+
|
|
52
|
+
# 디자인 시스템 섹션 확인
|
|
53
|
+
grep -E "^## (색상|Color|타이포|Typography|스페이싱|Spacing)" outputs/design_system.md
|
|
54
|
+
```
|
|
File without changes
|