Plumbing/HVAC Trade Governor -- Operator Console

ISIC 4322 · phase 3 (supervised-auto) · coordination-only, effect always :propose · never certifies installation as code-compliant/safe

Project directory (real seed data, plumbing.store/demo-data)

idnamejurisdictionsystem-typestatuslicensed professional
proj-1Cherry Blossom Apartments Water SystemJPNwaterintakeSmith Plumbing LLC (CA-P-123456)
proj-2Downtown Tower HVAC RetrofitUSAhvac-heatingintakeJones HVAC Inc. (TX-H-789012)
proj-3Berlin District Heating ModernizationDEUhvac-heatingintakeMüller Heizung GmbH (DE-HZ-456789)

Scenario runs (this page's demo, each row = one real g/run* call)

Every row below is the literal disposition/status/violations returned by driving plumbing.operation/build's compiled StateGraph through langgraph.graph/run* -- no value here is invented after the fact.

threadopsubjectdispositionrun statusviolationswhat this demonstrates
t1log-progress-recordproj-1commitdoneHappy path: milestone log auto-commits at phase 3
t2flag-safety-hazardproj-2escalateinterruptedAlways-escalate: safety hazard flag (initial exec, pauses for approval)
t2flag-safety-hazardproj-2commitdoneAlways-escalate: safety hazard flag (human approves -> commits)
t3request-inspection-reviewproj-3escalateinterruptedAlways-escalate: inspection review request (initial exec, pauses for approval)
t3request-inspection-reviewproj-3commitdoneAlways-escalate: inspection review request (human approves -> commits)
t4log-progress-recordproj-9HARD holddoneno-legal-basis, project-unregisteredHARD hold: :project-unregistered (unknown subject proj-9)
t5schedule-crew-dispatchproj-1HARD holddoneno-legal-basisHARD hold: :no-legal-basis (:schedule-crew-dispatch has no MockAdvisor case yet)
t6log-progress-recordproj-2HARD holddoneunresolved-hazardHARD hold: :unresolved-hazard (proj-2's hazard from t2 is still unresolved)
t7flag-safety-hazardproj-2HARD holddoneunresolved-hazard, already-flaggedHARD hold: :already-flagged + :unresolved-hazard together (repeat gas-leak flag on proj-2)

Progress-record log (:log-progress-record commits)

record_idkindproject_idjurisdiction
JPN-PRG-000000progress-record-draftproj-1JPN

Crew-dispatch proposals (:schedule-crew-dispatch commits)

Empty by design in this demo: plumbing.plumbingadvisor's MockAdvisor has no case for :schedule-crew-dispatch yet, so every proposal falls to the "Unknown op" handler (empty :cites) and hard-holds on :no-legal-basis -- see the Scenario runs table, thread t5.

record_idkindproject_idjurisdiction

Safety-hazard flags (:flag-safety-hazard commits)

Always human-approved before commit -- unconditionally high-stakes, every phase. There is no "resolve" action in this coordination-only actor, so an unresolved hazard hard-holds every later op on that project until a licensed professional resolves it outside this system.

record_idproject_idhazard_typedescriptionescalated
USA-HAZ-000000proj-2gas-leakTechnician reported a gas odor near the retrofit tie-in point during HVAC-heating installationyes

Inspection review requests (:request-inspection-review commits)

Always human-approved before commit -- only a licensed plumber/HVAC technician signs off on installation compliance.

record_idproject_idinspection_scoperequires human sign-off
DEU-INS-000000proj-3gas-tightness-testyes

Safety notices sent (real plumbing.notify, mock transport, no network)

plumbing.operation's graph does not itself call plumbing.notify (confirmed: the :notifier build option is accepted but unused in every graph node) -- this send is issued directly against the mock transport at the point a human approved the escalation, the same real hazard data (project, hazard-type) the graph itself governed.

channeltostatussubject / message
mailJones HVAC Inc.sentSafety Alert: gas-leak detected

Rollout phase gate (plumbing.phase/phases)

phaselabelwrites allowedauto-commit eligible
phase 0read-only(none -- always escalate/hold)
phase 1assisted-intakelog-progress-record(none -- always escalate/hold)
phase 2assisted-verifyflag-safety-hazard, log-progress-record(none -- always escalate/hold)
phase 3supervised-autoflag-safety-hazard, log-progress-record, request-inspection-review, schedule-crew-dispatchlog-progress-record

Permanent high-stakes ops (plumbing.governor/high-stakes)

Deliberately absent from every phase's :auto set -- a structural fact, not a rollout milestone (plumbing.phase's safety-escalation invariant docstring).

opescalateswhy
flag-safety-hazardalwaysALWAYS escalates to a licensed professional, every phase (plumbing.governor/high-stakes)
request-inspection-reviewalwaysALWAYS escalates to a licensed professional, every phase (plumbing.governor/high-stakes)

Audit ledger (plumbing.store/ledger, append-only)

Committed facts carry :subject directly; this actor's HARD-hold ledger facts record :op + violation rules but not :subject -- cross-reference the thread id in the Scenario runs table above for which request a given hold corresponds to.

opsubjectstatusrules / basisdetail
log-progress-recordproj-1committedprogress-log-standardCherry Blossom Apartments Water System: Rough-in water piping installed; pressure test scheduled
flag-safety-hazardproj-2committedInternational Plumbing Code (IPC, adopted by most jurisdictions) / International Mechanical Code (IMC) / EPA Safe Drinking Water Act (SDWA) § 1431-1445 (backflow prevention), https://www.icc.org/products-services/standards/i-codes/ipc, gas-leakDowntown Tower HVAC Retrofit: SAFETY ALERT - gas-leak
request-inspection-reviewproj-3committedDIN EN 806 (Installation of drinking-water systems) / Verordnung über Gasanlagen (GAVO, transposing Boiler & Pressure Equipment Directive 2014/68/EU) / Arbeitsschutzgesetz (ArbSchG, Framework Directive 89/391/EEC, worker safety during installation), https://www.dvgw.de/en/our-topics/drinking-water/technical-standards, Druckprobe für Trinkwasserleitungen (DIN EN 806-4, pressure-test record), Gas-Dichtheitsprüfung (gas-tightness test per GAVO), Rückflussverhinderer-Inspektion (backflow-prevention device, DIN EN 806-7)Berlin District Heating Modernization: Request licensed professional inspection review
log-progress-record(see Scenario runs above for subject)HARD holdno-legal-basis, project-unregistered
schedule-crew-dispatch(see Scenario runs above for subject)HARD holdno-legal-basis
log-progress-record(see Scenario runs above for subject)HARD holdunresolved-hazard
flag-safety-hazard(see Scenario runs above for subject)HARD holdunresolved-hazard, already-flagged