October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

Claude Code: The Gap Between “Made” and “Working” (and How to Verify Its Changes)

An applied edit, a completed command, or a passing test each proves something narrow. Here is a repeatable loop for verifying Claude Code changes against the real requirement.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When Claude Code says it made a change, it means an edit was written to your files. A command finishing or a test passing tells you that one action or one behavior succeeded. None of those signals, alone, shows that the change meets your requirement in the context of your real repository. Closing that gap is a repeatable loop you run yourself: reproduce the problem, make a narrow change, verify in layers, and review the evidence before you accept anything.

What each success signal actually proves

Most confusion comes from treating three different signals as one. An edit being applied, a command completing, and a test passing are each real results, but each answers a narrower question than “does this work?”

As an Amazon Associate I earn from qualifying purchases.

Signal What it establishes What it does not establish
Edit applied The file on disk now contains the change Claude Code proposed. That the logic is correct, that the change matches the requirement, or that nothing else depends on the old behavior.
Command completed with a success exit The command ran to completion without reporting failure. That its output is correct, or that the feature it touches behaves as intended.
Test run passed The assertions that ran held for the inputs those tests exercise. Untested paths, untested inputs, and whether the tests encode the requirement at all.
Build, type check, or lint passed The code compiles and satisfies the configured checks. Runtime behavior, data handling, or user-visible results.
Manual check succeeded One scenario you exercised produced the result you expected. Any scenario you did not exercise.

The practical rule: write down which requirement each signal covers, and whether that requirement is the one you actually care about. If the answer is “not quite,” the change is not finished, regardless of what the status line says.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The loop, step by step

The workflow below follows Anthropic’s documented Claude Code recipes for reproducing bugs, refactoring in small steps, and writing and running tests. The ordering of the verification layers is a practical recommendation rather than a sequence Anthropic prescribes.

1. State the expected behavior and reproduce the failure

  1. Write the expected outcome in one or two sentences, including constraints. “Fix the bug” is underspecified; “a discount code applied at checkout should reduce the order total only once, and orders below the minimum must reject it” is something you can check.
  2. Capture the failing command, the exact error or stack trace, and the steps that trigger it. Anthropic’s common-workflows guidance recommends sharing error output and reproduction details before asking for a fix.
  3. Confirm the failure is consistent. If it appears only sometimes, note the conditions: input data, environment, order of operations, or timing.

2. Inspect before changing anything

  1. Ask Claude Code to identify the files involved and to explain the execution path from the entry point to the failing line.
  2. Check its explanation against the code yourself. An explanation that sounds right is still a hypothesis until a test or a reproduction confirms it.
  3. If the change is large or touches shared behavior, switch to plan mode and review the proposed approach before any edits reach disk.

3. Make a narrow change

  1. Ask for the specific fix you selected, and state that behavior outside the requested scope must be preserved.
  2. For refactors, request small increments. Each increment should be something you can test on its own before the next one starts.
  3. Keep a note of every file the change touches. If the list is longer than your explanation predicted, stop and ask why.

4. Verify in layers

  1. Run the focused test that reproduces the original failure first. It should now fail before the fix and pass after it. If you did not see it fail before the change, you have not shown that it detects the problem.
  2. Run the broader tests that cover the surrounding code paths.
  3. Run the type checker, linter, and build the repository uses. Treat each as a separate piece of evidence.
  4. Exercise the scenario manually where automated tests cannot represent it, such as a UI flow, a payment sandbox, or a deployed service.
  5. Ask explicitly for edge conditions and failure cases: empty input, boundary values, concurrent calls, and error responses from dependencies.

Anthropic’s documentation notes that Claude can generate tests that follow your project’s existing patterns and conventions. Matching conventions is useful, but it is not the same as matching your requirement. Check what the generated test asserts, not only that it is well formed.

5. Review the evidence and the diff

  1. Read the full diff, not only the summary Claude Code gives.
  2. List the commands that ran, their output, and their exit status.
  3. Write down what was not checked. This list is often the most important part of the review.

