skills capability gives Wolffish the tools to author, load, test, edit, and delete its own capabilities at runtime. You describe the ability in plain language; Wolffish produces a working skill and verifies it before handing back — no filesystem, no code, no restart.
This page is the let-Wolffish-do-it path. If you’d rather build a capability by hand in the filesystem, see Creating Capabilities.
When it self-authors a skill
Wolffish promotes work into a reusable capability when it’s recurring, complex, and worth keeping — a “do this every time” request, a multi-step dance you’ve watched it repeat by hand, or a real tool it doesn’t have yet. It picks the smallest shape that fits:- a pure skill — a written procedure it follows using tools it already has,
- a plugin skill — a real new tool backed by JavaScript,
- a plugin with dependencies — when the tool needs an npm package or a bundled script (even another language, like a Python worker).
The tools it uses
Self-authoring is powered by theskills capability. You never call these yourself; Wolffish does, on your behalf:
See Built-in Capabilities → skills for the full reference.
How it builds and verifies — in a single turn
Wolffish doesn’t write files and hope. Because a freshly created tool becomes callable on its very next step, it closes the loop itself before telling you it’s done:1
Create
skill_create writes the SKILL.md plus plugin/index.mjs, validates them, and reloads — all checked before anything lands on disk.2
Test
It calls the new tool with a realistic input and reads the actual result.
3
Edit if needed
If the output is wrong, it patches the plugin with
file_write and skill_reloads — the edited code runs on the next call.4
Verify, then conclude
It re-tests until the tool genuinely works, then reports what it made and that it confirmed it by running it.
execute dispatcher or per-tool handlers, and several return shapes) and derives the SKILL.md boilerplate for you. You don’t have to know the exact format; a reasonable attempt becomes a working skill instead of an error.
A complete example: build, exercise, and delete a skill in one turn
You can drive the whole lifecycle from a single message. Copy this prompt and paste it into chat — it has Wolffish create a tinycoinflip skill, use it, edit it, toggle it, and remove it, exercising every part of self-authoring end to end:
Coin-flip lifecycle prompt
Everyday self-authoring requests
You rarely spell out the steps. The clearest requests name a recurring trigger and the outcome you want:- “From now on, whenever I send you a CSV, clean it and reply with a summary table.”
- “Make yourself a skill that posts our daily standup to Slack.”
- “You keep doing this resize-and-watermark by hand — turn it into a reusable tool.”
- “Teach yourself to look up parcel tracking from a tracking number.”