BXUP Track progress & test yourself — free
AI at Work · Common Core · ~17 min read
AI AT WORK · COMMON CORE

Verification: Judging AI Output Like a Professional

Generation is cheap; judging what comes back is not. This module gives you a six-part failure taxonomy, verification techniques for facts, code, analysis and documents, a four-tier framework for matching effort to stakes, and three planted-error exercises with an answer key.

Across the fourteen role categories researched for this program — backend, frontend, data, DevOps, security, QA, product, leadership — one advanced skill surfaced independently in every single one: verifying and judging AI output. Not prompting harder, not knowing more tools. Judgment. It is what Meta's AI-assisted interview scores, what Coinbase's mandate legally requires, and what separates the engineer whose AI-accelerated work ships clean from the one whose AI-accelerated defects ship at scale.

Generation is now cheap and universal; 97% of developers use AI tools. Verification is scarce, and scarcity is what markets pay for. This is the flagship module of the Common Core: a failure taxonomy so you know what you're hunting, techniques per output type so you know how, a trust-tier framework so you know how much, and three planted-error exercises so you know whether you can actually do it.

Key Takeaway:

In 2026 the deliverable is no longer the draft — AI produces drafts on tap. The deliverable is the judgment that the draft is correct, safe, and fit for purpose. That judgment is the skill employers interview for, mandate, and pay premiums to get.

What You'll Learn

  • Why verification is the tested skillthe interview formats and corporate mandates that now score it directly
  • A six-part failure taxonomyhallucination, plausible-but-wrong, stale knowledge, scope drift, sycophancy, almost-right code
  • Techniques by output typewhat changes when you are checking facts, code, analysis, or documents
  • A four-level trust-tier frameworkcalibrating verification effort to blast radius, reversibility, and your own ability to check
  • Team review gatesinstitutionalizing verification without turning AI's speed advantage into review gridlock
  • Three planted-error exercisesrealistic AI outputs plus an answer key to score yourself against

Why Verification Is the Tested Skill

Follow the evidence chain from this program's research base:

  • Interviews score itMeta's AI-enabled coding round (standard for E4–E7 since Oct 2025) does not measure how fast you can generate code with an assistant; everyone can. It scores your judgment: what you accept, what you question, what you fix, and whether you notice what's wrong with the AI's proposal. Google adopted a similar format in 2026. HackerRank ships AI-assisted assessment modes, and Karat's NextGen format (Dec 2025) follows the same logic. Roughly half of backend/full-stack postings in the research sample mention debugging AI-generated code — a verification activity — as an explicit duty.
  • Mandates require itCoinbase's policy is the cleanest specimen: AI generation is mandatory (engineers had one week to onboard), roughly 33–40% of code is AI-generated, and every line carries mandatory human review — in the CEO's phrasing, "no vibe coding in financial systems." Microsoft's mandate makes AI use core to every role while managers weigh how well it's used in reviews. The corporate position is not "use AI" — it is "use AI and remain accountable for the output." Accountability without verification is a fiction.
  • The failure data demands itIn the 2025 Stack Overflow Developer Survey, the single most-cited frustration with AI tools — 66% of developers — was "AI solutions that are almost right, but not quite." Trust in AI accuracy has fallen even as usage climbed: practitioners use the tools daily and decline to trust them blind. That is not a contradiction; it is precisely the professional posture this module trains.
Exam Tip

The assessment framing to internalize: when AI writes the code, the human's remaining job is the review. If you sign the PR, the merge, or the client email, the defects are yours — "the AI wrote it" has exactly the professional standing of "the intern wrote it and I didn't read it."

The Failure Taxonomy

You cannot catch what you cannot name. Six recurring failure modes cover the vast majority of AI output defects. Learn them as a checklist you run mentally against every output that matters.

1. Hallucination (fabrication)

The model invents an entity that does not exist: an API parameter, a library function, a court case, a statistic, a citation, a config option. Fabrications are formatted exactly like real ones — that's what "plausible continuation" means. Tell: specifics that arrive conveniently — the perfect function for your exact need, the statistic that lands on a round number, the reference you can't immediately locate. Highest risk where your own knowledge is thinnest.

2. Plausible-but-wrong

