Skip to content

lnevo/model-railroad-skills

v0.1.0MIT

Skills and read-only live tools for JMRI, stock JMRI MQTT, CATS and STS.

cats-on-jmri

Guides running CATS (Crandic Automated Traffic System) on top of JMRI, covering version checks, installation beside JMRI, the relationship between Designer and CATS, panel XML structure, how panel entries bind to JMRI sensors, turnouts, signal heads and masts, and what must not be done with JMRI tables during a CATS session. Use this skill when installing or launching CATS, when reading or debugging a CATS panel XML file, when track is missing from the dispatcher panel, when a device will not bind, or when deciding where JMRI tables may be edited and stored.

jmri-dispatcher-system

Sets up, runs and troubleshoots the stock JMRI Dispatcher System jython package (jython/DispatcherSystem), covering Stage 1 and Stage 2, station blocks marked by block comments, signal mast placement, transit creation, modal dialogs and the Set Train Facing Direction dialog. Use when someone marks stations, runs Stage 1, sees a Dispatcher System error or a stalled run, finds transits or MoveTo sensors missing, or a dispatched train moves the wrong way. Failures are fixed in the panel and tables data, never by patching the package. Not for the plain JMRI Dispatcher window without this package.

jmri-mqtt-layout

Explains stock JMRI MQTT behaviour, covering connection settings, channel and topic prefixes and how to change them, per-type topics and payloads, which directions JMRI publishes and subscribes, retained messages, content parsers, MQTT signal masts, power and reporters. Use when someone configures an MQTT connection in JMRI, works out which topic or payload a turnout, sensor, light, mast, power or reporter uses, sees wrong state after a restart, finds retained messages replaying, gets feedback that seems false, or installs a custom parser. Mosquitto retain behaviour is included only where it affects JMRI. Not for custom bridges, gateways or device firmware.

jmri-panel-xml

Edits JMRI Layout Editor panel and tables XML safely by script. Covers what a panel or tables file holds, the names and connections that must agree across it, what JMRI rewrites on Store, why edits must happen with JMRI closed, and how geometry attributes behave. Use when a task reads, generates, or changes a JMRI panel or tables .xml file, when adding or renaming tracks, anchors, end bumpers, turnouts, blocks or masts outside the JMRI GUI, when moving or scaling panel geometry by script, or when a panel loads with missing connections, lost blocks, or vanished edits. Not for signal logic semantics; use jmri-sml-nx for facing blocks, Signal Mast Logic discovery, and Entry/Exit.

jmri-sml-nx

Explains and fixes JMRI Signal Mast Logic, automatic discovery, and Entry/Exit (NX), including how facing and protected blocks are resolved from mast slots at block boundaries and end bumpers. Use when placing masts or NX sensors on a Layout Editor panel, by GUI or by script, when choosing east or west bound slots, when discovery misses a mast or pair, when errors such as "No facing block found for destination mast" or "routing not stabilised" appear, when a mast at a buffer stop will not work, when editing signalmastlogics or entryexitpairs XML, or when choosing an NX type. For general XML edit safety and Store behaviour, use jmri-panel-xml.

sts-docker

Guides running the Shipper-driven Traffic Simulator (STS) in Docker using the sts-docker project, covering compose services and profiles, environment variables, first-time database provisioning, backups and restores from the web app, rolling stock photos, and image upgrades. Use this skill when installing or starting STS in Docker, when editing its docker-compose.yml, when the database is empty or was wiped, when backing up, restoring or moving an STS database, when car photos are missing, or when upgrading the STS image.