# Change Reporting & Handoff (project-scoped) Every bounded change and every cross-agent hand-off must use this format. Short, scannable, honest about what was **not** done. ## When to use - After any bounded write (material tweak, hierarchy edit, Volume override, asset import, script change). - After any read-only inspection that the next agent will act on. - After any refusal, rollback, or "stop, ask" decision. - At the end of any agent's turn. ## The handoff format Use exactly these section headers, in this order. One or two short lines per section. ``` ROLE: OBSERVED: CHANGED: NOT CHANGED: RISKS: NEXT SAFE OPTIONS: ``` ## Section rules - **ROLE** — the agent's name (`Scene Director`, `Unity Execution`, `Materials/Assets`, `Lighting/Rendering`, `Medical-Simulation Safety Reviewer`, `Performance/QA`). - **OBSERVED** — what was found, not what was done. Cite the MCP tool if relevant. - **CHANGED** — each modified item with its project path. If nothing changed: `CHANGED: (none — read-only pass)`. - **NOT CHANGED** — explicit list. Always include the off-limits items confirmed untouched (stereo rig, scenario roots, slot anchors, off-limits scripts). - **RISKS** — at least one item, even if `none observed`. If uncertain: `uncertain — verify by re-screenshot after the next change`. - **NEXT SAFE OPTIONS** — one sentence per option, max three. Each must be a bounded change, not a refactor. ## Examples ### Read-only inspection ``` ROLE: Scene Director OBSERVED: Active scene: LaparoscopicSurgeryEmulation. Render pipeline: URP-Balanced.asset. Scenario_01_CleanTissue is the only active scenario root. CavitySlot and AnatomySlot are empty placeholders. Console: 0 errors, 1 warning (missing reference on a stale Blending child — predates this session). CHANGED: (none — read-only pass) NOT CHANGED: stereo rig, Blending, UI, WebRTC, RPC objects, scenario roots, slot anchors, off-limits scripts. RISKS: The single missing-reference warning is pre-existing and is in the preserved Blending subtree. Do not "fix" it from this agent. NEXT SAFE OPTIONS: Materials/Assets agent may add a CavityWall material instance to CavitySlot; Lighting/Rendering agent may add a Bloom + Vignette + DoF override set to the global Volume. ``` ### Bounded material tweak ``` ROLE: Materials/Assets OBSERVED: Tissue_Default.mat is currently URP/Lit, base color #B66A6A, smoothness 0.35, normal scale 0.5. CHANGED: Assets/Materials/LaparoscopicBenchmark/Tissue_Default.mat — smoothness 0.35 → 0.42, _BumpScale 0.5 → 0.6. NOT CHANGED: Tissue_Wet.mat, Tissue_LowTexture.mat, CavityWall.mat, InstrumentProxy.mat, all scenario roots, all slot anchors, off-limits scripts. RISKS: Slight increase in specular response may push Scenario_01 closer to "wet". Revert _Smoothness to 0.35 if Scenario_01 must stay drier. NEXT SAFE OPTIONS: Lighting/Rendering agent may add a tight Volume override (Vignette.intensity 0.3, LensDistortion.intensity 0.1); Performance/QA agent may re-screenshot and re-check console. ``` ### Destructive change refused ``` ROLE: Unity Execution OBSERVED: User request was to delete Scenario_04_PartialOcclusion. The contract names all five scenario roots as the external-automation surface. CHANGED: (none — destructive change refused) NOT CHANGED: Scenario_04_PartialOcclusion (kept), all other scenario roots, slot anchors, off-limits scripts, stereo rig, Blending, UI, WebRTC, RPC. RISKS: Deleting any Scenario_0X root breaks the external-automation contract. NEXT SAFE OPTIONS: The scenario can be deactivated (SetActive false) instead, preserving the contract. ``` ## Cross-agent passing Agent B's first action after receiving A's handoff: one targeted read (e.g., `find_gameobjects` on the path A mentioned) to verify A's claimed state is still true. If A's state has drifted, report the drift in `OBSERVED` and proceed cautiously. ## Anti-patterns to refuse in handoffs - Vague `OBSERVED` ("the scene looked OK"). - `CHANGED` without paths. - `NOT CHANGED` left empty when off-limits items exist. - `RISKS` missing or "all good" with no evidence. - `NEXT SAFE OPTIONS` that are refactors instead of bounded changes. - Hiding a refused change behind a "completed" framing. - Claiming clinical accuracy, surgical correctness, or patient-safety implications.