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:
@@ -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" \
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user