Run 001 · demonstration inventory
Find out what your codebase actually does.
You shipped it fast, and it works well enough that people use it. Nobody has read all of it since. This is a reading of every screen, route and function in your app, written down twice: once in code with the file and the line beside it, and once in plain English.
Password reset. The email goes out and the link works. The token that comes back is never checked against the one that was sent, so any token at all lets a stranger through.
BrokenThat line across your screen is the scan head. Above it your code. Below it the same thing in a sentence you could read out loud to somebody who has never opened an editor. That difference is the entire product.
Works with websites, web apps, iPhone and Mac apps, backends and APIs, browser extensions. JavaScript, TypeScript, Swift, Python, Go, Ruby, Kotlin, Java, Rust.
Start with the free Table of Contents
Send a public repo URL, a zip, or a read only token scoped to one repo. You get back a route and screen inventory of your app, and it sizes your tier for you so you never count a line yourself. No payment, no card, no call.
Paid readings start at $299. Full refund any time before delivery.
- app/(auth)/sign-inSign in. Email and password, the failure states are handled, and the redirect goes where it says it goes.Works
- api/password-resetPassword reset. The email sends. The token that comes back is never checked, so any token opens the account.Broken
- lib/billing/webhookBilling webhook. Reads the event and writes the plan. Refunds arrive and are ignored, so a refunded account keeps its plan.Partial
- components/ExportButtonExport button. Opens the dialog, shows the spinner, and the download handler is an empty function.Dead
- lib/notify/pushPush notifications. The function exists, returns true, and sends nothing. Everything downstream believes it worked.Stub
- app/(app)/settingsSettings. Every switch saves except email frequency, which saves to the screen and never to the database.Partial
- api/tasks/claimTask claim. Two people can claim the same task at the same moment. Nothing in the code stops it.Broken
- lib/auth/sessionSessions. Created, refreshed and revoked, and the revoke path is actually reachable from the interface.Works
- app/(app)/reportsReports. Renders the list, opens the detail view, and the empty state is written.Re-opened by the coverage check. The list renders from a fixture that ships inside the app, not from the database. No real report has ever appeared here.WorksDead
- api/searchSearch. Returns the right results, and reads the entire table on every keystroke to do it.Partial
- api/uploadUpload. Accepts any file size the browser is willing to send. There is no limit anywhere in the path.Partial
- scripts/seedSeed script. Named in the README as the first step for a new developer, and deleted from the repository.Dead
Demonstration rows, not a real scan. Your reading names your own files.
Five passes. An inventory of every file, then what each part is supposed to do, then whether it does that, then an independent coverage check that goes back over the list and re-opens anything the first sweep waved through, then a person reads both editions in full before anything ships.
Findings on file
Three production apps have been read this way so far.
Between 28,000 and 77,000 lines of production code each. Every headline finding below is a real one, and each carries a file and a line in the report that you can open and check against your own code in seconds. None of these were things anyone suspected before the reading.
A feature that shipped dead
A screen that looked finished and compiled without a warning did nothing at all in production. It had been live for months. Nobody had noticed. The reading found it by following the code path end to end instead of looking at the screen, and the report names the file and the line.
An App Store submission blocker
A link Apple requires, pointing at a page that returned 404. Found before submission, not after a rejection.
A race condition
Two people could claim the same task at the same moment. Nothing in the code stopped it, and nothing in the interface would have shown it happening.
One part, written twice.
Every reading is delivered as two PDFs from the same scan. Here is one row of one app in both of them.
lib/billing/webhook.ts:41-58 · partialHandles invoice.paid and subscription.updated. No case for charge.refunded, so a refunded customer keeps the plan the invoice granted. Evidence: the switch at line 41 has no default branch and no refund case.
Billing · works, with one holeWhen someone pays, they get their plan. When someone is refunded, the app is never told, so they keep the paid plan until you remove it by hand. Nobody has to read code to fix this. Somebody has to decide it matters.
Two real Owner's Edition readings are published in full, both of Round Table's own apps, so you can see the actual thing before you buy: Quipp AI and Hinahon. A client's reading is private and never published. A Technical Edition sample goes out on request.
Before the price, the part that protects you
You can get all of your money back, twice over.
- Before deliveryFull refund, any time, no questions asked, right up until your reading ships.
- 14 days afterPoint out any finding that is materially wrong and you get a corrected report or a full refund.
- Never executedYour code is read, never changed and never run. Your reading is private and never published.
- Or just one partThe reading covers exactly the code you hand over, so you can scope it to a single feature, module or folder, and your tier is the lines in scope.
- Private machineYour code is handled on a private RT Labs workstation, not a shared cloud service, and it is never committed to any repository of ours.
- No secrets neededNothing in the scan needs your keys. Strip your .env before you send anything and the reading runs exactly the same.
- No trainingThe reading is performed by Anthropic's Claude models under their commercial terms, which do not train on business inputs sent through their API.
- Deleted afterOur working copy of your code is deleted once your reading ships, and you get a confirmation email when it is done. A mutual NDA is available on request.
Priced by the reading, because reading is the work.
One payment, one reading, both editions, delivered to a private link only you receive in 3 to 5 business days. Links stay valid for a year. Not a subscription. The free Table of Contents measures your lines and picks the row for you before any of this.
| Tier | Size | Price | |
|---|---|---|---|
| Starter | Up to 10,000 lines | $299 | Start |
| Standardusual pick | Up to 50,000 lines | $499 | Start |
| Large | Up to 150,000 lines | $1,299 | Start |
| Due Diligence Edition | Up to 150,000 lines, 24 to 48 hours | $1,999 | Start |
The Due Diligence Edition is the same reading on a priority queue, for buying, selling, a contractor dispute, or getting investor ready. Bigger than 150,000 lines, or want it walked through with you? That is a conversation. By purchasing you agree to the Terms.
Give it something to read.
A public repo URL, a zip you put together yourself, or a read only token scoped to one repo and revocable whenever you like. Tell us where to send it and what you are trying to figure out, and the reading answers that first. The inventory comes back free, and you decide after that.
No payment, no card, no call. It reads what you send and nothing else.