Skip to content

V1Michigan/anton-with-skills

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

anton-with-skills

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.

Quick Start

npm install
const { loadAllSkills, aggregateDependencies, buildSystemPrompt, buildMcpTools } = require("anton-skills");

const skills = loadAllSkills();
const { installCommand } = aggregateDependencies(skills);
const systemPrompt = buildSystemPrompt(skills);
const tools = buildMcpTools(skills);

Repository Structure

├── 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

Skill Format

Each skill lives in its own directory under skills/ and contains three components:

skill.json — Manifest

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

prompt.md — Agent Instructions

Markdown document the agent reads as part of its system prompt. Should include:

  • Setup — exact npm install commands 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.

tools/ — MCP Tool Definitions (optional)

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 */ };
  },
};

Loader API

The loader (lib/loader.js) provides five functions for the orchestration layer:

loadSkill(name)

Load a single skill by directory name. Returns { manifest, prompt, tools }.

loadAllSkills()

Discover and load every skill in the skills/ directory. Returns an array of skill objects.

aggregateDependencies(skills)

Merge npm dependencies from an array of skills. Returns { dependencies, installCommand } where installCommand is a ready-to-run npm install string.

buildSystemPrompt(skills)

Concatenate all prompt.md contents into a single system prompt string with section dividers.

buildMcpTools(skills)

Collect all tool definitions into a flat array for use with createSdkMcpServer.

Available Skills

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

Creating a New Skill

  1. Copy _template/ to skills/<your-skill-name>/
  2. Edit skill.json with your skill's metadata, dependencies, and env vars
  3. Write prompt.md with setup instructions and usage examples
  4. Optionally add MCP tools in tools/
  5. Verify with npm run validate

About

V1 Slack Bot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors