We welcome contributions of new plugins, skills, agents, and documentation.
Plugins work in Claude Code and Cursor, and the structure is designed to extend to other tools. Each plugin has identical manifests in .claude-plugin/ and .cursor-plugin/ so each tool discovers it natively.
plugins/ # Plugins (skills and agents)
docs/ # AI-friendly PatternFly documentation
.claude-plugin/ # Marketplace config (Claude Code)
.cursor-plugin/ # Marketplace config (Cursor)
This is the simplest way to contribute. See CONTRIBUTING-SKILLS.md for a full walkthrough.
- Create a directory under the plugin's
skills/folder:plugins/<plugin-name>/skills/your-skill/ - Add a
SKILL.mdwith your instructions in plain markdown - Open a pull request
Your skill becomes available as /<plugin-name>:your-skill once merged.
Create a new plugin when your contribution represents a distinct domain that doesn't fit into an existing plugin.
Plugin names must tell a user exactly what the plugin helps them do. Someone browsing the marketplace should understand what they're installing without clicking through.
Ask: "If someone sees this name in a list, do they know what they're installing?"
| Good | Why | Bad | Why |
|---|---|---|---|
design-foundations |
Specific — tokens, icons, colors, spacing | styling |
Vague — styling what? |
issue-management |
Clear action — manages issues | workflow |
Could mean anything |
react |
Universal tech domain | frontend |
Too broad |
It's fine to create a plugin with only 1-2 skills if it represents a distinct domain. The taxonomy should reflect where the project is going, not just where it is today. Coordinate via an issue before creating a new plugin.
- Create a new directory under
plugins/your-plugin-name/ - Add a
plugin.jsonto both.claude-plugin/and.cursor-plugin/(identical content):{ "name": "your-plugin-name", "description": "What your plugin helps users do", "version": "1.0.0", "author": { "name": "Your Name" } } - Add skills under
skills/, agents underagents/, or both - Register your plugin in both
.claude-plugin/marketplace.jsonand.cursor-plugin/marketplace.jsonat the repo root - Add a
README.mddocumenting your plugin
- Skills (
skills/your-skill/SKILL.md) — tasks that produce a result. Use this for most contributions. - Agents (
agents/your-agent.md) — domain knowledge the AI follows. Use for standards and guidelines.
- Add markdown files under
docs/following the existing directory structure - Update
docs/README.md(table of contents) to link to your new content
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Use kebab-case for directory and file names
- Include clear descriptions in all frontmatter
- Test your skills locally before submitting
- Keep documentation concise and AI-friendly
- Don't hardcode a
model:in agent frontmatter — it forces all users onto one model, overriding their preference - Use the
pf-prefix on skill/agent names that are PatternFly-specific (see CONTRIBUTING-SKILLS.md)