Skip to content

Trade-offs & next steps

Here is the honest cut. The prototype proves the agent runtime, decision log, eval harness, and operator surfaces. I am not pretending mocked integrations are production rails.

What is real

RuntimeFour skills share one FinanceEvent substrate, autonomy gate, refusal contract, and decision log.src/lib/events.ts · src/lib/autonomy.ts · src/lib/decision-log.ts
ControlsPolicy and accounts-payable money-movement constraints are deterministic. Dual control is enforced server-side for high-value accounts payable.src/skills/policy-enforcement · src/lib/dual-control.ts
LearningOverrides write corrected codings and can supersede vendor rules, so review work turns into future automation.app/(operator)/queue/[id]/actions.ts
PulseThe chief-financial-officer brief is persisted as a decision row. The page reads the latest pulse instead of recomputing on render.src/skills/daily-pulse · app/(operator)/brief

What is mocked

adaptersAccounting postacceptDecision marks execution in the demo. Real Xero/QuickBooks Online/NetSuite writes sit behind the payload boundary.
railsPaymentsThe accounts-payable agent recommends schedules and funding rails only. No money movement occurs from this prototype.
dataCustomer eventsSeeded Hong Kong/Singapore/United States card spend, payout, foreign-exchange, receipt, and bill events stand in for live Reap streams.

Trade-offs taken

TypeScript firstKept user interface, server actions, typed schemas, and Vercel Artificial Intelligence Software Development Kit calls in one runtime. Risk: Reap may prefer Python for data-heavy agent work.
SQLite firstFresh-clone demo beats infrastructure realism. Drizzle keeps the Postgres path visible without making Docker part of the interview.
Home-grown evalsSmall but inspectable JavaScript Object Notation Lines harness, plus seam-specific corpora for the policy compiler and accounts-payable optimizer. It proves the scoring loop and can scale once real customer examples exist.
Recommendation-first accounts payableI chose the safer proof: plan, evidence, and approval path instead of fake payment execution.

Next, in order

01
Wire one real ledger adapterStart with Xero behind the existing decision payload. Keep idempotency and execution status unchanged.
02
Replace seeded balances with Reap balance feedsThe treasury cockpit already speaks in Reap Card / Pay / Optimize sleeves. Swap the source, not the surface.
03
Move synchronous skill runs to InngestDurable execution gives retries, scheduling, and replay without rewriting the skill interface.
04
Grow evals from overridesPromote real corrections into per-skill golden sets, then fill the named gaps in evals/coverage-gaps.json as live adapters and datasets arrive.

Submission pack — Reap Chief Financial Officer Agent take-home