skillpack 0.13.2

Generate, verify, and maintain AI agent guidance (skills, plugins, AGENTS.md) for Claude Code, Cursor, Codex, Copilot, and 10+ AI coding ecosystems — one command turns any CLI or library into an agent-discoverable skill pack.
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/nordicnode/skillpack/main/skillpack.schema.json",
  "title": "skillpack.toml",
  "description": "Committed config that makes skillpack re-runs deterministic. Lives at the project root as skillpack.toml.",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "skill": {
      "description": "Single-skill form (written by `skillpack init`; backward compatible). Mutually exclusive in practice with the [[skills]] array form.",
      "$ref": "#/definitions/SkillConfig"
    },
    "skills": {
      "description": "Multi-skill pack form: one entry per skill. Mutually exclusive in practice with [skill].",
      "type": "array",
      "items": {
        "$ref": "#/definitions/SkillConfig"
      }
    },
    "defaults": {
      "description": "Persistent user prefs shared across skills.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "author": {
          "type": "string",
          "description": "Author display name (fallback for skills that omit it)."
        },
        "license": {
          "type": "string",
          "description": "SPDX license id, e.g. MIT (default)."
        }
      }
    }
  },
  "definitions": {
    "SkillConfig": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name", "one_line_description", "when_to_use_phrases"],
      "properties": {
        "name": {
          "type": "string",
          "pattern": "^[a-z]([a-z0-9]|-[a-z0-9])*$",
          "description": "Kebab-case plugin/skill name (lowercase letters, digits, single hyphens; no consecutive hyphens, no leading/trailing hyphen)."
        },
        "one_line_description": {
          "type": "string",
          "minLength": 1,
          "description": "One-sentence task description (leads the SKILL.md description)."
        },
        "when_to_use_phrases": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Trigger phrases that tell an agent when to reach for this skill."
        },
        "invocation_command": {
          "type": "string",
          "description": "Exact CLI invocation, e.g. `chronicle --new \"entry\"`. Omit for pure libraries."
        },
        "import_pattern": {
          "type": "string",
          "description": "Import pattern for pure libraries, e.g. `import { parse } from 'fastcsv'`. Omit for CLI projects."
        },
        "author": {
          "type": "string",
          "description": "Author display name (falls back to defaults.author)."
        },
        "license": {
          "type": "string",
          "description": "SPDX license id (falls back to defaults.license)."
        },
        "verify_stdin": {
          "type": "string",
          "description": "Stdin bytes to feed the CLI during verify spawns (for interactive CLIs that block on stdin)."
        },
        "footguns": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Project-specific gotchas to document for agents."
        },
        "allowed_tools": {
          "type": "string",
          "description": "Override the language-derived `allowed-tools` frontmatter value (e.g. `Read, Bash`). An empty string suppresses the field."
        },
        "globs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Override the language-derived Cursor/Windsurf auto-attach `globs`."
        },
        "category": {
          "type": "string",
          "description": "Override the language-derived `category` prose (e.g. \"the Rust tooling\")."
        },
        "opencode_mode": {
          "type": "string",
          "description": "Override the language-derived OpenCode `mode` (`primary`/`subagent`)."
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Override the derived marketplace `keywords` list."
        },
        "marketplace_category": {
          "type": "string",
          "description": "Override the marketplace `category` field (default `developer-tools`)."
        },
        "owner_type": {
          "type": "string",
          "enum": ["individual", "organization"],
          "description": "Override the marketplace `owner.type` field (default `individual`)."
        }
      }
    }
  }
}