dev.oceanheart.ai

Independent prototype

LoanSlam

Exploring how to constrain an AI conversation when mistakes matter.

LoanSlam support chat beside a decision-state diagram showing validation and routing.
Synthetic prototype

The conversation beside the controls

The demonstration exposes the decision machinery alongside the conversation. This capture shows the initial state, before a question is submitted.

View full size

LoanSlam explores a lending conversation in which the model proposes a response and deterministic code decides whether it can be shown. Each turn records the proposal, the final action and the reasons for any override.

It is my independent, post-contract prototype, demonstrated with synthetic data. It is not a customer-ready lending service, and does not expose the contracted client system or customer records.

Synthetic-data engine proof. No claim of production readiness.

More views (1)
LoanSlam gauntlet report showing 122 scenarios, 95 passes and a Needs work verdict.
Synthetic prototype

An inspectable test result

The report keeps failures visible: 95 of 122 scenarios passed in this June 2026 run. It is evidence from one synthetic test run, not a production-readiness claim.

View full size
Technical detail

Describes the independent synthetic-data engine in the published technical account, not the proprietary contracted system or a fresh production-readiness assessment.

Typed proposal, deterministic decision

The planner returns a TurnPlan containing an action, UI primitive, collected facts and cited corpus items. Zod parses that boundary. Plain-code validation then decides the final action, including whether grounding supports an answer and whether the proposed UI matches the permitted action.

Failure and escalation

The documented rules block unsupported account-specific promises and requests for forbidden financial credentials. Vulnerability signals take priority in routing. Malformed planner output becomes a recorded fallback. The trace retains the proposed action, final action, override reasons, retrieved items and safety flags.

Evaluation and maturity

Synthetic persona journeys and stochastic scenario generation exercise the conversation boundary. A separate signal extractor is documented in shadow mode, allowing recommended and actual routing to be compared without changing behaviour. Active signal-constrained routing was still described as in progress; that distinction is retained here.

Stack / components
TypeScript, Node.js, Vue, Zod

Back to Systems work