Format Spec

Every kit includes a kit.json manifest that describes its contents, metadata, and dependencies.

kit.json Schema

{
  "name": "my-kit",           // lowercase alphanumeric + hyphens
  "type": "command-kit",      // see Kit Types below
  "version": "1.0.0",         // semver
  "description": "Short description (max 200 chars)",
  "author": "github-username",
  "tags": ["tag1", "tag2"],
  "files": { ... },           // file manifest (varies by type)
  "dependencies": ["other-kit"]  // optional
}

Kit Types

TypeDescriptionRequired Files
commandSingle slash commandcommand.md
ruleSingle .mdc rule*.mdc file
skillDomain knowledgeSKILL.md
agentSubagent definitionagent.md
hookHook scriptshooks.json + *.sh
command-kitCommand + skill + agent + hookscommand.md
rule-kitRules + scripts + linter + hooksAt least one .mdc

File Manifest

The files field maps categories to filenames. Values can be a single string or an array of strings.

// Command kit
"files": {
  "command": "command.md",
  "skill": "SKILL.md",
  "agent": "agent.md",
  "hooks": ["hooks/verify-feature.sh"]
}

// Rule kit
"files": {
  "rules": ["architecture.mdc", "components.mdc", "..."],
  "scripts": ["add-route.sh"],
  "linter": "eslint.config.mjs",
  "hooks": ["hooks/format-on-edit.sh", "hooks/lint-on-stop.sh"]
}

Naming Conventions

  • Names must be lowercase alphanumeric with hyphens: my-kit-name
  • Names must be globally unique across the registry
  • Use descriptive names that indicate the kit's purpose
  • Versions follow semver: MAJOR.MINOR.PATCH

Frontmatter Requirements

Skills and agents require YAML frontmatter with name and description fields:

---
name: my-skill
description: When and how to use this skill
---