:Release Notes: - Agents files for opencode and claude - Skills for opencode and claude - 3d models with medical organs - Some textures :Detailed Notes: - :Testing Performed: - :QA Notes: - Looks like shit :) :Issues Addressed: TG-1
7.9 KiB
CLAUDE.md — operating contract for Claude Code in this project
This is the one-page contract every agent reads first. It complements the per-agent files under .claude/agents/ and the per-skill commands under .claude/commands/. Read it once, then go to the relevant agent or command for the actual work.
1. Project identity (do not rediscover)
- Unity 2022.3.25f1 (LTS).
- Render pipeline: URP 14.0.11 (not HDRP). URP assets live in
Assets/Settings/URP-*.asset. - MCP bridge: UnityMCP (
com.coplaydev.unity-mcpviaPackages/manifest.json). Usemcp__UnityMCP__*tools. - Active emulation scene:
Assets/Scenes/LaparoscopicSurgeryEmulation.unity. - Authored contract:
SurgeryBenchmark/Shared/{AnatomySlot,CavitySlot,InstrumentSlot}are replacement anchors. The fiveSurgeryBenchmark/Scenarios/Scenario_0X_*roots are the external-automation toggle surface. - Preserved from
MainScene: stereo rig,Blending, UI, WebRTC, RPC. Do not rename, move, retarget, or delete. - Off-limits scripts:
Rotator,BlendShaderController,DepthGetter,DepthRenderPassFeature,DepthTester,TexturesSettings,WEBRTCSender,CrpcApi,MinimalRpcServer, plusAssets/Scripts/UDP/,Assets/Scripts/VideoChat/,Assets/Scripts/Editor/. - Five canonical materials:
Tissue_Default,Tissue_Wet,Tissue_LowTexture,CavityWall,InstrumentProxyinAssets/Materials/LaparoscopicBenchmark/. Names are part of the contract.
Full inventory and MCP tool mapping: /unity-mcp-orchestrator command.
2. MCP tool naming
Use mcp__UnityMCP__<tool> for all Unity Editor operations:
find_gameobjects, manage_scene, manage_gameobject, manage_components, manage_material, manage_graphics, manage_camera, manage_prefabs, manage_asset, manage_texture, manage_animation, manage_vfx, manage_shader, manage_physics, manage_profiler, manage_ui, manage_editor, create_script, delete_script, manage_script, script_apply_edits, apply_text_edits, validate_script, read_console, refresh_unity, run_tests, execute_code, execute_menu_item, batch_execute, find_in_file, unity_reflect, unity_docs.
3. Core priorities (in order)
- Visual realism over feature quantity.
- Safe, non-clinical, non-instructional representation. Visual emulation only.
- Reversible changes — every bounded change must be easy to undo.
- Small, inspectable edits — one parent container, one material variant, one Volume override, one prefab edit.
- Clear naming and scene organization — see
/unity-hierarchy-hygiene. - No destructive edits without explicit approval.
- Reusable prefabs / materials over duplicated objects.
- Physically plausible lighting and PBR materials — see
/urp-render-pipelineand/pbr-materials-tissue. - Performance budgets appropriate for real-time Unity — see
/realtime-performance-budget. - Always report what changed and what remains uncertain, in the handoff format — see
/change-reporting-handoff.
4. The three-gate loop
Every agent works the same way. No agent may jump from idea → broad scene mutation.
Gate 1 — Inspect
Read-only tools only: find_gameobjects, manage_scene(get_hierarchy|get_active), manage_graphics(pipeline_get_info|volume_get_info), manage_material(get_material_info), manage_asset(get_info), read_console, manage_camera(screenshot) for visual context. Confirm the change is bounded.
Gate 2 — Propose a bounded change
State in one paragraph:
- What changes (one action, or a tightly-related set under the same authored root).
- Why it is bounded (which authored root, which slot, which asset).
- What is left alone (preserved subtrees, off-limits scripts, the other scenario roots).
- Verification you will run after (
read_console+ screenshot from the scope + a 30–45° offset).
If the change is destructive (delete, swap URP asset, modify Packages/manifest.json, edit off-limits scripts, move preserved subtrees), stop and ask.
Gate 3 — Execute and verify
Apply the change with the appropriate MCP call. Re-read affected objects. read_console(types=["error","warning"]). Take a verification screenshot. Emit the handoff in the standard format.
5. The handoff format (mandatory)
After every action, emit a handoff. Full template in /change-reporting-handoff.
ROLE: <which agent>
OBSERVED: <what the inspection found, with concrete paths>
CHANGED: <exact objects/assets/settings/scripts modified, with paths>
NOT CHANGED: <relevant things intentionally left alone, including off-limits items>
RISKS: <visual, technical, performance, safety, or uncertainty notes>
NEXT SAFE OPTIONS: <one to three bounded suggestions for the next agent>
CHANGED: (none — read-only pass)is allowed and often correct for director / safety / QA passes.- Always fill
NOT CHANGED:with the preserved subtrees and the off-limits scripts you confirmed untouched. - Always fill
RISKS:with at least one item, even if it'snone observed.
6. Hard refusals
Any of the following is a refusal. The project does not do them.
- Clinical / surgical content: surgical steps, patient-specific advice, anatomical diagnosis, treatment decisions, operative guidance, performance claims, real-patient references.
- HDRP-only features: ray-traced reflections, planar reflection probes, path tracer, EV-based physical exposure. Translate to URP equivalents or refuse.
- Global refactors: scene-wide replacements, bulk deletes, package changes,
Packages/manifest.jsonedits,.csproj/.sln/ProjectSettings/*.assetedits via the file system. - Moving preserved subtrees: stereo rig,
Blending, UI, WebRTC, RPC. - Renaming scenario roots or slot anchors.
- Modifying off-limits scripts without explicit approval.
- Bulk imports of FBX / texture packages without bounded change approval.
- Naming a material / scenario / script with a clinical term (e.g.,
Tissue_Inflamed.mat,Scenario_Bleeding).
7. Subagents
| Agent | Owns | File |
|---|---|---|
| Scene Director | Visual intent, composition, framing, laparoscope feel | .claude/agents/scene-director.md |
| Unity Execution | All scene / hierarchy / material / script / prefab writes | .claude/agents/unity-execution.md |
| Lighting/Rendering | URP Volume overrides, reflection probes, post-processing | .claude/agents/lighting-rendering.md |
| Materials/Assets | PBR tissue / cavity / instrument materials, texture imports | .claude/agents/materials-assets.md |
| Medical-Simulation Safety Reviewer | Visual-only, non-clinical boundary review | .claude/agents/medical-safety-reviewer.md |
| Performance/QA | Real-time budget, console hygiene, visual regression | .claude/agents/performance-qa.md |
8. Commands (skills)
| Command | When to use |
|---|---|
/unity-mcp-orchestrator |
Before any mcp__UnityMCP__* call. Project facts, tool discipline, handoff format. |
/unity-hierarchy-hygiene |
Before creating, moving, parenting, renaming, or activating GameObjects. |
/urp-render-pipeline |
Before touching URP assets, Volume profiles, or any HDRP-flavoured request. |
/pbr-materials-tissue |
Before creating, editing, or assigning tissue / cavity / instrument materials. |
/cinematic-laparoscope-camera |
Before adjusting camera FOV, clipping, exposure, or framing. |
/medical-simulation-safety |
Whenever output mentions anatomy, surgery, instruments, tissue, or pathology. |
/realtime-performance-budget |
After any visual / hierarchy / material / lighting / post-processing change. |
/change-reporting-handoff |
After every bounded change and every cross-agent task. |
9. Verification is mandatory
Every bounded change ends with:
read_console(types=["error","warning"], count=20).- A scope screenshot and, for visual changes, a 30–45° offset screenshot.
- A handoff in the standard format.
A change is not done until those three are present in the handoff.