Skip to content

Architecture

How the skill system works under the hood. For the curious and the builders.


The Mental Model

Skills are behavioral instructions, not executable code.

Traditional plugins run code when triggered. Skills teach Claude new behaviors by providing detailed context and protocols. When you invoke /portal, Claude doesn't execute a portal binary — it reads the PORTAL skill's instructions and follows them using its existing tools (Read, Write, Bash, etc.).

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   User says  │────▶│ Claude loads  │────▶│ Claude follows│
│   /portal    │     │  SKILL.md    │     │  the protocol │
└──────────────┘     └──────────────┘     └──────────────┘

This is why skills are just markdown files. No runtime. No dependencies. No build step.


File System Layout

~/.claude/skills/
├── PORTAL/
│   └── SKILL.md           # Skill definition
├── STRICT/
│   └── SKILL.md
├── FORGE/
│   └── SKILL.md
├── CONCLAVE/
│   └── SKILL.md
├── ECHO/
│   └── SKILL.md
├── MIRROR/
│   └── SKILL.md
├── SPARK/
│   └── SKILL.md
├── RECON/
│   └── SKILL.md
├── RECALL/
│   └── SKILL.md
└── NOTIFY/
    ├── SKILL.md
    └── scripts/
        ├── notify.sh      # Bash wrapper
        └── toast.py        # Python notification engine

NOTIFY is the only skill with supporting scripts — it needs to interface with platform-specific notification APIs.


SKILL.md Anatomy

---
name: SKILLNAME              # ALL CAPS identifier
description: |               # Trigger conditions
  When to invoke this skill.
  Multiple lines of context.
user-invocable: true         # Can users call it directly?
allowed-tools: Read, Write   # Tool permissions
---

# Instructions follow here...

Frontmatter Fields

Field Required Purpose
name Yes Skill identifier, must match folder name
description Yes Trigger conditions — Claude uses this to decide when to activate
user-invocable Yes Whether /skillname works as a direct invocation
allowed-tools No Restricts which Claude Code tools the skill can use

Instruction Body

The markdown below the frontmatter is the skill's brain. Common sections:

  • Purpose — what this skill does
  • Usage — commands and syntax
  • AUTO-EXECUTE protocol — step-by-step instructions for Claude
  • Output format — what the result should look like
  • Edge cases — how to handle unusual situations

Data Flow

Portal data flow

/portal create ──▶ Claude gathers context ──▶ JSON file in portals/
/portal open  ◀── Claude reads + integrates ◀──────┘

Research data flow

/recon [topic] ──▶ Research agent ──▶ Markdown report
                                    ▼─────┘
                              knowledge/research/
                              knowledge/index.json
/recall [query] ◀── Search + retrieve ◀──┘

Decision data flow

/conclave ──▶ 9-voice debate ──▶ Recommendation
/mirror ──▶ 3 challenge frameworks ────┘
/echo create ◀── Capture reasoning ◀───┘
                   echoes/ECHO-XXXX.json

Design Principles

1. Zero infrastructure

No servers, no databases, no APIs, no Docker containers. Skills run on Claude's existing tool access. Data is files on disk.

2. Portability

Everything is a file. JSON for structured data, markdown for reports. Move them, git them, grep them, backup them. No proprietary formats.

3. Composability

Skills are independent but designed to chain. RECON feeds RECALL. CONCLAVE feeds MIRROR feeds ECHO. PORTAL wraps everything. Each skill does one thing well.

4. Progressive disclosure

Start with one skill. Add more as habits form. The system works with 1 skill or all 10.

5. No magic

Every skill's behavior is readable in its SKILL.md. No hidden logic, no compiled code, no obfuscation. If you want to know what a skill does, read it.


Building Your Own

The skill format is open. Create ~/.claude/skills/MYSKILL/SKILL.md with valid frontmatter and instructions, and it works.

See CONTRIBUTING.md for the full specification and quality requirements.