Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

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 & CodingAdvanced32735AI 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, and openpackage.yml
  • SKILL.md frontmatter rules (160-char description cap, role taxonomy, hub-and-spoke progressive loading)
  • Decision tables for command vs. skill vs. agent, plus $ARGUMENTS and extends usage
  • The hook chapter: register only in hooks/hooks.json, read the payload from stdin JSON (never CLAUDE_TOOL_* env vars), always exit 0 with a JSON verdict on stdout, and use only allow|deny|ask for PreToolUse
  • Host Python 3.9 landmines (no datetime.UTC, mandatory from __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

  1. Dead hook: the script reads CLAUDE_TOOL_NAME; swap in the stdin-JSON read pattern and confirm echo not-json | python3 hook.py; echo $? prints 0.
  2. "Duplicate hooks file" at session start: remove ./hooks/hooks.json from the manifest hooks array and rely on auto-loading.
  3. New skill won't resolve: verify it is listed in plugin.json skills, its description is ≤160 chars, and it has an ## Exit Criteria section 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)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download 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.

  1. Open a terminal in a scratch directory.
  2. Clone the repository: git clone https://github.com/athola/claude-night-market.git
  3. Create the skills directory if needed: mkdir -p ~/.claude/skills
  4. Copy the skill in: cp -r claude-night-market/.claude/skills/claude-code-plugin-reference ~/.claude/skills/
  5. Restart Claude Code and ask something like "what is the hook payload contract?" to trigger loading.
  6. (Optional) Keep the cloned repo around — the document frequently cites files under plugins/... as exemplars.
  7. (Optional) To install the repo's actual plugins, run /plugin marketplace add athola/claude-night-market inside Claude Code.