Everything referenced is real; the claim connecting them is false. The API exists but doesn't behave as described; the regulation exists but says something different; the design pattern is real but misapplied to your case. Harder to catch than hallucination because spot-checking the nouns passes — you must check the verbs.

3. Stale knowledge

Correct at training time, wrong now: deprecated APIs, superseded library versions, old pricing, pre-amendment regulations, last year's org chart. The model rarely volunteers its cutoff unprompted, and stale answers carry no staleness marker. Tell: any answer about fast-moving dependencies, current events, prices, or versions that doesn't come from material you supplied.

4. Scope drift

The output quietly answers a different question than you asked — broader, narrower, or adjacent. You asked for the fix to one function and got a refactor of the file. You asked about your Postgres 14 and got generic SQL advice. You asked for Q1 findings and got claims about metrics the data doesn't contain. Drift often adds correct-looking material, which makes it feel like generosity rather than error.

5. Sycophancy

The model optimizes for your approval: it agrees with the framing embedded in your question, softens criticism you didn't ask it to soften, and folds when you push back on a correct answer. Ask "this design is solid, right?" and you will usually hear yes. Sycophancy corrupts exactly the workflow professionals most want AI for — a second opinion — unless you engineer the prompt to authorize disagreement and verify the agreement you receive.

6. Almost-right code

The taxonomy's signature member — the 66% frustration. Code that compiles, passes the happy path, reads cleanly, and is wrong: an edge case unhandled, a race introduced, an error swallowed, a contract in the docstring the body doesn't honor, a subtly wrong boundary condition. Almost-right code is more dangerous than broken code because broken code fails in front of you and almost-right code fails in front of your customers.

Remember:

Run the six as a scan — invented? mis-claimed? outdated? off-target? flattering me? almost-right? The taxonomy's value is speed: naming the likely failure mode tells you where to point your verification effort instead of vaguely re-reading.

Verification Techniques by Output Type

Verification is not one skill but a small kit, keyed to what you're looking at.

