Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Compile-check a Godot project using headless mode. Use after writing or modifying any GDScript or C# code to verify it compiles. Triggers: after code changes, before running tests, when build errors need diagnosis. Also use this when the user says "check if it compiles", "build check", "does this parse", or after any file creation/modification that could break compilation.
.claude/skills/randallliuxin-headless-build/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -34% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -56% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -65% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -65% | 0% |
| case-06 | ✓→✓ | = Same ✓ | -19% | 0% |
Compile-check a Godot project. Fastest feedback loop: "did my code parse?"
bashpython tools/agent_runtime.py godot_path
Then substitute the printed value for <godot_path>:
bash"<godot_path>" --headless --quit 2>&1
Run from the project root (where project.godot lives). Should exit within 30 seconds. If it hangs, an autoload may block in _ready() — kill and report.
Godot's output mixes script errors with engine noise. Only script errors matter.
Ignore these (engine internals, always present in headless mode):
Condition "..." is true with .cpp source location — engine C++ assertionObjectDB instances leaked at exit — no cleanup in headlessN resources still in use at exit — same causeScreen index N is invalid — no display in headlessRule: if the at: line references a .cpp file, skip it.
These ARE script errors (report them):
SCRIPT ERROR: with res:// path — GDScript parse/load failureFailed to load script "res://..." — missing or broken scripterror CS — C# build error (from dotnet build)Failed to load resource "res://..." — missing dependencyWARNING: lines and application log output.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→pass | 10,342 | 3,711 | -64% | 1 | 1 | 0% | 1,533 | 1,006 | -34% | 0 | 0 | — |
case-01 | fail→fail | 10,698 | 4,023 | -62% | 1 | 1 | 0% | 1,625 | 502 | -69% | 0 | 0 | — |
case-02 | fail→fail | 7,200 | 4,205 | -42% | 1 | 1 | 0% | 1,029 | 567 | -45% | 0 | 0 | — |
case-03 | fail→fail | 6,503 | 4,033 | -38% | 1 | 1 | 0% | 936 | 583 | -38% | 0 | 0 | — |
case-05 | fail→pass | 11,950 | 2,671 | -78% | 1 | 1 | 0% | 1,701 | 751 | -56% | 0 | 0 | — |
case-06 | pass→pass | 7,948 | 3,417 | -57% | 1 | 1 | 0% | 1,159 | 936 | -19% | 0 | 0 | — |
case-07 | pass→pass | 11,990 | 3,157 | -74% | 1 | 1 | 0% | 1,789 | 801 | -55% | 0 | 0 | — |
case-08 | pass→pass | 10,319 | 2,731 | -74% | 1 | 1 | 0% | 1,656 | 774 | -53% | 0 | 0 | — |
case-09 | pass→pass | 10,263 | 2,458 | -76% | 1 | 1 | 0% | 1,667 | 733 | -56% | 0 | 0 | — |
case-10 | fail→fail | 9,784 | 6,448 | -34% | 1 | 1 | 0% | 1,659 | 1,489 | -10% | 0 | 0 | — |
case-11 | pass→pass | 10,981 | 2,269 | -79% | 1 | 1 | 0% | 1,654 | 741 | -55% | 0 | 0 | — |
case-12 | pass→pass | 10,402 | 2,836 | -73% | 1 | 1 | 0% | 1,647 | 781 | -53% | 0 | 0 | — |
case-13 | pass→pass | 6,330 | 1,925 | -70% | 1 | 1 | 0% | 1,121 | 686 | -39% | 0 | 0 | — |
case-19 | fail→fail | 11,737 | 2,175 | -81% | 1 | 1 | 0% | 1,995 | 681 | -66% | 0 | 0 | — |
case-14 | fail→pass | 12,663 | 2,557 | -80% | 1 | 1 | 0% | 2,198 | 773 | -65% | 0 | 0 | — |
case-15 | fail→pass | 9,850 | 1,476 | -85% | 1 | 1 | 0% | 1,521 | 531 | -65% | 0 | 0 | — |
case-16 | pass→pass | 6,840 | 2,011 | -71% | 1 | 1 | 0% | 957 | 657 | -31% | 0 | 0 | — |
case-17 | pass→pass | 12,267 | 2,723 | -78% | 1 | 1 | 0% | 1,964 | 761 | -61% | 0 | 0 | — |
case-18 | pass→pass | 11,201 | 2,463 | -78% | 1 | 1 | 0% | 1,638 | 750 | -54% | 0 | 0 | — |
case-20 | pass→pass | 9,331 | 6,716 | -28% | 1 | 1 | 0% | 1,621 | 1,441 | -11% | 0 | 0 | — |
case-21 | pass→pass | 4,904 | 2,728 | -44% | 1 | 1 | 0% | 716 | 743 | +4% | 0 | 0 | — |
case-22 | pass→pass | 9,498 | 7,013 | -26% | 1 | 1 | 0% | 1,531 | 1,383 | -10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +18 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.