Claude Code Plugin Reference (night-market edition)
A field-verified reference for how Claude Code manifests, skills, commands, agents, and hooks actually behave — for plugin authors and debuggers.
Dev & CodingAdvanced★ 327⑂ 35AI score 8/10Last updated: Aug 12, 2026
What it does
Collects the mechanical contracts you need when authoring or debugging Claude Code plugins:
- Field-by-field contract for
.claude-plugin/plugin.json,metadata.json, andopenpackage.yml - SKILL.md frontmatter rules (160-char description cap,
roletaxonomy, hub-and-spoke progressive loading) - Decision tables for command vs. skill vs. agent, plus
$ARGUMENTSandextendsusage - The hook chapter: register only in
hooks/hooks.json, read the payload from stdin JSON (neverCLAUDE_TOOL_*env vars), always exit 0 with a JSON verdict on stdout, and use onlyallow|deny|askforPreToolUse - Host Python 3.9 landmines (no
datetime.UTC, mandatoryfrom __future__ import annotations, guarded third-party imports) and cache-dir execution rules (no relative paths) - Marketplace registration, version lockstep bumping, and a block of shell commands to re-verify every claim
Who it's for
- Developers building Claude Code plugins, skills, or lifecycle hooks
- Anyone chasing a hook that runs but silently does nothing
- Teams modeling an internal plugin ecosystem on the claude-night-market layout
Examples
- Dead hook: the script reads
CLAUDE_TOOL_NAME; swap in the stdin-JSON read pattern and confirmecho not-json | python3 hook.py; echo $?prints 0. - "Duplicate hooks file" at session start: remove
./hooks/hooks.jsonfrom the manifesthooksarray and rely on auto-loading. - New skill won't resolve: verify it is listed in
plugin.jsonskills, its description is ≤160 chars, and it has an## Exit Criteriasection so the drift ratchets pass.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/athola/claude-night-market/HEAD/.claude/skills/claude-code-plugin-reference/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the .claude/skills/claude-code-plugin-reference folder from the GitHub repo athola/claude-night-market into my ~/.claude/skills/claude-code-plugin-reference/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/athola/claude-night-market.git /tmp/claude-night-market && mkdir -p ~/.claude/skills && cp -r /tmp/claude-night-market/.claude/skills/claude-code-plugin-reference ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal in a scratch directory.
- Clone the repository:
git clone https://github.com/athola/claude-night-market.git - Create the skills directory if needed:
mkdir -p ~/.claude/skills - Copy the skill in:
cp -r claude-night-market/.claude/skills/claude-code-plugin-reference ~/.claude/skills/ - Restart Claude Code and ask something like "what is the hook payload contract?" to trigger loading.
- (Optional) Keep the cloned repo around — the document frequently cites files under
plugins/...as exemplars. - (Optional) To install the repo's actual plugins, run
/plugin marketplace add athola/claude-night-marketinside Claude Code.
View source on GitHub ↗License: MIT