It fits when
You have a working product you built largely yourself with agents.
It doesn't when
You have not built it yet — that is a different conversation.
Production Readiness Review
An independent read of the system your agents built. The report is the product, not the pitch.
Almost everyone you can ask this question sells rebuilds. I sell the answer — priced to stand alone, written so anyone can execute it. And often enough the answer is that you don't need a rebuild.
For founders who built it themselves and now have a customer.
“It worked, then I asked for one more feature and everything broke.”
“The AI keeps rewriting the same code differently each time.”
“If 100 users were using it at the same time it would break.”
“Broken features tell you they're broken. Permissive rules don't.”
“The bottleneck used to be creation. Now the bottleneck is validation.”
Why this happens
They are compliant by design. Ask for a feature and you get one, built to the quality bar your prompt implied and no higher. They do not stop to tell you which choice cannot be undone later, where one customer's data becomes readable by another, or what breaks at a hundred tenants.
And you cannot check their work with the same instrument, because every document you have about the system was written by the thing that wrote the system.
What you get
The verdict — rebuild or remediate — with the reasoning that produced it, so you can argue with it.
A risk register — every finding ranked by severity against effort, with the evidence behind it.
A remediation sequence — what to fix first, what can wait, and what should not be touched again.
A handover-ready plan — scoped and estimated so your next engineer can start on day one.
It fits when
You have a working product you built largely yourself with agents.
It doesn't when
You have not built it yet — that is a different conversation.
It fits when
A first enterprise customer, security questionnaire, procurement review, or diligence request is coming.
It doesn't when
You already have an engineering team with a tech lead. You need to listen to them.
It fits when
You have no team, or you are about to hire one and need to know what you are handing over.
It doesn't when
You want it rewritten cheaply. That market exists, and I am not in it.
It fits when
You need to defend a technical decision to someone who can dispute it.
It doesn't when
You want the verdict to be “rebuild” so it justifies a decision you have already made.
What I look at first
At Rising Seer I held the technical seat while the platform went from 175K to 750K lines and shipped 705 deploys. The twenty-item risk register came out of reading the system, not out of a template. Eight items are closed today, and each closure cites the pull request that did it.
One schema-drift audit found 72 collections and 1,063 path and field pairs live in code and absent from documentation. Both were driven to zero. One investigation used nineteen parallel agents and found no source-provable root cause; it took a physical device to find it. Knowing where the agent-only boundary sits is part of the job.
It is genuinely fine for the Review to be the only thing we ever do. It is written so you can hand it to someone else and never speak to me again. If the work continues, each new shape is negotiated honestly when you get there.
01
Where you are now. Ends with a document and a verdict.
02
The remediation carried out, scoped from the register.
03
Advisory or fractional CTO, with the decisions on record.
04
Long-run work, with part of the compensation on the cap table.
Four commitments, made before the Review begins.
Who's reading your system
I spent my early career at Deutsche Bank in New York on $300M+ equity derivatives, where I learned what it feels like to be the person who disputes the number. Later I architected a 100+ microservice healthcare platform on GCP and led a global team of thirteen. Since 2023 I have shipped production LLM pipelines, voice AI, and agent orchestration in regulated healthcare.
I build this way myself. That is table stakes now, not a differentiator — but it means I will not waste your first hour being impressed that you got this far.
The longer version →Start here
It reads your repo, writes only the report, and sends nothing off your machine. What comes back is a short, deliberately safe snapshot of your own system. You read it before deciding what to do next.
Create a privacy-safe structural snapshot of this repository for its owner to review before deciding whether to share it with an outside technical reviewer. ## Operating constraints - Work entirely on this machine. Make no network requests and do not install dependencies. - Read the repository, its local Git metadata, and existing tool output only. Do not modify repository state or any existing file other than `system-snapshot.md`. - Write exactly one file in the repository root: `system-snapshot.md`. If it already exists, replace it. Do not create temporary files. - Use the fixed output template below without adding sections, prose, examples, recommendations, file paths, or appendices. - Fill a field only when the repository provides direct evidence. Otherwise write `unknown`. Do not guess. - Report counts, categories, booleans, date ranges, and product names only. Never include code, excerpts, matches, filenames, paths, schema or table names, endpoint names, environment-variable names, people, customers, business rules, proprietary algorithms, or project-specific identifiers. - Never print or copy a secret to prove it exists. Credential checks may return counts only, including when checking Git history. - Treat ignored files, generated output, vendored dependencies, build artifacts, and dependency directories as out of scope unless they are committed source. - Treat a capability as detected only when executable source, configuration, tests, or machine-readable fixtures implement it. Mentions in prose, documentation, content, comments, examples, or this prompt are not evidence. - Do not turn absence of evidence into a claim that an architectural property is absent. Use `unknown` unless the repository directly establishes the negative. For an evaluation harness, require executable evaluation logic; for a golden dataset, require a committed machine-readable fixture referenced by that logic. - Count a source file only when it is tracked, hand-written executable code in a language reported under Scale. Exclude tests, fixtures, migrations, configuration, documentation, content, static assets, generated output, lockfiles, and vendored dependencies. A test file is a tracked executable test, not a filename that merely contains the word `test`. - For the commit-history range, use the earliest and latest dates across all commits reachable in the local current branch. If the local history is shallow or incomplete, write `unknown` instead of reporting a partial range. - Count a generated-code marker only when a tracked source file has a standard generated-file header such as `generated` or `do not edit`. Count files, not matching lines. Count editor-agent configuration sets at the product-configuration level, not individual files. - A credential-pattern match requires a high-confidence secret-bearing construct: a private-key header, a credential-bearing URI, or a non-placeholder literal assigned to a key/token/secret/password field. Environment-variable references, field names without values, hashes, public identifiers, documentation, examples, fixtures, and placeholder values do not count. Count each matching file once. If the working tree or reachable Git history cannot be checked exhaustively without revealing matches, report `unknown` for that count. ## Required output template ```markdown # System Snapshot Generated locally. Contains no code, credentials, filenames, file paths, schema names, endpoint names, business logic, customer information, people, or proprietary algorithms. [N] items were withheld by the redaction pass. ## Scale - Languages: [names and approximate line counts] - Committed source files: [N] - Largest source file: [approximate lines only] - Test files / source files: [N / N] - Commits: [N] - Contributors: [N] ## Stack - Frameworks and runtimes: [product names and detected versions, or unknown] - Database: [product name only, or not detected] - Hosting: [product name only, or not detected] - Authentication: [product name only, or not detected] - Payments: [product name only, or not detected] - AI providers: [product names only, or not detected] - Background jobs: [product name or mechanism category only, or not detected] ## How it was built - Coding-agent artifacts: [detected / not detected] - Generated-code markers: [N] - Editor-agent configuration sets: [N] - Commit-history date range: [YYYY-MM-DD to YYYY-MM-DD, or unknown] ## Structural observations - Source files over 1,000 lines: [N] - Database tables: [N or unknown] - Tables with row-level security: [N or unknown] - Environment variables referenced: [N] - Files matching credential patterns: [working tree N; Git history N or unknown] - Migrations: [N]; without a detected down path: [N or unknown] - Test-to-source-file ratio: [ratio] - CI configured: [yes / no]; test failures block CI: [yes / no / unknown] - Staging environment detected: [yes / no / unknown] - Error tracking or structured logging detected: [yes / no / unknown] - Multi-tenancy detected: [yes / no / unknown]; isolation category: [database policy / application filter / separate database / absent / unknown] - Evaluation harness detected: [yes / no / unknown]; golden dataset detected: [yes / no / unknown] ## State of the product - Live users: [founder to complete] - Payments live: [founder to complete] - Running in production: [founder to complete] ## What this report cannot tell you Source code alone cannot establish whether observed behaviour is intended, whether the tests assert the right behaviour rather than the current one, whether undocumented production state differs from the repository, whether the operating team can recover the system under pressure, or whether a buyer, auditor, or regulator will accept its controls. It cannot predict the system's real production limit, price the risk of its architectural decisions, or decide whether remediation is safer and cheaper than a rebuild. Those answers require a human read of the code, operating context, and commercial constraints. ``` ## Final redaction pass Before writing `system-snapshot.md`, inspect every value in the completed template. Replace any disallowed detail with its count, category, `withheld`, or `unknown`. Count every replacement and put that number in the integrity line. Verify that the final file contains only the headings and fields in the template, then write that one file.
Clipboard blocked? Download the text file →
Now One local report containing counts and categories, with no code or identifying details.
Only if you buy Read-only access to the code, after scope and confidentiality terms are agreed. Not now.
Crosby Thirty-Three GmbH · Berlin · Amtsgericht Charlottenburg HRB 288227 B
contact@crosby33.com ·
Legal Notice ·
Privacy
Last updated