Skip to content

Commit ae99e2e

Browse files
authored
feat: Rename plugins to domain-based names (#50)
## Summary Closes [PF-3908](https://redhat.atlassian.net/browse/PF-3908) - Renames plugin directories from `pf-*` prefixed to descriptive, domain-based names so plugin names tell users exactly what they help with - Splits `pf-workflow` into two focused plugins: `issue-management` and `repo-management` - Updates marketplace configs, contributing guidelines, and auto-generated docs ### Rename map | Before | After | |--------|-------| | `pf-react` | `react` | | `pf-styling` | `design-tokens` | | `pf-a11y` | `a11y` | | `pf-figma` | `figma` | | `pf-workflow` | `issue-management` + `repo-management` | ### Why - Plugin names are the first thing users see in the marketplace. `pf-styling` doesn't tell you what it does — `design-tokens` does. `pf-workflow` covered two unrelated domains — issue tracking and repo maintenance — so it's split into two. - The `pf-` prefix moves to the **skill level** where it distinguishes PatternFly-specific skills (`pf-unit-test-generator`) from generic ones (`dependency-recommender`). No skill renames in this PR. - This also sets up the repo for clean upstream merges into the GitLab UXD AI helpers fork — domain-based plugins let both repos contribute skills to the same plugin directory without conflicts. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added Issue Management, Repo Management, and React plugins. * **Updates** * Simplified plugin names (react, design-tokens, a11y, figma, issue-management, repo-management). * Updated skill invocation paths to the new plugin identifiers. * Re-scoped and added several skills under design-tokens, issue-management, react, and repo-management. * **Documentation** * Updated README, PLUGINS.md, CONTRIBUTING.md/CONTRIBUTING-SKILLS.md with naming standards and install/invocation guidance. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent e0b1a67 commit ae99e2e

File tree

81 files changed

+329
-218
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+329
-218
lines changed

.claude-plugin/marketplace.json

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,34 @@
55
},
66
"plugins": [
77
{
8-
"name": "pf-react",
9-
"source": "./plugins/pf-react",
10-
"description": "PatternFly React coding standards and unit test generation agents"
8+
"name": "react",
9+
"source": "./plugins/react",
10+
"description": "React component development — coding standards, testing, and structure"
1111
},
1212
{
13-
"name": "pf-styling",
14-
"source": "./plugins/pf-styling",
15-
"description": "CSS, SCSS, design tokens, and visual styling for PatternFly"
13+
"name": "design-tokens",
14+
"source": "./plugins/design-tokens",
15+
"description": "Design token reference, auditing, and migration"
1616
},
1717
{
18-
"name": "pf-a11y",
19-
"source": "./plugins/pf-a11y",
20-
"description": "Accessibility auditing, reporting, and documentation for PatternFly applications"
18+
"name": "a11y",
19+
"source": "./plugins/a11y",
20+
"description": "Accessibility auditing, reporting, and documentation"
2121
},
2222
{
23-
"name": "pf-figma",
24-
"source": "./plugins/pf-figma",
25-
"description": "Figma design review, diffing, and asset identification for PatternFly"
23+
"name": "figma",
24+
"source": "./plugins/figma",
25+
"description": "Figma design review, diffing, and asset identification"
2626
},
2727
{
28-
"name": "pf-workflow",
29-
"source": "./plugins/pf-workflow",
30-
"description": "Issue tracking, PR management, and cross-repo coordination for PatternFly projects"
28+
"name": "issue-management",
29+
"source": "./plugins/issue-management",
30+
"description": "Issue creation, tracking, and cross-project coordination"
31+
},
32+
{
33+
"name": "repo-management",
34+
"source": "./plugins/repo-management",
35+
"description": "Release versioning, dependency analysis, and repository health"
3136
}
3237
]
3338
}

