fix: Slim down and deduplicate agent skill files, add repository map#1876
Conversation
…shot skill The flags exist in the tool schema and the annotated-elements reference assumes them, but the skill's Parameters table never mentioned them, so an agent reading only SKILL.md could not discover the 3D collider annotation flow. Also align the elements-only requirement text with the schema (annotate-elements OR annotate-raycast-grid).
SKILL.md had grown to ~33KB of dense prose, all loaded on every skill invocation. Move the deep-dive material to on-demand references while keeping the core workflow, line placement, and safety rules inline: - references/captured-variables.md: snapshot timing, scopes, preview caps, Unity object values, evidence-source trade-offs, raw capture API - references/watch-expressions.md: evaluation rules and lifetime - references/condition-triggered-pause.md: dynamic-code watcher pattern Core SKILL.md keeps compact summaries with explicit read-this-when pointers, shrinking it to ~19KB with no information removed.
The three simulate-* skills each carried a near-identical Pause Point Inspection section and four near-identical pause-point output field descriptions, and execute-dynamic-code restated pause-point semantics that the uloop-pause-point skill already owns. Keep only the tool-specific notes and point at that skill for the shared semantics. Also move execute-dynamic-code's Windows/PowerShell quoting details to references/shell-quoting.md, and drop the $ARGUMENTS placeholder from simulate-keyboard: no other skill uses it, arguments are appended automatically when absent, and non-Claude targets receive the file verbatim where the placeholder is never substituted.
Agents kept rediscovering the same structural facts from scratch every session (where skill sources live, how to regenerate the .claude/.agents copies, which folders need .meta files, which Go module owns what). Record them once at directory granularity: a coarse Repository Map section, plus the concrete source paths and regenerate command in the Generated Skill Files section, which previously said "regenerate through the normal workflow" without naming it.
📝 WalkthroughWalkthroughDocumentation-only changes reorganize pause-point and dynamic-code guidance into references, add screenshot raycast-grid documentation, clarify input interruption semantics, and expand repository maintenance instructions. ChangesPause-point documentation
Dynamic-code execution documentation
Screenshot annotation documentation
Input skill documentation
Repository maintenance guidance
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…inter The Warning/MatchingLogs and Generation/EnabledAtUtc explanations moved to references/captured-variables.md, but the pointer sentence in the core SKILL.md did not list them as a reason to read the reference, so an agent seeing those fields had no breadcrumb to the moved guidance.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@AGENTS.md`:
- Around line 88-91: Update the regeneration instructions to avoid presenting
dist/darwin-arm64/uloop as universally executable. Document the command as a
macOS ARM-specific example and provide the appropriate locally built uloop
binary invocation for contributors on Linux, Windows, and Intel macOS, while
preserving the existing source and tracked-target guidance.
In `@Packages/src/Editor/FirstPartyTools/Screenshot/Skill/SKILL.md`:
- Around line 27-28: Remove the claim that --raycast-layer-mask hits are limited
by Camera.main.cullingMask; document that the option narrows clustering by the
specified physics layers and defaults to Physics.DefaultRaycastLayers when
omitted. Apply this update in
Packages/src/Editor/FirstPartyTools/Screenshot/Skill/SKILL.md,
.agents/skills/uloop-screenshot/SKILL.md, and
.claude/skills/uloop-screenshot/SKILL.md at lines 27-28, regenerating the latter
copies from the source.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: f4df8706-2c50-404d-9444-3ad71f278a93
⛔ Files ignored due to path filters (2)
Packages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Skill/references.metais excluded by none and included by nonePackages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Skill/references/shell-quoting.md.metais excluded by none and included by none
📒 Files selected for processing (31)
.agents/skills/uloop-execute-dynamic-code/SKILL.md.agents/skills/uloop-execute-dynamic-code/references/shell-quoting.md.agents/skills/uloop-pause-point/SKILL.md.agents/skills/uloop-pause-point/references/captured-variables.md.agents/skills/uloop-pause-point/references/condition-triggered-pause.md.agents/skills/uloop-pause-point/references/watch-expressions.md.agents/skills/uloop-screenshot/SKILL.md.agents/skills/uloop-simulate-keyboard/SKILL.md.agents/skills/uloop-simulate-mouse-input/SKILL.md.agents/skills/uloop-simulate-mouse-ui/SKILL.md.claude/skills/uloop-execute-dynamic-code/SKILL.md.claude/skills/uloop-execute-dynamic-code/references/shell-quoting.md.claude/skills/uloop-pause-point/SKILL.md.claude/skills/uloop-pause-point/references/captured-variables.md.claude/skills/uloop-pause-point/references/condition-triggered-pause.md.claude/skills/uloop-pause-point/references/watch-expressions.md.claude/skills/uloop-screenshot/SKILL.md.claude/skills/uloop-simulate-keyboard/SKILL.md.claude/skills/uloop-simulate-mouse-input/SKILL.md.claude/skills/uloop-simulate-mouse-ui/SKILL.mdAGENTS.mdPackages/src/Editor/CliOnlyTools~/PausePoint/Skill/SKILL.mdPackages/src/Editor/CliOnlyTools~/PausePoint/Skill/references/captured-variables.mdPackages/src/Editor/CliOnlyTools~/PausePoint/Skill/references/condition-triggered-pause.mdPackages/src/Editor/CliOnlyTools~/PausePoint/Skill/references/watch-expressions.mdPackages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Skill/SKILL.mdPackages/src/Editor/FirstPartyTools/ExecuteDynamicCode/Skill/references/shell-quoting.mdPackages/src/Editor/FirstPartyTools/Screenshot/Skill/SKILL.mdPackages/src/Editor/FirstPartyTools/SimulateKeyboard/Skill/SKILL.mdPackages/src/Editor/FirstPartyTools/SimulateMouseInput/Skill/SKILL.mdPackages/src/Editor/FirstPartyTools/SimulateMouseUi/Skill/SKILL.md
V3 talks to the Unity Editor over local IPC — a Unix domain socket on macOS/Linux and a named pipe on Windows (BridgeTransportEndpoint) — and no TCP code path remains. The overview sentence was a leftover from the v2 architecture.
dist/darwin-arm64/uloop only exists on macOS ARM; tell contributors on other platforms to substitute their platform binary, matching the existing Native Go CLI Validation guidance.
Summary
Agent-facing skill files (
SKILL.md) had grown uneven: the largest one loaded ~33KB of dense prose on every invocation, three input-simulation skills carried near-identical pause-point guidance, and one real documentation gap hid an existing tool feature. This PR restructures them using the existingreferences/on-demand pattern and records repository structure facts that agents kept rediscovering from scratch.Changes
--annotate-raycast-gridand--raycast-layer-maskin the Parameters table. Both flags exist indefault-tools.jsonand the annotated-elements reference assumes them, but SKILL.md never mentioned them, so an agent reading only SKILL.md could not discover the 3D collider annotation flow. Align the--elements-onlyrequirement text with the schema.captured-variables.md,watch-expressions.md,condition-triggered-pause.md). No information removed; the core keeps the workflow, line placement, and safety rules with explicit read-this-when pointers.uloop-pause-pointskill. Drop the$ARGUMENTSplaceholder from simulate-keyboard (no other skill uses it; arguments are appended automatically when absent, and non-Claude targets receive the file verbatim).references/shell-quoting.md.Validation
.claude/and.agents/copies regenerated withdist/darwin-arm64/uloop skills install --claude --agents; verified byte-identical to sources including the newreferences/files.uloop compilepassed with 0 errors / 0 warnings; Unity generated the required.metafiles for the new files underFirstPartyTools(tilde folderCliOnlyTools~needs none).check-go-cli.shrun is required.