6. Decide whether the change is ready

  1. Accept or merge only when the evidence covers the requirement you wrote in step one.
  2. If any check fails, feed the failure output back into the loop. Do not treat the generated patch as finished because most of it works.

Reviewing the diff before it leaves your machine

Anthropic’s documentation specifically recommends reviewing generated pull requests before submission. Look for these problems in particular:

  • Unintended scope. Files changed that the requirement did not mention, including formatting-only churn in unrelated code.
  • Altered tests. Assertions that were weakened, removed, or rewritten to match new output. A test changed to fit the code proves less than a test left alone.
  • Temporary files. Scratch scripts, debug logging, commented-out code, or fixtures left in the repository.
  • Mismatched assumptions. Code that assumes a field, format, or configuration value the rest of the system does not guarantee.
  • Commands with side effects. Migrations, package installs, file deletions, or calls to external services that ran during verification and changed state.
  • Silent behavior changes. Default values, error messages, or ordering that changed without a test noticing.

Comparing verification approaches

Different checks answer different questions. Compare them on five axes: how directly the check exercises the changed behavior, which edge cases it covers, how much of the project it exercises, whether its result is reproducible, and what it costs in time and effort.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Approach Directness to changed behavior Edge-case coverage Project coverage Reproducible Cost and time
Focused regression test for the bug High: targets the exact failure Only the cases you wrote Narrow Yes, if the test is deterministic Low
Existing unit test suite Medium: covers related functions Depends on prior coverage Moderate Yes, generally Low to moderate
Integration or end-to-end test Medium to high for flows Good for cross-component cases Broad Often, but may be flaky High
Type check, lint, build Low: structural, not behavioral Catches classes of errors, not logic Broad Yes Low to moderate
Manual scenario check High for the scenario run Only what you try Varies Not reliably repeatable Moderate to high

No single row is sufficient. The reliable pattern is a focused test that fails before the change and passes after it, plus broader checks that show the change did not break neighboring behavior.

Permissions and modes: what they control

Claude Code’s permission settings govern what it is allowed to do: which shell commands may run without asking, and whether file modifications require your approval. According to Anthropic’s permissions documentation, in Manual mode shell commands generally require approval apart from a built-in set of read-only commands, and file modifications require approval. Other modes change which actions prompt you.

These controls are useful safeguards against unwanted actions. They do not tell you whether the code is correct. An approved edit can still be wrong, and an approved test run can still pass for the wrong reason.

The CLI reference documents a --dangerously-skip-permissions option, which skips permission prompts. It is not a verification shortcut. Use it only if you fully understand what the environment allows and what the risk is, such as a disposable container with no credentials or production access.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When a check fails

  • The focused test still fails. The fix does not address the cause you identified. Return to step two and compare the execution path with the failing output.
  • The focused test passes, but the scenario still fails. The test does not represent the real condition. Add a test that reproduces the scenario’s inputs or environment, then rerun.
  • Existing tests fail after the change. Determine whether the test encodes intended behavior that the change violated, or whether the test was asserting something outdated. Do not update the assertion until you know which.
  • Tests pass only after you edited them. Treat the change as unverified. Restore the original assertions and rerun.
  • The build or type check fails. Feed the exact message back into the loop. Structural errors often point to a mismatched assumption that tests would not catch.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keeping state on longer tasks

For longer autonomous tasks, Anthropic’s prompting best-practices guidance recommends making verification tools available and tracking state in a structured form, such as recording which tests were run and their results. Keep a short running log of the requirement, the reproduction, the commands run, and the open questions. This makes it clear what has been verified and what has not when the session spans many edits.

Sources and currency

The workflow above draws on Anthropic’s Claude Code documentation as published at the time of writing, including the pages titled “Common workflows,” “Configure permissions,” “Prompting best practices,” and the CLI reference. Claude Code’s features, modes, and permission options change between releases, so check the current documentation before relying on a specific label or setting. The documentation describes the tool’s behavior; it does not measure how often generated changes are correct, and this article does not offer a defect rate.

Your repository’s own test suite and CI configuration remain the authority on what “working” means for your project.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.