Fantasy Framework Development Guide
qq362946/Fantasy
Development and review guide for the Fantasy C# distributed game server framework: ECS, FTask, routing, service discovery, config and databases.
Control and observe the Unity Editor state. An agent skill from Besty0728/Unity-Skills.
$ npx skills add Besty0728/Unity-Skills --skill unity-editor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Besty0728/Unity-Skills unity-editor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/editor' .claude/skills/unity-editor && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "unity-editor" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editor into .claude/skills/unity-editor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-editor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Besty0728/Unity-Skills --skill unity-editor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Besty0728/Unity-Skills unity-editor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/editor' .agents/skills/unity-editor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unity-editor" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editor into .agents/skills/unity-editor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-editor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Besty0728/Unity-Skills --skill unity-editor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Besty0728/Unity-Skills unity-editor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/editor' .cursor/skills/unity-editor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "unity-editor" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editor into .cursor/skills/unity-editor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-editor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Besty0728/Unity-Skills.git --path 'SkillsForUnity/unity-skills~/skills/editor'--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Besty0728/Unity-Skills --skill unity-editor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Besty0728/Unity-Skills unity-editor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/editor' .gemini/skills/unity-editor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "unity-editor" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editor into .gemini/skills/unity-editor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-editor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Besty0728/Unity-Skills unity-editorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Besty0728/Unity-Skills --skill unity-editor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/editor' .github/skills/unity-editor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "unity-editor" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editor into .github/skills/unity-editor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-editor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Besty0728/Unity-Skills --skill unity-editor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Besty0728/Unity-Skills unity-editor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Besty0728/Unity-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/'SkillsForUnity/unity-skills~/skills/editor' .opencode/skills/unity-editor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "unity-editor" agent skill from https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/editor into .opencode/skills/unity-editor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unity-editor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
unity-editorControl and observe the Unity Editor state. An agent skill from Besty0728/Unity-Skills.
Unity Editor is an agent skill from Besty0728/Unity-Skills. Control and observe the Unity Editor state
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development. It works with Unity. The repository describes itself as: AI automation skills specifically designed for Unity. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 12a40e4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Unity Editor loads about 3.4k tokens when it runs. Until then it costs about 14 tokens; SKILL.md has 1,229 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Besty0728/Unity-Skills at commit 12a40e4, republished under its MIT licence (© Besty0728). 1,229 words, ~3,357 tokens.
.claude/skills/unity-editor/SKILL.md (or your agent's skills folder).Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via
GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.
Observe and control the Unity Editor without parsing scene YAML.
editor_get_changes / editor_get_selection / editor_get_context / editor_get_state / editor_get_tags / editor_get_layers / editor_playmode_inspect 标 SkillMode.SemiAuto,可直接执行;其余 editor_select / editor_undo / editor_redo / editor_playmode_step 默认 FullAuto,Approval 模式下需 grant。editor_play / editor_play_capture / editor_stop / editor_pause(标 MayEnterPlayMode = true);editor_execute_menu(标 MayTriggerReload = true —— Assets/Refresh、Assets/Reimport All 之类的菜单项会触发域重载)。这些在 Approval 和 Auto 下都返 MODE_FORBIDDEN,仅 Bypass 或 Allowlist 命中可调;grant 流程对它们不适用,不要尝试。DO NOT (common hallucinations):
editor_run does not exist → use editor_play to enter play modeeditor_compile / editor_recompile do not exist → use debug_force_recompileeditor_save does not exist → use editor_execute_menu with menuPath "File/Save"editor_execute_menu requires exact menu path — typos cause silent failureRouting:
debug module's debug_check_compilationdebug module's debug_get_errorsscene_save (scene module) or editor_execute_menu menuPath="File/Save"editor_get_changes before reading .unity YAMLeditor_get_changes.dropped=true → its 500-entry retention window was exceeded; rebuild context with scene_context / scene_diff| Skill | Description |
|---|---|
editor_play | Enter play mode |
editor_play_capture | Observe runtime errors, optionally screenshot, then exit |
editor_stop | Exit play mode |
editor_pause | Toggle pause |
editor_playmode_step | Advance Play Mode by N frames (async job) |
editor_playmode_inspect | Inspect a GameObject's live runtime state (transform, component fields) |
editor_select | Select GameObject |
editor_get_selection | Get selected objects |
editor_get_context | Get full editor context (selection, assets, scene) |
editor_get_changes | Read persistent scene/file changes by cursor |
editor_undo | Undo last action |
editor_redo | Redo last action |
editor_get_state | Get editor state |
editor_execute_menu | Execute menu item |
editor_get_tags | Get all tags |
editor_get_layers | Get all layers |
console_set_pause_on_error | Pause play mode on error (console module) |
Enter play mode. Warning: any unsaved scene changes made during Play mode will be lost when exiting.
Returns: {success, mode, jobId} — mode="playing", jobId returned from AsyncJobService so callers can poll entering_play_mode completion.
Enter Play Mode, observe errors for durationSeconds (default 10, range 1–300), optionally capture the Game View, then exit. Returns a Job whose result includes healthy, error aggregates, stoppedEarly, and screenshotPath.
Exit play mode.
Returns: {success, mode} — mode="stopped".
Toggle pause state.
Returns: {success, paused} — paused is the new boolean state.
Advance Play Mode forward by frames (1–100, default 1) using EditorApplication.Step; Unity automatically enters paused state as part of stepping. Requires Play Mode to already be active — call editor_play or editor_play_capture first, otherwise this returns a structured error (error + hint + suggestedSkills: ["editor_play", "editor_play_capture"]). Only one step job may be in flight at a time; a second call while one is still running returns an error naming the active jobId.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
frames | int | No | 1 | Frames to advance, clamped to 1–100 |
Runs as an async job, not synchronously: EditorApplication.Step() only lands on a later Editor tick, so the skill issues one Step() call at a time, confirms it landed by watching Time.frameCount advance, and only then issues the next — back-to-back Step() calls without that confirmation are not reliable. The call itself returns immediately: {success, status: "accepted", jobId, framesRequested}.
Poll job_status with the returned jobId until status="completed"; its details then contains {framesRequested, framesCompleted, frameCount, isPaused}. Do not use job_wait — like playmode/play_capture, this job's progress depends on EditorApplication.update ticks, and job_wait's blocking loop runs on the same main thread those ticks come from, so it cannot observe progress; it will just spend its full timeout doing nothing. If Play Mode exits or Unity fails to advance a frame within 10s, the job fails with failed_exited_play_mode / failed_step_timeout.
Inspect a GameObject's live runtime state: transform (position/rotation/scale), activeSelf/activeInHierarchy, and — when componentType is given — that component's public fields and properties (reuses the same reflection helper as component_get_properties, not reimplemented). Works during Play Mode, including while paused, and also in Edit Mode, where it returns editor-time values — check isPlaying/isPaused in the response to know which state the values reflect.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No* | Object name |
instanceId | int | No* | Instance ID (preferred) |
path | string | No* | Object path |
componentType | string | No | Component type name; when set, also returns its public fields/properties |
*One identifier required
Returns: {success, gameObject, entityId, instanceId, path, activeSelf, activeInHierarchy, transform: {position, localPosition, rotation, localScale}, isPlaying, isPaused, component}. component is null when componentType is omitted, an error object when the type isn't found or isn't attached, or {gameObject, component, fullTypeName, properties, fields} (same shape as component_get_properties) otherwise.
Select a GameObject.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No* | Object name |
instanceId | int | No* | Instance ID (preferred) |
path | string | No* | Object path |
*One identifier required
Get currently selected objects.
Returns: {count, objects: [{name, instanceId}]}
Get full editor context including selection, assets, and scene info.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
includeComponents | bool | No | false | Include component list |
includeChildren | bool | No | false | Include children info |
Returns:
selectedGameObjects: Objects in Hierarchy (instanceId, path, tag, layer)selectedAssets: Assets in Project window (GUID, path, type, isFolder)activeScene: Current scene info (name, path, isDirty)focusedWindow: Name of focused editor windowisPlaying, isCompiling: Editor stateRead the persistent change journal at Library/UnitySkills/editor_changes.jsonl. It captures scene object/component/property summaries plus imported, deleted, and moved asset paths across Domain Reloads. It never parses or returns raw .unity YAML.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
since | long | No | 0 | Previous response cursor; 0 reads retained history |
types | string | No | all | Comma-separated scene, file, undo, or lifecycle |
source | string | No | all | editor/manual, rest, or all |
limit | int | No | 100 | Newest entries to return, 1-500 |
Returns: {hasChanges, cursor, oldestSeq, dropped, truncated, changes}. Save cursor for the next call. dropped=true means older changes fell outside the 500-entry journal, so rebuild full scene context.
Undo the last action.
Redo the last undone action.
Get current editor state.
Returns: {isPlaying, isPaused, isCompiling, timeSinceStartup, unityVersion, platform}
Execute a menu command.
| Parameter | Type | Required | Description |
|---|---|---|---|
menuPath | string | Yes | Menu item path |
Common Menu Paths:
| Menu Path | Action |
|---|---|
File/Save | Save current scene |
File/Build Settings... | Open build settings |
Edit/Play | Toggle play mode |
GameObject/Create Empty | Create empty object |
Window/General/Console | Open console |
Assets/Refresh | Refresh assets |
Get all available tags.
Returns: {tags: [string]}
Get all available layers.
Returns: {layers: [{index, name}]}
Pause-on-error is provided by the console module, not the editor module.
Use console_set_pause_on_error from console/SKILL.md.
import unity_skills
# Check editor state before operations
state = unity_skills.call_skill("editor_get_state")
if state['isCompiling']:
print("Wait for compilation to finish")
# On resume or after file-watch notification, inspect semantic changes first.
changes = unity_skills.call_skill("editor_get_changes", since=last_cursor)
last_cursor = changes["cursor"]
# Get full context (useful for understanding current state)
context = unity_skills.call_skill("editor_get_context", includeComponents=True)
for obj in context['selectedGameObjects']:
print(f"Selected: {obj['name']} (ID: {obj['instanceId']})")
# Select and operate on object
unity_skills.call_skill("editor_select", name="Player")
selection = unity_skills.call_skill("editor_get_selection")
# Safe experimentation with undo
unity_skills.call_skill("gameobject_delete", name="TestObject")
unity_skills.call_skill("editor_undo") # Restore if needed
# Execute menu command
unity_skills.call_skill("editor_execute_menu", menuPath="File/Save")
# Step through Play Mode frame-by-frame and assert state changed
import time
# Enter Play Mode with a generous observation window so there's time left to step
capture = unity_skills.call_skill("editor_play_capture", durationSeconds=30)
while True:
capture_status = unity_skills.call_skill("job_status", jobId=capture["jobId"])
if capture_status["currentStage"] not in ("entering_play_mode", "domain_reload_recovery"):
break # Play Mode has been entered; capture_status["currentStage"] == "observing"
time.sleep(0.2)
before = unity_skills.call_skill("editor_playmode_inspect", name="Player")["transform"]["position"]
step = unity_skills.call_skill("editor_playmode_step", frames=3)
while True:
step_status = unity_skills.call_skill("job_status", jobId=step["jobId"]) # not job_wait, see above
if step_status["status"] in ("completed", "failed"):
break
time.sleep(0.1)
after = unity_skills.call_skill("editor_playmode_inspect", name="Player")["transform"]["position"]
assert after != before, "Player did not move after 3 frames"
print(step_status["details"]["frameCount"], step_status["details"]["isPaused"])editor_get_changes before reading scene fileseditor_get_context to get instanceId for batch operationsExact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.
Full transport-level codes (COMPILING/RATE_LIMIT etc.) → ../../references/protocol-error-codes.md
| Error | Trigger | Fix |
|---|---|---|
TARGET_NOT_FOUND | The requested GameObject or menu item could not be found (e.g., Menu item not found or failed). | Verify the object with gameobject_find / scene_get_hierarchy, or check the exact menu path spelling before retrying. |
SKILL_ERROR | A play-mode state conflict occurred, such as Already in play mode, Not in play mode, or an active frame-step job already exists. | Match the editor state to the skill requirement: enter/exit play mode first, or wait for the existing step job to finish. |
© Besty0728, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in SkillsForUnity/unity-skills~/skills/editor of Besty0728/Unity-Skills.
Open the folder on GitHubat commit 12a40e4
Unity Editor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Unity Editor this skillBesty0728/Unity-Skills | 1.8k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Fantasy Framework Development Guideqq362946/Fantasy | 1.4k | — | ~5.8k | Automated safety check: Pass | Custom licence | |
| Locus Unity BridgeMisaka-Mikoto-Tech/agent-skills | 275 | — | ~4k | Automated safety check: Pass | MIT | |
| AibridgeFlameskyDexive/Legends-Of-Heroes | 929 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Uloop Control Play ModeCyberAgentGameEntertainment/NovaShader | 1.6k | 1 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Unity PluginTomLeeLive/openclaw-unity-plugin | 106 | — | ~5.1k | Automated safety check: Pass | Apache-2.0 |
qq362946/Fantasy
Development and review guide for the Fantasy C# distributed game server framework: ECS, FTask, routing, service discovery, config and databases.
Misaka-Mikoto-Tech/agent-skills
A skill your agent uses when an agent needs to inspect or control a real Unity Editor through Locus, especially when Unity MCP is unavailable, named-pipe discovery is needed, C must be executed, or…
FlameskyDexive/Legends-Of-Heroes
Unity Editor and Player Runtime CLI integration for AIBridge.
CyberAgentGameEntertainment/NovaShader
Control Unity Editor Play Mode. An agent skill from CyberAgentGameEntertainment/NovaShader.
TomLeeLive/openclaw-unity-plugin
Control Unity Editor via OpenClaw Unity Plugin. An agent skill from TomLeeLive/openclaw-unity-plugin.
MacacaGames/MacacaViewSystem
Migrate MacacaViewSystem ViewElement pools from KeepForever to an evidence-based recovery policy while preserving lifecycle, requested-pool, unique, async, event, and Addressable ownership safety.
Besty0728/Unity-Skills
Automate the Unity Editor through a local REST API — scripts, scenes, prefabs, assets, materials, lighting, tests and hundreds of other Editor operations.
Besty0728/Unity-Skills
Edit Unity Animator Controllers and drive runtime parameters
Besty0728/Unity-Skills
Advise on Unity gameplay and system architecture. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Unified batch and async-job orchestration. An agent skill from Besty0728/Unity-Skills.
Besty0728/Unity-Skills
Drive Unity Behavior behavior graphs and blackboard variables
Besty0728/Unity-Skills
Capture and query the Unity Editor console. An agent skill from Besty0728/Unity-Skills.
Works with
Categories
Control and observe the Unity Editor state. An agent skill from Besty0728/Unity-Skills. Unity Editor is an agent skill from Besty0728/Unity-Skills.
Unity Editor fits situations like: game Development work in your project.
Run `npx skills add Besty0728/Unity-Skills --skill unity-editor -a claude-code`. Or copy the skill folder (SkillsForUnity/unity-skills~/skills/editor in Besty0728/Unity-Skills) into .claude/skills/unity-editor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Besty0728/Unity-Skills --skill unity-editor -a codex`. Or copy the skill folder (SkillsForUnity/unity-skills~/skills/editor in Besty0728/Unity-Skills) into .agents/skills/unity-editor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Besty0728/Unity-Skills --skill unity-editor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unity-editor, .gemini/skills/unity-editor, .github/skills/unity-editor and .opencode/skills/unity-editor in your project.
SKILL.md names no scripts, command-line tools or credentials: Unity Editor is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Unity Editor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Unity Editor: Fantasy Framework Development Guide (qq362946/Fantasy, 1.4k stars), Locus Unity Bridge (Misaka-Mikoto-Tech/agent-skills, 275 stars), Aibridge (FlameskyDexive/Legends-Of-Heroes, 929 stars) and Uloop Control Play Mode (CyberAgentGameEntertainment/NovaShader, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Besty0728 (a GitHub user) maintains it in Besty0728/Unity-Skills, which has 1,814 GitHub stars. The repository holds 82 skills in this directory. The repository was last updated on October 6, 2026.
Source: Besty0728/Unity-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.