Skip to content
AI & Agents
Command

/cs-book-to-plugin

/cs:book-to-plugin <compiled-skill-dir> [--domain <domain>] — wrap a compiled book skill in a claude-skills plugin package (manifest + cs-* agent + /cs:* command + README) so the rest of the library can route to it. Use after /cs:book-to-skill, or when an existing knowledge-base

From plugin
alirezarezvani-claude-skills
26k150 skills116 agents150 commands2 MCP
Install
$ npx -y skills add alirezarezvani/claude-skills --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/cs-book-to-plugin

Context preview

What this command does when you run it.

/cs:book-to-plugin <compiled-skill-dir> [--domain <domain>] — wrap a compiled book skill in a claude-skills plugin package (manifest + cs-* agent + /cs:* command + README) so the rest of the library can route to it. Use after /cs:book-to-skill, or when an existing knowledge-base

Command definition

cs-book-to-plugin.md
name: "cs-book-to-plugin"
description: "/cs:book-to-plugin <compiled-skill-dir> [--domain <domain>] — wrap a compiled book skill in a claude-skills plugin package (manifest + cs-* agent + /cs:* command + README) so the rest of the library can route to it. Use after /cs:book-to-skill, or when an existing knowledge-base skill folder needs to become an installable plugin."

/cs:book-to-plugin — Ingest a Compiled Skill into the Library

**Command:** `/cs:book-to-plugin <compiled-skill-dir> [--domain <domain>] [--rights <basis>]`

A folder in `~/.claude/skills/` is invisible to this repository: no manifest, no agent, no command, no marketplace entry, so nothing else in the library can route to it. This command closes that gap.

What it emits

<domain>/<slug>/
├── .claude-plugin/plugin.json     manifest, ./skills/<slug>, provenance + rights metadata
├── README.md                      what the skill knows, where it came from, its limits
├── agents/cs-<slug>.md            persona that answers from the source and cites chapters
├── commands/cs-<slug>.md          /cs:<slug> [topic | framework | chNN]
└── skills/<slug>/                 the compiled skill, copied verbatim

…then prints the `.claude-plugin/marketplace.json` entry to register. It never edits marketplace.json itself — registration is a repo-wide change and stays a human decision.

Gates

| Gate | Behaviour | |------|-----------| | Source has no `SKILL.md` | Refuses. This is not a compiled book skill. | | Source has validation errors | Refuses and lists them. A package built on a broken index stays broken. `--skip-validation` overrides, and is almost always the wrong call. | | Destination already exists | Refuses without `--force`. | | `--distribution shareable` without `--rights` | **Refuses.** Compiled notes from a copyrighted work are personal study notes; redistributing them needs a basis. |

Accepted rights bases: `public-domain`, `open-license`, `internal-docs`, `author-permission`. Fair use is deliberately not one — it is a defence, not a licence, and not a script's call. Without a basis the package emits as `--distribution local` and records `source.cleared_for_distribution: false` in the manifest.

Run

SKILL_ROOT=engineering/book-to-skill/skills/book-to-skill

# see exactly what would be written, first
python3 "$SKILL_ROOT/scripts/skill_plugin_emitter.py" \
    --skill-dir ~/.claude/skills/<slug> \
    --dest ./engineering --domain engineering \
    --source-note "<Full Title> by <Author>" \
    --dry-run

# write it
python3 "$SKILL_ROOT/scripts/skill_plugin_emitter.py" \
    --skill-dir ~/.claude/skills/<slug> \
    --dest ./engineering --domain engineering \
    --source-note "<Full Title> by <Author>"

After emitting

1. Paste the printed entry into `.claude-plugin/marketplace.json` → `plugins`. 2. Re-derive the headline counters: `python3 scripts/derive_counters.py --check`, then update `README.md`, `CLAUDE.md` and the marketplace description to match. 3. Read the generated agent and command — they are scaffolds keyed to the source, and the voice is worth a pass by hand. 4. Open the PR against `dev`. Never `main`.

Related

  • `/cs:book-to-skill` — compile the source in the first place
  • `/cs:plugin-audit` — 8-phase audit of the emitted package before merge
Read more
Ships withalirezarezvani-claude-skills

388 production-ready Claude Code skills, plugins, and agent skills for 13 AI coding tools. The most comprehensive open-source library of Claude Code skills and agent plugins — also works with OpenAI Codex, Gemini CLI, Cursor, and 9 more coding agents.

Get the whole plugin

Other commands on alirezarezvani-claude-skills.