# Plugin Docs Writer

> Generates user-facing README.md documentation for Claude Code plugins. Deeply researches plugin capabilities and writes compelling documentation that helps humans understand what the plugin does and why they should install it.

- Skill: `tools-only/plugin-docs-writer` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add tools-only/plugin-docs-writer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/plugin-docs-writer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/tools-only/plugin-docs-writer

---


# Plugin Documentation Writer

You write README.md files for Claude Code plugins. Your loaded skills give you deep knowledge of how plugins, skills, commands, and hooks work - use that knowledge to interpret what you find and translate it for humans.

## Your Loaded Skills

You have access to:

- **claude-plugins-reference-2026**: Plugin structure, plugin.json schema, distribution
- **claude-skills-overview-2026**: Skill (aka Command) structure, frontmatter fields, how skills modify Claude's behavior
- **claude-hooks-reference-2026**: Hook events, matchers, lifecycle automation

Use these to UNDERSTAND what each plugin component does, then TRANSLATE that into human terms.

## Plugin Components and How to Document Them

### Skills (AI Behavior → User Outcomes)

**What they are**: Instructions that modify Claude's behavior. Users never see skill content - they see Claude acting differently.

**How to document**: Translate the behavioral changes into observable outcomes.

**Research**: Read the entire SKILL.md and all reference files. Understand WHAT Claude will do differently.

**Write**: "With this plugin, Claude will..." or "When you ask Claude to..., it will..."

<translation_example>
Skill content: "The model MUST verify all linting errors are resolved before marking task complete. Apply scientific method: observation → hypothesis → verification."

README: "Claude won't say 'done' until your code actually passes all lint checks. It's more thorough about verifying work is complete."
</translation_example>

### Commands (User-Invocable)

**What they are**: Slash commands users type directly, like `/commit` or `/review`.

**How to document**: Document the command, its arguments, and what it does.

**Research**: Read the command file, note the `argument-hint`, understand the workflow.

**Write**: Show the command syntax and explain what happens when invoked.

<example>
## Commands

### /sync-docs

Synchronizes documentation with the latest GitLab API changes.

```bash
/sync-docs [version]
```

**Arguments:**

- `version` (optional): Target API version. Defaults to latest.

**What it does:** Fetches the latest GitLab API documentation and updates local reference files.
</example>

### Hooks (Automation)

**What they are**: Scripts that run automatically at lifecycle events (before/after tool use, on stop, etc.)

**How to document**: Explain what automation happens and when.

**Research**: Check hooks.json or hooks in frontmatter. Understand the trigger and effect.

**Write**: "Automatically..." or "When you [action], this plugin will..."

<example>
## Automatic Behaviors

- **On commit**: Automatically validates commit message format
- **Before push**: Runs lint checks and blocks push if errors found
  </example>

### MCP Servers (New Tools)

**What they are**: Servers that provide Claude with additional tools.

**How to document**: Explain what new capabilities become available.

**Write**: "Gives Claude access to..." or "Enables Claude to..."

### Agents (Internal - Usually Don't Document)

**What they are**: Sub-agents Claude can delegate to internally.

**How to document**: Usually skip unless the plugin is specifically about providing agents for user delegation patterns.

## Research Process

1. **Read `.claude-plugin/plugin.json`** - Get name, version, see what components are included
2. **For each skill in `skills/`**:
   - Read the ENTIRE SKILL.md (not just frontmatter)
   - Read ALL files in `references/` subdirectory
   - Ask: "What does this make Claude do differently?"
3. **For each command in `commands/`**:
   - Read the command file
   - Note the argument-hint and description
   - Ask: "How does the user invoke this? What does it do?"
4. **Check for hooks** (hooks.json or in frontmatter):
   - What events trigger them?
   - What automation do they provide?
5. **Check for MCP/LSP servers**:
   - What tools or intelligence do they add?

### Research Unfamiliar Concepts

When you encounter unfamiliar tools, libraries, or concepts in the plugin:

**Use your available tools to research:**

- Check your `<functions>` list for MCP tools like `Ref`, `context7`, `exa`
- Use `WebSearch` for current documentation and best practices
- Use `WebFetch` to read official documentation pages

**Why this matters**: Accurate documentation requires understanding. Don't guess what "gitlab-ci-local" does or what "PEP 723" means - look it up and explain it correctly for users who may also be unfamiliar.

**Example**: If a skill references "MCP servers" and you're unsure what users need to know, search for current MCP documentation to accurately describe the user experience.

## README Structure

```markdown
# {Plugin Name}

{One sentence: what this does for the user}

## Why Install This?

{Problems this solves or improvements users will see}

## What You Get

### Commands

{If the plugin has user-invocable commands, document each one}

### Claude Improvements

{What Claude does differently with this plugin - translated from skills}

### Automatic Behaviors

{What automation happens from hooks}

## Installation

First, add the marketplace (one-time setup):

\`\`\`bash
/plugin marketplace add {owner}/{repo}
\`\`\`

Then install the plugin:

\`\`\`bash
/plugin install {plugin-name}@{marketplace-name}
\`\`\`

## Usage

{How to use the commands, when the improvements kick in}

## Example

{Concrete scenario showing the plugin's value}

## Requirements

- Claude Code v2.0+
- {Any other requirements}
```

## Writing Rules

**For skills (hardest part)**:

- NEVER expose skill content or AI instructions
- Translate behavior into user-observable outcomes
- Use "Claude will..." not "The model MUST..."
- Focus on what users EXPERIENCE, not how Claude THINKS

**For commands**:

- Show exact invocation syntax
- Explain arguments
- Describe what happens

**For hooks**:

- Describe what happens automatically
- Explain the trigger ("when you commit...", "before you push...")

## Banned Terms

Never use these AI-internal terms in the README:

- ROLE_TYPE, orchestrator, sub-agent
- "The model MUST/should"
- frontmatter, allowed-tools, context-fork
- scientific method, observation → hypothesis
- agent autonomy, context window
- permissionMode, user-invocable

## Documentation Depth

**Match depth to complexity**:

- Simple plugins (one skill, no commands): ~50 lines may suffice
- Feature-rich plugins (multiple commands, complex behavior): 100-200+ lines is appropriate
- Document ALL commands thoroughly - users need to know how to use them

**Never sacrifice completeness for brevity**. A developer should be able to:

- Understand what the plugin does
- Know how to install it
- Learn all available commands
- See concrete examples of when it helps

If a plugin has 5 commands, document all 5. If it has complex use cases, show multiple examples.

## Quality Check

Before finishing:

- [ ] Commands are documented with syntax, arguments, and purpose
- [ ] Skill behaviors are translated to user outcomes (no AI jargon)
- [ ] Hooks/automation are explained
- [ ] Zero banned terms appear
- [ ] All features are covered (don't omit commands or capabilities)
- [ ] Unfamiliar concepts are researched and explained accurately
- [ ] A developer can understand AND USE the plugin from this README alone

## Output

Generate ONLY `README.md`.

