| name | simplplus-revise |
| description | Review and revise an existing Crestron SIMPL+ module (.usp) — fix bugs, improve logic, and verify against SIMPL+ constraints |
| argument-hint | module file or directory path |
Revise Crestron SIMPL+ Module
Before revising
- Read
${CLAUDE_PLUGIN_ROOT}/reference/crestron/simplplus/SIMPLPLUS_CONSTRAINTS.md and
${CLAUDE_PLUGIN_ROOT}/reference/crestron/simplplus/SIMPLPLUS_PATTERNS.md. The
SIMPL+ Gotchas section lists hard compile-error rules (scalars before
arrays, required top-of-module directives, I/O declared in strict type order
digital → analog → serial — all inputs, then all outputs, then parameters,
propBounds before propDefaultValue) plus the _SKIP_ padding rule that
keeps parameters from covering signal names on the symbol — verify the module
against every one of them.
- For API/behavior questions, search
${CLAUDE_PLUGIN_ROOT}/reference/crestron/simplplus/documents/.
- Establish a baseline: compile the module before changing it (see below) so
you know whether it started clean and don't blame a pre-existing error on your edit.
Revision checklist
Compile & verify
Compile the revised .usp to confirm it still builds — a revision isn't done
until it compiles with 0 errors:
python "${CLAUDE_PLUGIN_ROOT}/scripts/crestron/simplplus_build.py" <path/to/module.usp>
- With no
--target, the module builds for both current generations
(series3,series4) — the default. Match --target to a specific processor
(series2, series3, series4) only when the project requires it.
- On
[FAILED]: read each file: ERROR <code> (Line <n>) - <message>, fix,
and recompile until clean. Compare against the pre-edit baseline so you know
which errors your change introduced versus which were already present.
- If the script prints
SIMPL+ compiler not found: the Crestron toolchain
isn't installed here — tell the user to install it (Crestron Master Installer)
or point --compiler=<path> / the SPLUSCC env var at SPlusCC.exe, and give
them the compile command to run themselves. Don't report the module as broken.