How to Contribute New Skills to the Knowledge-Work-Plugins Repository
Adding a new skill requires creating a markdown-based SKILL.md file inside a skills/<skill-name>/ directory, updating the parent plugin's plugin.json manifest, and optionally defining slash commands in a commands/ folder.
The knowledge-work-plugins repository by Anthropic is a collection of markdown-based plugins that transform Claude into a specialist for specific roles, teams, or workflows. Each plugin follows a strict file-based architecture where new capabilities are added through plain markdown and JSON configuration files—no compiled code or build steps required. Understanding this structure allows you to contribute skills that Claude automatically discovers and integrates.
Understanding the Plugin Architecture
The repository organizes capabilities into plugin directories, each containing a standardized layout that Claude reads to understand available tools and commands.
Core Components
.claude-plugin/plugin.json: Declares the plugin's metadata, version, and exposed commands or skills. Claude reads this manifest to determine what capabilities are available. Located at paths likesales/.claude-plugin/plugin.json..mcp.json: Maps logical connector names to MCP (Model Context Protocol) endpoint URLs, enabling skills to invoke external APIs such as Slack or Salesforce. Example:sales/.mcp.json.skills/<skill-folder>/SKILL.md: The only required file for any new skill. Contains frontmatter metadata (name,description,argument-hint,triggers) followed by markdown instructions that guide Claude's responses.commands/*.md: Optional slash-command definitions that let users explicitly invoke skills (e.g.,/sales:pipeline-review).references/: Optional directory inside skill folders for auxiliary documentation, code snippets, or large tables that would exceed the recommended 500-line limit forSKILL.md.
Step-by-Step Guide to Adding a New Skill
Follow these steps to create a skill that integrates with the anthropics/knowledge-work-plugins repository.
1. Create the Skill Directory
Create a new folder under skills/ using a logical, hyphen-separated name in lowercase:
mkdir -p plugin-name/skills/budget-review/references
Replace plugin-name with the target plugin directory (e.g., finance, sales, engineering).
2. Write the SKILL.md Entry Point
Create skills/budget-review/SKILL.md with required frontmatter followed by instructional content:
---
name: budget-review
description: |
Review a department's quarterly budget, flag overspend, and suggest re-allocations.
Use when a manager asks "How are we doing against the Q2 budget?".
argument-hint: "<CSV-file-or-text>"
---
# Budget Review
> If you need to see which connectors are configured, check [CONNECTORS.md](../../CONNECTORS.md).
## Usage
/budget-review [CSV file or raw text]
## What I Need From You
- **Option A – CSV upload** – Include columns: `Category, Planned, Actual`.
- **Option B – Inline text** – Example:
Marketing, 50000, 62000 Engineering, 75000, 71000
## Output
```markdown
# Q2 Budget Review
| Category | Planned | Actual | Δ (%) |
|------------|--------:|-------:|------:|
| Marketing | $50,000 | $62,000 | +24% |
| Engineering| $75,000 | $71,000 | -5% |
**Total Overspend:** $12,000 (≈ 4% over budget)
**Recommendations**
- Reduce Marketing spend by $8k (e.g., cut paid-social budget).
- Re-allocate $4k from Engineering to Marketing to maintain momentum.
Keep the primary [`SKILL.md`](https://github.com/anthropics/knowledge-work-plugins/blob/main/SKILL.md) under **500 lines**. Move large reference tables or extended documentation to the `references/` subfolder, as seen in [`small-business/skills/ticket-deflector/reference/gotchas.md`](https://github.com/anthropics/knowledge-work-plugins/blob/main/small-business/skills/ticket-deflector/reference/gotchas.md).
### 3. Update the Plugin Manifest
Edit the [`.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/.claude-plugin/plugin.json) file in the plugin root to ensure Claude recognizes the new skill. The manifest automatically discovers any [`SKILL.md`](https://github.com/anthropics/knowledge-work-plugins/blob/main/SKILL.md) files placed under `skills/`, but you should verify the `skills` array or discovery patterns include your new directory path.
Example manifest structure from [`sales/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/sales/.claude-plugin/plugin.json):
```json
{
"name": "sales",
"version": "1.0.0",
"description": "Sales team workflow automation",
"skills": [
"skills/pipeline-review",
"skills/budget-review"
]
}
4. Add Optional Slash Commands
For explicit invocation via commands like /budget-review, create a markdown file in the commands/ directory:
---
name: budget-review
description: Run a budget review using the new skill.
---
# /budget-review
Invoke the **budget-review** skill directly:
/budget-review path/to/budget.csv
See pdf-viewer/commands/open.md for additional examples of command formatting.
Complete Example: Budget Review Skill Structure
Here is the full file tree for a hypothetical budget-review skill added to the finance plugin:
finance/
├── .claude-plugin/
│ └── plugin.json ← Update to include new skill path
├── .mcp.json ← Add MCP connector mappings if needed
├── skills/
│ └── budget-review/
│ ├── SKILL.md ← Required entry point (frontmatter + instructions)
│ └── references/
│ └── example-budget-csv.md ← Optional extended documentation
└── commands/
└── budget-review.md ← Optional slash command definition
Best Practices for Skill Development
When contributing to anthropics/knowledge-work-plugins, follow these guidelines to ensure quality and consistency:
- Reference the Zoom plugin CONTRIBUTING.md: The file at
partner-built/zoom-plugin/CONTRIBUTING.mdcontains the generic "Skill Format Guidelines" used across the entire repository. - Study existing implementations: Examine
sales/skills/pipeline-review/SKILL.mdfor a production-quality example of skill structure and tone. - Limit file sizes: Keep
SKILL.mdunder 500 lines by offloading reference material to thereferences/folder. - Use proper frontmatter: Always include
name,description, andargument-hintin the YAML header to help Claude understand when and how to invoke the skill. - No build required: Since everything is plain markdown and JSON, you can test your skill files directly without compilation. Submit your contribution as a standard GitHub Pull Request.
Summary
- knowledge-work-plugins uses a markdown-based architecture requiring no compiled code.
- Create a folder under
skills/<skill-name>/and add aSKILL.mdfile with proper frontmatter. - Update
.claude-plugin/plugin.jsonto register the new skill with Claude. - Add optional slash commands in
commands/<command-name>.mdfor explicit user invocation. - Maintain
SKILL.mdfiles under 500 lines using thereferences/folder for auxiliary content.
Frequently Asked Questions
Do I need to know programming languages to contribute a skill?
No. The knowledge-work-plugins repository deliberately avoids compiled code. Skills are written entirely in markdown with optional JSON configuration files. You only need to understand YAML frontmatter syntax for the metadata headers in SKILL.md files.
How does Claude discover new skills automatically?
Claude reads the .claude-plugin/plugin.json manifest in each plugin root directory. According to the sales/.claude-plugin/plugin.json implementation, the manifest automatically picks up any SKILL.md files located under skills/ subdirectories. Once your PR is merged, Claude immediately recognizes the new capability without requiring redeployment.
What is the maximum length for a SKILL.md file?
Keep the primary SKILL.md entry point under 500 lines. If your skill requires extensive reference tables, code snippets, or documentation, move this content to files in the references/ folder within your skill directory, following the pattern used in small-business/skills/ticket-deflector/reference/gotchas.md.
Can my skill connect to external APIs like Slack or Salesforce?
Yes. Define MCP (Model Context Protocol) connector mappings in the .mcp.json file at your plugin root, as shown in sales/.mcp.json. This JSON file maps logical connector names to actual endpoint URLs, allowing your skill's markdown instructions to reference external tools via the MCP system.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →