Skip to main content

Skill Package Format

This page summarizes the skill package format. The authoritative source is src/context/skills/FORMAT.md in the processkit repo.

Directory layout

src/context/skills/<category>/<skill-name>/
SKILL.md ← required — three-level agent instructions
INDEX.md ← optional — human-readable overview
examples/ ← recommended — example outputs
templates/ ← recommended — YAML frontmatter entity scaffolds
references/ ← optional — deep-dive reference material
mcp/ ← optional — Python MCP server
server.py
mcp-config.json
README.md

Required frontmatter fields

FieldPurpose
apiVersionAlways processkit.projectious.work/v1 at v0.x.
kindAlways Skill.
metadata.idSKILL-<skill-name>
metadata.nameKebab-case; matches directory name
metadata.versionSemver, independent of processkit release
metadata.createdISO 8601 UTC
spec.descriptionOne-sentence summary (shown in listings)
spec.categoryOne of the registered categories
spec.layerInteger 0–4, or null for non-process skills

Optional fields

FieldPurpose
spec.usesSkills this depends on (strictly lower layer for process skills)
spec.providesWhat the agent gains: primitive kinds, MCP tools, templates
spec.when_to_useTrigger description for routing
spec.replacesID of a skill this one overrides (for community forks)

Categories

process, language, framework, infrastructure, architecture, design, data, ai, api, security, observability, database, performance, meta.

The provides block

A promise to consumers — what an agent gains by activating this skill:

provides:
primitives: [WorkItem]
mcp_tools: [create_workitem, transition_workitem, query_workitems]
templates: [workitem, workitem-bug, workitem-story]
processes: [backlog-grooming]

Installers and release checks can cross-check these promises against the actual files shipped in the skill.

MCP server conventions (v0.3.0+)

Skills ship Python MCP servers as standalone scripts with PEP 723 inline dependencies:

#!/usr/bin/env -S uv run
# /// script
# requires-python = ">=3.10"
# dependencies = ["mcp[cli]>=1.0"]
# ///
from mcp.server.fastmcp import FastMCP
server = FastMCP("<skill-name>")
...
if __name__ == "__main__":
server.run(transport="stdio")

Consumers need only Python 3.10 or newer and uv.