Banana Bank
A fictional bank launches its AI assistant on Monday. Part 1 found and fixed three failures: a lost bank response duplicated transfers (stable reference per intent, verification against the ledger, an explicit unknown state), the agent moved money without the account holder's confirmation (one authorization gate with a server-verified six-character code), and the agent answered outside banking and mixed document versions (scoped prompt with citations, paragraph chunker, validity filter, corpus rewritten from 80 to 46 documents). Part 2 added an operator copilot that cross-checks app intents with the bank's ledger, drafts a brief anchored to verified facts and reconciles with an audit trail, plus editable transfer cards the agent opens inside the conversation.
Product
Image gallery
How I worked
Every bug reproduced before the fix, with before/after evidence. Every fix with a test that failed first. Devin as the main agent with an implementation subagent; Codex and Cursor as read-only reviewers in two rounds, whose findings are all fixed and covered by tests. The complete sessions were exported verbatim from each tool's local database and shipped with a static viewer.
Capabilities
- Idempotent transfers with a stable bank reference and ledger verification
- Single authorization gate: proposal, six-character code, one-time atomic approval
- Operator copilot: ledger reconciliation, strict-JSON brief, audited actions
- Transfer drafts in the chat that go through the same authorization path
- 78 automated tests (starter had 13), Playwright flows, pixel-parity refactor
- Full AI session export with an offline viewer: 14 sessions across three agents
Stack
- Next.js
- TypeScript
- SQLite
- OpenAI
- Playwright
Links
Build notes