Fix release for 1.1.2: the 14 longest skills keep their later phases after a compaction, a question nobody answered is never taken as an answer, settings read the same from a subfolder, the commit check works for a project in a subfolder of a larger repository, every skill opens with a title, and the shipped allow rules no longer approve deleting a branch or writing files without asking. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.2 → v1.1.3). Refs #83 Refs #133 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0185en4t76fPn7315q4c3nko
3.8 KiB
/setup-engine — Section 7.5: Scaffold the Engine Project
Part of
/setup-engine.SKILL.mdnames when to read this file; the settings it resolved and the rules under its later headings still apply here.
7.5 Scaffold the Engine Project
Without this step the framework produces source files no engine can open.
/dev-story writes .gd/.cs/.cpp under the resolved code root, and the minimal path
advertises "four steps to running code" — but nothing anywhere created a project
for the engine to load. Verified by grep across every skill: no project.godot,
no Unity project, no .uproject was ever written. The files were real and
orphaned.
Godot — write project.godot if one is absent
Never overwrite an existing project.godot. If the file is already there,
say so and skip to Section 8 — the developer has a project and its settings are
theirs.
Show the proposed file, then ask: "May I create project.godot at the repo
root?" On approval, write:
config_version=5
[application]
config/name="<project name>"
config/features=PackedStringArray("<major.minor>", "<renderer feature>")
[rendering]
renderer/rendering_method="<rendering method>"
Fill it from decisions already made — do not ask again:
| Field | Source |
|---|---|
config/name |
the brief's working title, else the repo directory name |
<major.minor> |
engine.version from Section 3, major and minor only (4.7.2 → 4.7) |
<renderer feature> / <rendering method> |
the rendering value chosen in Section 5.5.1 — Compatibility → "GL Compatibility" / gl_compatibility; Forward+ → "Forward Plus" / forward_plus; Mobile → "Mobile" / mobile |
Leave run/main_scene unset. There is no scene yet at engine-setup time.
Add a comment saying /dev-story or the developer sets it once a scene exists;
an empty project with no main scene opens fine in the editor.
Then verify, and report what the verification actually was. If the engine
binary was found in Section 3, run its headless import
(godot --headless --path . --import) and report the result — read the output
for ERROR, because the import exits 0 even when something in the project
fails to load. If the binary was
not found, or its version differs from the pinned one, write
project.godot NOT VERIFIED — <reason>. The config_version and feature
strings are stable across Godot 4.x, but "stable in the versions I know" is not
the same as "checked against the version you pinned", and only the run
establishes the latter.
Unity and Unreal — instruct, do not fabricate
A Unity project and an .uproject are editor-generated and span many files,
several of them binary or machine-specific. This repo cannot source their
correct contents, and a hand-written scaffold would be the exact failure
Section 7's sourcing rule forbids — something that looks finished and is quietly
wrong.
Tell the user, in one short block, that CCGS does not create the project for these engines and they should create it first:
- Unity — create the project in Unity Hub at the repo root, choosing the
template matching the 2D/3D answer from Section 2, then re-run
/setup-engine. - Unreal — create the project in the Epic launcher or via
UnrealEditor, then re-run.
Report the outcome in the Section 12 summary either way — created, already present, or "not created, engine requires the editor" — so the user leaves this skill knowing whether a runnable project exists.
Deliberately not a
project.yamlkey. Anengine.project_scaffoldedflag would be written here and read by nothing, which is a dead setting — the same writer-without-reader defect the config gates exist to catch. The filesystem is the source of truth: any skill that needs to know globs forproject.godot,*.uproject, orProjectSettings/ProjectVersion.txt.