A T2R6 Home Assistant MQTT bridge implementation exposed a gap in the Muster lifecycle contract.
Situation:
- The appliance had Home Assistant MQTT publishing enabled.
- The bridge was configured to use
mosquitto_pub as its real broker adapter.
- The systemd service failed every timer run because the adapter binary was not installed.
- Mock-first outbox artifacts were generated correctly, but no discovery reached Home Assistant until the OS package providing the MQTT client was installed.
What was missing:
- The implementation had a runtime dependency on the configured broker adapter, but the install/doctor/package contract did not make that dependency explicit.
- T2R6 says discovery/state/control traffic should be mockable first and broker plumbing added later, but real-broker mode needs concrete dependency handling.
Expected Muster behavior:
- Patterns that declare real adapters such as
real_broker_adapter: mosquitto_pub should drive package/dependency documentation.
- Installer should install or clearly skip required OS packages using an explicit opt-out, similar to the published dvd-ingester installer pattern.
doctor.sh should fail with a precise dependency message when real MQTT publishing is enabled and the configured adapter is unavailable.
- README self-certification should include dependency evidence for non-shell runtime adapters.
- T2R6 reference artifacts should include a
mosquitto-clients dependency or a generic adapter dependency slot.
Recommendation:
Add a Muster contract check for adapter dependencies, probably under C6 lifecycle plus T2R6-specific requirements, and update the reference artifacts so this failure is caught before deployment.
A T2R6 Home Assistant MQTT bridge implementation exposed a gap in the Muster lifecycle contract.
Situation:
mosquitto_pubas its real broker adapter.What was missing:
Expected Muster behavior:
real_broker_adapter: mosquitto_pubshould drive package/dependency documentation.doctor.shshould fail with a precise dependency message when real MQTT publishing is enabled and the configured adapter is unavailable.mosquitto-clientsdependency or a generic adapter dependency slot.Recommendation:
Add a Muster contract check for adapter dependencies, probably under C6 lifecycle plus T2R6-specific requirements, and update the reference artifacts so this failure is caught before deployment.