My Custom Skill
This is a template for creating a custom agent skill.
How Skills Work
There are two valid skill patterns in the current architecture:
Pattern A: Prompt-Only (Recommended)
No script field in frontmatter. This SKILL.md is injected into the LLM's context
when activate_skill is called. The LLM then uses built-in atomic tools
(read, write, append, list, grep, ask_env) to accomplish the task.
This is the primary extension mechanism — like Claude Code's slash commands.
Pattern B: Script
Add script: scripts/my-script.py to frontmatter. The script is executed as a
cached in-process module via entrypoint(argv, ctx) when available, with dynamic
wrapper/subprocess fallback. It should communicate via the returned stdout string
and file I/O under ctx.workspace_root. Scripts cannot access the LLM or
environment router directly — use this only for deterministic computation.
Behavioral Guidelines (Edit for Your Skill)
When this skill is activated:
- Use
ask_envto query the environment for relevant information. - Use
read/write/appendto persist state. - Use
execute_skill_scriptfor deterministic computation when a script exists. - Call
finishwith a summary when finished.
Example: A "Daily Journal" Skill
When activated, the agent should:
ask_envwith instruction: "What happened recently? Summarize recent events."readpathjournal.jsonlto load previous entries if it exists.appendpathjournal.jsonlto add today's entry.finishwith summary of what was journaled.