Part IV · Autonomous operations
Workflow language & automation control
Workflows are declarative, statically analyzed, simulated against history and dry-run in production before anyone lets them touch money.
Workflows
4
1 active
Blocked by analysis
1
Cannot be promoted at all
Policy conflicts
3
Surfaced, never silently resolved
Dry-run entries
3
Recorded, zero writes performed
Workflow compiler
Plain instruction → draft workflow. Deterministic pattern compilation, zero tokens.
Risks disclosed before activation
Compiled from natural language. Verify the trigger, conditions and data access before promoting past DRAFT.
# compiled from: "Every Friday check invoices over 45 days and prepare follow-ups." trigger: schedule: "FRI 09:00 America/New_York" conditions: - days_outstanding > 45 data_access: - ARProjection (read) - Invoices (read) actions: - prepare_followup_pack - evaluate_conditions approval: required: true
Trigger
schedule: "FRI 09:00 America/New_York"
Conditions
days_outstanding > 45
Data access
ARProjection (read) · Invoices (read)
Actions
prepare_followup_pack · evaluate_conditions
Approval
required — a compiled workflow always starts at DRAFT with approval on
Overdue collections follow-up
v4 · owner Controller
trigger: event: invoice.overdue conditions: - days_overdue > 30 - balance > 0 - customer.status != disputed data_access: - ar_projection: read - counterparty_health: read actions: - calculate_collection_risk - generate_recommendation - draft_followup approval: required: true approver: controller on_success: - create_followup - schedule_recheck: 7d on_failure: - escalate: head_of_revenue
Trigger
invoice.overdue
Approval
required · Controller
Data access
ARProjection (read) · Counterparty relationship health (read) · Contract terms (read)
On failure
escalate(Head of Revenue)
Static analysis
Cycles · permissions · unbounded actions · unsafe writes · impossible conditions
note · Clean
No cycles, permission gaps, unbounded actions or impossible conditions detected.
Eligible for promotion to the next stage.
Promotion ladder
Draft → Simulated → Dry run → Review → Approved → Active
v4 · 2026-08-12
Raised threshold from 21 to 30 days; excluded disputed invoices
False-positive chases down 61%
v3 · 2026-05-02
Added relationship-health weighting
Superseded · available as a rollback target
Simulation against history
Last 180 days of actuals
Triggers
34
Proposed
34
Blocked
5
$412,000
Modelled acceleration of $412K in collections, based on the historical response rate of chased invoices in this dataset.
· 5 invoices were in dispute — condition correctly excluded them
Dry run in production
A dry-run workflow runs in production against live data and records exactly what it would have done, without performing a single write. High-risk automation must pass this stage before approval.
This workflow is not in dry run. Only the idle cash sweep currently records against live data without writing.
Policy hierarchy
A lower layer can never override a higher one. Where they collide the higher layer wins and the conflict is surfaced rather than silently resolved.
Conflict detection
Where two rules collide, the higher layer wins and the collision is shown
Layer 4 · Organizational policy
Strategic vendor terms
Pay strategic vendors immediately on approval.
Layer 3 · Financial safety controls
Minimum reserve
Maintain $1,000,000 operating reserve at all times.
A $412,000 immediate payment would leave $912,000 — $88,000 below the reserve floor.
Financial safety outranks organizational policy. The payment is staged to the day after the Meridian receipt clears, or split. The conflict is shown to the approver rather than resolved silently.
Layer 5 · Workflow rules
Idle cash sweep
Sweep balances above floor + $500K into reserve weekly.
Layer 3 · Financial safety controls
Payroll funding guard
No outbound movement within 3 days of a payroll run.
Sweep window fell two days before the August cycle-2 payroll.
Sweep deferred to the following Monday. This is the failure that caused the v1 rollback; the guard is now encoded as a condition.
Layer 7 · User preferences
Early payment discount preference
Prefer paying early to capture 2/10 net 30 discounts.
Layer 4 · Organizational policy
Working capital objective
Hold DPO at or above 34 days this quarter.
Capturing every available discount would cut DPO to 27 days.
Discounts are captured only where the annualized discount rate exceeds the cost of the liquidity it consumes. Both objectives are shown with the tradeoff quantified.
