godot-task
단일 태스크 실행기 — GDScript 코드 작성, 씬 수정, 사운드 연결, Godot 4 함정 회피
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
단일 태스크 실행기 — GDScript 코드 작성, 씬 수정, 사운드 연결, Godot 4 함정 회피
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Phase 0 — 게임 콘셉트 확장, 비주얼 타겟 생성, PLAN/STRUCTURE/ASSETS.md 작성, 사용자 승인
완성된 Godot 게임을 UX 디자이너, 게임 디자이너, 기술 리뷰어(Godot 전문) 3관점으로 병렬 평가한다.
Godot 게임 인터랙티브 테스트 — 입력 주입, 상태 검증, 스크린샷 캡처를 자동화하는 테스트 스킬
Phase 1 — 프로젝트 스캐폴딩 + 스크립트 스텁 + 씬 생성 + 에셋 생성 (이미지/사운드/음악)
Phase 2 — PLAN.md 태스크를 순서대로 구현. godot-task 스킬로 각 태스크 실행, compile-check + 스크린샷
Phase 4 — 디버그 코드 제거, 코드 정리, 게임플레이 비디오 캡처
| name | godot-task |
| description | 단일 태스크 실행기 — GDScript 코드 작성, 씬 수정, 사운드 연결, Godot 4 함정 회피 |
PLAN.md의 단일 태스크를 구현합니다. 스텁을 실제 코드로 채우고, 씬을 수정/연결합니다.
progress JSON에서 현재 태스크 정보 읽기:
title: 무엇을 구현하는지description: 상세 설명outputs: 생성/수정할 파일 목록deps: 의존 태스크 (이미 done)구현 전 반드시 읽을 파일:
Read ${CLAUDE_PLUGIN_ROOT}/skills/godot-task/quirks.md # Godot 4 함정
Read ${CLAUDE_PLUGIN_ROOT}/skills/godot-task/gdscript.md # GDScript 레퍼런스
스텁의 pass를 실제 코드로 교체합니다.
이동 (CharacterBody2D):
func _physics_process(delta: float) -> void:
var direction := Input.get_vector("move_left", "move_right", "move_up", "move_down")
velocity = direction * speed
move_and_slide()
플랫포머 점프:
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_force
var direction := Input.get_axis("move_left", "move_right")
velocity.x = direction * speed
move_and_slide()
시그널 연결 (코드에서):
func _ready() -> void:
health_changed.connect(_on_health_changed)
# 또는 다른 노드의 시그널
%Player.died.connect(_on_player_died)
시그널 연결 (씬에서):
[connection signal="body_entered" from="Area2D" to="." method="_on_body_entered"]
기존 .tscn에 노드/리소스를 추가하거나, 새 씬을 생성합니다.
새 노드 추가 (.tscn 편집):
[node name="HitBox" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="HitBox"]
인스턴스 (씬을 다른 씬에 배치):
[ext_resource type="PackedScene" path="res://scenes/player.tscn" id="2"]
[node name="Player" parent="." instance=ExtResource("2")]
position = Vector2(640, 360)
# 씬에 AudioStreamPlayer2D 추가 후:
@onready var jump_sound: AudioStreamPlayer2D = $JumpSound
func _jump() -> void:
velocity.y = jump_force
jump_sound.play()
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-gate.sh compile-check
에러 발생 시:
quirks.md 참조 (알려진 함정인지)compile-check 통과 후, 관련 시나리오가 있으면 인터랙티브 테스트를 실행합니다.
# 이동 구현 → basic-movement 시나리오
bash ${CLAUDE_PLUGIN_ROOT}/scripts/godot-test-runner.sh \
--inject-autoloads \
--scenario basic-movement \
--output-dir test_output
시나리오 선택 기준:
basic-movementjump-teststart-gamepause-resume결과 확인:
Read test_output/shot-{scenario}.png로 시각 확인Read test_output/state-{scenario}.json으로 상태 확인Read test_output/errors-{scenario}.json (있으면 첫 에러만 수정)상세 규칙은 rules/testing-rules-godot.md 참조.
필요시 다음을 Read로 로드:
${CLAUDE_PLUGIN_ROOT}/skills/godot-task/quirks.md — Godot 4 함정 모음${CLAUDE_PLUGIN_ROOT}/skills/godot-task/gdscript.md — GDScript 레퍼런스${CLAUDE_PLUGIN_ROOT}/skills/godot-task/scene-generation.md — 씬 생성 가이드${CLAUDE_PLUGIN_ROOT}/skills/godot-task/script-generation.md — 스크립트 생성 가이드${CLAUDE_PLUGIN_ROOT}/skills/godot-task/coordination.md — 씬 간 조정${CLAUDE_PLUGIN_ROOT}/skills/godot-task/capture.md — 스크린샷 캡처${CLAUDE_PLUGIN_ROOT}/skills/godot-task/visual-qa.md — VQA 도구${CLAUDE_PLUGIN_ROOT}/skills/godot-testing/SKILL.md — 인터랙티브 테스트${CLAUDE_PLUGIN_ROOT}/rules/testing-rules-godot.md — 테스팅 규칙코드 작성 시 다음을 반드시 적용하여 테스트 자동화와 호환되게 합니다:
add_to_group("player"), 적 → add_to_group("enemies"), GameManager → add_to_group("game_manager")game_mode: String, score: int (StateReporter가 읽음)move_left, move_right, move_up, move_down, jump, attack, pause 등 표준 이름