From 0b18cd04845e2096b670e71b7f49fd73f0e0722a Mon Sep 17 00:00:00 2001 From: MechaCat02 Date: Fri, 28 Aug 2026 20:07:39 +0200 Subject: [PATCH] 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 --- docker/Dockerfile | 2 +- docs/MISSION.md | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index ca960bcd..86417f6f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -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 # screenshots against a reference renderer — so an upgrade must be a deliberate, # stated act rather than a silent drift. -ARG GODOT_VERSION=4.3 +ARG GODOT_VERSION=4.7.2 RUN cd /tmp \ && 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" \ diff --git a/docs/MISSION.md b/docs/MISSION.md index 3fde0acd..f5ed6198 100644 --- a/docs/MISSION.md +++ b/docs/MISSION.md @@ -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 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. + +## 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