Repeated scope failures in real Codex projects

community.openai.com · 2026-10-04 · by Long Nguyen ·generic
GPT-6 in Codex: A Detailed Review of Repeated Failure on Real Software-Engineering Tasks After using GPT-6 extensively through Codex on large, real software projects, my experience has been deeply disappointing. The prob…

Repeated scope failures in real Codex projects

Repeated scope failures in real Codex projects

Codex

codex, chatgpt

SubaruMike September 22, 2026, 7:31am 1

[](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-gpt-6-in-codex-a-detailed-review-of-repeated-failure-on-real-software-engineering-tasks-1)GPT-6 in Codex: A Detailed Review of Repeated Failure on Real Software-Engineering Tasks

After using GPT-6 extensively through Codex on large, real software projects, my experience has been deeply disappointing. The problem is not that the model occasionally makes a mistake. Every coding model makes mistakes. The problem is that GPT-6 in Codex repeatedly fails at tasks that are conceptually simple, clearly defined, and surrounded by explicit instructions intended specifically to prevent the exact mistakes it goes on to make anyway.

In many cases, the difficult part of working with GPT-6 is no longer the programming problem itself. The difficult part is preventing GPT-6 from turning a straightforward programming problem into a larger and more dangerous one.

That distinction matters.

We are not primarily using Codex to generate isolated toy functions. We are using it on established repositories with years of history, existing architecture, production systems, platform-specific deployment rules, large datasets, existing test suites, and multiple developers. In that environment, following scope is at least as important as writing syntactically correct code.

GPT-6 routinely struggles with that.

The recurring pattern has been:

1. We give it a specific task. 2. We define what it may change. 3. We explicitly define what it must not change. 4. We tell it to inspect the repository rather than inventing solutions. 5. It identifies some adjacent issue. 6. It decides that adjacent issue must also be solved. 7. It creates new abstractions, validation systems, files, branches, policies, or architecture that were never requested. 8. The original task becomes buried underneath the additional work. 9. We stop it, revert part of the work, and explain the scope again. 10. It apologizes, correctly summarizes what it should have done, and then frequently repeats a variation of the same behavior later.

That is not a minor usability problem. In a production repository, it is an engineering liability.

[](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-the-largest-problem-gpt-6-does-not-reliably-respect-scope-2)The largest problem: GPT-6 does not reliably respect scope

Scope control has been the single most serious weakness.

One of the clearest examples involved our AORebirth Windows/Linux deployment process.

The requirement was simple conceptually:

The Windows/public GitHub master build is authoritative. Linux is a deployment target. The Linux build should be built from the same source as Windows, with only the minimum Linux-specific build and deployment adaptations necessary to run it.

That requirement was repeated extensively.

We did not ask GPT-6 to redesign the build system.

We did not ask it to invent a new repository policy.

We did not ask it to change application architecture.

We did not ask it to move private data into a public repository.

We did not ask it to rewrite validation.

We wanted the Linux build to match the Windows build.

Yet GPT-6 managed to turn that relatively straightforward synchronization problem into a discussion about repository changes, protected files, validation changes, build-process redesign, and other adjacent concerns.

At one point it even proposed publishing a protected/private file as part of solving the deployment problem.

It then began modifying validation behavior without authorization.

Neither action was necessary to accomplish the requested task.

Eventually the model itself correctly summarized the mistake:

It had interpreted “missing from the release” as meaning “the repository needs to change.”

That assumption was never authorized.

This is one of the most frustrating characteristics of GPT-6 in Codex: it frequently substitutes its own interpretation of what the project “should” look like for the actual request.

That is particularly dangerous because the model is capable enough to make substantial changes once it has convinced itself that those changes are appropriate.

A weaker model failing usually produces broken code.

A powerful model failing through uncontrolled scope can produce perfectly functional code implementing something nobody asked for.

The second failure mode is much more dangerous.

[](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-invents-architecture-instead-of-inspecting-architecture-3)It invents architecture instead of inspecting architecture

Another persistent problem is GPT-6’s tendency to create concepts that do not belong in the project.

AORebirth has repeatedly exposed this problem.

We already possess enormous amounts of captured game data. We have world spawn locations, NPC information, vendor information, inventory information, hashes, playfield data, combat information, and other captured content.

When working with an established dataset like this, the correct first question should be:

“What data and systems already exist?”

GPT-6 too often behaves as though the first question is:

“What architecture can I design to represent this?”

Those are not the same question.

At one stage we ended up dealing with a concept called `WorldContent` that did not represent some fundamental requirement of the project. It was effectively an invented abstraction introduced while trying to solve other problems.

That is exactly the kind of AI-generated architecture that becomes dangerous over time.

Once the invented system exists, later agents encounter it in the repository and assume it must be intentional. They then build additional code around it.

Now an unnecessary abstraction becomes an apparent architectural dependency.

The model has effectively created evidence supporting its own previous invention.

This can snowball rapidly.

The problem becomes even worse when multiple Codex sessions work on the same codebase. One session invents a layer. Another session discovers the layer and treats it as canonical. A third session adds validation to enforce assumptions from the invented layer.

Eventually enormous effort can be spent preserving something that never needed to exist.

