diff --git a/.agents/skills/uloop-clear-console/SKILL.md b/.agents/skills/uloop-clear-console/SKILL.md index 6ba18c90f..a86149ab8 100644 --- a/.agents/skills/uloop-clear-console/SKILL.md +++ b/.agents/skills/uloop-clear-console/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-clear-console +toolName: clear-console description: "Clear all Unity Console log entries. Use when you need to: (1) Clear console before running tests or compilation, (2) Start a fresh debugging session, (3) Remove noisy logs to isolate specific output." --- diff --git a/.agents/skills/uloop-compile/SKILL.md b/.agents/skills/uloop-compile/SKILL.md index 76a917f5d..532e640e8 100644 --- a/.agents/skills/uloop-compile/SKILL.md +++ b/.agents/skills/uloop-compile/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-compile +toolName: compile description: "Compile Unity project and report errors/warnings. Use when you need to: (1) Verify code compiles after C# file edits, (2) Check for compile errors before testing, (3) Force full recompilation with Domain Reload. Returns error and warning counts." --- @@ -10,7 +11,7 @@ Execute Unity project compilation. ## Usage ```bash -uloop compile [--force-recompile] [--wait-for-domain-reload] +uloop compile [--force-recompile] [--no-wait-for-domain-reload] ``` ## Parameters @@ -18,7 +19,7 @@ uloop compile [--force-recompile] [--wait-for-domain-reload] | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `--force-recompile` | boolean | `false` | Force full recompilation (triggers Domain Reload) | -| `--wait-for-domain-reload` | boolean | `false` | Wait until Domain Reload completes before returning | +| `--no-wait-for-domain-reload` | boolean | `false` | Return before Domain Reload completion | ## Global Options @@ -32,14 +33,11 @@ uloop compile [--force-recompile] [--wait-for-domain-reload] # Check compilation uloop compile -# Force full recompilation +# Force full recompilation and wait for Domain Reload completion uloop compile --force-recompile -# Force recompilation and wait for Domain Reload completion -uloop compile --force-recompile --wait-for-domain-reload - -# Wait for Domain Reload completion even without force recompilation -uloop compile --wait-for-domain-reload +# Start compilation without waiting for Domain Reload completion +uloop compile --no-wait-for-domain-reload ``` ## Output @@ -53,13 +51,13 @@ Returns JSON: Diagnose the failure mode before retrying. -**Stale lock files** (CLI hangs or shows "Unity is busy" while Unity Editor *is* running): +**Stale recovery state** (CLI hangs or shows recovery/startup state while Unity Editor *is* running): ```bash uloop fix ``` -This removes any leftover lock files (`compiling.lock`, `domainreload.lock`, `serverstarting.lock`) from the Unity project's Temp directory. Then retry `uloop compile`. +This removes stale Unity CLI Loop readiness state files from the Unity project's Temp directory. Then retry `uloop compile`. **Unity Editor not running** (CLI returns a connection failure and no Unity process is alive): diff --git a/.agents/skills/uloop-find-game-objects/SKILL.md b/.agents/skills/uloop-find-game-objects/SKILL.md index 9c809e658..a6e7f6c7f 100644 --- a/.agents/skills/uloop-find-game-objects/SKILL.md +++ b/.agents/skills/uloop-find-game-objects/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-find-game-objects +toolName: find-game-objects description: "Use first when the user asks about the currently selected GameObject in the Unity Hierarchy. Inspect selected object details with `--search-mode Selected` before using `execute-dynamic-code`. Use when you need to: (1) Get details and component properties for selected GameObject(s), (2) Search for objects by name, regex, or path, (3) Find objects with specific components, tags, or layers. Use get-hierarchy when the child tree under the selection is needed. Returns hierarchy paths, active state, tags, layers, and components (or writes to a file when multiple GameObjects are selected)." --- diff --git a/.agents/skills/uloop-get-hierarchy/SKILL.md b/.agents/skills/uloop-get-hierarchy/SKILL.md index b60893f60..9323b9414 100644 --- a/.agents/skills/uloop-get-hierarchy/SKILL.md +++ b/.agents/skills/uloop-get-hierarchy/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-get-hierarchy +toolName: get-hierarchy description: "Get Unity scene hierarchy as a structured tree from all roots, a root path, or the current Hierarchy selection. Use this when you need the child tree, parent-child structure, or descendants under selected GameObject(s) with `--use-selection`. Use find-game-objects for selected object details and component properties. Hierarchy data is written to a JSON file on disk and the response returns the file path (not the tree inline) — open the file to read the structure." --- diff --git a/.agents/skills/uloop-get-logs/SKILL.md b/.agents/skills/uloop-get-logs/SKILL.md index 1ca03fc11..49c7d281d 100644 --- a/.agents/skills/uloop-get-logs/SKILL.md +++ b/.agents/skills/uloop-get-logs/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-get-logs +toolName: get-logs description: "Retrieve current Unity Console entries via uloop CLI. Use when you need to: (1) inspect errors, warnings, or logs after compile, tests, PlayMode, or dynamic code execution, (2) search current Console messages or stack traces, (3) confirm whether a recent Unity operation emitted logs. Prefer this over reading Editor.log or Unity log files for normal Console contents; use log files only for startup, crash, freeze, or uloop connection failures." --- diff --git a/.agents/skills/uloop-record-input/SKILL.md b/.agents/skills/uloop-record-input/SKILL.md index 9e00ebcfc..ba2a974a8 100644 --- a/.agents/skills/uloop-record-input/SKILL.md +++ b/.agents/skills/uloop-record-input/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-record-input +toolName: record-input description: "Record keyboard and mouse input during PlayMode into a JSON file. Use when you need to: (1) Capture human gameplay input for later replay, (2) Record input sequences for E2E testing, (3) Save input for bug reproduction. Captures Input System device-state diffs frame-by-frame in PlayMode and serializes them to JSON when stopped. Requires PlayMode and the New Input System." --- diff --git a/.agents/skills/uloop-replay-input/SKILL.md b/.agents/skills/uloop-replay-input/SKILL.md index 7e06a9401..803b05454 100644 --- a/.agents/skills/uloop-replay-input/SKILL.md +++ b/.agents/skills/uloop-replay-input/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-replay-input +toolName: replay-input description: "Replay recorded input during PlayMode with frame-precise injection. Use when you need to: (1) Reproduce recorded gameplay exactly, (2) Run E2E tests from recorded input, (3) Generate demo videos with consistent input. Deserializes the JSON recording and pushes captured device states back into Mouse.current / Keyboard.current frame-by-frame in PlayMode. Requires PlayMode and the New Input System." --- diff --git a/.agents/skills/uloop-run-tests/SKILL.md b/.agents/skills/uloop-run-tests/SKILL.md index 6cd94a3e8..f614a6329 100644 --- a/.agents/skills/uloop-run-tests/SKILL.md +++ b/.agents/skills/uloop-run-tests/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-run-tests +toolName: run-tests description: "Execute Unity Test Runner and get detailed results. Use when you need to: (1) Run EditMode or PlayMode unit tests, (2) Verify code changes pass all tests, (3) Diagnose test failures with error messages and stack traces. Single-flight only — never run multiple `uloop run-tests` in parallel." --- diff --git a/.agents/skills/uloop-screenshot/SKILL.md b/.agents/skills/uloop-screenshot/SKILL.md index 724ecedaa..f9da5b7cd 100644 --- a/.agents/skills/uloop-screenshot/SKILL.md +++ b/.agents/skills/uloop-screenshot/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-screenshot +toolName: screenshot description: "Capture screenshots of Unity Editor windows as PNG files. Use when you need to: (1) Screenshot Game View, Scene View, Console, Inspector, or other windows, (2) Capture current visual state for debugging or documentation, (3) Save editor window appearance as PNG files with optional UI element annotations. Writes PNG files via uloop CLI." --- diff --git a/.agents/skills/uloop-simulate-keyboard/SKILL.md b/.agents/skills/uloop-simulate-keyboard/SKILL.md index 574794c16..358e6b2a5 100644 --- a/.agents/skills/uloop-simulate-keyboard/SKILL.md +++ b/.agents/skills/uloop-simulate-keyboard/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-simulate-keyboard +toolName: simulate-keyboard description: "Simulate keyboard key input in PlayMode via Input System. Use when you need to: (1) Press game control keys like WASD, Space, or Shift during PlayMode, (2) Hold keys down for continuous movement or actions, (3) Combine multiple held keys for complex input like Shift+W for sprint. Injects into Unity Input System (`Keyboard.current`); requires PlayMode and the New Input System." context: fork --- diff --git a/.agents/skills/uloop-simulate-mouse-input/SKILL.md b/.agents/skills/uloop-simulate-mouse-input/SKILL.md index 8a4f9e098..05d196683 100644 --- a/.agents/skills/uloop-simulate-mouse-input/SKILL.md +++ b/.agents/skills/uloop-simulate-mouse-input/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-simulate-mouse-input +toolName: simulate-mouse-input description: "Simulate mouse input in PlayMode for gameplay code that reads Unity Input System Mouse.current. Use when you need to: (1) Click or right-click in games that read Mouse.current button state, (2) Inject mouse delta for FPS camera control, (3) Inject scroll wheel for hotbar switching or zoom. Requires PlayMode and the New Input System; for EventSystem UI elements, use simulate-mouse-ui instead." context: fork --- diff --git a/.agents/skills/uloop-simulate-mouse-ui/SKILL.md b/.agents/skills/uloop-simulate-mouse-ui/SKILL.md index 274251050..7e9a4efc8 100644 --- a/.agents/skills/uloop-simulate-mouse-ui/SKILL.md +++ b/.agents/skills/uloop-simulate-mouse-ui/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-simulate-mouse-ui +toolName: simulate-mouse-ui description: "Simulate mouse click, long-press, and drag on PlayMode UI elements via EventSystem screen coordinates from annotated screenshots. Use when you need to: (1) Click buttons or interactive UI elements during PlayMode testing, (2) Drag UI elements between annotated screen positions, (3) Long-press or hold a drag for sustained pointer interactions. First get target coordinates with `uloop screenshot --capture-mode rendering --annotate-elements --elements-only` and use `AnnotatedElements[].SimX` / `SimY`; for gameplay code that reads Mouse.current, use simulate-mouse-input instead." context: fork --- diff --git a/.claude/skills/uloop-clear-console/SKILL.md b/.claude/skills/uloop-clear-console/SKILL.md index 6ba18c90f..a86149ab8 100644 --- a/.claude/skills/uloop-clear-console/SKILL.md +++ b/.claude/skills/uloop-clear-console/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-clear-console +toolName: clear-console description: "Clear all Unity Console log entries. Use when you need to: (1) Clear console before running tests or compilation, (2) Start a fresh debugging session, (3) Remove noisy logs to isolate specific output." --- diff --git a/.claude/skills/uloop-compile/SKILL.md b/.claude/skills/uloop-compile/SKILL.md index 76a917f5d..532e640e8 100644 --- a/.claude/skills/uloop-compile/SKILL.md +++ b/.claude/skills/uloop-compile/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-compile +toolName: compile description: "Compile Unity project and report errors/warnings. Use when you need to: (1) Verify code compiles after C# file edits, (2) Check for compile errors before testing, (3) Force full recompilation with Domain Reload. Returns error and warning counts." --- @@ -10,7 +11,7 @@ Execute Unity project compilation. ## Usage ```bash -uloop compile [--force-recompile] [--wait-for-domain-reload] +uloop compile [--force-recompile] [--no-wait-for-domain-reload] ``` ## Parameters @@ -18,7 +19,7 @@ uloop compile [--force-recompile] [--wait-for-domain-reload] | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `--force-recompile` | boolean | `false` | Force full recompilation (triggers Domain Reload) | -| `--wait-for-domain-reload` | boolean | `false` | Wait until Domain Reload completes before returning | +| `--no-wait-for-domain-reload` | boolean | `false` | Return before Domain Reload completion | ## Global Options @@ -32,14 +33,11 @@ uloop compile [--force-recompile] [--wait-for-domain-reload] # Check compilation uloop compile -# Force full recompilation +# Force full recompilation and wait for Domain Reload completion uloop compile --force-recompile -# Force recompilation and wait for Domain Reload completion -uloop compile --force-recompile --wait-for-domain-reload - -# Wait for Domain Reload completion even without force recompilation -uloop compile --wait-for-domain-reload +# Start compilation without waiting for Domain Reload completion +uloop compile --no-wait-for-domain-reload ``` ## Output @@ -53,13 +51,13 @@ Returns JSON: Diagnose the failure mode before retrying. -**Stale lock files** (CLI hangs or shows "Unity is busy" while Unity Editor *is* running): +**Stale recovery state** (CLI hangs or shows recovery/startup state while Unity Editor *is* running): ```bash uloop fix ``` -This removes any leftover lock files (`compiling.lock`, `domainreload.lock`, `serverstarting.lock`) from the Unity project's Temp directory. Then retry `uloop compile`. +This removes stale Unity CLI Loop readiness state files from the Unity project's Temp directory. Then retry `uloop compile`. **Unity Editor not running** (CLI returns a connection failure and no Unity process is alive): diff --git a/.claude/skills/uloop-find-game-objects/SKILL.md b/.claude/skills/uloop-find-game-objects/SKILL.md index 9c809e658..a6e7f6c7f 100644 --- a/.claude/skills/uloop-find-game-objects/SKILL.md +++ b/.claude/skills/uloop-find-game-objects/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-find-game-objects +toolName: find-game-objects description: "Use first when the user asks about the currently selected GameObject in the Unity Hierarchy. Inspect selected object details with `--search-mode Selected` before using `execute-dynamic-code`. Use when you need to: (1) Get details and component properties for selected GameObject(s), (2) Search for objects by name, regex, or path, (3) Find objects with specific components, tags, or layers. Use get-hierarchy when the child tree under the selection is needed. Returns hierarchy paths, active state, tags, layers, and components (or writes to a file when multiple GameObjects are selected)." --- diff --git a/.claude/skills/uloop-get-hierarchy/SKILL.md b/.claude/skills/uloop-get-hierarchy/SKILL.md index b60893f60..9323b9414 100644 --- a/.claude/skills/uloop-get-hierarchy/SKILL.md +++ b/.claude/skills/uloop-get-hierarchy/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-get-hierarchy +toolName: get-hierarchy description: "Get Unity scene hierarchy as a structured tree from all roots, a root path, or the current Hierarchy selection. Use this when you need the child tree, parent-child structure, or descendants under selected GameObject(s) with `--use-selection`. Use find-game-objects for selected object details and component properties. Hierarchy data is written to a JSON file on disk and the response returns the file path (not the tree inline) — open the file to read the structure." --- diff --git a/.claude/skills/uloop-get-logs/SKILL.md b/.claude/skills/uloop-get-logs/SKILL.md index 1ca03fc11..49c7d281d 100644 --- a/.claude/skills/uloop-get-logs/SKILL.md +++ b/.claude/skills/uloop-get-logs/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-get-logs +toolName: get-logs description: "Retrieve current Unity Console entries via uloop CLI. Use when you need to: (1) inspect errors, warnings, or logs after compile, tests, PlayMode, or dynamic code execution, (2) search current Console messages or stack traces, (3) confirm whether a recent Unity operation emitted logs. Prefer this over reading Editor.log or Unity log files for normal Console contents; use log files only for startup, crash, freeze, or uloop connection failures." --- diff --git a/.claude/skills/uloop-record-input/SKILL.md b/.claude/skills/uloop-record-input/SKILL.md index 9e00ebcfc..ba2a974a8 100644 --- a/.claude/skills/uloop-record-input/SKILL.md +++ b/.claude/skills/uloop-record-input/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-record-input +toolName: record-input description: "Record keyboard and mouse input during PlayMode into a JSON file. Use when you need to: (1) Capture human gameplay input for later replay, (2) Record input sequences for E2E testing, (3) Save input for bug reproduction. Captures Input System device-state diffs frame-by-frame in PlayMode and serializes them to JSON when stopped. Requires PlayMode and the New Input System." --- diff --git a/.claude/skills/uloop-replay-input/SKILL.md b/.claude/skills/uloop-replay-input/SKILL.md index 7e06a9401..803b05454 100644 --- a/.claude/skills/uloop-replay-input/SKILL.md +++ b/.claude/skills/uloop-replay-input/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-replay-input +toolName: replay-input description: "Replay recorded input during PlayMode with frame-precise injection. Use when you need to: (1) Reproduce recorded gameplay exactly, (2) Run E2E tests from recorded input, (3) Generate demo videos with consistent input. Deserializes the JSON recording and pushes captured device states back into Mouse.current / Keyboard.current frame-by-frame in PlayMode. Requires PlayMode and the New Input System." --- diff --git a/.claude/skills/uloop-run-tests/SKILL.md b/.claude/skills/uloop-run-tests/SKILL.md index 6cd94a3e8..f614a6329 100644 --- a/.claude/skills/uloop-run-tests/SKILL.md +++ b/.claude/skills/uloop-run-tests/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-run-tests +toolName: run-tests description: "Execute Unity Test Runner and get detailed results. Use when you need to: (1) Run EditMode or PlayMode unit tests, (2) Verify code changes pass all tests, (3) Diagnose test failures with error messages and stack traces. Single-flight only — never run multiple `uloop run-tests` in parallel." --- diff --git a/.claude/skills/uloop-screenshot/SKILL.md b/.claude/skills/uloop-screenshot/SKILL.md index 724ecedaa..f9da5b7cd 100644 --- a/.claude/skills/uloop-screenshot/SKILL.md +++ b/.claude/skills/uloop-screenshot/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-screenshot +toolName: screenshot description: "Capture screenshots of Unity Editor windows as PNG files. Use when you need to: (1) Screenshot Game View, Scene View, Console, Inspector, or other windows, (2) Capture current visual state for debugging or documentation, (3) Save editor window appearance as PNG files with optional UI element annotations. Writes PNG files via uloop CLI." --- diff --git a/.claude/skills/uloop-simulate-keyboard/SKILL.md b/.claude/skills/uloop-simulate-keyboard/SKILL.md index 574794c16..358e6b2a5 100644 --- a/.claude/skills/uloop-simulate-keyboard/SKILL.md +++ b/.claude/skills/uloop-simulate-keyboard/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-simulate-keyboard +toolName: simulate-keyboard description: "Simulate keyboard key input in PlayMode via Input System. Use when you need to: (1) Press game control keys like WASD, Space, or Shift during PlayMode, (2) Hold keys down for continuous movement or actions, (3) Combine multiple held keys for complex input like Shift+W for sprint. Injects into Unity Input System (`Keyboard.current`); requires PlayMode and the New Input System." context: fork --- diff --git a/.claude/skills/uloop-simulate-mouse-input/SKILL.md b/.claude/skills/uloop-simulate-mouse-input/SKILL.md index 8a4f9e098..05d196683 100644 --- a/.claude/skills/uloop-simulate-mouse-input/SKILL.md +++ b/.claude/skills/uloop-simulate-mouse-input/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-simulate-mouse-input +toolName: simulate-mouse-input description: "Simulate mouse input in PlayMode for gameplay code that reads Unity Input System Mouse.current. Use when you need to: (1) Click or right-click in games that read Mouse.current button state, (2) Inject mouse delta for FPS camera control, (3) Inject scroll wheel for hotbar switching or zoom. Requires PlayMode and the New Input System; for EventSystem UI elements, use simulate-mouse-ui instead." context: fork --- diff --git a/.claude/skills/uloop-simulate-mouse-ui/SKILL.md b/.claude/skills/uloop-simulate-mouse-ui/SKILL.md index 274251050..7e9a4efc8 100644 --- a/.claude/skills/uloop-simulate-mouse-ui/SKILL.md +++ b/.claude/skills/uloop-simulate-mouse-ui/SKILL.md @@ -1,5 +1,6 @@ --- name: uloop-simulate-mouse-ui +toolName: simulate-mouse-ui description: "Simulate mouse click, long-press, and drag on PlayMode UI elements via EventSystem screen coordinates from annotated screenshots. Use when you need to: (1) Click buttons or interactive UI elements during PlayMode testing, (2) Drag UI elements between annotated screen positions, (3) Long-press or hold a drag for sustained pointer interactions. First get target coordinates with `uloop screenshot --capture-mode rendering --annotate-elements --elements-only` and use `AnnotatedElements[].SimX` / `SimY`; for gameplay code that reads Mouse.current, use simulate-mouse-input instead." context: fork --- diff --git a/.coderabbit.yaml b/.coderabbit.yaml index 99ddbc02b..1a579e310 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -7,8 +7,7 @@ early_access: true reviews: profile: "chill" request_changes_workflow: true - high_level_summary: true - high_level_summary_instructions: "Do not add colors to mermaid diagrams. Use Class diagrams." + high_level_summary: false poem: false auto_review: enabled: true