Thank you for your interest in contributing! This repository is a curated collection of Claude Code plugins for agentic commerce protocols and platforms. Every plugin follows a strict design philosophy: bake in stable conceptual knowledge, fetch implementation details live.
- Real-world use cases only. Every plugin, skill, and hook must solve a genuine problem encountered when building agentic commerce systems. Do not submit hypothetical or untested plugins.
- Attribution matters. If your plugin is inspired by or based on someone else's work, integration guide, or sample code — credit them clearly.
- Check for overlap. Before starting, review the existing plugins to ensure your contribution does not duplicate existing coverage. If it extends an existing plugin, consider adding a new skill rather than a new plugin.
All submitted plugins must:
- Solve a genuine problem — the plugin must address a real implementation challenge in agentic commerce (protocol integration, payment handling, agent orchestration, etc.)
- Follow the design philosophy:
- Stable conceptual knowledge (architecture, roles, flows, state machines) is embedded in the agent and skill definitions
- Implementation-specific details (schemas, SDK methods, API parameters) are fetched live via
WebSearch/WebFetchbefore writing code - Generated code cites the specification version it was written against
- Include a complete agent definition with:
- Live Documentation Rule section with official source URLs
- Conceptual Architecture section covering stable protocol knowledge
- Implementation Workflow section
- Include at least 3 skills covering distinct aspects of the domain
- Include lifecycle hooks where they add genuine safety value (secret detection, destructive command protection)
- Include a comprehensive README.md with installation, usage, skill table, and official references
- Work with Claude Code — test all skills and the subagent with real Claude Code sessions
- Use correct frontmatter format:
- Agent
toolsfield must be a comma-separated string (e.g.,tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch), NOT a YAML list - Skill frontmatter fields must follow the Claude Code plugins reference
- Agent
Every plugin must follow this directory structure:
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Plugin metadata
├── agents/
│ └── *-expert.md # Expert subagent (one per plugin)
├── hooks/
│ ├── hooks.json # Lifecycle hook configuration
│ └── scripts/
│ └── *.py # Hook scripts (Python, no external dependencies)
├── skills/
│ └── skill-name/
│ └── SKILL.md # Skill definition
├── .mcp.json # MCP server config (only if a real MCP server exists)
├── .lsp.json # LSP config (only for language-specific plugins)
└── README.md # Plugin documentation
- Plugin directory:
lowercase-with-hyphens(e.g.,ucp-agentic-commerce) - Skill directories:
lowercase-with-hyphensmatching the skill name (e.g.,ucp-checkout-rest) - Agent file:
name-expert.md(e.g.,ucp-expert.md) - Hook scripts:
snake_case.py(e.g.,check_secrets.py) - Plugin name in plugin.json: must match the directory name
{
"name": "your-plugin-name",
"version": "1.0.0",
"description": "One-line description of what the plugin provides",
"keywords": ["relevant", "keywords", "for", "discovery"]
}---
name: domain-expert
description: >
Expert in [Protocol/Platform Name]. Deep conceptual knowledge of
[key concepts]. Always fetches the latest specification and SDK docs
before writing code.
tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch
model: opus
------
name: plugin-name:skill-name
description: >
Brief description of what this skill does and when to use it.
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch, WebFetch
---git clone https://github.com/YOUR_USERNAME/agentic-commerce-claude-plugins.git
cd agentic-commerce-claude-plugins
git checkout -b add-your-plugin-namemkdir -p your-plugin-name/.claude-plugin
mkdir -p your-plugin-name/agents
mkdir -p your-plugin-name/hooks/scripts
mkdir -p your-plugin-name/skills/your-first-skillFollow the templates above. Key files to create:
.claude-plugin/plugin.json— metadataagents/your-expert.md— subagent with Live Documentation Rule, Conceptual Architecture, and Implementation Workflowhooks/hooks.json+hooks/scripts/check_secrets.py— at minimum, an async PostToolUse hook for secret detectionskills/*/SKILL.md— at least 3 skills covering distinct domain areasREADME.md— follow the format of existing plugin READMEs
Load your plugin and verify:
claude --plugin-dir ./your-plugin-name- Run
/agents— confirm your subagent appears - Run
/plugin— check the Errors tab for any loading issues - Test each skill by describing a relevant task to Claude
- Verify the subagent fetches live documentation before writing code
- Confirm hooks fire correctly (check async hook output on the next turn)
Add your plugin to the table in the root README.md, maintaining the existing format:
| [your-plugin-name](./your-plugin-name) | Description of your plugin... | **Agent:** `your-expert`<br>**Skills (N):** List of skills<br>**Hooks:** Description of hooks |git add your-plugin-name/
git add README.md
git commit -m "Add your-plugin-name plugin: brief description"
git push origin add-your-plugin-nameThen open a pull request.
If you want to add a new skill to an existing plugin:
- Create a new directory under
skills/with the skill name - Write the
SKILL.mdfollowing the plugin's existing patterns - Update the plugin's
README.mdskill table and structure tree - Update the root
README.mdskill count - Test the skill with Claude Code
- Submit a PR
When contributing hooks:
- PostToolUse hooks must be async (
"async": true) — they must not block Claude's workflow - PreToolUse hooks should be fast (< 10 second timeout) — they run synchronously before tool execution
- Hook scripts must use only Python standard library — no
pip installdependencies - Hook scripts must handle JSON parse errors gracefully — always wrap
json.load(sys.stdin)in try/except - Exit codes matter: 0 = success (output parsed as JSON), 2 = block (stderr shown to Claude), other = non-blocking error
- Test on Windows with Git Bash — this repo's primary environment uses bash on Windows
Your PR should include:
- Descriptive title:
Add [plugin-name]: [brief description]orAdd [skill-name] skill to [plugin-name] - What it does: One paragraph explaining what the plugin/skill covers
- Why it's needed: What real-world problem does this solve?
- What was tested: Which Claude Code features did you verify (agent loading, skill invocation, hook behavior)?
- Attribution: Credit any protocols, documentation, or sample code that inspired the contribution
- Plugins for hypothetical or unreleased protocols — the protocol/platform must have a public specification or documentation
- Plugins that hardcode implementation details — schemas, SDK methods, and API parameters must be fetched live, not embedded
- Plugins with
toolsas a YAML list — thetoolsfield must be a comma-separated string per the Claude Code spec - Hook scripts with external dependencies — only Python standard library
- Plugins without a README — every plugin must be self-documenting
- Duplicate coverage — if an existing plugin already covers the domain, extend it with new skills instead
- Be respectful in all interactions — issues, PRs, and reviews
- Credit your sources — if your plugin is based on a protocol specification, sample code, or integration guide, say so
- Prioritize correctness — agentic commerce involves payments and financial transactions; accuracy matters
- Test before submitting — every PR should include confirmation that the plugin loads and works in Claude Code
- Keep it focused — each plugin should cover one protocol or platform, not try to be everything
Open an issue if you have questions about contributing, or if you want to discuss a potential plugin before building it.