MOOSSin
Menu

All posts · AI and Websites

GitHub Universe 2026 Agenda Preview: How do we know if an AI has truly fixed a program after modifying it?

Test failures can stem from the product, the test itself, or the execution environment. This article, based on the technical agenda preview from GitHub Universe 2026, discusses what evidence needs to be retained for AI code verification, and how memory and permissions influence judgment.

Imagine this scenario: You've only taken a couple of sips of your drink, and the cookies on the table are still unopened, when the AI ​​agent announces, "Login error fixed." The entire row of test results on the screen turns green, making it seem like you can finish immediately. But if you swipe up on the records, you'll find that it first modified the program, then the test failed, then it modified the test again, and finally, it passed.

Uh, wait a minute. Have users actually been able to log in? Or has the test become easier to pass? This is like a friend saying their room is tidied up, but when they open the closet, they find all sorts of clutter crammed inside. The exterior is indeed neat, but the standards for tidying up definitely need further discussion.

Of course, modifying tests isn't necessarily a problem. Requirements may have changed, and tests may have been written incorrectly. What really gets stuck is: if there's only a screenshot of everything green, without any before-and-after differences or criteria for judgment, how do you know which one it is this time? Between "it looks completed" and "knowing why it's completed," there are some important records worth adding.

GitHub's preview of the Universe technical talk, released on October 1, 2026, offers several directions worth considering: proxy memory, evaluation of continuous code changes, access control, and the division of labor where the program organizes evidence and the model is responsible for explanation. [S1] Starting from these previews, we can think about what questions a verification process should answer.

First, figure out which layer has the problem.

Returning to the login example, we can first break down the possible causes: Does the program violate the requirements? Are the test expectations incorrect? Are there any missing dependencies in the test environment? If the tests haven't even started successfully, there's no evidence to determine whether the login function is working properly. Only by identifying at which level the failure occurred can we know whether the next step should be to modify the program, fix the tests, or prepare the environment first.

Next, it's crucial to maintain a record of reworkable steps. Details such as which code was changed, what test instructions were used, in which environment it was executed, and the original error message are far more useful than simply stating "the agent says it's fixed." If the agent modifies both the product and the test, the reviewer also needs to see which behavior the test originally protected and whether the requirement is still maintained after the modification. Otherwise, simply removing a check can turn the result green.

Think of this like baking cookies according to a recipe. If the cookies burn, it could be because they were baked for too long, or the recipe's baking time is incorrect; if the oven isn't even plugged in, that's another story. All three situations can cause a dessert project to fail, but the solutions are very different. You can't just change "golden yellow" in the recipe to "any color will do" every time something goes wrong and then declare the baking a success.

Applying this analogy to software, product behavior is like a cookie, testing rules are like acceptance criteria, and the execution environment is like an oven. The most useful aspect of this analogy is that it reminds people to first ask "Where did the failure occur?" before asking "Who should fix it?" Skipping that step reduces the amount of back-and-forth communication later on.

Mini-drama: The green light is on, but the question has only been halfway through.

Suppose the reviewer and the agent have the following conversation:

"Login is fixed, all tests passed."

"Great! What's changed this time?"

"The login process has been modified, and two tests have also been adjusted."

"Why do we need to adjust those two tests?"

"Because they were not originally approved."

At this point, you're probably thinking of pulling your chair back and sitting down. The test failed, but that's just the phenomenon; the reason for the change hasn't been explained. A helpful answer would be: the requirement has changed to a specific behavior, therefore the old test's expectations need to be updated; or, the product does indeed have an error, so the test is retained while the program is fixed.

Let's assume the agent adds, "This test originally required a valid account to log in; this requirement remains after the modification, and an error password check has been added." Only then does the review process have a concrete entry point: to check if a valid account was actually logged in successfully, and if an error password was truly rejected. The conversation doesn't need to be long; the key is that each "okay" should be followed by a verifiable "because."

Let the division of labor between evidence preparation and textual interpretation

The trailer mentions that Achin Gupta of Intuit and Divya Mahajan of Amazon will demonstrate an architecture where a deterministic program handles signal collection, top-level structure traversal, association, and scoring, while a language model narrates the evidence. [S1] In plain terms, it means first using a well-defined program to organize what happened, and then letting the model explain the results.

