04.25Skill authoring
Create Skill: Claude Code skill for writing agent skills
Claude Code skill for writing agent skills, adapted at AR Labs from Daniel Miessler's PAI: folder structure, trigger descriptions and traceable imports.
Create Skill is the Claude Code skill AR Labs uses to write agent skills: packaged instructions, with any scripts, that an agent loads only when a task needs them. It is adapted from the create-skill skill in Daniel Miessler's open-source Personal AI Infrastructure (PAI, since renamed LifeOS), the project our agent setup was originally built on; we have since revised it and added an import method. It guides an agent through writing a new skill, or updating an existing one, so that it follows both the open Agent Skills format and our own conventions.
It also holds our method for importing a skill from someone else's public repository, so that every imported skill can be compared with its original and upgraded cleanly.
A skill, for this purpose, is a folder an agent loads when a request matches its description: a required SKILL.md with a name and description in its front matter, and optional folders for scripts, reference documents and assets.
How it works
Writing a new skill is six steps: understand its purpose, its triggers and the tools it depends on; choose a simple skill (one file) or a complex one (with workflows, scripts and references); create the folder; write the SKILL.md; add supporting files; and test it by triggering it with natural language and checking that every reference resolves. A validation checklist closes the work: every referenced command, agent and tool exists, the trigger phrases do not collide with another skill's, and the SKILL.md body stays under 500 lines, ideally under 300.
Importing someone else's skill follows a stricter path:
flowchart TD O["Check for overlap with existing skills"] --> S["Snapshot upstream, verbatim"] S --> P["Record provenance"] P --> I["Install a live copy, verbatim"] I --> N["Lab changes in a separate notes file"] N --> T["Save the video transcript"]
- Check for overlap. If one of our skills already does the job, the import is not installed. Matt Pocock's research skill was skipped for this reason, because our own research skill already answered the same name.
- Snapshot it pristine. The whole upstream folder is copied verbatim into a vendor library, with the upstream licence. The snapshot is never edited; an upgrade is a new snapshot.
- Record provenance: the upstream path, the commit hash, the date, the video or post that prompted the import, and whether the skill is installed.
- Install the live copy verbatim. Our adaptations go in a separate notes file beside
SKILL.md, reached by a single pointer line under the front matter. That line is the only edit to the upstream text, so the difference from the original stays small and readable. - Save the source. If a video prompted the import, its transcript is kept with our transcripts.
The judgement it encodes
The description is the trigger. An agent sees only a skill's name and description until it decides to load it, so the description must say plainly what the skill does and list the phrases that should call it, in a "USE WHEN" clause, within the format's limit of 1,024 characters. The skill's formula is: what it does, using what, and when to use it. Its troubleshooting guide lists a generic description and two skills claiming the same phrase among the usual reasons a skill fails to activate.
One skill, one purpose. A description that runs past three sentences, a name containing "and", or a trigger list of ten items are signs that a skill should be split, by domain or by stage of work.
Load detail when it is needed. A short SKILL.md points to references and workflows by relative path; the agent reads them when a step requires them. This keeps an agent's context small until the knowledge is used.
Never edit someone else's text in place. Keeping upstream text verbatim, with our changes beside it, means credit stays clear and an upgrade is a re-copy rather than a merge. That includes an imported skill's description, which stays as its author wrote it even when it has no "USE WHEN" clause.
Keep files for other agent platforms. Imported skills sometimes ship configuration for other agent programs, such as OpenAI's Codex. We keep them, because our skills are meant to run on more than one platform.
What exists today
We use the skill whenever we add or change a skill. Imports managed this way include skills from Matt Pocock, HumanLayer, Emil Kowalski, Paul Bakaus's Impeccable and Next Level Builder's UI UX Pro Max, each kept with its licence and the upstream commit it was taken from.
Example
An abridged provenance record from our vendor library, for its imports of Matt Pocock's skills:
# Vendored: Matt Pocock's skills
Pristine upstream snapshots of skills taken from mattpocock/skills
(MIT, see LICENSE).
- Wayfinder set (wayfinder, grilling, domain-modeling, prototype,
research, setup): commit 3cca18b3, taken 2026-09-06, prompted by
the video "Wayfinder: nothing is too big to plan".
- pr, retro, writing-for-agents: commit f3fc5632, taken 2026-10-08,
prompted by the video "New skills: v1.3 brings PR, implement-spec
and retro".
## Local install status
wayfinder, grilling, domain-modeling, prototype, pr, retro and
writing-for-agents are installed live as verbatim copies; wayfinder,
retro and pr each add a notes file reached by one pointer line.
His research skill is not installed: the lab's own research skill
already answers that name. This directory is the pristine reference;
upgrade by re-snapshotting from upstream, never by editing here.