# One workshop many worlds **🔵 Expert · Lesson 13** ONE CODEGEN ROOM, SEVERAL WORLDS. Expert 11 attached a rift to a frame; 12 ran the loop against one. This is the shape you actually end up with: a single workshop wired to several frames, each holding different objects, with the agent choosing per call which world it is writing into. THIS IS WHERE `frame_name` STOPS BEING A NUISANCE In 12 it looked like ceremony - one room, one frame, why type it. Here the room can reach three worlds that hold DIFFERENT bindings, and `execute_codegen(code, frame_name=...)` is the only thing deciding which one the code lands in. A default would not be a convenience, it would be a coin flip with side effects. ATTACHMENT IS PER FRAME AND EACH ONE IS ITS OWN DECISION rift.create_frame_link("billing") rift.create_frame_link("catalog") Two calls, two gate checks. A rift does not acquire a world by being near it, and there is no "attach to everything" verb - because there is no honest way to ask for that. AND MULTI-FRAME IS OFF BY DEFAULT, IN TWO SEPARATE KNOBS with_allowed_target_frame_names([...]) the observer's policy with_multiple_target_frames(True) may there be more than one with_max_target_frame_count(3) how many, across the Nexus The boolean and the count are not redundant: the first decides whether the plural case is permitted at all, the second bounds it. Shipped defaults are False and 1, so this whole lesson is a deliberate opt-in - and the cap is spent NEXUS-WIDE because target frames are ref-counted across every rift, not per rift. THE FRAMES ARE STILL WALLED. Advanced 02's law does not soften because one observer can see several worlds: `billing` and `catalog` hold their own bindings, their own singletons, their own posture. The workshop is a room with several windows, not a room that merged the buildings. WHAT THE AGENT ACTUALLY GETS rift.list_accessible_non_nexus_frame_names() The rift asks which worlds it may target, and the answer runs BOTH of expert 11's gates - Nexus allow/deny policy AND per-frame posture, filtered by this rift's space type. So it answers exactly "what would attach if I tried". An agent does not have to guess and does not have to probe by attempting. CAVEAT, STATED PLAINLY: that method and its Nexus-level twin are both marked `Internal` in their own docstrings. The capability is real and it is the best AIX door in the subsystem, but it has no public marking yet - recorded as a finding, not taught as surface. AND THE POSTURE BAR IS PER FRAME TOO. A codegen room needs rift_enabled AND ai_native AND dynamic on EVERY frame it targets. One qualifying world does not qualify its neighbours. ## Before you run Use the [Expert guide](../../expert/index.md) for prerequisite concepts. Run from a checkout with Melder installed and Python 3.14 free-threading selected. The collection download includes the level's local helper modules. ## Run the saved script ```bash python UX_and_AIX_experiences/04_expert/13_one_workshop_many_worlds.py ``` ```powershell py -3.14t UX_and_AIX_experiences/04_expert/13_one_workshop_many_worlds.py ``` {download}`Download this collection <../../downloads/expert-examples.zip>` · [Source on GitHub](https://github.com/Synaptic724/melder/blob/90d52e0a12cb0743d62568d5a19ce954a54443bc/UX_and_AIX_experiences/04_expert/13_one_workshop_many_worlds.py) ## Public surface several postured frames, the Nexus target-frame policy and budget knobs, one codegen rift with several frame links, validate_codegen / execute_codegen once PER FRAME through the one room, and the accessible-frames enumeration ## Code ```{literalinclude} ../../downloads/04_expert/13_one_workshop_many_worlds.py :language: python :linenos: ``` ## Check the outcome The script contains its own assertions or demonstrated refusal paths. Run it to evaluate those checks against your installed version. The code above is taken directly from the saved file; no run output is invented here. [More expert examples](index.md) · [Level guide](../../expert/index.md) ## Related guides - [Agent rooms and explicit authority](../../expert/agent-rooms.md) - [Several rooms and shared worlds](../../expert/concurrency.md) ## API contracts - [Nexus](../../reference/api/inspection/nexus.md)