
An AI-built product audit is easy to commission badly. A founder asks for someone to “check the app”, receives a handsome PDF containing several red circles and one alarming use of the word critical, and is left with no reliable way to reproduce the findings, brief a developer or decide what must happen before launch.
The problem is not necessarily the auditor. “Check the app” is not a scope. It is a mood.
A useful AI-built product audit begins with a business decision and ends with verified evidence. It should tell you what was examined, which version was examined, what failed, why it matters, how the result was proved, what to fix first and whether the fix worked. Anything less may still be an interesting technical document. It is not yet an operating plan.
Commission the decision, not the document
Start by stating what the audit must help you decide. Are you trying to launch to paying customers, sign an enterprise client, give a new development team a reliable handover, recover an unstable live service or understand whether the current product is worth extending?
Those decisions produce different scopes. A pre-launch audit may concentrate on critical customer journeys, access control, payments, recovery and deployment. A handover audit may place more weight on architecture, documentation, account ownership and whether another developer can operate the product. An enterprise-readiness review may need deeper evidence about data handling, permissions, supplier dependencies and change control.
Write the intended decision into the brief. Then agree the output that will support it: for example, a launch recommendation with conditions, a prioritised remediation backlog and a retest of agreed blockers. Otherwise, the audit can become an expensive tour of everything technically observable, including several things nobody is currently able or required to change.
Define the exact product being audited
AI-built products change quickly. The version reviewed on Monday may have been substantially rewritten by Friday after a coding agent was asked to “tidy a few things up”. Findings need a stable reference point.
The scope should record:
- the repository, branch and commit or release being assessed;
- the development, staging and production environments included;
- the customer roles, administrator roles and test accounts available;
- the critical journeys and business rules to be exercised;
- the databases, background jobs, APIs and third-party services in scope;
- the documents, logs and deployment records the auditor may inspect;
- explicit exclusions, access limitations and assumptions; and
- how sensitive data, credentials and evidence will be handled and deleted.
Do not hide awkward components to keep the quotation tidy. If the live application depends on a separately deployed job, a manually configured webhook or a database owned through a personal account, those are part of the product customers experience.
The method should fit the risk. Source review, architecture inspection, manual journey testing, configuration review and automated tools each reveal different things. The UK National Cyber Security Centre warns that penetration testing is not a magic bullet and should support a wider vulnerability-management process. The same principle applies to a product audit: one scanner, one demo or one code review cannot credibly stand in for the whole system.
Require findings another person can reproduce
A finding is useful when a developer who was not present during the audit can confirm it without translating a paragraph of unease.
The latest OWASP Web Security Testing Guide says reporting should explain what and how something was tested, make results reproducible, identify root cause, provide concrete remediation guidance, assign risk or severity and communicate business impact. That is a sound minimum beyond security too.
Each finding should contain:
- a unique identifier and concise title;
- the affected version, environment, component and user role;
- preconditions and safe reproduction steps;
- the expected and observed behaviour;
- evidence such as a log excerpt, test result, screenshot or code reference;
- the customer, operational or commercial consequence;
- the likely root cause, clearly labelled if it is still an inference;
- a recommended outcome and acceptance criteria; and
- any uncertainty, access limitation or related finding.
What a usable finding looks like
Consider a fictional subscription product. “Payments may be unreliable” is not a useful finding. A better finding records that, on the assessed staging release, interrupting a payment callback after the provider accepts the charge leaves the order pending; retrying the callback creates a second subscription record; the event identifier is not stored before processing; and the acceptance test is that repeated delivery produces one subscription and one auditable outcome.
That tells the founder why revenue and support are at risk. It tells the developer where to begin. It also gives the retester an observable definition of fixed. The report has stopped being literature and started becoming work.
Separate technical severity from commercial priority
A long list sorted only into critical, high, medium and low looks decisive. It can also produce foolish sequencing.
Technical severity describes the intrinsic seriousness of a weakness. Commercial priority asks what the business should address first in its actual context. FIRST's CVSS v4.0 guidance is explicit that a base score measures severity, not risk on its own.
An audit should therefore preserve the technical rating and add the context needed for a business decision:
- Is the affected feature live and reachable?
- Which customers, data or revenue journeys are exposed?
- How likely is failure or abuse in the current environment?
- Is there a temporary control?
- Does another planned change remove or worsen the issue?
- What is the cost of delay, and what work depends on the fix?
A broken upgrade journey may be the first commercial repair even when it is not the most severe security item. A serious access-control flaw may remain the absolute launch blocker despite affecting a feature with little current usage. The point is not to let revenue overrule security. It is to make the reasoning visible, assign an owner and record the date on which the decision must be reviewed.
The result should be two honest views: a technical risk register and a delivery sequence. Compressing them into one coloured number is efficient in much the same way that labelling every cupboard “miscellaneous” is efficient.
Agree the handoff before the audit starts
Do not wait for the final meeting to discover what format the development team can use. Agree whether findings will be delivered as a report, issue tracker entries or both. Decide who may see sensitive evidence, who will accept findings, and who can answer implementation questions.
A sensible handoff includes:
- an executive readout framed around the decision that commissioned the audit;
- a technical session with the people expected to fix the findings;
- tickets with owners, dependencies and testable acceptance criteria;
- a record of disputed, accepted and risk-accepted findings;
- an agreed route for clarifications after delivery; and
- a retest window tied to the assessed release or commit.
NIST's Secure Software Development Framework treats secure development as repeatable practices across preparation, protection, production and response. An audit should strengthen that system, not deposit a separate universe of observations beside it.
A finding is not closed until the evidence changes
“Developer says fixed” is a useful status update. It is not a retest result.
Retesting should use the original reproduction conditions against an identified new version. The outcome should be recorded as fixed, partially fixed, not fixed, no longer applicable or not retested, with fresh evidence and any regression noted. If the team chooses to accept a remaining risk, record the owner, reason, compensating control and review date.
Be wary of audit offers that make retesting vague or optional by default. The commercial value lies in reducing uncertainty. A report that identifies a launch blocker but never confirms its removal has completed only the first half of the job.
Questions to ask before appointing an auditor
- What decision will your report help us make?
- Which product layers and user journeys will you inspect?
- Which version and environments will your findings refer to?
- What evidence will accompany each finding?
- How will you distinguish severity, likelihood and business priority?
- How will exclusions and incomplete access appear in the report?
- What will developers receive besides the executive summary?
- How are disputed findings and clarification requests handled?
- What retesting is included, and what counts as closure?
Strong answers need not involve an enormous engagement. A small product may need a short, tightly scoped review. Proportionate does not mean vague. It means examining the evidence most likely to change the decision in front of the founder.
An AI-built product audit should leave the team more capable
Venturist treats a product audit as the start of controlled improvement, not a ceremonial diagnosis. The review connects the codebase, customer journeys, data, integrations and production arrangements to the commercial decision the founder needs to make. Findings are useful only when they can be understood, owned, fixed and verified.
For the broader readiness work an audit may examine, see how an AI prototype moves into production. If investment is the immediate concern, the separate guide to vibe coding due diligence explains the evidence investors are likely to seek.
An audit should reduce uncertainty, not reformat it. If your AI-built product needs an independent review before launch, handover or a significant customer commitment, request a Free Product Audit from Venturist. This initial product-level review identifies the main gaps and practical next steps. Any deeper technical audit, testing or implementation is scoped separately.