Business Resource Observability and Automation Deployment. A healthcare agentic ERP design in which every agent action passes a formal logic check before it executes, and the reasoning behind each decision is recorded rather than inferred.
| Status | Specification and partial implementation. |
| Written | October 2025 – February 2026 |
| Runs today | The shell logic engine (140 tests), the access agent and heartbeat session manager (Python, 166 tests, no transport) |
| Does not run | MCP servers, Terraform deployment, the workflow library's n8n template, the portal |
| Successor | URGE: the production form of the logic engine, Rust, on crates.io |
| Licence | Copyright 2025–2026 TODOMODO.IO AGENCY LLC. Published to be read; no licence granted. See LICENSE |
BROAD is one piece of a larger design, and the documents here were written before the rest of that design had names. The 2026 names, and what the 2025 documents call the same thing:
| 2026 name | What it is | Called here |
|---|---|---|
| igent | any device running the edge agent stack: a phone, a desktop portlet, the sensor head | "local device", "edge", "Physicalized Agent" |
| igent.me | the portal, the one cloud-side endpoint every igent talks to | "cloud agent", "BROAD platform" |
| URGE | the governance engine | "Logic Engine" |
| Security Agent | the gatekeeper at the portal edge; can block any action | "Access Agent" |
| BROAD | the first service behind the portal: ERPNext, n8n as workflow runtime, FHIR R4 | "the BROAD platform" |
igent(n) ──▶ WebTransport / HTTP/3 ──▶ igent.me ──▶ service(n)
[edge] [one contract] [portal] [BROAD first]
│
Security Agent │ URGE gates every call
│ ALLOW / DENY + reasoning trace
▼
BROAD: ERPNext · n8n · FHIR R4 · MCP
Nothing reaches the service without a verdict, and a denied call returns the reasoning rather than a status code.
The request is classified into the logic paradigms it involves by pattern matching, not by a language model, then evaluated in each and returned as a verdict with its derivation.
$ ./logic "P ∨ ¬P" # TAUTOLOGY
$ ./logic "O(P) → P(P)" # VALID (deontic, ought implies can)
$ ./logic -s T "□P → P" # VALID in T (modal, reflexive frames; INVALID in K)
$ ./engines/deontic.sh -t "O(x) ∧ F(x)" # INCONSISTENT
$ ./core/identify.sh "□O(auth) → P(access)"
PRIMARY:deontic
PARADIGMS:boolean modal deonticThese run today against governance-layer/src/logic-engine/: four engines, about 4,700
lines of shell, awk and sed. It is a proof of correctness, not of speed; the sub-50 ms
target belongs to URGE.
Policies and requests are kept apart. Who may do what is written in
governance-layer/src/policies/access.policy,
one line per resource and action. Its eight lines are starting policies for the resources
the demos and tests use; the access rules for a deployment are still to be written.
patient_records.read: (O(auth) ∧ (O(role=nurse) ∨ O(role=provider) ∨ O(role=admin)) ∧ □session) → P(read_patient_records)
The Security Agent turns a request's context into facts (auth ∧ role=nurse ∧ session) and
the engine decides the facts against the policy: ALLOW, DENY naming the unmet precondition,
or CONFLICT if the policy is inconsistent. A resource with no policy is denied, and
authentication is required for every ALLOW whatever the policy says.
$ ./engines/meta.sh -a "(O(auth) ∧ O(role=nurse) ∧ □session) → P(read_patient_records)" "auth ∧ role=nurse"
DECISION: DENY (precondition not met: session)Agents are classified by whether they may change. A NOEVO agent is fixed after deployment and formally verifiable. An EVO agent may adapt within guardrails but cannot execute until a NOEVO agent has verified its output, cannot talk to another EVO agent directly, and cannot spawn agents. Four guardrail schemes state this as formal constraints, with Scheme 0 as the floor nothing bypasses:
F(harm_user) F(bypass_authentication) F(disable_logging) F(modify_noevo_agent)
□(security_decision → (deontic_check ∧ modal_check ∧ temporal_check))
| Component | State |
|---|---|
| Logic Engine (shell) | Working for propositional, modal (K, D, T, S4, S5 over frames of 2–3 worlds) and standard deontic logic; tests/run-tests.sh passes 140, skips 17 manual checks. Dormant since February 2026; superseded by URGE |
Security Agent (governance-layer/src/access_agent.py) |
Working; decides request facts against policies/access.policy through the engine; test_governance.py passes 166 of 166 |
Heartbeat session manager (governance-layer/src/heartbeat.py) |
Working in Python; no QUIC transport under it. Token validation is a hook (token_validator); without one, no session authenticates |
| Guardrail schemes 0–3 | Defined and enforced: forbidden actions, ← condition clauses on permissions and obligations, and the 32 numeric □(metric ≤ limit) bounds; 14 symbolic bounds (tool.timeout, allocated) are listed as unenforceable |
| EVO / NOEVO hierarchy | Specified |
W0 heartbeat establishment (workflows/) |
Designed as a governed workflow: five gates, each evaluated through URGE. Procurement in process |
W1 sensing the locale (workflows/) |
Designed as a governed workflow: six gates, FHIR R4 Device and Observation. Procurement in process |
| Healthcare workflow library | Started: one BPMN clinical pathway (patient admission), two FHIR R4 mappings (Patient, Encounter), one n8n sync template, an MCP server skeleton. The design names CMMN, DMN and GS1 as well; those are not yet in the repository |
| MCP servers | Designed, not built |
| Deployment | Terraform for GKE, not deployed; the 2026 target is Cloud Run |
| The portal (igent.me) | Not in this repository |
One execution sequence was ever run. Nothing here is deployed.
An igent holds a local shadow of the Security Agent and makes safety decisions without the network, then streams logical telemetry over WebTransport on HTTP/3, with the governance heartbeat on the highest-priority stream so a dropped video frame cannot delay a decision. The first device built to that contract is physicalized-agent.
| Layer | igent | igent.me and BROAD |
|---|---|---|
| Transport | WebTransport / QUIC: heartbeat, bio-auth | — |
| Agent | MCP + A2A | MCP |
| Workflow | Process DNA | BPMN 2.0 |
| Data | FHIR R4, governed locally | FHIR R4 |
| Reasoning | URGE | URGE at the portal; n8n runs BROAD's workflows |
| Observability | reasoning traces, bio-auth logs | OpenTelemetry, Prometheus, Grafana |
PROJECT.md |
What BROAD is, one page (2025 wording: "platform" means service #1) |
ARCHITECTURE.md |
Five design principles and the system layers (2025; GKE where the target is now Cloud Run) |
ESN_BROAD_INTEGRATION.md |
How governance and BROAD meet; the protocol stack above |
governance-layer/specs/ |
The ESN specifications, October–November 2025, with a forward note per spec in their README |
governance-layer/patents/ |
The Logic Engine specification (September 2025, copyright-registered). The architecture is the subject of United States provisional patent application 64/161,805, filed 2026-09-24: patent pending |
DECISIONS.md |
Each architectural decision with its reasoning |
EXECUTION.md |
The build sequence |
HEALTHCARE_WORKFLOW_LIBRARY_SUMMARY.md |
What the workflow library was designed to hold |
The 2025 documents are kept as written. Where the 2026 architecture supersedes them, the difference is recorded beside them, not edited into them.
Tony Slosar · TODOMODO.IO AGENCY LLC · anthonyslosar@gmail.com · t.me/toneron2 · slosars.me