Skills repository for the Anton agent — a Claude Agent SDK integration running in Vercel sandboxes. Each skill is a self-contained module that provides the agent with instructions, npm dependencies, and optional MCP tools.
npm installconst { loadAllSkills, aggregateDependencies, buildSystemPrompt, buildMcpTools } = require("anton-skills");
const skills = loadAllSkills();
const { installCommand } = aggregateDependencies(skills);
const systemPrompt = buildSystemPrompt(skills);
const tools = buildMcpTools(skills);├── lib/
│ └── loader.js Skill loader and aggregation utilities
├── skills/
│ ├── slack-messaging/ Slack Web API integration
│ ├── github-api/ GitHub REST API via Octokit
│ └── code-transform/ AST-based code transformations
├── _template/ Skeleton for new skills
└── package.json
Each skill lives in its own directory under skills/ and contains three components:
Machine-readable metadata consumed by the orchestration layer.
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
yes | Lowercase identifier (a-z, 0-9, -) |
description |
string |
yes | What the skill does |
version |
string |
yes | Semver version |
dependencies |
object |
yes | npm packages ({ "pkg": "^version" }) |
env |
array |
no | Required environment variables |
tools |
array |
no | Relative paths to MCP tool files |
Markdown document the agent reads as part of its system prompt. Should include:
- Setup — exact
npm installcommands for the agent to run - Environment Variables — what tokens/keys are needed
- Capabilities — what the skill enables
- Usage — code examples the agent can reference
- Notes — rate limits, caveats, and constraints
The agent installs dependencies itself to keep sandbox images lightweight.
Each .js file exports a tool definition compatible with createSdkMcpServer:
module.exports = {
name: "tool_name",
description: "What this tool does",
schema: {
type: "object",
properties: { /* ... */ },
required: [ /* ... */ ],
},
handler: async (args) => {
// implementation
return { /* result */ };
},
};The loader (lib/loader.js) provides five functions for the orchestration layer:
Load a single skill by directory name. Returns { manifest, prompt, tools }.
Discover and load every skill in the skills/ directory. Returns an array of skill objects.
Merge npm dependencies from an array of skills. Returns { dependencies, installCommand } where installCommand is a ready-to-run npm install string.
Concatenate all prompt.md contents into a single system prompt string with section dividers.
Collect all tool definitions into a flat array for use with createSdkMcpServer.
| Skill | Dependencies | Description |
|---|---|---|
slack-messaging |
@slack/web-api |
Send messages, list channels, reply to threads |
github-api |
octokit |
Create issues, list repositories |
code-transform |
jscodeshift |
AST-based JavaScript/TypeScript transformations |
- Copy
_template/toskills/<your-skill-name>/ - Edit
skill.jsonwith your skill's metadata, dependencies, and env vars - Write
prompt.mdwith setup instructions and usage examples - Optionally add MCP tools in
tools/ - Verify with
npm run validate