engine-dev-loop

Rebuild and smoke-test the HOT-Step C++ engine without triggering respawn or file-lock failures.

151|22|Updated Apr 19, 2026
One-click install
npx skills add https://github.com/scragnog/HOT-Step-CPP --skill engine-dev-loop-scragnog
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: engine-dev-loop
Source: https://github.com/scragnog/HOT-Step-CPP/tree/main/.claude/skills/engine-dev-loop
Command: npx skills add https://github.com/scragnog/HOT-Step-CPP --skill engine-dev-loop-scragnog

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Editing the HOT-Step C++ engine is risky: the Node server auto-respawns ace-server.exe every 3 seconds, so a naive rebuild hits LNK1104 file-lock errors in an infinite loop, and the provided dev-rebuild.bat silently does nothing when run from a non-interactive shell. This Skill encodes the safe edit-rebuild-verify cycle so builds actually happen and stale binaries never get served. ## Core Features & Use Cases - Safe rebuild procedure: Graceful shutdown via the /api/shutdown route, wait for the process lock to clear, then build with engine/build.cmd — with manual PowerShell steps for non-interactive agent shells where dev-rebuild.bat silently exits 0. - Build verification: Checks exe LastWriteTime and greps for the link-success line, since the wrapper always exits 0 even when MSBuild fails. - Failure diagnosis: A symptom-to-fix table covering LNK1104, the hotstep_sampler_linked_ sentinel error after upstream syncs, stale .obj recovery, silent Lua-plugin hook loss, and misleading compile errors from unterminated string literals. - Smoke testing: Probes /health, /props, /plugins, and /vram on port 8085 after relaunch, with guidance on log locations. - Use Case: After editing a file under engine/src/, run the documented shutdown-wait-build-verify sequence, relaunch with dev.bat, and confirm the engine answers on :8085 before asking the user to run a generation. ## Quick Start Rebuild the C++ engine safely after my edits to engine/src and verify ace-server is healthy on port 8085.

Frequently Asked Questions about engine-dev-loop

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I rebuild a C++ server that keeps getting file-locked by a running process?

Shut down the owning process gracefully first — here, POST to the Node server's /api/shutdown route, which kills ace-server, Vite, and itself. Wait until the process disappears from tasklist before linking, otherwise the auto-respawn handler re-locks the exe and the link fails with LNK1104.

Why does my batch build script exit 0 without doing anything?

dev-rebuild.bat uses `timeout /t`, which fails when stdin is redirected — every agent tool call, pipe, or CI run. The script then skips shutdown and build, prints nothing, and exits 0. Run the shutdown, wait, and build phases manually in PowerShell instead.

Why does MSBuild report errors in a header I never edited?

An unterminated string literal or comment in the previously included file makes the parser run on into the next header, so MSVC reports the damage in the wrong file. Check the file you actually edited — often a `\n` collapsed into a real newline by a heredoc.

When should I avoid cmake --build --clean-first?

Avoid it whenever only application code changed — a clean rebuild recompiles all CUDA kernels, costing 20+ minutes. For stale object files, surgically delete just the affected .dir folder and .lib, then run an incremental build.

How do I verify a C++ server rebuild actually succeeded?

Do not trust the exit code — wrapper scripts often reset it. Check the exe's LastWriteTime, grep output for the link-success line, then probe runtime endpoints like /health, /props, and /vram after relaunching.

What causes unresolved external symbol errors after syncing an upstream fork?

The sync likely overwrote patched files carrying fork-specific includes, removing a sentinel symbol the linker expects. Re-add the include hooks in the affected upstream files and run the verify-hooks script to confirm all patches are intact.