Skip to main content

Skills

A skill is a reusable, provider-independent capability that agents can invoke.

class Skill(ABC):
@property
def name(self) -> str: ...
@property
def description(self) -> str: ...
@property
def parameters(self) -> dict: ... # JSON Schema

async def execute(self, params: dict) -> SkillResult: ...

Skills map directly to "tools" in LLM APIs but are defined once and work across all providers.

Built-in Skills

SkillDescription
file_readRead file contents
file_writeWrite content to file
glob_searchSearch files by pattern
shell_execExecute shell commands
sandboxed_shellExecute commands in Docker sandbox
web_readFetch web page content
doc_syncDocumentation sync checker
githubGitHub integration via gh CLI
webhookOutgoing webhook skill
load_skillOn-demand full skill instruction loading
ask_clarificationRequest human clarification (blocking/non-blocking)

Skills Map (Agent Assignments)

SkillAgentDescription
/docker-builddevopsBuild and manage containers via OrbStack
/test-runnerallRun pytest suite via Docker
/lint-checkallRuff linting and formatting checks
/code-reviewallAutomated quality/security review
/deploydevopsContainer deployment via docker-compose
/scoutscoutGitHub pattern discovery
/website-devfrontendDocumentation site development
/verifyallPre-PR quality gate (tests, lint, format, security, diff review)
/cost-optimizationai-engineerReview LLM API costs, routing, budget, retry efficiency
/shipallFull pipeline: test, lint, docs sync, commit, push
/featureallEnd-to-end feature dev: implement, tests, SOLID review, docs, commit
/fixallBug fix with mandatory regression tests, lint, deploy
/docallFull docs review: audit all docs/ against codebase
/fetch-star-reposscoutFetch GitHub starred repos for research scout
/research-scoutresearch-scoutAnalyze starred repos and propose code improvements
/web-researchallSearch the internet for solutions, docs, and best practices

Skill Registry

registry = SkillRegistry()
registry.register(FileReadSkill())
registry.register(ShellExecSkill(timeout=120))

# Export as tool definitions for any LLM
tools = registry.to_tool_definitions()