Install any skill in seconds. Free to start, no credit card required.
Get Started Free →besty0728/unity-component
Manage GameObject components — add, remove, list, copy, enable/disable, and read/set component fields.
Passed 17 of 19 test cases with the skill, and 5 of 19 without it.
and 13 more in the full report
12 fixed5 passed either way2 still failing0 broke4 errored
Tokens, turns and time describe resource use, not a dollar price.
One of 12 test cases the skill fixed. Same model, same prompt, with and without the skill.
An automated workflow attempts to remove a component under SemiAuto / Approval operating mode. What response occurs?
| Checked | Without skill | With skill |
|---|---|---|
| Identifies component_remove as forbidden under Approval mode. | Missed | Passed |
The instructions your model reads when the skill loads.
Add, remove, copy, toggle and edit components. Parameters come from the schema (recommend includeSchema=true or /skills/schema?names=), which notes the non-obvious ones — never from a skill's name. Execution, dryRun and verification rules: root SKILL.md.
component_list, component_get_properties, component_get_serialized_properties are SemiAuto (read-only); every writer is FullAuto. component_remove / component_remove_batch (Operation.Delete) are NeverInSemi: MODE_FORBIDDEN under Approval/Auto, run only under Bypass or an Allowlist hit → operating mode.
name, instanceId or path (plus entityId, resolved to the path), matched like GameObjects: an ambiguous fuzzy name returns TARGET_NOT_FOUND with candidates, non-exact matches are listed in resolutionNotes. Batch items take only name / instanceId / path: an entityId item key is ignored (named in warnings), so the item finds no target. component_copy* use source* / target* identifiers.componentType (required): the class name — Rigidbody, BoxCollider, Namespace.ClassName for custom scripts. Unity, UI, TextMeshPro, Cinemachine and Input System namespaces are searched first, then a case-insensitive scan that takes the first matching type; the response's component / fullTypeName show what was resolved.component_set_property / component_get_properties use C# member names (mass, isKinematic; matched case-insensitively, private fields writable too). component_get_serialized_properties / component_set_serialized_property use SerializedProperty paths (m_Mass, items.Array.data[0]; a bare mass is retried as m_Mass). To convert, drop m_ and lowercase the first letter; an m_ name sent to component_set_property fails with "Property/field not found" and lists the writable members.component_set_property, its batch, batch_preview_set_property): exactly one of assetPath (project asset) > referencePath (scene object by path) / referenceName (by name, first match) > value, checked in that order; a lower one sent alongside is silently ignored. Sending none writes the type's default (0 / false / null).value encoding: numbers and bools (true/false, 1/0, yes/no, on/off; others rejected) as JSON or strings; enums by member name, case-insensitive; vectors, Quaternion (3 values = euler, 4 = xyzw), Rect (x,y,w,h) and Bounds (cx,cy,cz,sx,sy,sz) as comma strings ("1,2,3"); colours as "r,g,b[,a]" (0–1), #RRGGBB[AA] or a name (red, green, blue, white, black, yellow, cyan, magenta, gray/grey, clear); LayerMask as a layer name or an integer mask. The JSON object form ({"x":1,"y":2,"z":3}, {"r":1,"g":0,"b":0}) works only for Vector2/3/4 and Color/Color32, with every component required (colour a defaults to 1; an explicit null counts as missing); partial objects, unknown keys and non-numbers are rejected naming the expected keys.component_set_property returns valueSet read from the component after the write, plus valueRequested only when the setter clamped or normalised it; component_set_serialized_property re-reads after applying. No follow-up read needed.rolledBack:true, other items reverted:true); unknown item keys are named in warnings.Use a *_batch skill for 2+ objects or several properties (one call instead of N).
| Single | Batch |
|---|---|
component_add | component_add_batch |
component_remove | component_remove_batch |
component_set_property | component_set_property_batch |
component_set_serialized_property | component_set_serialized_property_batch |
No batch: component_list (types and enabled state), component_get_properties (C# members and values), component_get_serialized_properties (Inspector paths), component_copy, component_copy_exact (verifies every serialized field), component_set_enabled (Behaviour/Renderer/Collider on or off — not component_set_property).
Per-skill tables, item fields and return shapes: reference/<skill_name>.md — rarely needed, the schema notes the parameters.
DO NOT (common hallucinations):
test cases passed, vs 5 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.