Following this division of labor, a verification report can be envisioned: first, list whether the test was initiated, which checks failed, which files were modified before and after the failures, and then explain the possible causes. If the model cannot determine the cause from the records, it should be marked "cause under investigation." This way, reviewers can return to the original records instead of relying solely on a fluent explanation.

However, standardized scoring also needs to be examined. If scoring only rewards the number of passes, relaxed testing might still yield high scores. Therefore, design evaluation also needs to answer: Are the requirements retained? Are failures reasonably categorized? Will the system force conclusions when evidence is insufficient?

Fun fact about tools: Being good at explaining doesn't mean you have to be responsible for giving scores.

There's a small detail in this trailer that's easy to overlook: the above architecture entrusts signal collection, association, and scoring to deterministic programs, while the language model is responsible for narrating the evidence. [S1] In other words, in this plan, "compiling judgment materials" and "presenting the materials in a way that is understandable" each have their own tasks.

Imagine a game: the scorer keeps score according to the rules, and the commentator explains what just happened. No matter how enthusiastic the commentator is, they can't just add two extra points because they like a particular exciting moment. The same approach applies to verification reports: first find the records and the rules of judgment, then see how the written explanation connects them.

This division of labor also provides a very practical way of asking questions. When faced with the statement "This should just be an environmental issue," you can ask: Which signal supports this judgment? Which rule led to the classification? Is there another explanation? Once you have clarified these questions, the text becomes more like a guide, leading people back to the location of the evidence.

If you want to create a "homework submission card" for the verification results, you can use only four slots. The first slot is for the behavior you originally wanted to fix, the second slot is for the actual changes, the third slot is for the verification results, and the fourth slot is for items that still need confirmation. It's as simple as ordering a drink, but you have to fill in each slot correctly so you don't get half-sweet but think it's sugar-free.

Using a login example, the first field could be "Valid accounts should be able to log in," the second field should be the modified program and the scope of testing, the third field should contain actual execution records, and the fourth field should describe scenarios that haven't been checked yet. This way, readers can see what has been confirmed and know where to proceed with the remaining issues.

The advantage of using flashcards is that they draw attention back to the specific content. If the second slot is full but the third is blank, it means a lot has been revised, and the verification process hasn't caught up. If the third slot says "All passed" without specifying what was tested, it's worth adding that. The layout doesn't need to look like a results showcase poster; making it understandable for the next reviewer is a big plus.

In addition to a single successful attempt, continuous modifications also need to be considered.

Another preview, shared by GitHub researchers Cooper Nederhood and Alejandro Carderera, outlines a plan to establish benchmarks from real-world pull request sequences to identify issues where accumulated context might impair performance. [S1] Pull requests can be understood as a batch of code changes awaiting review; observing them sequentially is necessary to discuss the performance of the agent after multiple rounds of modifications.

A worthwhile scenario to test is whether the judgments made in the previous round are still applicable after the requirements change. For example, if a test was previously deemed to be just an environmental issue, will the next round overlook a real product error? If an evaluation is to be designed, such scenarios can be placed in continuous tasks to observe whether the agent will revise old conclusions based on new evidence.

To determine if memory is helpful, compare the approaches of preserving context versus starting over, check the number of times product defects were mistakenly classified as test issues, and whether human reviewers agreed on the classification. Using the same task order and decision rules on both sides makes the results easier to interpret.

Imagine several friends planning a trip together using the same notebook. On the first day, they write "breakfast shops open at 9 am," but the itinerary changes to a different area on the second day, and the old sentence remains at the top. The notebook is complete and seems reliable, but if it's not updated to reflect the new itinerary, it might lead everyone to the wrong places. We can also ask ourselves this question about proxy memories: what remains are still valid conditions, or merely conclusions that were once true?

Therefore, when evaluating continuous tasks, in addition to seeing how much the agent remembers, it's also important to see when they are willing to change their mind. If requirements change, the environment changes, or new errors occur, has the agent re-examined their old judgments? This is more relevant to the challenges of taking over a constantly evolving project than simply comparing who can recall the most background information.

