CtrlK
BlogDocsLog inGet started
Tessl Logo

script-update-or-create

Write a `.cs` script file (create or overwrite) with the provided C# code. Validates syntax via Roslyn before write — invalid code is rejected with error details and the file is left untouched. Refreshes the AssetDatabase and delivers the final result via `requestId` after Unity finishes the triggered compilation. Use 'script-read' to inspect existing content first.

60

Quality

69%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./Unity-MCP-Plugin/.claude/skills/script-update-or-create/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The content is highly actionable with copy-paste-ready CLI commands and a clear behavior sequence. Its weakness is redundancy — overlapping Inputs/Input sections and a Behavior paragraph that repeats the description — which costs conciseness tokens without adding information.

Suggestions

Consolidate the '## Inputs' prose list and the '## Input' table plus '## Input JSON Schema' into a single section to remove duplicated field definitions.

Trim the '## Behavior' paragraph to avoid restating what the frontmatter description already conveys, keeping only the post-compilation delivery detail.

Add an explicit validation feedback step (e.g., 'If Roslyn validation fails, fix the reported syntax errors in `content` and retry — the file is not written until validation passes') to make the validate→fix→retry loop explicit.

DimensionReasoningScore

Conciseness

Mostly efficient but redundant: the prose under '## Behavior' restates 'Creates any missing parent directories, writes the file, then calls AssetDatabase.Refresh' which largely repeats the description and the inputs section; the duplicated '## Input' table plus '## Input JSON Schema' re-state the same two fields already described under '## Inputs'.

3 / 5

Actionability

Fully executable guidance: the '## How to Call' block gives copy-paste-ready `unity-mcp-cli run-tool` commands plus file-based and stdin variants, a troubleshooting fallback (`npx unity-mcp-cli`), and a concrete sample path ('Assets/Scripts/MyScript.cs').

5 / 5

Workflow Clarity

The behavior is clearly sequenced ('Creates any missing parent directories, writes the file, then calls AssetDatabase.Refresh and schedules a post-compilation notification'), and the description notes invalid code is rejected with error details — but the body's workflow does not surface an explicit validate→fix→retry feedback loop for syntax failures, leaving a minor validation-checkpoint gap.

4 / 5

Progressive Disclosure

Well-organized sections (Inputs, Behavior, How to Call, Troubleshooting, Input, Output) for a short single-purpose skill under 50 lines with no external bundle files; minor organization gap from the duplicated Input/Inputs sections rather than references to separate files.

4 / 5

Total

16

/

20

Passed

Description

63%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is highly specific and well-differentiated, clearly explaining the full behavior including validation and post-compilation delivery. Its main weakness is the absence of an explicit 'when to use' trigger clause and reliance on technical jargon rather than natural user-facing terms.

Suggestions

Add an explicit trigger clause such as 'Use when creating or updating a C# script (.cs) in a Unity project' to satisfy the 'when to use' requirement and lift completeness.

Include natural user-facing synonyms (e.g., 'create a Unity script', 'update script file', 'write C# code') alongside the technical jargon to improve trigger-term quality.

Frame in consistent third person and verify no implicit second-person phrasing creeps in as the description grows.

DimensionReasoningScore

Specificity

Lists multiple concrete actions: 'Write a .cs script file (create or overwrite)', 'Validates syntax via Roslyn before write', 'invalid code is rejected with error details and the file is left untouched', 'Refreshes the AssetDatabase', 'delivers the final result via requestId after Unity finishes the triggered compilation' — comprehensive coverage of the skill's behavior.

5 / 5

Completeness

The 'what' is clearly and comprehensively described, but there is no explicit 'when to use' / trigger guidance clause ('Use when...'); the only conditional guidance is 'Use script-read to inspect existing content first', which refers to a different skill rather than stating when to invoke this one, so per the rubric completeness caps at 3.

3 / 5

Trigger Term Quality

Includes relevant technical terms ('.cs script file', 'C# code', 'Roslyn', 'AssetDatabase', 'Unity', 'compilation') but these are technical jargon rather than natural phrases a user would say; missing common user-facing variations like 'create a script', 'update script', 'Unity script'.

3 / 5

Distinctiveness Conflict Risk

Clear niche (write/create/overwrite .cs Unity scripts with Roslyn validation and AssetDatabase refresh) that is mostly distinct; minor overlap risk only with the closely related 'script-read' skill it references, which is appropriately distinguished.

4 / 5

Total

15

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
IvanMurzak/Unity-MCP
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.