Skip to content

Commit 37fc4ae

Browse files
Add skills capability plan
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent 9c67fd5 commit 37fc4ae

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

plans/skills.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Skills — first-party capability plan
2+
3+
Skills are the "how" half of the catalog: [Agent Skills](https://agentskills.io/specification)
4+
directories (`SKILL.md` with YAML frontmatter + optional `scripts/`, `references/`, `assets/`)
5+
that carry procedure the way integrations carry capability. vision.md already stakes skills as
6+
a first-party capability and an artifact kind; this plan pins the concrete shape.
7+
8+
Decisions (Ethan, 2026-09-01). The design splits three ways: **bring in**, **use**, **manage**.
9+
10+
## Format and posture
11+
12+
- The skill format is the [agentskills.io spec](https://agentskills.io/specification),
13+
unmodified. Executor stores and serves skills; it never interprets bodies.
14+
- **Skills are pure content.** Executor does not execute `scripts/` — end agents run them
15+
locally if they choose. Bundled scripts are stored and served like any other skill file.
16+
- **Security is deferred to users**, matching the trust posture integrations have today. If
17+
integrations grow an import-trust mechanism, skills adopt the same one. Imports are still
18+
hash-pinned (see below), so what you reviewed is what you have.
19+
20+
## Bring in
21+
22+
- **CLI, `npx skills`-shaped**: `executor skills add <owner>/<repo>` (GitHub), plus import
23+
from the local filesystem (`executor skills add ./path`). Same discovery walk as the
24+
ecosystem CLI: `SKILL.md` directories under the usual container layouts.
25+
- **Dashboard**: drop-in link, like adding an integration — paste a GitHub URL, we fetch and
26+
auto-fill name/description/file listing from the skill's frontmatter for confirmation.
27+
- **Pinning + manual sync only.** Imports record source + content hash (lockfile semantics,
28+
the shape `skills-lock.json` already has). No background auto-update: a manual
29+
`executor skills sync` and a dashboard "check for updates" re-fetch from the source and
30+
show what changed before applying.
31+
32+
## Use
33+
34+
- **Adopt the MCP spec now**: serve skills per
35+
[SEP-2640](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2640)
36+
(`io.modelcontextprotocol/skills`) — each skill file a resource under `skill://`, plus the
37+
`skill://index.json` enumeration. Track the SEP as it moves through review.
38+
- **Pass-through**: when an upstream MCP server connected as an integration serves skills via
39+
the extension, Executor re-serves them transparently alongside locally stored ones — same
40+
index, same addressing, provenance recorded.
41+
- **Code mode, while the spec standardizes**: the `execute` sandbox gets a `skills` function
42+
set — `skills.search()` / `skills.get(name)` — index entries are frontmatter only
43+
(name + description); bodies load only via `get`. Skills stay under `skills.*`; they do
44+
**not** appear in the general `tools.search` results.
45+
- **Materialize to disk**: `executor skills sync` can also write the catalog into
46+
`.agents/skills/` for agents that only read local files.
47+
48+
## Manage
49+
50+
- **Own dashboard page**, separate from integrations: list, inspect (rendered SKILL.md +
51+
file tree), import, sync, delete.
52+
- **Scoped like everything else**: a skill is personal or workspace-owned; visibility is
53+
union per the standard scope merge.
54+
- **Toolsets**: skills attach to toolsets exactly like tools, so a scoped MCP endpoint
55+
serves the toolset's tools and its skills as one unit.
56+
57+
## Naming
58+
59+
The MCP host's existing `skills` tool serves Executor's own how-to docs
60+
(`packages/core/execution/src/skills.ts`) and its comments already document models mistaking
61+
it for a general skill reader. **Rename the internal tool** (it is a docs reader, not a skill
62+
store) and free the `skills` name for the real capability. The internal registry stays a
63+
separate, hand-curated thing.
64+
65+
## Sequencing
66+
67+
1. Rename the internal `skills` tool; land the skill store (workspace/personal scoped,
68+
file-backed) with `skills.search`/`skills.get` in code mode.
69+
2. Bring-in surfaces: CLI add (GitHub + filesystem) with lockfile pinning, dashboard drop-in,
70+
manual sync.
71+
3. Serve per SEP-2640 and pass through upstream MCP-served skills; `.agents/skills/`
72+
materialization.
73+
4. Toolset attachment and the dashboard page's full management surface.
74+
75+
## References
76+
77+
- Spec: <https://agentskills.io/specification>
78+
- SEP-2640 skills extension: <https://github.com/modelcontextprotocol/modelcontextprotocol/issues/2640>;
79+
incubation: <https://github.com/modelcontextprotocol/experimental-ext-skills>
80+
- `.well-known/agent-skills` discovery RFC (future serve surface):
81+
<https://github.com/cloudflare/agent-skills-discovery-rfc>
82+
- Ecosystem CLI the bring-in mirrors: <https://github.com/vercel-labs/skills>

0 commit comments

Comments
 (0)