concept-planning
Phase 0 — 게임 콘셉트 확장, 비주얼 타겟 생성, PLAN/STRUCTURE/ASSETS.md 작성, 사용자 승인
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Phase 0 — 게임 콘셉트 확장, 비주얼 타겟 생성, PLAN/STRUCTURE/ASSETS.md 작성, 사용자 승인
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
완성된 Godot 게임을 UX 디자이너, 게임 디자이너, 기술 리뷰어(Godot 전문) 3관점으로 병렬 평가한다.
단일 태스크 실행기 — GDScript 코드 작성, 씬 수정, 사운드 연결, Godot 4 함정 회피
Godot 게임 인터랙티브 테스트 — 입력 주입, 상태 검증, 스크린샷 캡처를 자동화하는 테스트 스킬
Phase 1 — 프로젝트 스캐폴딩 + 스크립트 스텁 + 씬 생성 + 에셋 생성 (이미지/사운드/음악)
Phase 2 — PLAN.md 태스크를 순서대로 구현. godot-task 스킬로 각 태스크 실행, compile-check + 스크린샷
Phase 4 — 디버그 코드 제거, 코드 정리, 게임플레이 비디오 캡처
| name | concept-planning |
| description | Phase 0 — 게임 콘셉트 확장, 비주얼 타겟 생성, PLAN/STRUCTURE/ASSETS.md 작성, 사용자 승인 |
사용자의 한 줄 요구사항을 완전한 게임 설계로 확장합니다. 이 Phase가 사용자와 상호작용하는 유일한 시점입니다.
사용자 입력을 분석하여:
templates/game-design-template.md를 기반으로 게임 디자인 문서를 작성합니다:
Read ${CLAUDE_PLUGIN_ROOT}/templates/game-design-template.md
8개 섹션을 채웁니다:
DESIGN.md는 리뷰(Phase 4.5)에서 "원래 의도 vs 구현 결과" 비교 기준으로 활용됩니다.
Quick 모드: DESIGN.md를 간소화 — Overview + Core Mechanics + Controls만 작성.
게임의 시각적 목표를 정의하는 이미지 생성 프롬프트를 작성합니다:
reference.png 생성:
python3 ${CLAUDE_PLUGIN_ROOT}/tools/asset_gen.py \
--type reference \
--prompt "<비주얼 타겟 프롬프트>" \
--output reference.png
태스크 분해 + 의존성 DAG. 형식:
# PLAN.md — <게임 이름>
## 개요
<게임 콘셉트 요약>
## 태스크
### T1: <태스크 제목>
- **설명**: <무엇을 구현하는지>
- **의존**: 없음
- **산출물**: <생성할 파일 목록>
- **완료 기준**: <검증 가능한 기준>
### T2: <태스크 제목>
- **설명**: ...
- **의존**: T1
- **산출물**: ...
- **완료 기준**: ...
태스크 분해 원칙:
씬 트리, 스크립트 목록, 시그널 맵, 입력 액션, 충돌 레이어:
# STRUCTURE.md — <게임 이름>
## 씬 트리
### main.tscn (Main)
- Node2D (Main)
├── Player (CharacterBody2D)
├── EnemySpawner (Node2D)
├── UI (CanvasLayer)
│ ├── HUD
│ └── PauseMenu
└── GameManager (Node)
### player.tscn (Player)
- CharacterBody2D
├── Sprite2D
├── CollisionShape2D
└── AnimationPlayer
## 스크립트 목록
| 스크립트 | extends | 역할 |
|---------|---------|------|
| main.gd | Node2D | 게임 루프 관리 |
| player.gd | CharacterBody2D | 플레이어 이동/공격 |
## 시그널 맵
| 발신 | 시그널 | 수신 | 용도 |
|------|--------|------|------|
| player.gd | health_changed(int) | hud.gd | HP 표시 업데이트 |
| player.gd | died | main.gd | 게임 오버 처리 |
## 입력 액션
| 액션 | 키 | 용도 |
|------|-----|------|
| move_left | A, Left | 왼쪽 이동 |
| move_right | D, Right | 오른쪽 이동 |
| jump | Space | 점프 |
| shoot | LMB | 사격 |
## 충돌 레이어
| Layer | 이름 | 용도 |
|-------|------|------|
| Layer 1 | player | 플레이어 |
| Layer 2 | enemy | 적 |
| Layer 3 | projectile | 투사체 |
| Layer 4 | environment | 환경/지형 |
에셋 목록 + 예산 계획:
# ASSETS.md — <게임 이름>
## 이미지
| 에셋 | 용도 | 크기 | 프롬프트 |
|------|------|------|----------|
| player.png | 플레이어 스프라이트 | 64x64 | <생성 프롬프트> |
| enemy_01.png | 기본 적 | 64x64 | <생성 프롬프트> |
## 사운드 (SFX)
| 에셋 | 용도 | 길이 | 프롬프트 |
|------|------|------|----------|
| jump.wav | 점프 효과음 | 0.3s | <프롬프트> |
| explosion.wav | 폭발 효과음 | 0.5s | <프롬프트> |
## 음악 (BGM)
| 에셋 | 용도 | 길이 | 프롬프트 |
|------|------|------|----------|
| main_theme.ogg | 메인 BGM | 30s | <프롬프트> |
## 3D 모델 (3D 게임만)
| 에셋 | 용도 | 폴리곤 | 프롬프트 |
|------|------|--------|----------|
## 예산 요약
| 카테고리 | 수량 | 예상 비용 |
|----------|------|-----------|
| 이미지 | N | $X.XX |
| 사운드 | N | $0.00 (무료) |
| 음악 | N | $X.XX |
| 3D 모델 | N | $X.XX |
| **합계** | | **$X.XX** |
유일한 상호작용 시점.
사용자에게 보여줄 것:
승인 후:
# progress 초기화
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh init "<game_name>" "<requirement>" "<2d|3d>"
# PLAN.md의 태스크를 progress JSON에 로드
# (LLM이 jq로 직접 수행 — PLAN.md 파싱 → tasks 배열 구성)
# Phase 상태 업데이트
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh update-phase phase_0 completed
# 게이트 통과
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh plan-gate
PLAN.md의 태스크를 다음 형식으로 progress JSON에 로드:
{
"id": "T1",
"title": "플레이어 캐릭터",
"description": "플레이어 씬 + 이동 스크립트",
"deps": [],
"status": "pending",
"outputs": ["scenes/player.tscn", "scripts/player.gd"],
"createdAt": "2026-03-13T...",
"updatedAt": ""
}
의존성이 없는 태스크는 자동으로 "ready" 상태로 전환됩니다.