Miguel Garcia • Project

← All projects

t·Dots technical challenge · Oct '26

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.

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.

  • 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
  • Next.js
  • TypeScript
  • SQLite
  • OpenAI
  • Playwright
  • Two days fixing a bank that moved money twice The t·Dots Banana Bank challenge: an AI banking assistant that duplicated transfers and moved money without asking. What I found, what I built on top, and how I worked with three coding agents reviewing each other.