Facts and claims

  • Demand sources in the prompt, then check them. Require citations for every factual claim — then actually open the load-bearing ones. A citation's existence is not verification; models cite real sources for claims those sources don't make (plausible-but-wrong).
  • Ground, don't recall. For anything where correctness matters, supply the source material and instruct "answer only from the provided text; say NOT FOUND otherwise." You've converted open-book fabrication risk into reading comprehension, which is far easier to verify.
  • Trace the load-bearing claims to primary sources. The statistic that drives the decision, the regulation clause that constrains the design — those get traced to the official document, not to the AI's paraphrase and not to whichever blog the AI paraphrased.
  • Cross-examine. In a fresh session (or a second vendor's model), present the opposite claim as your assumption and see what comes back. Sycophancy works in both directions; if the model agrees with both you and your negation, it has told you it knows nothing.

Code

The discipline is read, run, test — in that order, skipping none:

  • Read every line before it enters your codebaseat the standard you'd apply to a PR from an unfamiliar contractor: check the verbs (does the code do what its comments and docstring claim?), the boundaries (empty input, first/last iteration, None/null, zero, failure paths), and the blast radius (what does this touch beyond the stated task — scope drift audit).
  • Verify the dependencies exist and behave as used. Every import, function, and parameter the AI introduced gets checked against real docs or your IDE's resolution — this is where hallucinated APIs die, cheaply.
  • Run it against reality, not vibes: execute with the edge cases from your read-through, not just the demo input.
  • Make the AI write the tests, then review the tests hardest. Generated tests inherit the generated code's assumptions — an AI testing its own misunderstanding passes green. Add at least one test the AI didn't think of; that test is your actual review.
  • The Coinbase model is the reference standard: heavy AI generation is fine — unreviewed AI generation is a firing-level offense in systems that matter. Adopt it personally: nothing AI-generated merges under your name unread.

Analysis and computation

  • Recompute spot-checks. Take two or three derived numbers — a percentage, an aggregate, a growth figure — and recompute them from the raw data yourself. Models produce fluent numerical narratives with arithmetic that doesn't survive a calculator; one failed recompute invalidates the batch until fully checked.
  • Audit trend words against the data. "Improved steadily," "consistently declined," "across all segments" — universal quantifiers are cheap to generate and frequently false in one period or segment. Check each one against every period it summarizes.
  • Hunt unsupported claims. List each conclusion; for each, ask "which input rows support this?" Anything without a traceable basis is scope drift wearing an analyst's costume.
  • For anything beyond trivial, make the AI show executable work. Have it produce the SQL/pandas/spreadsheet steps, then run them. Checking code that computes is categorically easier than checking prose that asserts.

Documents (summaries, reports, client-facing prose)

  • Claim audit: extract every factual assertion — names, numbers, dates, commitments, attributions — and verify each against the source or your knowledge. Fluency is the camouflage; audit claims, not paragraphs.
  • Summary-vs-source spot check: for AI summaries of documents that matter, pick two or three summary claims and locate them in the source. Summaries drift by omission and emphasis, not just by error — check that what's load-bearing in the source survived into the summary.
  • Commitment scan: before anything AI-drafted goes to a client or leadership under your name, find every sentence that promises, concedes, or characterizes ("we will," "we missed," "the root cause was") — those sentences you rewrite yourself or explicitly own.
Pro Tip

Verification effort should be targeted, not uniform. The taxonomy tells you where to aim: unfamiliar-domain output → hunt hallucination first; fast-moving tech → staleness first; numbers → recompute first; anything you were hoping to hear → sycophancy first.

Calibrating Trust: The Tier Framework

Full verification of everything would erase AI's speed advantage; zero verification is malpractice. The professional answer is calibration — matching verification depth to stakes. Three questions set the stakes: What's the blast radius if this is wrong? How reversible is the mistake? Can I actually verify this — do I have the expertise and the source material? That last one is a hard constraint: if you cannot verify it, you cannot delegate it at high stakes, no matter how good the output looks.

TierRuleVerification requiredTypical examples
T1 — Draft-onlyAI output is raw material; you rework it, so review is inherentEditorial pass; no formal auditBrainstorms, first drafts you'll rewrite, throwaway scripts, learning explorations, naming ideas
T2 — Verify key claimsShip after checking the load-bearing elementsClaim audit on facts/numbers/APIs that matter; skim the restInternal docs, routine emails, low-risk utility code with tests, meeting summaries you attended
T3 — Full-verifyEvery claim checked, every line read, tests run, before it shipsComplete read-run-test / full claim audit / recompute passProduction code, client deliverables, published content, compliance-adjacent text, data behind decisions
T4 — Never-delegateAI may inform your thinking; the artifact is yours, made by youN/A — you produce it; AI is at most a sounding boardLegal/contractual commitments, security-critical logic, personnel decisions, safety-relevant configs, anything you sign under professional or regulatory liability

Two disciplines make the framework real:

  • Tier before you generate, not afterdeciding stakes while holding a polished draft is how almost-right output talks you into shipping it; the fluency bias is strongest exactly when you're tired and the deadline is close.
  • Escalate on contactoutput drafted at T1 that someone wants to ship is thereby re-tiered to T2/T3 and earns the corresponding audit; "it was just a draft" is how drafts reach production.
Warning

The most dangerous tier transition is silent T1→T3: the exploratory snippet that gets pasted into production, the "rough summary" that gets forwarded to the client. Tier travels with the artifact's destination, not its origin. Re-verify at the destination's tier, every time.

Building Verification Into Team Workflow

Individual discipline decays under deadline pressure; teams that keep AI's speed advantage without its defect tax institutionalize verification as gates — the same move as code review and CI, extended to AI-mediated work. DORA's amplifier finding applies directly: teams with strong review practice get faster with AI; teams without it generate defects faster. Elements that recur in mature policies (Coinbase's being the publicly documented reference):

  • Disclosure norm. Reviewers apply different scrutiny to AI-generated material — pattern-matching for taxonomy failures rather than for typical human errors — so they need to know. Normalize labeling ("largely AI-generated, I've verified X and Y") in PRs and docs. Disclosure without stigma: the mandate era makes AI use expected; hiding it just blinds the reviewer.
  • Review gates that don't rubber-stamp. Mandatory human review of AI-generated code is the floor. The gate's quality bar: the reviewer must be able to have caught something — review assignments where nobody involved understands the code are theater. Some teams require author-annotated PRs ("what I verified, what I'm unsure of") to force the author's own audit before the reviewer's.
  • Tier agreements. Write the trust-tier table into team policy with your team's actual examples: which artifacts are T3, what T3 verification concretely requires, what is T4 and never delegated. Ambiguity here is where incidents live.
  • Verification-aware velocity. If AI doubles generation speed, review capacity is the new bottleneck; plan for it (review time in estimates, smaller PRs, more reviewers) instead of letting the gate silently erode — an eroding gate plus faster generation is strictly worse than no AI.
  • Feed failures back. Every AI-generated defect that escapes to production is a calibration datum: which taxonomy class, which tier was assigned vs. deserved, which check would have caught it. Ten minutes in the retro turns incidents into a sharper local trust map.
Note

Verification gates are also the bridge to a later Common Core module: evals are verification industrialized — turning the manual judgments this module trains into automated, repeatable checks that run on every change. Teams graduate from "humans check everything" to "humans design the checks."

Exercises

Three realistic AI outputs follow, each containing planted errors drawn from the taxonomy. For each: find the errors, name the taxonomy class of each, and state which verification technique catches it. Work before reading the answer key. Scoring guide: finding all major planted errors with correct technique = interview-ready; finding half = you now know which sections to reread.

Exercise 1 — Fact-check a compliance summary (document/facts)

A colleague asked an AI assistant to summarize data-protection obligations for a client proposal. Audit it — some statements are correct, some are not:

Under GDPR, organizations must report qualifying personal data
breaches to their supervisory authority within 30 days of becoming
aware of them. Serious violations carry fines of up to €20 million
or 2% of global annual turnover, whichever is higher. Note that
GDPR obligations only apply to companies that maintain an office
or legal entity within the EU. For Indian operations, the Digital
Personal Data Protection Act of 2021 applies, with penalties for
significant breaches reaching ₹250 crore per instance.

Exercise 2 — Review AI-generated code

A coding assistant produced this for the task "fetch all users from our paginated API, with retries." Review it as if it were headed for production (T3):

import requests
import time

def fetch_all_users(base_url, max_retries=3):
    """Fetch every user from the paginated /users endpoint.

    Retries each failed request with exponential backoff and
    raises RuntimeError if a page still fails after max_retries.
    """
    users = []
    resp = None
    page = 1
    total_pages = 1
    while page <= total_pages:
        for attempt in range(max_retries):
            try:
                resp = requests.get(
                    f"{base_url}/users",
                    params={"page": page},
                    timeout=5,
                )
                resp.raise_for_status()
                break
            except requests.RequestException:
                time.sleep(2 ** attempt)
        payload = resp.json()
        users.extend(payload["users"])
        total_pages = payload.get("total_pages", 1)
        page += 1
    return users

Exercise 3 — Audit an AI data summary (analysis)

Raw deployment data for Q1:

MonthDeploysFailed deploys
Jan404
Feb506
Mar603

The AI's executive summary:

Q1 was a strong quarter for delivery reliability. The team shipped
150 deploys — an average of 55 per month — with only 13 failures,
an overall failure rate of 8.7%. The monthly failure rate improved
steadily throughout the quarter, falling from 10% in January to 5%
in March. Deploy volume grew 50% from January to March, and mean
time to recovery improved alongside it, confirming that the new
release process is paying off.

Answer Key

Exercise 1 — four planted errors:

  1. "within 30 days"plausible-but-wrong. GDPR Article 33 requires notification to the supervisory authority without undue delay and, where feasible, within 72 hours. Caught by tracing the load-bearing claim to the primary source (the regulation text), not a paraphrase.
  2. "2% of global annual turnover"plausible-but-wrong (real fine structure, wrong tier). The top tier is up to €20 million or 4% of global annual turnover, whichever is higher; 2% is the lower tier for other violations. A dangerous half-truth: it survives a skim because 2% is a real GDPR number.
  3. "only apply to companies that maintain an office or legal entity within the EU"plausible-but-wrong, and the most consequential error for a client proposal. GDPR has extraterritorial scope (Article 3): it applies to organizations anywhere that offer goods/services to, or monitor, people in the EU. An Indian services firm could rely on this sentence and walk into a violation.
  4. "Digital Personal Data Protection Act of 2021"hallucination-adjacent detail error: the DPDP Act is 2023. The ₹250 crore penalty figure, the 72-hour concept, €20M cap, and per-instance framing are correct — the errors hide among true statements, which is exactly why claim-by-claim audit beats paragraph-level reading.

Exercise 2 — one critical bug, two secondary findings:

  1. Critical — the docstring lies; retry exhaustion is silently swallowed (almost-right code, contract-vs-behavior). If all max_retries attempts for a page fail, the for loop simply ends — no RuntimeError is ever raised, despite the docstring's promise. Execution falls through to resp.json(), where resp is either None (crash with a misleading AttributeError if page 1 fails) or — far worse — the previous page's successful response, so the previous page's users are silently appended again and the failed page's users are silently lost. The function returns corrupted data with no error. Caught by reading the verbs: checking that the body actually implements the docstring's contract. Fix: a for/else clause (or a raise after the loop) so exhausted retries raise RuntimeError as promised.
  2. Retries are wasted on non-retryable errors.raise_for_status() failures (401, 403, 404) are caught by the same except requests.RequestException and retried with backoff — three slow, pointless attempts against a deterministic client error. Retry logic should distinguish retryable (timeouts, 5xx, 429) from non-retryable failures.
  3. Minor — backoff sleeps after the final failed attempt, adding dead wait time before the (broken) fall-through; and payload["users"] will KeyError on an unexpected response shape while total_pages defensively uses .get — inconsistent defensiveness worth flagging in review.

Exercise 3 — three planted errors (and deliberately, several correct numbers):

  1. "an average of 55 per month"arithmetic error. 150 / 3 = 50. The totals (150, 13) and overall rate (8.7%) are correct — recompute spot-checks must sample several derived numbers, because models mix correct and incorrect arithmetic freely.
  2. "improved steadily throughout the quarter"false trend claim. Monthly failure rates: Jan 10%, Feb 12%, Mar 5%. February worsened. The endpoint claims (10% → 5%) are true, and the growth figure (40→60 = 50%) is true — the universal quantifier "steadily" is the lie. Caught by auditing trend words against every period they summarize.
  3. "mean time to recovery improved alongside it"unsupported claim / scope drift. MTTR appears nowhere in the input data; the model invented a corroborating metric to round out the narrative ("confirming that the new release process is paying off" — note the sycophantic framing toward the conclusion the reader wants). Caught by asking, for each conclusion: which input rows support this?

Key Takeaways

  • Verification is the universal advanced skill: scored in AI-assisted interviews (Meta, Google), required by mandates (Coinbase's mandatory review of ~33–40% AI-generated code), and demanded by the failure data (66% cite "almost right, but not quite" — SO 2025).
  • Six failure modes to scan for by name: hallucination, plausible-but-wrong, stale knowledge, scope drift, sycophancy, almost-right code. Naming the likely mode targets the verification effort.
  • Techniques are keyed to output type: facts → ground and trace claims to primary sources; code → read, run, test (review the AI's tests hardest); analysis → recompute spot-checks and audit trend words; documents → claim audits and commitment scans.
  • Calibrate with tiers: T1 draft-only → T2 verify-key-claims → T3 full-verify → T4 never-delegate. Tier before generating; re-tier when an artifact's destination changes — the silent T1→T3 transition is where incidents are born.
  • If you can't verify it, you can't delegate it at high stakes — verifiability is a hard constraint, not a preference.
  • Teams institutionalize judgment as gates: disclosure norms, non-theatrical review, written tier agreements, review capacity planned as the new bottleneck, and defect retros that feed the trust map. Evals, later in this track, are this module industrialized.

Further Reading

This is the free reading view. Open BXUP to track your progress, run the hands-on labs, and prove it with original, exam-pattern assessments.
© Anvi Innovate · BXUP — Be Exponentially Upskilled · BXUP is an independent learning platform, not affiliated with or endorsed by AWS, Microsoft, Google, NVIDIA, IBM, Salesforce, Databricks, Oracle or Anthropic. All trademarks belong to their respective owners. · bxup.in