Tools for implementer
Lint / build commands to run before finishing a change
GDScript format check and lint — see docs/tools/gdtoolkit.md:
mise exec -- gdformat --check core/ tests/
mise exec -- gdlint core/ tests/
A PostToolUse hook already runs gdformat on .gd files as they're
edited (see .claude/settings.json), so the --check run is mostly a final
confirmation. gdlint is not hooked and must be run explicitly.
Docs site build — use as a smoke check whenever site/ or docs/ is
touched:
cd site && npm run build
Docusaurus docs site build. Broken internal links and anchors fail the
build (onBrokenLinks/onBrokenAnchors are set to throw). On a PR
touching docs/ or site/, .github/workflows/link-check.yml runs this
same build and then points lychee at site/build to check the external
URLs the build does not verify (excludes live in lychee.toml).
There is no separate lint/build step for the GDScript side beyond the gdtoolkit commands above.
Verifying a change against the live editor/game
Use godot-ai to confirm a change behaves as intended in the
editor or running game, beyond what GUT's headless run checks — see that
file for when it applies and when a GUT test is the better instrument.
Where new test-adjacent files belong
res://tests/ (top-level, non-recursive) is reserved for the Godot AI
addon's own McpTestSuite-based test_manage/test_run MCP tools — don't
place implementation or fixture files there. GUT tests and their fixtures
live one level down, in res://tests/unit/.