Keep groups, comments and silent music in view for the agent (#429)
feuerwerk / gate (push) Successful in 4m47s
feuerwerk / suite (push) Successful in 19m5s

A live test of the music areas built a pattern, a song and a
composition that stayed silent: no instrument at first, and later
notes outside the C4 to B4 range of a new Notes node. The agent got
no hint of either. The same test showed that new nodes left groups
behind, that a comment could end up under other nodes, and that an
end node like Output stayed left of the devices put in front of it.

- get_asset lists under silent what of a pattern, song or
  composition is not heard. That is a missing instrument, an
  instrument that sounds no note, or notes outside what its Notes
  nodes take in, in a song after the transpose.
- soundingNotes moves from the pattern tab to
  src/core/instrument/compile.ts. The tab and the agent use the
  same rule.
- When new nodes go between two that have no room, everything from
  the fed node on moves right together. This holds for Arrange with
  a selection too, so no link runs backwards.
- A new node linked to a node in a group joins that group, and the
  group grows in the same undo step. A group that would take in a
  foreign node stays as it is.
- Arrange takes groups and comments along: a group whose nodes all
  moved the same keeps its size, otherwise it is fitted anew. The
  rules live in the new src/editor/graph/annotationFollow.ts.
- add_comment and fit_group put a comment below its nodes when a
  node or a group title is in the way above. lint_graph counts
  covered comments as coveredNotes.
- add_notes, get_asset, lint_graph and the relay instructions name
  the default range and how to mend a covered comment.

Tests:
- graph-follow (new, 12), agent-edit, agent-music (11) and the
  other agent, graph, pattern and relay tests green
- 10 deliberate breakages, each one red in its own test
- e2e 71: 25/25
- Gate: CHECK EXIT 0, 324 files, 5002 tests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-18 18:27:57 +02:00
1 parent 10f5e3ba8f
commit 19902a9f02
16 files changed
+923 -119

No files matched your search

+9 -6
View File
@@ -39,12 +39,15 @@ const INSTRUCTIONS = [
'one undo step, and a step can name what an earlier one made ("as": "x", then "$x"). Nodes for a',
'graph come from catalog topic "nodes". A Variables node reads or writes a variable once add_port',
'names it. A behavior acts on the object it is placed under: place it with parent set to that object.',
'Give new nodes no x and y: the editor arranges them when the call ends, and leaves the nodes',
'already there where they are. Keep a graph readable: a value needed far away comes from a second',
'Get or Owner node next to its user, not over a long link. Check with lint_graph, the crossings',
'too: when there are more than the links need, arrange_graph orders the whole graph for the',
'fewest. Put nodes that belong together into a group with add_group, and say what they do with',
'add_comment.',
'Give new nodes no x and y: the editor arranges them when the call ends, next to what they link to',
'and into its group; the nodes already there stay, or move right to make room. Keep a graph',
'readable: a value needed far away comes from a second Get or Owner node next to its user, not',
'over a long link. Check with lint_graph, the crossings too: when there are more than the links',
'need, arrange_graph orders the whole graph for the fewest. Put nodes that belong together into a',
'group with add_group, and say what they do with add_comment; a comment a node lies on',
'(coveredNotes) goes back above its nodes with fit_group. Music plays nothing without an',
'instrument, and an instrument sounds only the notes its Notes nodes take in, C4 to B4 in a new',
'one: get_asset lists under silent what of a pattern, song or composition is not heard.',
'The editor follows your edits: after run_commands the user sees the graph, scene or asset it worked',
'on, with what it touched selected. Use open and select to show anything else.',
'Test what you built yourself: play, then play_input sends keys and mouse clicks into the game,',