Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when the user asks to create, write, compose, or design a new agent skill — turning an idea, notes, requirement, or repeated workflow into a SKILL.md with eval cases and a trigger set through an interview → draft → critique → refine loop.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 62% | 0% |
Turn a human's idea into a finished Agent Skill through a structured loop: interview the human for the raw material, draft against the anatomy contract, critique with a rubric of qualities no linter can check, and refine until the harness — not taste — says the skill works. The using-shakespii skill teaches how to drive the CLI; this skill decides what the new skill should say.
wants captured as a skill.
worked example, memory excerpts.
shakespii --version succeeds); setup lives inthe using-shakespii skill's Preconditions.
eval runs, trigger measurement) delegates to it.
and approves the interview's answers.
Phase 1 — Interview. Ask one question at a time, multiple-choice where the options are enumerable, until every anatomy section has raw material:
least three lookalikes that must not.
environment it assumes.
The interview ends when you can state the kebab-case name, the purpose, and the trigger list back and the human confirms them — or when the task prompt already supplied and approved all three. In a non-interactive run where the prompt leaves questions open, ask them all in one batch as your final output instead of guessing.
Phase 2 — Draft. Scaffold, then fill from the interview:
bashshakespii init <name>
Fill every scaffold section, replacing each placeholder token. Craft rules the linter cannot enforce:
commands, exact formats); leave open where judgment beats prescription. A step that says "run these five commands in order" and a step that says "choose an appropriate threshold" should both survive the question "why this tight, why this loose?".
lists, long references) moves to references/ files linked where used.
named — not with the skill's implementation.
Phase 3 — Critique. Two layers, in order:
fixing what it catches.
--json, apply remediations, re-lint until exit 0, handle warnings explicitly.
Phase 4 — Refine. Author the eval suite, then let the harness judge:
evals/evals.json (at least three cases, each an in-skillbehavior branch — happy path, refusal or error branches, variants; scope negatives belong in evals/triggers.json) following references/headless-eval-rules.md.
evals/triggers.json (at least sixteen labeled queries, withnear-miss negatives on the boundary of any neighboring skill).
approved in the task prompt:
bashshakespii test <dir> --run --triggers
--fresh;stop once accuracy holds at or above 0.8 without regressing queries that already passed. The using-shakespii skill documents the loop's CLI semantics.
Phase 5 — Present. Hand the human the skill directory, its lint output, and its scenario and trigger results, plus any open questions. Do not install the skill anywhere; installation is a separate, explicitly approved act.
SKILL.md, README.md, evals/evals.json,evals/triggers.json, optional references/) that lints clean, with recorded scenario and trigger results.
The human says: "I want a skill that helps agents write good commit messages."
Interview (excerpt). Q: "What does a bad commit message look like in your repos — what specifically goes wrong?" A: "They describe the diff instead of the why; bodies restate the subject." Q: "Name three requests that should trigger this skill." A: "Write the commit message for this change; clean up my commit history wording; draft a PR-merge commit."
Draft (excerpt). The interview's answers become the description —
yamldescription: "Use when the user asks to write or improve a commit message or commit-history wording — leads with the change's why, keeps the subject imperative and under fifty characters, and never restates the subject in the body."
— and the bad-message example from the interview becomes the worked example: input, a diff adding a retry wrapper around one HTTP call; output, subject "retry transient checkout-service timeouts" with a body explaining the incident that motivated it.
reading them from a task prompt that already supplies them.
own question.
the eval runs check whether the content is any good.
file shows how to reword them.
Other measured skills in the registry, with their headline benchmark lift.