godot
Installation
SKILL.md
Godot craft
Build the way a Godot developer working in the editor builds: scene-first. Every visible thing is a node in a scene, every reusable thing is its own scene, events travel on signals, and motion is owned by the node that moves. Reach for the native primitive — the one the engine ships for the job — and code only what no primitive covers.
Check the version before trusting any advice: most Godot material online is Godot 3. The reference is the Godot 4 best practices; read the project's pinned version from project.godot and use that version's docs.
Steps
- Sketch the scene tree. Before writing code for anything visible, write its node tree: which nodes, which are their own
.tscn, which script owns which job, which signals go up and which calls go down, whichResources hold data. Done when every element of the spec or mock maps to a node in the sketch. At design time, the sketch is the ticket's Godot structure section — template in references/ticket-section.md. - Pick each primitive from the table below. Where a row points at a reference, read it before building that part.
- Build in scenes. Author node trees in
.tscnfiles; scripts instance scenes and set state on them. Styles, fonts and colours live in the projectTheme. - Verify by looking. Run
scripts/smell_check.pyover the game code (it reads.gdand.tscn) and clear every finding, either by switching to the native primitive or by tagging a deliberate exception# godot-ok: <reason>(; godot-ok: <reason>in a.tscn) on or above the line. Wire it into validation so a non-zero exit fails the build. Then capture frames of every state and a motion clip of every transition (--write-movie out.png --fixed-fps 30 --quit-after N), open the frames, and compare each against the spec or mock. Attach them wherever the work is reported. Done when the check fails the build on a finding and is green, and you have looked at a frame of every state and transition and each one matches. A report that the game "boots" or "runs" is not verification; a frame you have looked at is.