Transport abstraction
Provisioning logic does not care whether bytes came from a serial cable, an SSH channel, or a deterministic fake device.

UPS provisioning workflow
Provision APC network management cards without trusting a “success” message—preview, apply in a safe order, and read every setting back.
Configuring APC UPS management cards in person meant walking to the hardware and navigating a slow menu for every device. It was time-consuming, repetitive, and easy to leave with one setting different from the intended standard. NMC2 and NMC3 also expose different command shapes, so remote automation had to understand both instead of assuming one happy path.
Watt makes success an evidence standard. It detects the device family, previews redacted commands, captures initial state, orders changes deliberately, and verifies each setting through the same engine used by its hardware-free simulator.
A command returning without an error is not proof. I built the workflow around read-back verification and delayed the disruptive address change until the end so a partial run could not quietly look complete.
A shared provisioning engine talks to a transport contract. Real serial and SSH sessions implement that contract, while FakeTransport models NMC2 and NMC3 state for repeatable practice and regression testing.
Operator UIConnection choice, target settings, redacted preview, typed confirmation, progress.
ProvisionerIdentity, firmware detection, ordered steps, checks, transcript, and result model.
TransportSerial / SSH / FakeTransport with the same send-and-receive contract.
NMC stateApply command, query live value, compare expected state, report exact mismatch.
Connect over serial or SSH, or select a simulated NMC2/NMC3 that touches no hardware.
Detect firmware and populate the operator's editable target form from known values.
Show the exact ordered command plan while registered secrets remain redacted.
Configure services and accounts first; defer the disruptive address change to the final step.
Query each setting, report pass/fail, then monitor the new address for management reachability.
The golden constraint is simple: the tool configures the management card; it does not expose UPS load-control operations. Management-interface reboot is modeled separately from power control.
Provisioning logic does not care whether bytes came from a serial cable, an SSH channel, or a deterministic fake device.
NMC2 and NMC3 command differences are explicit and testable rather than scattered through UI branches.
A successful prompt or command response is not accepted as proof that the setting persisted.
FakeTransport exercises the real provisioning engine with synthetic state, so the full workflow can be demonstrated safely without network credentials, a serial adapter, or access to an employer environment.
Provisioning is not a bag of independent commands. Identity, firmware, service configuration, accounts, addressing, management restart, reachability, and switch placement form a dependency graph. Making that order visible improved both reliability and operator confidence.