Back to Event Recordings
Workshop Resource

Skills.md from Scratch: Build a Skill-Driven Coding Agent

Extend a basic coding agent into a general-purpose agent with modular skills and explicit commands. Learn how Claude Code-style skills and commands work internally.

January 16, 2026Intermediate to Advanced
ai-agentsllm-engineeringagent-systemstooling-architecture

Timestamps

Click any timestamp to jump to that moment in the video

00:00
Introduction and Workshop Objectives

Welcome and overview of implementing skills and commands. Clarifying what we'll build today and sharing workshop materials.

02:00
Skills Demo in Claude Code

Live demonstration of skills in Claude Code. Showing how to fetch files from GitHub using a skill.

08:00
Defining Skills vs Commands

Understanding the difference: skills are implicit (agent decides), commands are explicit (user specifies). Demo of /kit and /parent commands.

10:00
Quick Recap: Previous Coding Agent Workshop

Review of the coding agent we built previously. Showing the Django website implementation example.

13:00
Python Environment Setup

Setting up the development environment with uv, installing dependencies (Jupyter, OpenAI, ToyAIKit, Python-frontmatter), and configuring OpenAI API key.

17:00
Core AI Agent Components and Architecture

Recap of agent architecture: LLM, instructions, tools, memory. Understanding the agentic loop and tool call patterns.

23:00
Integrating File System and Bash Tools

Setting up file system tools (read_file, write_file, file_tree) and bash command execution. Creating the tools object.

31:00
Building the General Purpose Coding Runner

Creating a general-purpose coding agent using ToyAIKit. Testing with a simple Python script example. Understanding the runner interface.

34:00
Implementing the Skill Loader Class

Creating SkillLoader class to parse markdown frontmatter. Loading skills from directory structure. Understanding skill metadata (name, description, content).

43:00
Lazy Loading Strategy for Token Optimization

Why we only include skill names/descriptions in prompts, not full content. Implementing lazy loading via tool calls to save tokens.

48:00
Injecting Dynamic Skills into System Prompts

Modifying system prompts to include available skills list. Creating skill injection mechanism. Testing the hello skill.

52:00
Q&A Session on Model Knowledge and Skills

Answering questions about when to use skills vs tools, model prerequisites, limitations, and best practices for creating skills.

59:00
Developing Slash Commands via Tool Calling

Implementing commands loader similar to skills. Creating execute_command tool. Handling slash command parsing and execution.

1:11:00
Testing Commands Implementation

Testing the /kit command execution. Demonstrating how explicit commands work compared to implicit skills.

1:19:00
Optimizing Prompts for Skill and Command Distinction

Adding explicit instructions to help models distinguish between skills and commands. Final testing of the complete system.

1:22:00
Final Summary and AI Engineering Course Info

Workshop wrap-up, key takeaways, and information about the AI Engineering Buildcamp course for AI engineers.

Core Tools

OpenAI API (Responses API, function calling, Agents SDK)PydanticAIAnthropic APIMinSearchJupyter NotebookuvGitHubFastMCPMCP (Model Context Protocol)Cursor IDE

What You'll Learn

  • Extending a basic coding agent into a general-purpose coding agent
  • Implementing skills as modular autonomously loaded capabilities
  • Implementing commands as explicit user-facing shortcuts
  • Understanding how Claude Code-style skills and commands work internally
  • Reimplementing OpenCode patterns in Python
  • Designing agent instructions for general-purpose coding tasks
  • Dynamically loading skills via tool calls
  • Parsing and executing slash commands without exposing syntax to the agent

Expected Outcome

A general-purpose coding agent that supports skills and commands, loads capabilities dynamically based on intent, executes explicit slash commands, follows production-style agent control patterns, and mirrors Claude Code-style behavior using a transparent Python implementation