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

117 lines
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.