Skills.md from Scratch: Build a Skill-Driven Coding Agent
Skills.md from Scratch: Build a Skill-Driven Coding Agent
Watch the recording
Full workshop video with timestamps and downloadable materials.
Follow the tutorial
12 pages of step-by-step instructions you can work through at your own pace.
We start from the coding agent from the prerequisite workshop and turn it into a general-purpose coding agent with two reusable behavior layers: skills and slash commands. Skills are loaded by the agent when the user's request matches a skill description. Commands are invoked by the user with a leading slash and rendered into prompts before the agent acts.
Links
External resources for this workshop:
- Workshop recording
- Workshop code
- Starting notebook
- GitHub fetch skill
- Prototype implementation
- Prerequisite coding-agent workshop
- ToyAIKit
- OpenCode
- OpenCode skills documentation
- AgentSkills spec
The agent you will build
The final workshop system looks like this:
The project stays small enough to understand in a notebook, but it mirrors
the pieces used by real coding agents. The coding tools let the model read,
write, search, and run commands. The skill loader turns SKILL.md files with
YAML frontmatter into tool-loadable instructions. The command loader turns
markdown files like review.md or test.md into reusable prompt templates.
Walkthrough
Follow the numbered files in order. Each file is one self-contained step.
- Overview and setup - prerequisites, environment setup, workshop code, and the project folder.
- Part 1: Demoing skills and commands - demo a Claude Code skill that
fetches
/kidand/parentcommands from GitHub. - Part 2: Recapping the coding agent - recap the agent loop and the coding-agent tools from the prerequisite workshop.
- Part 3: Building the base runner - build a general-purpose coding-agent runner in Jupyter with ToyAIKit.
- Part 4: Defining the skill format - define the
SKILL.mdformat and look at the example skills. - Part 5: Loading
SKILL.md- parse skill markdown, read frontmatter, list skills, and resolve extra files. - Part 6: The skill tool and prompt injection - expose skills as a tool and inject the available skill list into the prompt.
- Part 7: Implementing commands - load slash-command markdown files and run them as prompt templates.
- Part 8: The fuller prototype - connect the notebook version
to the fuller
prototype/implementation and its tests. - Q&A: skills and commands - side questions about skill design, execution, model support, and command discovery.
- Deferred items - items intentionally left as follow-ups or reference-only behavior.
Appendix
A file list for the workshop materials is in Appendix: workshop files.
Tutorial pages
- 1 Overview and setup
- 2 Part 1: Demoing skills and commands
- 3 Part 2: Recapping the coding agent
- 4 Part 3: Building the base runner
- 5 Part 4: Defining the skill format
- 6 Part 5: Loading `SKILL.md`
- 7 Part 6: The skill tool and prompt injection
- 8 Part 7: Implementing commands
- 9 Part 8: The fuller prototype
- 10 Q&A: skills and commands
- 11 Deferred items
- 12 Appendix: workshop files