Documentation contents06 / 20

Understand the work06 / 20

Read changes by intent

On this page

When an Agent changes dozens of files in a turn, going through the diffs file by file makes it hard to answer “what were these changes for?” In Noea, a turn's changes can be grouped by the intent they answer, so you see which sentence of yours each change is for. Changes that answer no intent are listed separately at the end, not mixed in.

Start from the change card

When a turn leaves file changes behind, the reply ends with a change card. If one file changed, its title reads like “Edited grace.ts”; if several did, it reads like “Changed 9 files”, with the lines added and removed beside it. Files the Agent changed through the command line count too.

Once Explain has handled the turn, the card's second line reads like “2 intents · 1 unmatched”: how many parts of your intent the changes answer, and how many changes answer none. Until then, the second line offers “Run Explain to group them”.

Click anywhere on the card and the code panel opens in the auxiliary bar at the far right of the main area, showing every change in the turn. The chat itself doesn't repeat the turn's diff.

The code panel

The top of the panel shows the chat's title and the turn number, such as “Grace period email · Turn 2”, and lets you switch to other turns with changes in the same chat. The button at the top right shows or hides the file list, which can be flat or grouped by folder; each file shows its lines added and removed, and clicking one jumps to it. Every file's header has “Open with default app”.

The diff has a single column of line numbers: added and unchanged lines show their new numbers, and removed lines show their old numbers, dimmed. Unchanged lines between changes fold into one row that you can open, all the way out to the whole file. If a file changed again after the turn, the panel shows only this turn's changes and offers “Show current file”.

Drag the auxiliary bar's left edge to widen the panel. Closing it only folds away the auxiliary bar; the document and chat to its left stay as they are.

Grouped by intent

The panel has two arrangements, “By file” and “By intent”. By intent:

  • Each group is one part of your intent. Its header is the text of that paragraph, with the document and section it sits in shown small above it. Groups follow the order of the paragraphs in your Intent Documents.
  • Within a group, changes are arranged by key point, then by file. Each key point is a subheading with its name, followed in small type by the first sentence of its realization.
  • Each change appears only once. If it answers several key points, it goes under the main one, and the others hang on it as chips.
  • The last group is always “Other changes”, for changes that answer no intent.
The turn “Extend the trial to 21 days” changed 12 files. Grouped by intent, each change sits under the sentence it answers: the constant TRIAL_DAYS going from 14 to 21 sits under “Trial length” in Trial.

Which arrangement the panel opens with depends on how far Explain has got with the turn:

ExplainOpens with
Hasn't handled the turn yetBy file
In progress, with explanations already tied to this turnSwitches to By intent when the first explanation is published; paragraphs still under investigation hold a place in their group
Finished normallyBy intent
Found no paragraph to investigateBy file, with a note that “This turn didn't touch any explained intent.”

You can switch back to By file at any time.

What each change answers

On each change, your intent shows up in three layers, from light to detailed:

  • Marks beside lines: lines an explanation explicitly cites have a thin neutral mark on their left. Point at it to highlight the other lines the same explanation cites and see the intent's name.
  • Intent chips: the key points a change answers hang on its header, two at most, with the rest folded into “+N intents”. Point at a chip to preview the paragraph and the first sentence of its explanation; click it to open the document in the pane beside, with that explanation open.
  • Intent block: below each change is a folded summary line, such as “2 intents · 1 gap”. Open it to see the text of each paragraph the change answers, with the attention items from its latest explanation.

A change is tied to your intent in one of three ways: “Cited by Explain” means an explanation explicitly cites these lines; “Matched by lines” means the change falls inside the lines an explanation cites; “Judged unaffected” means Explain checked the change and found it doesn't affect that paragraph. A change that covers most of a file, or whose earlier content was reported by the Agent rather than read by Noea, isn't matched by lines; the panel marks it “Not grouped by lines”.

Filter to one part of your intent

“Filter by intent” at the top of the file list shows only the changes for one paragraph or one key point. Choose “No matching intent” to see only changes that answer none.

You can also go the other way, from intent to changes. Open a paragraph's explanation in an Intent Document: “Recent implementation” at the end of the note lists the turns that recently changed it. Open one, and the code panel opens on that turn, already filtered to this paragraph.

After reading

“Other changes” aren't necessarily a problem; they're often test helpers, formatting or dependency upgrades. But if a change to business logic answers no intent, it's worth asking why it changed and whether it belongs in your intent.

Ask the Agent in the chat, or click “Ask about this” on the paragraph's left. For decisions you want to keep, see Write what you settled into intent.

The grouping depends on Explain's results. If the card keeps showing “Run Explain to group them”, check “Explain automatically after implementing” and “Explain code-only turns” in Settings → Automation, or just click it; see When the code changes.