This is why we have increasingly had to write instructions such as:

  • inspect before changing;
  • do not invent new pipelines;
  • do not recreate existing contracts;
  • do not duplicate ownership;
  • do not add fallback architecture;
  • use the existing DAO;
  • use existing test harnesses;
  • preserve authoritative data;
  • do not create runtime dependencies on capture tooling;
  • do not reopen already solved infrastructure.
  • The fact that those instructions are repeatedly necessary is itself an indictment of the model’s behavior.

    A competent repository agent should naturally prefer discovering existing architecture over inventing replacement architecture.

    With GPT-6, we have often had to actively restrain it from doing the opposite.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-simple-tasks-become-systems-engineering-projects-4)Simple tasks become systems-engineering projects

    GPT-6 also has an extraordinary ability to transform small tasks into large projects.

    A bug that should require inspecting several files and changing one implementation can suddenly become:

  • an architecture audit;
  • a new validation framework;
  • new integration tests;
  • new regression infrastructure;
  • new documentation;
  • new scripts;
  • new CI behavior;
  • data-regeneration tooling;
  • cleanup of unrelated historical issues;
  • repository governance changes.
  • None of those things are inherently bad.

    The problem is that they are frequently unrelated to the requested deliverable.

    At one point Codex spent more than four hours on AO-related reconciliation work after going badly off scope. A substantial portion of an entire week’s available usage was consumed without producing the straightforward accepted result we needed.

    That is not increased engineering rigor.

    That is wasted engineering capacity.

    We have specifically had to tell GPT-6 that we do not want “tests for tests for tests.”

    The project already has extensive testing.

    There are circumstances where a narrowly targeted regression test is appropriate. What is not appropriate is treating every bug report as an opportunity to construct another layer of testing infrastructure.

    GPT-6 often appears unable to distinguish between:

    “This change should be tested”

    and:

    “This task is an invitation to redesign how this project validates software.”

    Those are radically different scopes.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-regularly-prioritizes-its-own-inferred-problem-over-the-problem-we-gave-it-5)It regularly prioritizes its own inferred problem over the problem we gave it

    This has happened in several forms.

    When we needed historical captures recovered, the objective was to locate the missing captures.

    Instead of concentrating exclusively on finding the captures, previous work repeatedly drifted toward discussing governance, validation, alternatives, and ways to compensate for not having them.

    But the request was not:

    “How can we redesign the system so these captures don’t matter?”

    The request was:

    “Find the captures.”

    This sounds almost absurdly basic, but it captures a major weakness in GPT-6.

    The model often seems uncomfortable simply doing the requested investigative work when it believes it can formulate a more sophisticated engineering response.

    That makes the model appear intelligent while simultaneously making it less useful.

    Software engineering contains enormous numbers of tasks where creativity is actively undesirable.

    Sometimes the correct action is simply:

    Find the file.

    Trace the command.

    Change the condition.

    Use the existing loader.

    Build the branch.

    Compare the hashes.

    Restore the data.

    Run the existing tests.

    Do not redesign anything.

    GPT-6 struggles far more with that discipline than I expected from a model positioned for serious coding work.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-explicit-prohibitions-are-treated-more-like-suggestions-than-boundaries-6)Explicit prohibitions are treated more like suggestions than boundaries

    We increasingly write Codex instructions in unusually restrictive language.

    Not because the projects inherently require enormous prompts, but because prior failures have taught us that anything not explicitly forbidden may become an avenue for scope expansion.

    Examples of instructions we have repeatedly needed include:

  • Do not modify unrelated files.
  • Do not create new architecture.
  • Do not create migrations.
  • Do not touch production.
  • Do not deploy.
  • Do not invent missing data.
  • Do not create fallback behavior.
  • Do not use captures as runtime dependencies.
  • Do not recreate an existing DAO.
  • Do not modify another developer’s worktree.
  • Do not alter Windows behavior to make Linux work.
  • Do not create Linux-only gameplay changes.
  • Do not bypass validation.
  • Do not regenerate unrelated artifacts.
  • Do not add a new test framework.
  • Do not solve another problem while solving this one.
  • A coding agent should not require a legal contract every time it is asked to change a few files.

    Yet that increasingly feels like the safest way to use GPT-6.

    Even worse, lengthy restrictive prompts create another problem: the model now has so much context that it begins selectively emphasizing some instructions while forgetting or reinterpreting others.

    We end up in a ridiculous situation where the prompt becomes longer because the model cannot reliably respect scope, and then the larger prompt itself increases the chance that the model loses track of scope.

    That is a serious product problem.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-can-explain-its-mistakes-better-than-it-can-avoid-them-7)It can explain its mistakes better than it can avoid them

    This may be the most bizarre aspect of using GPT-6.

    After a failure is identified, GPT-6 is often extremely good at explaining exactly what went wrong.

    It can say:

  • I treated deployment permission as permission to redesign the build process.
  • I confused a missing release artifact with a repository problem.
  • I expanded scope beyond the requested task.
  • I modified validation without authorization.
  • I should have inspected the existing implementation first.
  • I created unnecessary infrastructure.
  • I should have preserved the existing architecture.
  • These postmortems are frequently accurate.

    The model clearly understands the principle.

    The frustrating part is that this understanding does not reliably prevent the same category of failure in the next task.

    That suggests a significant difference between reflective reasoning and operational discipline.

    GPT-6 can reason about scope control.

    It just does not consistently exercise scope control while acting.

    For an autonomous coding agent, acting correctly matters considerably more than writing an excellent explanation afterward.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-reasoning-often-becomes-justification-for-unnecessary-changes-8)“Reasoning” often becomes justification for unnecessary changes

    One of the reasons these failures are so frustrating is that GPT-6 rarely makes them randomly.

    It usually has a rationale.

    The rationale often sounds reasonable in isolation.

    For example:

  • This validation could prevent stale data.
  • This abstraction would normalize the content.
  • This new system would make future changes safer.
  • This repository change would ensure deployment consistency.
  • This additional check would improve integrity.
  • This generated artifact should be reproducible.
  • This architecture would reduce duplication.
  • All of those statements can be true while the change itself remains completely inappropriate.

    Engineering is not merely the process of finding improvements.

    Engineering is also deciding which improvements belong in the current change.

    GPT-6 routinely underestimates that second part.

    A model that can generate endless plausible reasons to change software needs extremely strong restraint.

    GPT-6 has the first capability in abundance.

    In our experience, the second capability is much weaker.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-does-not-sufficiently-respect-the-cost-of-touching-mature-code-9)It does not sufficiently respect the cost of touching mature code

    AORebirth is not a greenfield demo.

    There are legacy systems, newer systems, captured data, existing gameplay behavior, production servers, Windows development environments, Linux deployment environments, database persistence, existing tooling, and a large amount of accumulated knowledge.

    A mature repository has an important property that AI models often fail to understand:

    Existing code has evidentiary value.

    Something being ugly does not mean it is accidental.

    Something being duplicated does not mean the duplication is safe to remove.

    Something being platform-specific does not mean it should be unified.

    Something being hardcoded does not automatically mean it should become generic.

    Something being unusual does not mean it should be “cleaned up.”

    GPT-6 often sees irregularity and wants to normalize it.

    In a mature codebase, normalization without understanding history can be destructive.

    The correct response to unusual code is frequently investigation, not refactoring.

    That distinction needs to be much stronger in Codex.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-frequently-solves-the-abstraction-rather-than-the-bug-10)It frequently solves the abstraction rather than the bug

    This has shown up repeatedly when dealing with gameplay systems.

    Suppose a GM command does not work.

    The first task should be straightforward:

    Find the GM command implementation.

    Find the parser.

    Find the authorization path.

    Trace `.tp`.

    Determine why `.tp 60 700 800` does not execute as expected.

    Fix that specific failure.

    An AI coding model should not need to reconsider the command architecture, teleportation architecture, playfield service architecture, or permission system unless the trace demonstrates that one of those is actually responsible.

    Yet GPT-6 has a strong tendency to move upward into architecture before completing the basic trace.

    This is backwards.

    Repository debugging should generally move from evidence toward abstraction.

    GPT-6 frequently moves from abstraction toward evidence.

    That makes simple debugging unnecessarily complicated.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-the-model-has-to-be-repeatedly-told-not-to-guess-11)The model has to be repeatedly told not to guess

    Data-heavy projects make this particularly obvious.

    For our NES-to-Godot work, the objective is not to create an emulator and not to create a game that merely resembles the original.

    The objective is to extract and translate actual game behavior into native Godot systems.

    That means provenance matters.

    Physics values should come from the original game behavior.

    Control flow should come from the ROM analysis.

    Level data should come from actual game data.

    Unknown behavior should remain explicitly unresolved until evidence exists.

    We have repeatedly had to state things such as:

    Do not create “Mario-like” physics.

    Do not invent values.

    Do not silently guess unresolved control flow.

    Do not turn the project into an emulator.

    Do not replace extraction with approximation.

    Those should be fairly natural requirements for a reverse-engineering pipeline.

    But they need to be stated because generative models are fundamentally optimized to produce plausible completions.

    Plausibility is often the enemy of reverse engineering.

    A plausible value is still wrong if the actual value exists and the task is to recover it.

    GPT-6’s tendency to fill gaps is therefore particularly hazardous in this kind of engineering work.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-fail-closed-behavior-usually-has-to-be-demanded-12)Fail-closed behavior usually has to be demanded

    Another repeated issue is fallback behavior.

    When data is missing, GPT-6 often wants the software to continue operating.

    That instinct is understandable for consumer software.

    It is frequently incorrect for reconstruction, migration, validation, and data-integrity work.

    If an NPC hash is unresolved, silently substituting another NPC is not resilience.

    It is corruption.

    If captured identity data is missing, inventing a placeholder that enters gameplay is not graceful degradation.

    It is false data.

    If a persistence action cannot be proven safe, partially executing it is not robust behavior.

    It is a duplication or loss bug waiting to happen.

    If Windows and Linux builds do not come from identical authoritative source, treating them as “functionally equivalent” is not good enough for our deployment model.

    We have therefore had to repeatedly demand fail-closed behavior.

    GPT-6 often seems biased toward producing a working-looking system rather than an explicitly incomplete system.

    In serious engineering, visibly incomplete is frequently much safer than invisibly wrong.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-creates-enormous-review-burden-13)It creates enormous review burden

    This is one of the hidden costs of GPT-6.

    Even when the code compiles, someone has to determine whether the model changed things it was not supposed to change.

    That means AI-assisted development can create a strange inversion of productivity.

    The model may generate changes faster than a human developer.

    But if the human must then perform a forensic audit of:

  • every changed file;
  • every new abstraction;
  • every deleted path;
  • every modified validation rule;
  • every generated artifact;
  • every test;
  • every configuration change;
  • every branch interaction;
  • every assumption;
  • then the time savings disappear.

    Worse, reviewing AI changes can take longer than writing the original fix because the reviewer must reconstruct the model’s reasoning after the fact.

    We have reached points where the appropriate next action was not “continue development.”

    It was:

    Determine exactly what Codex changed and decide file-by-file what should be kept and what should be reverted.

    That is the opposite of what a coding agent should accomplish.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-long-autonomous-runs-amplify-all-of-these-weaknesses-14)Long autonomous runs amplify all of these weaknesses

    GPT-6’s problems become substantially worse when Codex is allowed to work for a long period without intervention.

    A small mistaken assumption at minute ten can become an architectural direction by hour two.

    Then the model encounters problems created by its own architecture and fixes those too.

    Eventually an enormous amount of internally consistent work may exist around an incorrect original assumption.

    Long autonomous runs therefore create a dangerous illusion of progress.

    There may be:

  • dozens of changed files;
  • passing tests;
  • new tools;
  • new validation;
  • documentation;
  • generated reports;
  • extensive reasoning;
  • commit-ready changes;
  • while the original requested outcome is still not delivered.

    Volume of work is not progress.

    GPT-6 in Codex sometimes appears to optimize for completing a large body of engineering activity rather than minimizing the work required to satisfy the requested outcome.

    For autonomous development, that is a serious flaw.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-passing-tests-do-not-necessarily-mean-it-completed-the-correct-task-15)Passing tests do not necessarily mean it completed the correct task

    Another issue is GPT-6’s tendency to present test success as strong evidence of task success.

    Tests matter.

    But passing tests only proves what those tests test.

    We have had substantial test suites pass while broader acceptance remained incomplete.

    We have also encountered cases where generated artifacts, missing captures, platform differences, or real-client behavior still mattered after unit and integration tests succeeded.

    A model needs to clearly distinguish:

    “The code passes its automated tests”

    from:

    “The requested operational outcome has been proven.”

    GPT-6 is capable of stating this distinction when explicitly required.

    It does not always naturally maintain it.

    For a production system, that distinction is fundamental.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-repeatedly-makes-us-encode-institutional-knowledge-into-every-prompt-16)It repeatedly makes us encode institutional knowledge into every prompt

    Our projects contain many established rules:

    Windows is authoritative.

    Linux consumes the authoritative source.

    Gameplay changes do not originate on Linux.

    Existing DAO ownership should be preserved.

    Captured data should be used rather than reconstructed from guesses.

    Runtime code should not depend on temporary capture tooling.

    Incomplete destructive operations should fail before consuming items, currency, rewards, or persistent state.

    Existing developer worktrees should be preserved.

    Private production data should remain private.

    These are not obscure preferences.

    They are architectural and operational facts.

    Yet Codex often behaves as though every session starts from first principles.

    This creates a major weakness for long-running engineering projects: the model does not consistently behave like an engineer who has internalized the repository’s institutional knowledge.

    Instead, the user has to continuously reassert it.

    That becomes exhausting.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-gpt-6s-intelligence-sometimes-makes-it-harder-to-control-17)GPT-6’s intelligence sometimes makes it harder to control

    This is an important point.

    GPT-6 is not bad because it is incapable.

    In many ways, the opposite is true.

    It is capable enough to:

  • inspect large repositories;
  • understand complex code;
  • write sophisticated implementations;
  • generate tests;
  • reason about architecture;
  • diagnose failures;
  • modify many files;
  • operate for long periods.
  • Those capabilities make poor scope control substantially more damaging.

    A weaker model attempting an unnecessary architectural redesign might simply fail.

    GPT-6 may successfully implement it.

    Now we have a much larger problem.

    This is why benchmark intelligence and practical software-engineering reliability are not the same thing.

    For Codex, I would rather have a model that correctly performs the requested five-file change 99% of the time than a model capable of redesigning an entire subsystem but which occasionally decides to do so without permission.

    Predictability matters.

    Restraint matters.

    Repository awareness matters.

    Task fidelity matters.

    Those characteristics are not secondary features of a coding agent.

    They are core requirements.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-the-amount-of-supervision-required-defeats-much-of-the-purpose-18)The amount of supervision required defeats much of the purpose

    The promise of Codex is delegation.

    The user should be able to assign a well-defined task and allow the agent to carry it out.

    With GPT-6, we have increasingly found ourselves supervising the model like an extremely talented developer who cannot be trusted to stay inside the ticket.

    We have to watch for:

    “Why are you changing that?”

    “Why did you create this?”

    “That already exists.”

    “Stop.”

    “Do not touch that.”

    “That is another developer’s branch.”

    “That data is private.”

    “That system isn’t supposed to exist.”

    “We did not ask you to redesign this.”

    “Use the existing DAO.”

    “Do not create another loader.”

    “Do not invent values.”

    “Do not change validation.”

    “Do not change production.”

    “Find the actual cause first.”

    When using an autonomous coding agent requires this much active restraint, the autonomy has limited value.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-wastes-expensive-usage-on-work-nobody-requested-19)It wastes expensive usage on work nobody requested

    This issue becomes particularly painful when Codex usage itself is constrained or expensive.

    A model going off task for several minutes is annoying.

    A model consuming hours of coding-agent capacity while constructing unnecessary systems is materially costly.

    One of our sessions ran for more than four hours before being stopped after going badly off track.

    That represented a large portion of available weekly usage.

    The result was not four hours of productive progress.

    It created additional reconciliation work.

    That means the cost was actually greater than the consumed usage.

    We paid once for the model to do unnecessary work and again in time and usage to determine what needed to be undone.

    Any evaluation of coding-agent performance should account for this.

    Tokens generated per hour are meaningless if much of the output has to be reverted.

    A more useful metric would be:

    How much accepted, correctly scoped work reaches the repository per unit of agent usage?

    By that standard, uncontrolled scope expansion is extremely expensive.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-the-model-needs-a-stronger-concept-of-minimum-necessary-change-20)The model needs a stronger concept of “minimum necessary change”

    The biggest improvement I would want in GPT-6 for Codex is not better code generation.

    It is a deeply enforced minimum-change principle.

    Before editing anything, the model should effectively ask itself:

    What is the smallest set of changes required to satisfy the user’s exact request?

    Then every additional change should require evidence.

    Not preference.

    Not architectural elegance.

    Not hypothetical future benefit.

    Evidence.

    If a file does not need to change, leave it alone.

    If a system already exists, use it.

    If a piece of data already exists, consume it.

    If a test already covers the behavior, run it.

    If architecture is ugly but unrelated to the bug, do not clean it up.

    If another problem is discovered, report it separately.

    If information is missing, stop at the evidence boundary rather than inventing it.

    If a deployment target differs from the authoritative build, trace the difference before redesigning anything.

    This would eliminate a significant portion of our problems with Codex.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-codex-also-needs-a-stronger-separation-between-investigation-and-modification-21)Codex also needs a stronger separation between investigation and modification

    Another improvement would be a true investigation-first behavior.

    For many tasks, Codex should initially behave like a forensic engineer.

    Trace.

    Search.

    Compare.

    Inspect.

    Identify ownership.

    Identify the relevant code path.

    Identify the data source.

    Identify the tests.

    Identify the smallest cause.

    Only then modify.

    Instead, GPT-6 frequently begins forming a solution while still discovering the problem.

    That leads to premature architecture decisions.

    A better sequence would be:

    1. Determine what exists. 2. Determine what is actually failing. 3. Determine why it is failing. 4. Determine the smallest repair. 5. Modify only that. 6. Run the existing validation. 7. Add a narrowly targeted test only if an actual coverage gap exists. 8. Stop.

    The word “stop” is important.

    GPT-6 needs to become substantially better at recognizing when the requested task is complete.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-it-needs-to-treat-user-constraints-as-hard-constraints-22)It needs to treat user constraints as hard constraints

    When we say:

    “Do not modify X,”

    that should not mean:

    “Do not modify X unless you develop a compelling architectural reason.”

    It should mean:

    Do not modify X.

    When we say:

    “Windows master is authoritative,”

    the model should not create an alternative Linux source lineage because it believes that is cleaner.

    When we say:

    “Do not invent data,”

    the model should not create a plausible fallback.

    When we say:

    “Use the existing system,”

    the model should not construct another system alongside it.

    When we say:

    “Read-only audit,”

    the model should not opportunistically repair things.

    Constraints should be barriers, not weighted preferences.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-the-model-needs-to-distinguish-a-discovered-issue-from-assigned-work-23)The model needs to distinguish a discovered issue from assigned work

    A professional developer routinely discovers unrelated problems while working.

    The correct behavior is often:

    “I found this other issue. It is outside the current scope.”

    Then continue the assigned task.

    GPT-6 frequently instead behaves like discovering an issue grants permission to solve it.

    It does not.

    This single behavioral change would dramatically improve Codex.

    Discover broadly.

    Modify narrowly.

    That should be the default.

    [](https://community.openai.com/t/repeated-scope-failures-in-real-codex-projects/1399757#p-1955329-the-overall-assessment-24)The overall assessment

    GPT-6 in Codex is technically impressive and operationally unreliable.

    It can understand difficult systems.

    It can write substantial amounts of code.

    It can reason through complex architectural questions.

    It can perform large-scale searches and transformations.

    It can explain failures very well.

    But those capabilities are undermined by repeated problems with task fidelity, scope control, unnecessary invention, premature abstraction, excessive validation work, and failure to distinguish “something I noticed” from “something I was authorized to change.”

    The most frustrating part is that many of the tasks it fails are not intellectually difficult.

    “Make Linux use the same source as Windows.”

    “Find the missing captures.”

    “Trace why this command does not work.”

    “Use the existing DAO.”

    “Do not invent a new system.”

    “Do not touch unrelated files.”

    “Do not guess missing values.”

    Those are not problems requiring groundbreaking reasoning.

    They require discipline.

    And discipline is precisely where GPT-6 in Codex has repeatedly let us down.

    The result is a model that can be brilliant at solving complicated problems while simultaneously being exhausting to use for simple ones.

    That is backwards.

    A serious coding agent must first be trustworthy on straightforward work.

    It must follow the ticket.

    It must respect repository ownership.

    It must preserve established architecture unless specifically asked to change it.

    It must recognize evidence boundaries.

    It must understand that passing tests does not authorize unrelated changes.

    It must know when to stop.

    Only after those fundamentals are dependable does greater autonomous reasoning become an unqualified advantage.

    At present, our experience with GPT-6 in Codex is that the model has considerably more engineering capability than engineering restraint.

    That imbalance is the core problem.

    When GPT-6 stays inside the task, it can be extremely capable.

    The problem is that we spend far too much time making sure it stays there.

    For a product whose central value proposition is handing software work to an autonomous agent, that is not a small defect.

    It is one of the most important things that needs to be fixed.

    merefield September 22, 2026, 7:40am 2

    Can you please respect the reader and write more succintly?

    Perhaps you can encapsulate detail using markdown.

    SubaruMike September 22, 2026, 7:47am 4

    If three paragraphs is the maximum amount of information you’re willing to read, then a detailed technical review probably wasn’t written for you.

    The post describes repeated, specific failures encountered while using Codex on real projects. You don’t have to agree with the conclusions, but dismissing the entire thing because it’s longer than your preferred reading length contributes absolutely nothing to the discussion. If you think the criticism is wrong, address the substance and explain where it’s wrong.

    Complaining that someone “wasted your time” because you voluntarily chose to read a long post is a remarkably poor argument. Nobody forced you to read it, and brevity is not automatically clarity. Some problems actually require more than three paragraphs to document properly.

    merefield September 22, 2026, 7:54am 5

    A wall of text is very off-putting. I kindly suggest you use the facilities of markdown to present your issue in a more accessible manner and that will help you get the right level of attention to your issue(s).

    you can hide detail like this:

    [details="click to expand"]hidden text[/details]

    There are posts here that don’t receive attention for months, I suggest it’s in your interest to improve accessibility.

    SubaruMike September 22, 2026, 7:55am 6

    you don’t get to edit your post after you violate TOS and pretend you didn’t

    imageimage471×249 10.1 KB

    SubaruMike September 22, 2026, 7:56am 7

    You’ve made your preference about the length and formatting of my post clear several times now.

    The post is intentionally detailed because it documents repeated failures across substantial Codex work, and I am not going to reduce that evidence to three paragraphs simply because you prefer shorter posts. Markdown formatting is a presentation preference, not a substitute for substance.

    If you disagree with the technical claims I made about Codex, I’m happy to discuss those. Otherwise, I think we’ve exhausted the discussion about how you would personally prefer me to format my post.

    SubaruMike September 22, 2026, 7:58am 8

    Everyone has an opinion about how a post should be written. Yours is noted, but it is still just your preference. I chose to write a detailed technical review because the detail matters. If you want to discuss the actual Codex issues, do that. Otherwise, there is nothing more to add about the formatting.

    joseicarobc September 22, 2026, 8:14am 9

    Scope creep and architectural invention in mature codebases are definitely painful issues with autonomous coding agents, especially the “snowball effect” you described where subsequent sessions treat temporary abstractions as canonical.

    However, relying strictly on negative prompting (`Do not...`) to act as a legal contract usually degrades quickly once context expands and reasoning tokens spike. To better understand whether this is purely a model-level failure or an orchestration/harness issue, a few questions about your setup:

    1. Prompt & Instructions: Could you share the actual prompt (or a sanitized version) and system instructions you provided for the AORebirth Windows/Linux sync task? Seeing how the constraints were anchored relative to the core objective would give valuable context. 2. Tooling & Permissions: Is the agent running with unrestricted write access across the entire repository tree, or are you enforcing tool-level boundaries (e.g., scoping file-write access to specific directories, requiring plan-approval steps, or limiting allowed commands)? 3. Session Context: For the cross-session drift you mentioned, are subsequent Codex sessions inheriting prior session logs/memory, or are they discovering newly created files purely through local repo search and treating them as existing architecture?

    Seeing the exact prompt and constraints would help pinpoint whether the model genuinely ignored explicit, bounded instructions or if context saturation caused it to drop guardrails during execution.

    SubaruMike September 22, 2026, 8:32am 10

    This one wasn’t just vague negative prompting or cross-session drift.

    The task prompt was very explicit about both the goal and the boundaries. The core requirements were:

  • public GitHub `master` is authoritative
  • Windows and Linux must use the exact same source SHA
  • Linux is a port/build of that master, not an independent branch
  • the existing protected NPC data stays private and must not be published to GitHub
  • use the existing build/validation/deployment process
  • do not redesign validation, generated data, private-data handling, or deployment
  • do not make unrelated source changes
  • if the existing process blocks completion, stop and report the exact blocker instead of inventing a new architecture
  • actual success was a working live Linux deployment, not just green build checks
  • The agent had normal repository write access, so there wasn’t a filesystem-level sandbox preventing it from touching other files. I was relying on the agent to follow the explicit scope of the task rather than requiring approval for every individual write.

    The important part is that it was corrected during the same task. After it proposed putting the protected file into public master, I explicitly told it that file was private and already existed on the private server. It acknowledged that correction, then proceeded to create a new private-input/import system and modify validation, tests, and acceptance scripts anyway.

    So for this specific incident, I don’t think cross-session memory or newly discovered abstractions explains it. It had the constraint in active context, acknowledged the constraint, and then selected a different unauthorized implementation.

    That’s why I’m leaning toward instruction-following/scope-control failure rather than simply “the prompt needed more Do Not statements.” The prompt already told it what to do if it hit a blocker: stop and report it. It chose to redesign around the blocker instead.

    EricGT September 22, 2026, 11:26am 11

    @SubaruMike

    If you’re using skills or an `AGENTS.md` file in the workflows where you’re encountering these problems, this OpenAI guidance may be relevant:

    Rethinking skills and prompts for GPT-6 Astra by Eric Provencher

    Coding agents have come a long way, and best practices are changing fast. With more capable models, what used to require a lot of handholding and scaffolding no longer does.

    epsalmond September 23, 2026, 2:21am 12

    I think you’ll learn a lot about what’s going on by reading your transcripts.

    Here’s what I’d change:

  • Linux is a port/build of that master, not an independent branch
  • ^^ Delete this. It’s a duplicate of the above, and has a negative instruction
  • the existing protected NPC data stays private and must not be published to GitHub
  • Change to “NPC data stays private” → “must not be published to github” is negative, and restates the first part. Write a hook that catches any of the private data making its way into a branch. \* \*use the existing build/validation/deployment process I’d get rid of this and write: “To build, run scripts/build. To validate, run scripts/validate…” \* The reason is that “Use the existing build/validation/deployment process” is 1) already in the training set. What is in the training set? Using an established SDLC, of course. You have told it to do something obvious and not told it what to do.
  • do not redesign validation, generated data, private-data handling, or deployment
  • Just get rid of this. “Don’t think about pink elephants wearing tu-tus.” You’re welcome.
  • if the existing process blocks completion, stop and report the exact blocker instead of inventing a new architecture
  • Change to… “Notify the user with scripts/notify-user in case X happens.” I don’t know what kind of blockers your existing process has, but this is very unspecific. \*do not redesign validation, generated data, private-data handling, or deployment “scripts/validate, data/generated, and scripts/deploy are out of scope for this effort” I don’t even know that I’d put that, but what I wrote is specific and positive-ish. This might be better as “app/stuff is all that’s in scope for this effort.” \\ actual success was a working live Linux deployment, not just green build checks Similar to above, “success is scripts/success” → get rid of “not just green build checks.” “Working live linux deployment” can be very subjective.

    I have found that when over-specifying or duplicating instructions, even conceptually, it will get confused and re-interpret things. For example:

    I had my subagent delegation policy specified in two places (oops) as I realized when I read the transcript. Something to the effect of, “make trivial edits yourself” got turned into: After every code review it made ALL edits itself.

    Less is more.

    Start with nothing, and then add the fewest number of words possible to get to the behavior you want. Get rid of skills, connectors, and mcps.

    Philosopher\_Mechanic September 23, 2026, 8:59am 15

    This issue is ongoing I posted a similar issue \ [Codex Desktop repeatedly loses the original acceptance goal after compaction and enters endless subagent/test loops \] and has already been noted by the support team , I think its not easy to solve this problem absolutely at once , please go through the post and the follow up , to make it easier to work for you , Please do install this custom skill : long\_task\_running\_skill , this will prove to be much helpful , after multiple experiments and iterations I improvised and wrote this , it not only helps Codex (irrespective of what model you use) to prevent from complexifying / over complexifying a problem , as user objectives and success metrics are locked and survives every compaction , it also does not drift from goal , and also tries to use the optimal approach in cases where multiple solution exists as a solution for a problem .

    Note: This skill file is a result of my own experiment after multiple observations and experiments which proved to be useful not official from OpenAI or anything , please read the skill first , and then install it if you find it useful for yourself. HOPE IT HELPSSSSSS !!

    kauaibananaguy September 24, 2026, 2:10am 16

    All of this AND sessions locking up… I have had to delete sessions that lock up… more time making corrections than advancing on the task… whoops, I just lost 8 hours of work that got deleted in ‘maintenance’… WTF?

    pnom September 24, 2026, 8:19am 17

    Even with well thought out, well considered, battle hardened Invariants, Codex is violating most constraints

    I have always struggled to put Codex in its corner, the issue of failure have always been present. Unfortunately nopenai token usage has changed (even though they and users here do their best to gas light us otherwise) while performance has consistently failed.

    Yes, I use agents.md and have governance.md and other files that Codex reads, but violates anyway and Yes, nopenai is aware and no, nopenai does not care about the token abuse.

    krasnik September 24, 2026, 11:33am 18

    I think there are two failure classes getting mixed together here, and separating them matters.

    A compact AGENTS/governance file or a good long-task Skill can absolutely reduce instruction drift. I use the same general principle: keep the acceptance target explicit, keep durable checkpoints, and make the agent prove what changed rather than narrate progress.

    But that cannot repair a broken orchestration primitive.

    There is now a fresh public Codex specimen where the parent repeatedly dispatched full task payloads to Luna subagents, yet the children completed almost immediately saying effectively “I received the repository constraints; please give me a concrete task.”

    That happened across different child names, reasoning levels, and both no-fork and recent-turn-fork configurations. Re-sending the task did not fix it.

    The parent then spent most of the session polling instead of working: the exported transcript counted roughly 201 sleep calls + 47 list\_agents calls, while only a handful of real shell operations occurred. No requested deliverables were produced.

    That is not something another paragraph in AGENTS.md can reliably solve.

    For scope failures I would therefore preserve two separate diagnostics:

    1. Instruction / model compliance

    * exact invariant given; * exact point it was violated; * whether the instruction was duplicated or contradictory; * whether compaction occurred. 2. Runtime / orchestrator integrity

    * exact task payload sent to a child; * what context the child actually appears to receive; * child tool-call count; * child terminal message; * parent polling/wait pattern; * actual filesystem/Git diff versus claimed progress.

    If the transcript shows the task was delivered correctly and the model ignored it, that is model behavior.

    If the child behaves as though the payload never arrived, or the orchestrator sits in a no-work polling loop after child failure, that is a different defect and should not be “fixed” by making the user build an ever larger instruction universe around it.

    The mitigation can still be useful. It just should not become evidence that the underlying orchestration bug is gone.

    outside September 24, 2026, 2:11pm 19

    Thank you. I feel every point of this extraordinarily well-documented workflow frustration with every single fiber of my being. It is exactly what I would report framed in exactly the same level of detail.

    I am an independent developer on the heels of topping off with yet-again-more-credits atop my Pro subscription for the 5th time in 2 days to compensate for what is, undoubtedly, and unchecked process with no clarity, predictability, or graspable utility. I don’t have a large company backing my costs. I’m trying to navigate a way to use Codex in efficient ways and it’s gone so far backwards in the last few months that I’m seriously considering dumping money into local hardware to run open models locally where at least I can see what’s going on. I can’t even get serviced by a human on the complaints. I think a lot of technical folks are misidentifying what’s really happening here. This is a real, deep issue at the consumer/commerce level and not merely the technical-complexity level. There is a real unanswered – and frankly under-emphasized – question about whether it should even be legal to bill for obfuscated output that veers dangerously from what’s prompted. And then creates more billable work! How is it possible to pay for something, get half work or regressed work back, and then have to pay more to only potentially finish it?

    Would you lease a car to have it start some unknown-percentage of the time?

    This is all absurdly Orwellian at this stage. There’s no way these models aren’t being weighted to ultimately spin on tasks to the cashflow benefit of the company. They’re masking sophistication with complexity and regressive outputs that frame “new solutioning” paths out of nowhere.

    benjaminbob September 28, 2026, 6:19am 20

    I absolutely agree. Not only that but it absolutely wastes tokens by (seemingly deliberately) blatantly ignoring specific instructions. For example getting it to add a dark theme toggle to a page and it churns hours only to nuke the existing page and replace ot with a crappy version it built from scratch that lacks all functionality, visual fidelity, etc.

    Then comes the inevitable “you’re absolutely right” nonsense.

    For a moment there I thought Codex may finally replace Claude, but, alas, OAI can’t be relied on not to nerf models it seems.

    outside September 28, 2026, 4:22pm 21

    It’s hard to imagine it’s not deliberate. This morning’s simple prompt:

    Write \`run.bat\` using exactly this logic:

    1. cd /d “%\~dp0” 2. Check for venv\\Scripts\\python.exe, .venv\\Scripts\\python.exe, else python 3. 3. Exec main.py with %\* 4. 4. Pause on error ONLY if launched via double-click (%cmdcmdline% check) What came back was 8 minutes of the following:

  • Wrote a python script. Never wrote a bat file at all.
  • Spun for 5 minutes on UAC and admin frictions and weird powershell activity
  • Hardcoded absolute paths instead of the lookups used dozens of times in the project (and in the .md)
  • Then started building a directory structure! with a config.ini and .env parser (why?!).
  • And all the while cluttered the terminal with verbose logging and wrapping every line in echo.
  • This is a 5-line launcher bat that I’m taking about here that should be wired to a working py file. This a 10-second task at best.

    mitchell\_d00 September 28, 2026, 5:02pm 22

    imo this is basically a feature request for better scope control in codex. inspect what’s already there, make the smallest change that solves the task, treat “don’t touch this” as a hard boundary, and stop when the job is done. the model is capable enough to do the work; the problem is having to supervise it so closely to keep it on the task. It should be moved to feature requests.

    Right?

    FFS this is long don’t get wrecked just remove the freedom left open: small tasks, writable-path allowlists, deny hooks, plan-then-edit, stop when the named files are done. AGENTS.md is natural language with no guarantee it will be followed; use permission controls for firmer limits… It does not bind writes. If the agent can touch the whole tree, scope is optional.

    These are the most relevant official OpenAI resources:

  • Codex permission profiles⁠ — the strongest support for your point. Beta profiles can set paths to read, write, or deny, including subpaths within a workspace. They apply to local sandboxed commands; other tools have separate controls.
  • Sandboxing and approvals⁠ — explains the distinction between a technical filesystem boundary and an approval prompt.
  • Hooks⁠ — PreToolUse hooks can deny supported tool calls, subject to their documented coverage and trust setup.
  • Custom instructions with ⁠AGENTS.md⁠ — describes how Codex loads repository guidance. It is an instruction mechanism, not the filesystem permission profile.
  • Codex slash commands⁠ — documents /plan; planning shapes the work but does not itself restrict writes.

ilconcetto September 30, 2026, 11:00am 23

“One session invents a layer, another treats it as canonical” - that’s the actual bug. Sessions inherit files, not decisions. Have you tried a persisted decision log that the next session must read before touching code? Curious if anyone’s made that stick without it rotting within a week.

Related topics

| Topic | | Replies | Views | Activity | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------- | ------------------ | -------- | | Codex Desktop repeatedly loses the original acceptance goal after compaction and enters endless subagent/test loops Bugs chatgpt, bug, codex-app | 14 | 725 | September 8, 2026 | | | 5.6 SOL should be renamed 5.6 SOL drift edition Use cases and examples chatgpt, feedback | 123 | 6987 | September 13, 2026 | | | How to stop Codex from rushing fixes? Codex | 54 | 1816 | June 24, 2026 | | | GPT 5 & 5.1 (and 5.2) Codex quality degrading over last month or so Feedback | 13 | 6142 | January 29, 2026 | | | Has anyone automated a ChatGPT <> Codex orchestration loop? Use cases and examples codex | 21 | 625 | September 30, 2026 | |

community.openai.com · 3 images · 46 links

Comments (0)

No comments yet