Claude Code Plugin Reference

Claude Code hook, skill, command en plugin.json contracten geverifieerd tegen een echte repo

Door athola · athola/claude-night-market

Getest · Werkt ★ 8.8/10

Claude Code Plugin Reference — Claude Code hook, skill, command en plugin.json contracten geverifieerd tegen een echte repo

Wat het doet

Een referentiedocument over de Claude Code plugin machinerie: plugin.json en metadata.json veldcontracten, SKILL.md frontmatter, command en agent frontmatter, hook registratie in hooks.json, het stdin-JSON payload contract, permissionDecision verdict vormen, exit-code semantiek, en marketplace installatie en versie lockstep. Het activeert wanneer u een Claude Code plugin, skill, command, agent, of hook schrijft of debugt. De inhoud is samengesteld uit de athola/claude-night-market repo, dus ongeveer een derde ervan is repo-lokale conventie (night-market plugin namen, sanctum scripts, Python 3.9 host constraints) naast de draagbare harness contracten.

Testrapport

De repo gekloond, bevestigd dat frontmatter parset met naam + een 158-tekens beschrijving, en 13 geciteerde bestanden gecontroleerd (check_plugin_hooks.py, validate_budget.py, hook_io.py, tdd_bdd_gate.py, marketplace.json, python39-compat.yml, ...) — allemaal aanwezig; geen curl|sh, base64, of injection tekst ergens in het 511-regelige bestand. Installatie uitgevoerd in een verse mktemp HOME en SKILL.md landde op ~/.claude/skills/claude-code-plugin-reference/SKILL.md. Output test: ik schreef een PreToolUse hook die `git commit --no-verify` twee keer blokkeerde, extraheerde beide Python bodies, en voerde ze uit — baseline printte permissionDecision "block" (niet een van allow/deny/ask) en eindigde met exit code 2, en het crashte met een ongecatchede JSONDecodeError (exit code 1) op zowel `echo not-json` als lege stdin; de skill-gevolgde versie printte "deny", eindigde met exit code 0 in alle drie de gevallen, en stuurde diagnostiek naar stderr. Ik voerde ook de eigen gate van de repo uit tegen beide manifests: `python3 scripts/check_plugin_hooks.py` weigerde mijn baseline plugin.json (exit code 1, "hooks array contains './hooks/hooks.json'") en accepteerde de skill-gevolgde (exit code 0). Triggerzinnen — MOET laden: "How do I register a PreToolUse hook in my plugin's hooks.json?", "My plugin hook isn't firing, it reads CLAUDE_TOOL_INPUT and gets nothing", "What frontmatter does a SKILL.md need and how does Skill(plugin:name) resolve?" — ik zou het voor alle drie laden. MOET NIET: "Run the test suite and publish 1.9.16 to the marketplace" (de expliciete "Do not use for ops" van de beschrijving routeert me naar night-market-operations, hoewel er een Marketplace sectie bestaat) en "Write a Python CLI that parses JSON from stdin" (geen plugin context) — beide geweigerd. Docs kregen één punt aftrek: de body claimt `"hooks": []` is "verified across all 23 manifests" maar op schijf dragen slechts 11 van de 23 de sleutel en 12 laten deze volledig weg (zelfde effect, verkeerde bewoording), en de "used here" van de beschrijving noemt nooit de repo, dus een standalone installer krijgt alleen night-market-pointers (/sanctum:update-plugins, plugins/imbue, sibling night-market-* skills) gemengd met draagbare harness feiten. Ik kon Python 3.9 lokaal niet uitvoeren, dus de datetime.UTC / py39 claim is niet geverifieerd door uitvoering; elke andere claim die ik controleerde (herald's 10s registered vs 8s internal timeout, de vow_no_ai_attribution warn/block anomalie, DESCRIPTION_MAX = 160, hook_io's stdin-first docstring) kwam exact overeen met de bron.

Getest op: 2026-07-21 · Claude Code 2.x (agent harness)

Installatie

git clone --depth 1 https://github.com/athola/claude-night-market.git /tmp/claude-code-plugin-reference-src
mkdir -p ~/.claude/skills
cp -R /tmp/claude-code-plugin-reference-src/.claude/skills/claude-code-plugin-reference ~/.claude/skills/claude-code-plugin-reference
# Single markdown file, no deps, no scripts, nothing to run.
# The skill lives in the repo's own .claude/skills/ (a project skill), not in a plugin.
# The ~15 scripts it cites (scripts/check_plugin_hooks.py, plugins/abstract/scripts/validate_budget.py,
#   plugins/sanctum/scripts/update_versions.py, ...) all exist in the clone at /tmp/claude-code-plugin-reference-src
#   but NOT next to the installed skill, so the "re-verify" commands in its Provenance section
#   only run from inside a night-market checkout. Keep the clone if you want them.
# Plugin-marketplace alternative does NOT ship this skill: /plugin marketplace add athola/claude-night-market
#   installs the plugins under plugins/, and this file is not registered in any plugin.json.

Commando's en voorbeeldprompts

  • /claude-code-plugin-referenceClaude Code hook, skill, command en plugin.json contracten geverifieerd tegen een echte repo

Skills reageren op gewone verzoeken — geen commando's om te onthouden. Na installatie activeren prompts zoals deze de skill (in het Engels):

  • Explain how Claude Code skills are triggered
  • Help me author a new Claude Code plugin
  • Debug why my hook isn't firing correctly