Being able to make judgments also requires having clear operational boundaries.

The official announcement also extends the trust issues during dependency installation to agent memory, evaluation mechanisms, and permission settings. [S1] For the verification process, it's worth asking: What can the agent modify? Can it modify the tests used to evaluate itself? Who can approve such changes?

Nick Taylor of Pomerium plans to demonstrate an identity-aware proxy solution that adds identity-based access control to a hosted MCP server without modifying the upstream server. [S1] Here, the MCP server can be thought of as the entry point for proxy connection tools. When validating this design, you can check the allow and deny operations separately: Can authorized users complete the task? Are unauthorized proxies actually blocked?

Using an event venue analogy, even with a work badge, you need to read what's written on it. Some people can access the backstage to get supplies, others can adjust the sound system; just because everyone has a badge doesn't mean they can open every door. The same applies to agents; access to records, program modifications, and changes to acceptance rules require separate discussions regarding permissions. Especially in scenarios where someone submits assignments and modifies their own evaluation forms, adding an extra layer of checks is highly recommended.

Three common misunderstandings; clearing them up will make things much easier.

The first misconception is that "the more tests, the more reliable the conclusions." Imagine ten tests all checking the same very simple condition, while another important requirement remains untouched. The numbers may look impressive, but the requirements could still be lacking. Therefore, when reading the results, in addition to counting how many items were passed, you should also ask what each test was checking.

The second misconception is that "modifying tests is cheating." Tests may also require maintenance; for example, after a requirement change, old expected values ​​may no longer apply. What's more important is whether the rationale is clear, whether the changes have been checked, and whether any important safeguards have been removed. Rejecting all test modifications might leave erroneous rules in place.

The third misconception is that "a complete explanation means the cause has been found." A paragraph may be fluent and well-organized, but it may not specify which record supports the conclusion. In this case, don't rush to be convinced; first, find the entry point of evidence. Being able to refer back to the original result or get someone else to redo it is usually more helpful than adding three paragraphs of confident adjectives.

Weekend mini-exercise: Group the three failed cards.

I want to try to understand validation without starting a large project first. Take a piece of paper and write down three hypothetical scenarios: A, the requirement states that a valid account can log in, but it is actually rejected; B, the requirement is changed to redirect to the homepage after logging in, but the test still expects the old page; C, the testing tool is not started, and the screen only shows that dependencies are missing.

First, place them into the three tentative fields: "Product Behavior," "Test Expectations," and "Execution Environment." Then, write a next step for each: A needs to verify the program against the requirements; B needs to verify the requirement changes and test content; C needs to ensure the tests can execute normally. The key to this exercise is breaking down a mass of red text into different questions.

Next, add a slightly annoying card: "The agent says login failed, no other information provided." Place this in "More evidence needed" for now; don't guess. Try listing the three things you most want to ask, such as the complete error message, whether the test was started, and the expected behavior. Categorizing makes it easier to continue investigating in the right direction.

The next step is to look at the verifiable results.

The next step worth tracking is to examine the actual test results of continuously changing benchmarks, the differences between failure classifications and manual reviews, and how the permission rules handle exceptions. If the agent can clearly state the basis for its judgments and revise its conclusions when faced with counter-evidence, it will be easier to see which tasks it is trustworthy and where manual intervention is needed.

A practical starting point for discussion is: each time the agent says "fixed," can they point out which requirement has been restored, which test is supported, and what is still uncertain? Only by answering these questions can the next person taking over continue to investigate.

Postscript: Is it okay to finish that drink?

Returning to the beginning, the tests are finally all green, and the cookies can finally be opened. The most satisfying ending would probably be with a simple and clear record next to it: which behavior was corrected, why the test was changed, and which results can be reviewed again. The next person doesn't need to use psychic abilities or guess the entire conversation from the beginning.

When AI accelerates the workflow, this clarity becomes all the more precious. Before happily wrapping up a task, asking "Where did this conclusion come from?" is usually easier than facing a puzzle the next day. A green light can be very therapeutic; understanding why it's on brings a sense of peace.

source

Reading preferences

Back to all postsAbout the author and corrections (Chinese)