AI Agent Skills
Capsem uses a shared skills/ directory that both Claude Code and Gemini CLI discover via symlinks. One set of files, two consumers, zero duplication.
Directory structure
Section titled “Directory structure”skills/ <skill-name>/ SKILL.md The skill (required) references/ Large docs loaded on demand (optional) scripts/ Executable helpers (optional)
.claude/skills -> ../skills Claude Code symlink.agents/skills -> ../skills Gemini CLI symlinkSkills are flat (one level). Nested directories are not discovered. Use prefix-based naming for categories.
SKILL.md format
Section titled “SKILL.md format”---name: skill-namedescription: When to trigger and what it does.---
# Skill Title
Instructions the agent follows when triggered.The description field is the trigger mechanism. Claude sees it in the skill list and decides whether to load the full body. Be specific and slightly pushy — Claude undertriggers by default.
Naming conventions
Section titled “Naming conventions”Prefix-based grouping:
| Prefix | Category |
|---|---|
meta-* | Skills about skills (find, create, organize) |
dev-* | Development (toolchain, testing, debugging, patterns) |
build-* | VM image building |
release-* | Release process, CI, docs |
site-* | Architecture, documentation site |
frontend-* | Frontend design system |
Current skills
Section titled “Current skills”meta-find-skills— discover community skills vianpx skillsmeta-organize-skills— skill directory conventionsmeta-skill-creation— create and iterate on skills
Development
Section titled “Development”dev-capsem— project overview and skill navigation mapdev-just— just recipe reference and dependency chainsdev-testing— testing policy (TDD, adversarial, 3 tiers)dev-testing-vm— capsem-doctor, session inspection, test fixturesdev-testing-hypervisor— KVM, Apple VZ, VirtioFS testingdev-testing-frontend— vitest, visual verificationdev-debugging— reproduce, diagnose, fix methodologydev-capsem-doctor— in-VM diagnostic suite referencedev-session-debug— session DB schema, telemetry debuggingdev-setup— new developer onboardingdev-sprint— sprint planning and workflowdev-rust-patterns— async/tokio, cross-compile, error handlingdev-mitm-proxy— MITM proxy pipeline, SSE parsing, provider wire formatsdev-mcp— MCP gateway, JSON-RPC, tool routingdev-skills— how skills work (for building Capsem’s own skills system)
build-images— capsem-builder CLI, guest configbuild-initrd— guest binary repack, fast iteration
Release
Section titled “Release”release-process— release, CI, Apple signing, docs, changelog
site-architecture— system architecture, key files, Tauri referencesite-infra— Astro Starlight docs site conventions
Frontend
Section titled “Frontend”frontend-design— design system, Preline, color scheme, Svelte 5 patterns
Progressive disclosure
Section titled “Progressive disclosure”Skills load in three tiers:
- Metadata (~100 words) — name + description, always in context
- SKILL.md body (<500 lines) — loaded when skill triggers
- Bundled resources (unlimited) —
references/files, loaded on demand
Keep SKILL.md lean. Put wire formats, API docs, and community references in references/.
Adding a skill
Section titled “Adding a skill”mkdir skills/<prefix-name># Write skills/<prefix-name>/SKILL.md with frontmatter# Available immediately (live reload, no restart)Community skills
Section titled “Community skills”Search with npx skills find <query>. Place community skills as references, not top-level:
curl -sL https://raw.githubusercontent.com/<owner>/<repo>/main/<path>/SKILL.md \ -o skills/<name>/references/<topic>.mdGlobal skills
Section titled “Global skills”Skills in ~/.claude/skills/ are available across all projects. We install meta skills globally:
meta-find-skillsmeta-organize-skillsmeta-skill-creation