Skip to main content

Agent Skills

Skills that make a coding agent write code with Aspid.FastTools instead of the raw Unity API.

Quick start​

Install Aspid.FastTools in your Unity project, then run in the project root:

npx skills add VPDPersonal/Aspid.FastTools
Profile Simulate and the neighbor search
Without skillsWith skills
private static readonly
ProfilerMarker _simulate =
new("Flock.Simulate");
private static readonly
ProfilerMarker _neighbors =
new("Flock.FindNeighbors");

public void Simulate()
{
using var _ = _simulate.Auto();
using (_neighbors.Auto())
FindNeighbors();
Integrate();
}
public void Simulate()
{
using var _ = this.Marker();
using (this.Marker()
.WithName("Neighbors"))
FindNeighbors();
Integrate();
}

Install and update​

One command installs the skills into Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI and other agents — into their folders inside the project (.claude/skills, .agents/skills). Commit those folders and the whole team gets the skills.

FlagDoes
-a claude-codeinstalls into one agent only
-s aspid-profiler-markerinstalls one skill
-yinstalls without prompts
--listlists the skills without installing

To update the package skills, run the install again:

npx skills add VPDPersonal/Aspid.FastTools -y

npx skills update updates every skill in the project, not only these.

Without a tag, add takes the skills from the main branch, which can already describe API your package version does not have. To match the skills to the installed package, add them from its release tag; npx skills update then stays on that tag, and after a package upgrade you run add again with the new tag:

npx skills add VPDPersonal/Aspid.FastTools#v<version>

Releases up to and including 1.0.0-rc.8 do not ship these skills; with them, install from main, which may describe API your version does not have.

Skills​

Skills activate automatically for matching requests.

aspid-profiler-marker​

Profile a method or a section with this.Marker(). Guide: ProfilerMarkers.

AgentFlockSimulation.cs
>Profile Simulate and the neighbor search
Skill aspid-profiler-marker
Update FlockSimulation.cs +2
public void Simulate(){    using var _ = this.Marker();    using (this.Marker().WithName("Neighbors"))    FindNeighbors();    Integrate();}

aspid-visual-element-fluent​

Build and style UI Toolkit elements in C#. Guide: VisualElement Extensions.

AgentAbilityConfigEditor.cs
>Build the inspector header with a title
Skill aspid-visual-element-fluent
Update AbilityConfigEditor.cs +5
public override VisualElement CreateInspectorGUI(){    return new VisualElement()        .SetPaddingX(12)        .SetPaddingY(10)        .AddChild(new Label("Ability Config")            .SetFontSize(14));}

aspid-serializable-type​

Store a System.Type and pick types in the Inspector. Guides: Serializable Type System, SerializeReference Selector, ComponentTypeSelector.

AgentWeaponMount.cs
>Add a weapon class picker to the Inspector, no abstract ones
Skill aspid-serializable-type
Update WeaponMount.cs +3
public sealed class WeaponMount : MonoBehaviour{    [TypeSelector(Allow = TypeAllow.None)]    [SerializeField]    private SerializableType<Weapon> _primaryWeapon;}

aspid-enum-values​

Map enum members to values. Guide: EnumValues.

AgentDamageReceiver.cs
>Add a damage multiplier per DamageType to the Inspector
Skill aspid-enum-values
Update DamageReceiver.cs +5
public sealed class DamageReceiver : MonoBehaviour{    [SerializeField]    private EnumValues<DamageType, float> _multipliers;
    public float GetMultiplier(DamageType type) =>        _multipliers.GetValue(type);}