A skill is reusable operating knowledge an agent loads automatically. Curate skills once in Drafted, pin the ones a project needs, and both Claude and Codex pick them up at the start of every session — no copy-pasting .claude/skills between repos, no Claude-only lock-in.
At its core a skill is a SKILL.md — the instructions, plus a name, a description, and the trigger text that tells the agent when to reach for it. The description is the trigger: when the task matches, the agent loads the skill before it acts.
Alongside it, a skill can carry scripts/ it can run, references/ it can cite, and templates/ it can fill in. It encodes how to do a class of work well — evidence-first debugging, a checking-engineer calc pass, a categorized legal redline — not just whether the agent can.
The canonical skill content, org-scoped and behind auth. It's the source of truth — what you browse, search, create, and improve in the Drafted app. The mature, ready-today part, with 30+ curated skills out of the box.
Each project lists the skills it uses and pins each to a version — drafted:<slug>@<hash> for a pinned skill from the library, or repo:<path> for one that lives in the repo itself.
Pinned skills are materialized into a local cache and run from there — including their scripts, offline. The cache is the contract the agent reads at session start.
<causeway-skills> index Codex reads as instructions — the same skills, made legible to an agent with no native skill loading..claude/skills into each repo can't do. Codex support is a generated index, not native skill loading — honest, and still the difference.
Create and refine the skill in Drafted, the registry.
Add it to a project's manifest, pinned to a version.
It's cached locally and injected at the start of every session.
When the skill is improved upstream, the pin is flagged.
⚠ outdated → @e7f0291
Bump the pin to take the better version — on your terms.
Every pin is a content hash of the skill bundle. Freshness is a hash comparison — the pinned hash against the current canonical — so “outdated” is a fact, not a guess.
Pins don't move on their own. A project runs exactly the version it pinned until someone bumps it.
Skills live inside your org behind auth — you only ever resolve your own org's skills. The registry is the trust boundary for what a project can pull.
Scripts run locally on your machine — they are not sandboxed. The trust model is org-scoped content plus a provenance marker, so you know where a skill came from. Treat a skill's scripts as code you're choosing to run.
The library and the Claude + Codex value are ready now — browse, search, create, and improve skills in the app. The per-project local pipeline (materializing pins into a local cache and injecting them at session start) is real but new — it shipped this week and is lightly dogfooded so far. It runs with the Drafted CLI installed and, today, via the Causeway runtime that materializes pins and injects them — not something every editor does natively.
npm install -g drafted@latest
Browse the curated library, search for what you need, or author your own skill in the app.
Browse the library
Add the skills a project needs to its manifest, pinned to a version you control.
drafted:<slug>@<hash>
With the CLI and Causeway runtime, pinned skills materialize locally and are injected at session start — in Claude and Codex.
Start a session
Build your team's skill library and run it across every project — and both agents.
Browse the library →