Artur Mukhamadiev c51e6d1369 feat(models) added models/textures and Agents related stuff
: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
2026-06-22 16:57:48 +03:00

7.9 KiB
Raw Permalink Blame History

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-mcp via Packages/manifest.json). Use mcp__UnityMCP__* tools.
  • Active emulation scene: Assets/Scenes/LaparoscopicSurgeryEmulation.unity.
  • Authored contract: SurgeryBenchmark/Shared/{AnatomySlot,CavitySlot,InstrumentSlot} are replacement anchors. The five SurgeryBenchmark/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, plus Assets/Scripts/UDP/, Assets/Scripts/VideoChat/, Assets/Scripts/Editor/.
  • Five canonical materials: Tissue_Default, Tissue_Wet, Tissue_LowTexture, CavityWall, InstrumentProxy in Assets/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)

  1. Visual realism over feature quantity.
  2. Safe, non-clinical, non-instructional representation. Visual emulation only.
  3. Reversible changes — every bounded change must be easy to undo.
  4. Small, inspectable edits — one parent container, one material variant, one Volume override, one prefab edit.
  5. Clear naming and scene organization — see /unity-hierarchy-hygiene.
  6. No destructive edits without explicit approval.
  7. Reusable prefabs / materials over duplicated objects.
  8. Physically plausible lighting and PBR materials — see /urp-render-pipeline and /pbr-materials-tissue.
  9. Performance budgets appropriate for real-time Unity — see /realtime-performance-budget.
  10. 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 3045° 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's none 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.json edits, .csproj / .sln / ProjectSettings/*.asset edits 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 3045° offset screenshot.
  • A handoff in the standard format.

A change is not done until those three are present in the handoff.