Write one skill.
Run it everywhere.
Authoring an AutoVault skill is writing a single SKILL.md that declares what it does, what it needs, and how it should be rendered for each calling agent. The vault handles the rest — validation, signing, scoping, transformation.
Anatomy of a SKILL.md
Hover any block in the file below to see what it does and why it's there. The colored bands show how the validation gate parses each section.
1---2name: extract-pdf3version: 1.4.04description: "Extract structured text from PDF files."5author: autoworks-ai6license: Apache-2.078tools_required:9 - browser.fill_form10 - browser.click11 - fs.read12 - fs.write1314transformations:15 claude-code:16 browser.fill_form: chrome-devtools17 fs.read: read18 codex:19 browser.fill_form: browser_form20 fs.read: file_read2122permissions:23 network: false24 fs_scope: ["./inputs", "./outputs"]25 egress: deny2627---2829# Extract PDF text3031Use this skill when the user provides a PDF path32and asks for its text contents, structure, or33summarization. Returns markdown with preserved34headings, lists, and table layout where possible.
The transformation manifest
This is the part that distinguishes AutoVault from every other registry. The manifest is a flat dictionary keyed by agent identifier, mapping canonical capability names to whatever each agent calls them.
You don't have to map every agent. Unmapped agents fall through to the canonical name — which usually fails, which is intentional. Better to fail loudly with tool browser.fill_form not found than silently with a confused caller.
If your team uses an agent we haven't mapped, just add it to the manifest. The renderer will use it as soon as the next scope refresh fires.
Permissions: declared vs. enforced
This trips up new authors, so it's worth being clear: AutoVault is a content provider, not an executor. The vault never runs your skill. Permissions you declare are signals to the host agent about what the skill expects to do.
- Declare exact canonical tools.
- Declare network and filesystem scope.
- Keep secrets as named references only.
- Hide shell access inside prose.
- Embed credentials in frontmatter.
- Ship a generic helper skill with broad powers.
Try the gate yourself
This is the same five-step pipeline that runs on every skill admitted to a real vault — minus the actual signing step (we don't have your private key). Paste a SKILL.md, fetch a GitHub/raw URL, and click Run gate to see what passes, what warns, and what fails.
Publishing through the gate
Once your skill is happy locally, you have two paths to a shareable, validated artifact:
The other path uses autovault publish to push directly from the CLI — useful for quick iteration, with the same gate enforcement. Either way, the skill is signed against your vault's keypair before it leaves your machine.