Judgment in the Age of AI · Article 37
“It runs” proves only that the code did not immediately fail for one input. It does not establish correct edge cases, trustworthy dependencies, secure data handling, adequate performance or even that the real problem was solved.
Build a verification pyramid from the bottom
- Understand: Explain each section; do not adopt what nobody can explain.
- Static checks: Inspect formatting, types, dependencies, licences, known vulnerabilities and secrets.
- Unit tests: Cover normal, empty, extreme, malformed and hostile inputs.
- Integration tests: Exercise permissions, networks, databases and external services at real boundaries.
- Human review: Have people who know the domain and security inspect the design, not merely the syntax.
- Controlled release: Deploy narrowly with monitoring, rate limits and rollback.
A useful adversarial prompt
Do not rewrite the code yet. List five ways it could fail and design a test for each that could disprove the current implementation.
Asking the generating model to assess itself may expose obvious defects, but it is not independent verification. Use deterministic test tools and ensure that the person accepting responsibility has inspected critical paths.
References
Discover more from Geoffrey Chen
Subscribe to get the latest posts sent to your email.