What problem does it solve? HOT-Step CPP routes all audio sampling through Lua plugins, but the plugin API has many non-obvious traps: 0-indexed FloatArrays, silent state bleeding across generations, lazy apg() registration, and restart procedures that fail silently. This Skill encodes the verified contracts, golden rules, and failure signatures so plugins load and behave correctly on the first attempt. ## Core Features & Use Cases - Four plugin type contracts: Complete signatures and engine invariants for solvers (step/sample), schedulers, guidance modes (guide/post_step), and postprocess VAE-decode replacements, verified against engine/src/lua-plugin.h. - Debug and test workflow: PowerShell commands to confirm plugin loading via ace_engine.log, verify /api/plugins visibility, and diagnose runtime errors like pure-noise output from aborted step() calls. - Param flow documentation: How declared UI params travel from PluginControls.tsx through plugin_params to the injected params global, including the toggle-default trap and nil-handling rules. - Use Case: You want to add a custom Heun-style solver. Copy engine/plugins/solvers/unipc.lua as a template, drop it in plugins/solvers/, restart via the shutdown API, and confirm the [DiT] Solver log line before generating. ## Quick Start Ask the AI to write a new Lua solver plugin for HOT-Step that modifies how the latent advances each sampling step, then verify it loaded by checking the engine log.