Claude Code Plugin Reference

Claude Code hook, skill, command og plugin.json kontrakter verificeret mod et reelt repo

Af athola · athola/claude-night-market

Testet · Virker ★ 8.8/10

Claude Code Plugin Reference — Claude Code hook, skill, command og plugin.json kontrakter verificeret mod et reelt repo

Hvad det gør

Et referencedokument, der dækker Claude Code plugin-maskineri: plugin.json og metadata.json feltkontrakter, SKILL.md frontmatter, kommando- og agent-frontmatter, hook-registrering i hooks.json, stdin-JSON payload-kontrakten, permissionDecision domsformer, exit-code semantik og marketplace install og version lockstep. Det udløses, når du forfatter eller debugger et Claude Code plugin, skill, kommando, agent eller hook. Indholdet er kompileret fra athola/claude-night-market repoet, så cirka en tredjedel af det er repo-lokal konvention (night-market plugin-navne, sanctum scripts, Python 3.9 host-begrænsninger) sammen med de bærbare harness-kontrakter.

Testrapport

Klonede repoet, bekræftede, at frontmatter parses med navn + en 158-tegns beskrivelse, og spot-tjekkede 13 citerede filer (check_plugin_hooks.py, validate_budget.py, hook_io.py, tdd_bdd_gate.py, marketplace.json, python39-compat.yml, ...) — alle til stede; ingen curl|sh, base64 eller injection-tekst nogen steder i den 511-linjers fil. Installationen kørte i en frisk mktemp HOME og placerede SKILL.md i ~/.claude/skills/claude-code-plugin-reference/SKILL.md. Output-test: Jeg skrev en PreToolUse hook, der blokerede `git commit --no-verify` to gange, udtrak begge Python-kroppe og kørte dem — baseline udskrev permissionDecision "block" (ikke en af allow/deny/ask) og afsluttede med exit code 2, og den crashede med en ufanget JSONDecodeError (exit code 1) på både `echo not-json` og tom stdin; den skill-fulgte version udskrev "deny", afsluttede med exit code 0 i alle tre tilfælde og sendte diagnostik til stderr. Jeg kørte også repoets egen gate mod begge manifests: `python3 scripts/check_plugin_hooks.py` afviste min baseline plugin.json (exit code 1, "hooks array contains './hooks/hooks.json'") og accepterede den skill-fulgte (exit code 0). Udløsningsfraser — SKULLE indlæses: "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?" — jeg ville indlæse den for alle tre. SKULLE IKKE: "Run the test suite and publish 1.9.16 to the marketplace" (beskrivelsens eksplicitte "Do not use for ops" ruter mig til night-market-operations, selvom en Marketplace-sektion eksisterer) og "Write a Python CLI that parses JSON from stdin" (ingen plugin-kontekst) — afviste begge. Docs mistede et point: kroppen hævder, at `"hooks": []` er "verified across all 23 manifests", men på disk bærer kun 11 ud af 23 nøglen, og 12 udelader den helt (samme effekt, forkert ordlyd), og beskrivelsens "used here" navngiver aldrig repoet, så en standalone installer får kun night-market-specifikke pointere (/sanctum:update-plugins, plugins/imbue, søskende night-market-* skills) blandet med bærbare harness-fakta. Jeg kunne ikke køre Python 3.9 lokalt, so the datetime.UTC / py39 claim is unverified by execution; every other claim I checked (herald's 10s registered vs 8s internal timeout, the vow_no_ai_attribution warn/block-anomalien, DESCRIPTION_MAX = 160, hook_io's stdin-først docstring) matchede kilden nøjagtigt.

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

Installation

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.

Kommandoer og eksempelprompter

  • /claude-code-plugin-referenceClaude Code hook, skill, command og plugin.json kontrakter verificeret mod et reelt repo

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

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