Skip to content

Skills

A Skill is a set of instructions that an AI client refers to. It is not loaded while it only sits inside the package, so you install it into the project (a Skill installed from the window is rewritten to the new version automatically when the package is updated).

Open Tsukimi MCP from the TsukimiCode menu in Unity and press the main button to install (it is written together with the client configuration; the window as a whole is covered in MCP server).

The Tsukimi MCP window. The Skill row reads up to date · shared by every client, and the Server, Skill, and Final check rows are lined up above the main button

LocationWhat it does
Skill rowThe installation state. Every client reads the same Skill
Main buttonInstalls the bundled Skill into 2 places, .agents/skills/ and .claude/skills/. It is installed regardless of the client checkboxes
Add under Note in AGENTS.md in MoreAdds a short note to the one file that is always read, whatever the task
TextMeaning
up to date · shared by every clientThe current version of the Skill is installed
out of date · shared by every clientAn earlier version of the Skill is installed. A Skill installed from a window older than 0.9.0 also shows this
out of date (changed by hand) · shared by every clientAn earlier version of the Skill is installed, and some files were changed by hand after installation
not installed · shared by every clientNot installed
source not foundThe source files of the Skill are missing from the package

What happens when the main button is pressed

Section titled “What happens when the main button is pressed”
File19 bundled files written to 2 places, so 38 files
When a file of the same name already existsFiles that are still as they were when last installed are overwritten as they are. Files changed since installation are listed for confirmation before they are overwritten
RecordA .tsukimi-installed.json is placed in each install location, holding the installed version and a fingerprint of each file’s contents. The rewrite after a package update is decided from this record
When it takes effectClients read them only at startup. Restart after pressing
CaseWhat happens
WhenWhen Unity loads scripts (at startup, or after the package is updated). Only when the version recorded in the install location differs from the current version; nothing happens for the same version
Files that are still as they were installedRewritten to the contents of the new version
Files that no longer exist in the new versionDeleted if they are still as installed. Kept if they were changed by hand
Files changed by hand after installationLeft as they are, and named in a warning in the Console. To replace them, press the main button in the window
Installs with no recordNot rewritten automatically. A Skill installed from a window older than 0.9.0 has no record, so reinstall it once with the main button (if the contents match the current version, only the record is created)
After rewritingOne line appears in the Console. Restart the client

AGENTS.md is a file that is always read, whatever the task. What is added is two things: “this language is not in the training data, so run inspect before deciding an error is a bug”, and when to refer to each of the next 3 Skills.

How to addOpen More in the window and press Add under Note in AGENTS.md
What it changesOnly the region between the markers. Anything you wrote yourself in the same file stays
How it differs from a SkillA Skill is read only when the task matches it, while AGENTS.md is always read
After updating the packageIt is not rewritten automatically. Press Add again and only the region between the markers becomes the text of the current version
SkillWhen it is read
tsukimiWhen writing, fixing, or reviewing T# code. When a TUKI diagnostic or a compile error appears. Before answering whether a given form can be written, and before saying that a form is impossible or that this looks like a compiler bug
tsukimi-portingWhen moving existing code written for UdonSharp over to T#. A whole world, a single Behaviour, or a fragment lifted from a guide
mochiWhen writing, fixing, or reviewing a MoCHI file (.mochi.xml). When a MoCHI diagnostic appears. Before saying that something cannot be placed in MoCHI
Its premiseThis language isn’t in the training data, so it doesn’t write from memory: inspect decides
What it asks forSend what you wrote to inspect, and don’t call it done until test is green
How to read a diagnosticSort by the cause category (origin). subset is an intended error, and rewriting the form makes it compile (MCP server)
When you may report itThe steps to take before saying that something looks like a compiler bug are laid down
What you check yourselfWhether the completion report comes with inspect and test results

It carries 6 reference files.

FileContents
before-writing.mdWhat to decide before you start writing. Only the decisions that force a rewrite when you get them wrong
beyond-csharp.mdFeatures with no plain-C# counterpart. The side you can’t think of unless you know it exists
synchronization.mdSynchronization, and everything none of it guarantees
testing.mdThe difference between compiles being true and behaving as intended
reporting.mdWhen something may be reported as a compiler bug, and how to write it up
reference-index.mdAn index of every page of this reference, one line per page on what it covers. A copy of the index as it stood when the package was built
What it coversWhat to measure before moving, what order to clear the diagnostics in, and the changes that alter meaning
What to do firstMeasure with inspect before making any changes
How changes are classifiedSeparates the forms that need changing from the ones that don’t
The most expensive decisionWhat holds the data (an array, or a row of Behaviours)

It carries 2 reference files.

FileContents
already-works.mdForms that work as-is. A form you avoided emits no diagnostic, so the belief that it can’t be done never clears on its own
rewrites.mdForms that need changing. Every one was actually compiled before being written down
Its premiseMoCHI is not in the training data, so it doesn’t write from memory: the result of inspect decides
How to checkPass the mochi argument to the same inspect used for T#. It reads files from disk, so have the file saved first. Have unsaved text passed in text and files (MoCHI Reference (experimental))
How to read a diagnosticAs with T#, sort by the cause category (origin)
What inspect cannot tell youHow it looks, how the light falls, and how it feels to walk around. It asks you to check these in Unity

It carries 8 reference files.

FileContents
markup.mdThe accepted elements, attributes, and values. Anything not listed here is an error, with a diagnostic that names what is accepted instead
components-audio.mdThe attributes, types, and default values of the audio components
components-other.mdThe same contents for the components that fall under no other category
components-physics.mdThe same contents for the physics components
components-rendering.mdThe same contents for the rendering components
components-textmeshpro.mdThe same contents for the TextMeshPro components
components-ui.mdThe same contents for the UI components
components-vrchat.mdThe same contents for the VRChat components