.cursor-plugin/marketplace.json

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,34 @@
55
},
66
"plugins": [
77
{
8-
"name": "pf-react",
9-
"source": "./plugins/pf-react",
10-
"description": "PatternFly React coding standards and unit test generation agents"
8+
"name": "react",
9+
"source": "./plugins/react",
10+
"description": "React component development — coding standards, testing, and structure"
1111
},
1212
{
13-
"name": "pf-styling",
14-
"source": "./plugins/pf-styling",
15-
"description": "CSS, SCSS, design tokens, and visual styling for PatternFly"
13+
"name": "design-tokens",
14+
"source": "./plugins/design-tokens",
15+
"description": "Design token reference, auditing, and migration"
1616
},
1717
{
18-
"name": "pf-a11y",
19-
"source": "./plugins/pf-a11y",
20-
"description": "Accessibility auditing, reporting, and documentation for PatternFly applications"
18+
"name": "a11y",
19+
"source": "./plugins/a11y",
20+
"description": "Accessibility auditing, reporting, and documentation"
2121
},
2222
{
23-
"name": "pf-figma",
24-
"source": "./plugins/pf-figma",
25-
"description": "Figma design review, diffing, and asset identification for PatternFly"
23+
"name": "figma",
24+
"source": "./plugins/figma",
25+
"description": "Figma design review, diffing, and asset identification"
2626
},
2727
{
28-
"name": "pf-workflow",
29-
"source": "./plugins/pf-workflow",
30-
"description": "Issue tracking, PR management, and cross-repo coordination for PatternFly projects"
28+
"name": "issue-management",
29+
"source": "./plugins/issue-management",
30+
"description": "Issue creation, tracking, and cross-project coordination"
31+
},
32+
{
33+
"name": "repo-management",
34+
"source": "./plugins/repo-management",
35+
"description": "Release versioning, dependency analysis, and repository health"
3136
}
3237
]
3338
}

CONTRIBUTING-SKILLS.md

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,38 @@ Open the file and read it. It's just markdown. Ask yourself:
6060

6161
Every skill or agent must live in a plugin. Pick the one that matches your skill's domain:
6262

63-
| Plugin | Domain | Decision test | Example skills |
64-
|--------|--------|---------------|----------------|
65-
| **pf-react** | Component development | Does this help me write or test a React component? | `pf-unit-test-generator`, `pf-bug-triage` |
66-
| **pf-styling** | Visual implementation | Does this help me understand or apply visual styling? | `pf-raw-colors-scan`, `pf-tokens` |
67-
| **pf-a11y** | Accessibility | Does this help me make something accessible? | `pf-audit`, `pf-doc-scaffold` |
68-
| **pf-figma** | Design tooling | Does this require Figma as input or output? | `pf-design-review`, `pf-design-diff` |
69-
| **pf-workflow** | Project operations | Does this help manage the project, not build it? | `pf-create-issue`, `pf-org-version-update`, `dependency-recommender` |
63+
| Plugin | What it helps you do | Decision test | Example skills |
64+
|--------|---------------------|---------------|----------------|
65+
| **react** | Develop and test React components | Does this help me write or test a React component? | `pf-unit-test-generator`, `pf-bug-triage` |
66+
| **design-tokens** | Reference, audit, and migrate design tokens | Does this involve design tokens, CSS variables, or color values? | `pf-tokens`, `pf-token-auditor`, `pf-raw-colors-scan` |
67+
| **a11y** | Audit and document accessibility | Does this help me make something accessible? | *(accepting contributions)* |
68+
| **figma** | Review and extract from Figma designs | Does this require Figma as input or output? | `figma-changes` |
69+
| **issue-management** | Create and track issues across tools | Does this help me create, link, or manage issues? | `pf-create-issue`, `duplicate-epic` |
70+
| **repo-management** | Manage releases, dependencies, and repo health | Does this help me maintain a repository? | `pf-org-version-update`, `dependency-recommender`, `analytics-repo-pruning` |
7071

7172
**How to decide:**
7273
- Use the **decision test** column. If you can answer "yes" to a plugin's question, that's where your skill goes.
7374
- If your skill matches multiple plugins, pick the one closest to its *primary input/output*.
74-
- If it doesn't fit any plugin, open an issue to discuss — don't create a new plugin without coordination.
75+
- If it doesn't fit any plugin, open an issue to discuss creating a new one.
76+
77+
### Plugin naming standard
78+
79+
Plugin names must tell a user exactly what the plugin helps them do. A user browsing the marketplace should understand what they're installing without clicking through.
80+
81+
**Good names** describe the capability:
82+
- `design-tokens` — you know it's about design tokens
83+
- `issue-management` — you know it manages issues
84+
- `react` — universally understood technology domain
85+
86+
**Bad names** are vague categories:
87+
- `workflow` — what workflow?
88+
- `styling` — styling what? how?
89+
- `ops` — too abstract
90+
91+
When proposing a new plugin, ask: *"If someone sees this name in a list, do they know what they're installing?"* If not, pick a more specific name. 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.
92+
93+
### Skill vs agent
7594

