Inspiration
Every tax season, my wife Michele collects a year’s worth of receipts in a bag. When it is time to prepare our taxes, the receipts are poured onto a table or bed, sorted by date and category, and manually totaled.
We learned about OpenAI Build Week on Friday night, leaving us only a few days to conceive, build, test, package, and present a complete project. Rather than inventing a demonstration, we chose a real problem from our household and challenged ourselves to produce something Michele could actually use.
The problem was not complicated enough to justify a large accounting platform, but it was repetitive, frustrating, and very real.
We wanted to answer a simple question:
Could a self-taught programmer and domain expert describe a real-world problem in plain language, direct the work at the product and systems level, and have GPT-5.6 and Codex collaboratively produce a useful standalone application within a few days—without the human serving as the primary application coder?
ReceiptDesk became both the solution and the demonstration.
What it does
ReceiptDesk is a standalone Windows desktop application that watches a folder used by a receipt scanner.
When a new image or PDF appears, the application:
- detects and imports it
- preserves the original scanned file
- creates a managed local copy
- prevents duplicate imports using a SHA-256 content hash
- displays the receipt inside the application
- lets the user enter the date, merchant, amount, category, tax status, and description
- stores the catalog locally in SQLite
- supports Pending and Complete workflows
- filters by category, tax status, year, completion status, and search text
- sorts the receipt list
- exports the currently filtered list to CSV
- prints or previews a formatted receipt summary
There is no cloud dependency, OCR service, web server, or external API required to use the finished application.
How we built it
The application began as a plain-language conversation with ChatGPT-5.6.
I described my wife Michele’s actual receipt workflow and deliberately kept the requirement narrow: no OCR, no automatic accounting, and no unnecessary complexity. The goal was a tool she could understand and use immediately.
This was not a simple prompt-and-response workflow. It was a human-directed engineering team:
- Allen supplied the real-world problem, domain knowledge, constraints, skepticism, hands-on testing, and final authority.
- GPT-5.6, acting as Ada handled product reasoning, architecture, orchestration, code review, direct repository work, debugging, and acceptance.
- Codex performed substantial repository-level implementation, automated testing, and focused verification.
- Spider + Fly preserved durable state, exposed controlled repository and engineering tools through an MCP-based tool layer, recorded the relay, and allowed both AI systems to work against the same development environment.
Codex initially implemented ReceiptDesk as a .NET 8 WinForms solution with three projects:
ReceiptDesk.App— the Windows desktop interfaceReceiptDesk.Core— configuration, file intake, hashing, SQLite persistence, filtering, preview, and export logicReceiptDesk.Tests— automated tests for the core behaviors
ChatGPT-5.6 and Codex exchanged work through Spider + Fly, a relay system running on my own infrastructure. Spider maintained the durable collaboration state and controlled repository access. Fly provided the visible interface for reviewing work, recording human input, and passing the development baton among ChatGPT-5.6, Codex, and me.
Both ChatGPT-5.6 and Codex contributed directly to the implementation. Codex completed major development and verification passes. Through Spider + Fly’s repository tools, ChatGPT also inspected the source, diagnosed defects, patched files, added export and printing functionality, hardened PDF-preview cancellation, added tests, reviewed staged Git changes, and created accepted commits.
I am a self-taught programmer who has used software to solve practical problems in construction operations, mining, engineering, and geological modeling. For this project, however, I deliberately worked primarily at the product, systems, and acceptance levels rather than writing the application code myself.
My role was to identify the real problem, define the operating constraints, challenge weak assumptions, approve the interface, test the application as its intended users would, and decide when the result genuinely met Michele’s needs.
Spider + Fly made the collaboration traceable and durable. It gave the AI systems shared state, explicit baton passing, controlled access to the codebase, and a recorded engineering history. The platform itself was also built primarily by AI under my direction—an environment built by AI for AI-assisted engineering.
Challenges we ran into
Keeping the scope practical
The temptation was to add OCR, automatic categorization, cloud services, and accounting integrations. We intentionally resisted that.
The successful product is useful because it solves the exact workflow without becoming a much larger system.
Coordinating two AI development environments
ChatGPT-5.6 and Codex do not naturally share one continuous working memory. Spider + Fly provided durable notes, explicit turns, and a visible relay.
The relay also exposed its own design weaknesses. Strict concurrency checks were useful for autonomous operation but unnecessarily cumbersome during a live, single-human-controlled session. That became a documented improvement item for Spider itself.
Windows application development from mixed environments
Spider runs on Linux while ReceiptDesk is a Windows WinForms application. Repository access, build roots, file mounts, and Windows execution therefore had to be handled carefully.
We eventually broadened Spider’s repository root so ChatGPT-5.6 could directly inspect and modify the ReceiptDesk project rather than exchanging source files manually.
Acceptance testing became too ambitious
An automated PowerShell acceptance harness grew into a second project and introduced misleading failures of its own.
We changed course, stopped expanding the harness, and performed the final product verification directly through the real application. That was faster, clearer, and more trustworthy.
Preview cancellation
Rapidly switching between PDF and image receipts caused expected OperationCanceledException events to interrupt Visual Studio debugging.
The final implementation treats canceled preview work as ordinary control flow, quietly discards stale render results, and prevents an older preview from replacing the currently selected receipt.
Protecting a working baseline
The project was initially created without Git. After a regression made recovery harder than necessary, we initialized a local repository and established known-good commits before adding export and printing.
That was an important reminder that even AI-assisted rapid development still benefits from ordinary engineering discipline.
Accomplishments that we're proud of
In approximately one focused development cycle, the collaboration produced:
- a working standalone Windows application
- local SQLite persistence
- watched-folder receipt intake
- duplicate-content protection
- embedded image and PDF previews
- editable receipt metadata
- data persistence across application restarts
- filtering, searching, and sorting
- CSV export
- formatted print preview
- automated tests
- a clean Git history with recoverable baselines
Most importantly, the result is not a mock-up or a workflow diagram. It is a real application Michele can use.
What we learned
The most important lesson was that the human does not need to specify every class, method, control, or database field.
The human needs to explain:
- the real problem
- who will use the product
- what success looks like
- and what should not be built
ChatGPT-5.6 was most effective as the product designer, reviewer, systems thinker, and coordinator. Codex was most effective as the implementation agent working directly against the repository.
The human remained in the middle—not writing most of the code, but making the decisions that determined whether the result was actually useful.
We also learned that verification matters more than confident reports. Several times, automated evidence suggested one problem while direct use exposed a different one. Running the real application and inspecting the actual behavior kept the project grounded.
What's next for ReceiptDesk
The immediate next steps are:
- validate the installer in a clean Windows environment
- publish a versioned Windows release with a checksum
- enable Spider to compile and test .NET projects directly
- begin using ReceiptDesk with real household workflows and refine it from experience
Possible future additions include optional OCR, automatic category suggestions, configurable categories, summary reports, and integration with broader receipt-processing workflows.
Those additions are intentionally outside the current submission. The current product demonstrates the core idea:
A person can describe an ordinary real-world need, and GPT-5.6 and Codex can collaboratively turn it into a practical, tested, standalone application while the human retains judgment, responsibility, and final authority.
Log in or sign up for Devpost to join the conversation.