port: pin Godot 4.7.2, and decide the MCP/skills question

The pin was 4.3, chosen without checking; 4.7.2 is the current stable (released
2026-08-18). Getting this right matters more here than usual because the project
diffs Godot screenshots against a reference renderer, so the engine version is
part of the measurement.

No Godot MCP server. Not because they are bad -- the mature ones need a LIVE
editor plus a WebSocket plugin and a Python server, which is a daemon, an editor
process and a second runtime added to an unattended loop. And their headline
feature, scene-tree introspection and node manipulation, is built for someone
hand-authoring scenes in the editor. This port GENERATES screens from exported
JSON: the agent writes a loader, not a scene tree, so the feature that justifies
the complexity does not apply. What it actually needs to verify itself -- run
headless, screenshot, diff against sylpheed-cli screen render -- is already a
bash job.

Third-party skill packs are the opposite trade: pure context, no runtime. Worth
revisiting, deliberately not installed now, because a skill is instructions
injected into an agent running with approvals disabled -- a supply-chain
decision, not a default -- and because P0/P1 need no advanced GDScript. The
agent may propose one, naming the milestone it unblocks, for a human to vendor
and review.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
MechaCat02
2026-08-28 20:07:39 +02:00
parent 9d96be609e
commit d475e78d80
2 changed files with 39 additions and 1 deletions

View File

@@ -38,7 +38,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
# Pinned. An engine version bump changes rendering, and this project compares # Pinned. An engine version bump changes rendering, and this project compares
# screenshots against a reference renderer — so an upgrade must be a deliberate, # screenshots against a reference renderer — so an upgrade must be a deliberate,
# stated act rather than a silent drift. # stated act rather than a silent drift.
ARG GODOT_VERSION=4.3 ARG GODOT_VERSION=4.7.2
RUN cd /tmp \ RUN cd /tmp \
&& curl -fsSLO "https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip" \ && curl -fsSLO "https://github.com/godotengine/godot/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip" \
&& unzip -q "Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip" \ && unzip -q "Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip" \

View File

@@ -115,3 +115,41 @@ Only the boot intro and the one new-game intro are in scope. The disc holds
3D, gameplay, HUD, missions, save/load, localisation beyond English, the Ready 3D, gameplay, HUD, missions, save/load, localisation beyond English, the Ready
Room, and any reverse engineering. If you want an answer the disc has not given Room, and any reverse engineering. If you want an answer the disc has not given
you, that is a request to the container agent, not a task for you. you, that is a request to the container agent, not a task for you.
## 8. Tooling policy — MCP servers and third-party skills
Surveyed 2026-08-28. **No Godot MCP server, for now**, and the reason is not
that they are bad:
* The mature ones ([godot-ai][ga], and most of the field) need a **live Godot
editor** running with a plugin that talks WebSocket to a Python server. This
agent is headless in a container; that is a daemon, an editor process and a
second language runtime added to an unattended loop, all of which can fail in
ways that look like a port bug.
* Their headline feature is **scene-tree introspection and node manipulation** —
built for someone hand-authoring scenes in the editor. This port *generates*
its screens from exported JSON at runtime. The agent writes a loader, not a
scene tree, so the feature that justifies the complexity does not apply here.
* What the agent actually needs to verify its work already exists:
`godot-headless` to run the project and `screenshot` to diff against
`sylpheed-cli screen render`. The verification loop is the valuable part, and
it is a bash job.
**Third-party skill packs** ([godot-claude-skills][gcs], [GodotPrompter][gp],
[Godot-Claude-Skills][rcs]) are the opposite trade: pure context, no runtime, no
daemon. They are worth revisiting. They are **not installed now** because a skill
is *instructions injected into an agent running with approvals disabled*, which
is a supply-chain decision and not one to make by default — and because P0/P1 are
a Rust exporter and a static sprite draw, which need no advanced GDScript.
**If you want one, propose it**: name the pack, say which milestone it unblocks,
and let a human vendor and review it. Do not install from a marketplace on your
own authority.
Revisit this if GDScript quality becomes the bottleneck — most likely at P2,
where keyframe ramps meet tweens.
[ga]: https://github.com/hi-godot/godot-ai
[gcs]: https://github.com/alexmeckes/godot-claude-skills
[gp]: https://github.com/jame581/GodotPrompter
[rcs]: https://github.com/Randroids-Dojo/Godot-Claude-Skills