76-
**Skill vs agent:**
7795
- **Skill** — a task that produces a result: "generate tests," "audit for accessibility," "find an icon." Most contributions are skills.
7896
- **Agent** — domain knowledge the AI follows: "always follow these coding standards," "when reviewing designs, always verify brand colors and 8px grid spacing." Only create an agent if it's foundational context that improves *every* interaction in that plugin's area.
7997

@@ -91,7 +109,7 @@ Use the `pf-` prefix on skill and agent names that are **PatternFly-specific**.
91109
| Skill | No — recommends deps for any project | `dependency-recommender` |
92110
| Agent | Yes — PF React coding standards | `pf-coding-standards` |
93111

94-
**Why this matters:** In Cursor, slash commands appear in a flat list without plugin context — `/unit-test-generator` is indistinguishable from skills in other plugins. In Claude Code, skills show the plugin namespace (`/pf-react:pf-unit-test-generator`), but the `pf-` prefix on the skill name ensures discoverability across both tools.
112+
**Why this matters:** In Cursor, slash commands appear in a flat list without plugin context — `/unit-test-generator` is indistinguishable from skills in other plugins. In Claude Code, skills show the plugin namespace (`/react:pf-unit-test-generator`), but the `pf-` prefix on the skill name ensures discoverability across both tools.
95113

96114
**The directory name, file name, and frontmatter `name` must all match.** A mismatch causes confusing behavior when invoking the skill.
97115
- Skill directory: `skills/pf-unit-test-generator/SKILL.md` with `name: pf-unit-test-generator`
@@ -117,7 +135,7 @@ For guidance on writing effective skills — structure, descriptions, examples,
117135

118136
In addition to the skill-creator guidance, skills in this repo must follow these rules:
119137

120-
- **Frontmatter is required** with `name` and `description`. The `name` must match the directory name. The `description` should include trigger contexts (e.g., "Use when...") since the AI decides whether to load the skill based on the description alone.
138+
- **Frontmatter is required** with `name` and `description`. The `name` must match the directory name. The `description` should include trigger contexts (e.g., "Use when...") since the AI decides whether to load the skill based on the description alone. Front-load the key use case — descriptions longer than 250 characters are truncated in the skill listing.
121139
- Add `disable-model-invocation: true` if your skill has side effects (creates issues, posts comments, deploys)
122140
- **Describe outcomes, not implementation** — tell the AI what to accomplish, not how to do it. The AI already knows how to use `git`, `gh`, `grep`, etc.
123141
- **Skills must be tool-agnostic** — they run in both Claude Code and Cursor. Avoid referencing a specific tool (e.g., use "Assistant:" instead of "Claude:" in examples).

CONTRIBUTING.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,30 @@ Your skill becomes available as `/<plugin-name>:your-skill` once merged.
2525

2626
## Creating a New Plugin
2727

28-
Create a new plugin when your contribution doesn't fit into an existing one — for example, a new domain like charts, chatbot patterns, or migration tooling.
28+
Create a new plugin when your contribution represents a distinct domain that doesn't fit into an existing plugin.
29+
30+
### Plugin naming standard
31+
32+
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.
33+
34+
Ask: *"If someone sees this name in a list, do they know what they're installing?"*
35+
36+
| Good | Why | Bad | Why |
37+
|------|-----|-----|-----|
38+
| `design-tokens` | Specific — you know it's about tokens | `styling` | Vague — styling what? |
39+
| `issue-management` | Clear action — manages issues | `workflow` | Could mean anything |
40+
| `react` | Universal tech domain | `frontend` | Too broad |
41+
42+
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.
43+
44+
### Steps
2945

3046
1. Create a new directory under `plugins/your-plugin-name/`
3147
2. Add a `plugin.json` to both `.claude-plugin/` and `.cursor-plugin/` (identical content):
3248
```json
3349
{
3450
"name": "your-plugin-name",
35-
"description": "What your plugin does",
51+
"description": "What your plugin helps users do",
3652
"version": "1.0.0",
3753
"author": {
3854
"name": "Your Name"

0 commit comments

Comments
 (0)