Skip to content

feat: add content plugin — voice and tone agent and content review skill#109

Open
jschuler wants to merge 4 commits into
patternfly:mainfrom
jschuler:voice-tone
Open

feat: add content plugin — voice and tone agent and content review skill#109
jschuler wants to merge 4 commits into
patternfly:mainfrom
jschuler:voice-tone

Conversation

@jschuler

@jschuler jschuler commented Jun 9, 2026

Copy link
Copy Markdown

Add content plugin — voice and tone

Summary

  • Adds a new content plugin with a voice-and-tone agent and a content-review skill
  • Registers the plugin in both .claude-plugin/marketplace.json and .cursor-plugin/marketplace.json
  • Regenerates PLUGINS.md and the README plugin table

What this adds

voice-and-tone (agent) — Always-on knowledge of PatternFly and Red Hat content design standards, applicable to both UX microcopy and long-form documentation. Covers the four brand voice traits (friendly, approachable, collaborative, inventive), tone by context, point of view, sentence voice, capitalization, punctuation, vocabulary rules, structural patterns, component-specific microcopy (buttons, tooltips, alt text), AI language flags, and credibility principles. Sourced from patternfly.org/content-design, Red Hat brand standards, the Red Hat corporate style guide, the Red Hat Design System content accessibility guidelines, and the Writing for Red Hat takeaway guide.

content-review (skill) — On-demand audit or rewrite of markdown content against PatternFly and Red Hat voice and tone rules. Accepts a file path or pasted content, produces either an annotated issues list (audit mode) or a revised version ready to apply (rewrite mode).

Why a new plugin

Content design is a first-class discipline in PatternFly — the site has a dedicated content design section with grammar rules, writing guides, and brand voice documentation. None of the existing plugins cover writing and documentation quality. This fills that gap for contributors writing design guidelines, UI copy, or any content for patternfly.org or Red Hat products.

The rules are intentionally unified across both contexts: the same voice and tone standards apply to UX microcopy and long-form docs, with only minor noted exceptions (such as the ampersand rule, which is stricter in UI microcopy than in documentation).

Test plan

  • Run /plugin install content@patternfly-ai-helpers and /reload-plugins — confirm voice-and-tone appears in agents and content-review in skills
  • Invoke /content:content-review on a markdown file in audit mode — confirm it produces a numbered issues list with rule names and suggested fixes
  • Invoke /content:content-review on the same file in rewrite mode — confirm it returns revised markdown and a brief change summary
  • Confirm the agent shapes output when writing new docs without invoking the skill explicitly

@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@jschuler, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 48 minutes and 31 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 92c22e3d-e1c8-42dd-9c21-94f9b783525f

📥 Commits

Reviewing files that changed from the base of the PR and between ed66129 and dbcf9c9.

📒 Files selected for processing (5)
  • .claude-plugin/marketplace.json
  • .cursor-plugin/marketplace.json
  • PLUGINS.md
  • README.md
  • plugins/content/skills/content-review/SKILL.md
📝 Walkthrough

Walkthrough

This PR introduces a new PatternFly content plugin to the ai-helpers repository. The plugin provides content design guidance—including voice/tone standards, content review workflows, and UX writing guidance—for use with Claude and Cursor. The change registers the plugin in both marketplace manifests, declares plugin metadata, updates project documentation, and includes comprehensive skill and agent guidelines.

Changes

PatternFly Content Plugin

Layer / File(s) Summary
Plugin marketplace registration
.claude-plugin/marketplace.json, .cursor-plugin/marketplace.json
Content plugin is registered in both Claude and Cursor marketplace configurations with source path and description.
Plugin metadata
plugins/content/.claude-plugin/plugin.json, plugins/content/.cursor-plugin/plugin.json
Both Claude and Cursor plugin manifests declare the plugin's name, version (1.0.0), author, repository, and MIT license.
Project documentation updates
README.md, PLUGINS.md
Available plugins table in README and PLUGINS.md documentation are updated to include the new content plugin and its skills/agents.
Plugin content and guidelines
plugins/content/README.md, plugins/content/agents/voice-and-tone.md, plugins/content/skills/content-review/SKILL.md
Plugin README covers installation and directory structure; voice-and-tone agent documents PatternFly voice, tone, grammar, and writing standards; content-review skill specifies an audit/rewrite workflow with detailed rule checklists and output formatting.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • patternfly/ai-helpers#95: Both PRs modify the plugin catalog/registry docs and manifests (e.g., .claude-plugin/marketplace.json, README.md, and PLUGINS.md) by changing entries in the plugins list/table—main PR adds a new content plugin while the retrieved PR restructures the catalog to the 6-plugin taxonomy.

Suggested reviewers

  • bekah-stephens
  • dlabaj
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: adding a new content plugin with voice/tone agent and content review skill.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Review ran into problems

🔥 Problems

Linked repositories: Your configuration references 1 linked repositories, but your current plan allows 0. Analyzed ``, skipped anthropics/claude-plugins-official.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@jschuler jschuler changed the title Feat: Add voice & tone agent and skill feat: add content plugin — voice and tone agent and content review skill Jun 11, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/content/skills/content-review/SKILL.md`:
- Around line 1-4: Rename the skill to include the PatternFly prefix: move the
directory from skills/content-review/ to skills/pf-content-review/ and update
the SKILL.md frontmatter field name: change name: content-review to name:
pf-content-review. Then search and replace any cross-references of the old
identifier ("content-review") in marketplace.json, PLUGINS.md, and README.md to
the new identifier ("pf-content-review") and ensure any links, registry keys, or
examples use the updated directory and frontmatter name. Finally, run a quick
build or link check to verify no broken references remain.
- Around line 1-4: The skill frontmatter for the content-review skill is missing
the required flag to prevent programmatic invocation; update the YAML
frontmatter in SKILL.md for the skill named "content-review" by adding
disable-model-invocation: true (as a boolean) inside the existing --- block so
the skill cannot be invoked by the model when performing side-effecting
operations such as the "apply with the Edit tool" rewrite behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8317a2a1-068c-4d1b-b6e8-e151fd51d3c6

📥 Commits

Reviewing files that changed from the base of the PR and between 19575c7 and ed66129.

📒 Files selected for processing (9)
  • .claude-plugin/marketplace.json
  • .cursor-plugin/marketplace.json
  • PLUGINS.md
  • README.md
  • plugins/content/.claude-plugin/plugin.json
  • plugins/content/.cursor-plugin/plugin.json
  • plugins/content/README.md
  • plugins/content/agents/voice-and-tone.md
  • plugins/content/skills/content-review/SKILL.md

Comment on lines +1 to +4
---
name: content-review
description: Audit and rewrite content to match PatternFly and Red Hat voice and tone standards. Use when contributing to patternfly.org, writing UI copy for Red Hat products, reviewing design guidelines, or editing externally sourced or AI-generated content.
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Missing pf- prefix in skill name.

The skill is PatternFly and Red Hat specific but uses content-review instead of pf-content-review. Per the coding guidelines for consumer plugins, PatternFly-specific skills must use the pf- prefix to ensure discoverability across Claude Code and Cursor.

This requires three changes:

  1. Rename the directory from skills/content-review/ to skills/pf-content-review/
  2. Update frontmatter name: to pf-content-review
  3. Update any cross-references in marketplace.json, PLUGINS.md, and README.md
📝 Proposed fix for frontmatter
 ---
-name: content-review
+name: pf-content-review
 description: Audit and rewrite content to match PatternFly and Red Hat voice and tone standards. Use when contributing to patternfly.org, writing UI copy for Red Hat products, reviewing design guidelines, or editing externally sourced or AI-generated content.
 ---
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
name: content-review
description: Audit and rewrite content to match PatternFly and Red Hat voice and tone standards. Use when contributing to patternfly.org, writing UI copy for Red Hat products, reviewing design guidelines, or editing externally sourced or AI-generated content.
---
---
name: pf-content-review
description: Audit and rewrite content to match PatternFly and Red Hat voice and tone standards. Use when contributing to patternfly.org, writing UI copy for Red Hat products, reviewing design guidelines, or editing externally sourced or AI-generated content.
---
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/content/skills/content-review/SKILL.md` around lines 1 - 4, Rename
the skill to include the PatternFly prefix: move the directory from
skills/content-review/ to skills/pf-content-review/ and update the SKILL.md
frontmatter field name: change name: content-review to name: pf-content-review.
Then search and replace any cross-references of the old identifier
("content-review") in marketplace.json, PLUGINS.md, and README.md to the new
identifier ("pf-content-review") and ensure any links, registry keys, or
examples use the updated directory and frontmatter name. Finally, run a quick
build or link check to verify no broken references remain.

Source: Coding guidelines


⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Missing disable-model-invocation: true for side-effecting skill.

The skill writes to files in rewrite mode (line 107: "apply with the Edit tool"), which is a side effect. Per the coding guidelines and retrieved learnings, skills that perform side effects must include disable-model-invocation: true in the frontmatter to prevent the AI from invoking the skill programmatically.

🛡️ Proposed fix
 ---
 name: content-review
 description: Audit and rewrite content to match PatternFly and Red Hat voice and tone standards. Use when contributing to patternfly.org, writing UI copy for Red Hat products, reviewing design guidelines, or editing externally sourced or AI-generated content.
+disable-model-invocation: true
 ---
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/content/skills/content-review/SKILL.md` around lines 1 - 4, The skill
frontmatter for the content-review skill is missing the required flag to prevent
programmatic invocation; update the YAML frontmatter in SKILL.md for the skill
named "content-review" by adding disable-model-invocation: true (as a boolean)
inside the existing --- block so the skill cannot be invoked by the model when
performing side-effecting operations such as the "apply with the Edit tool"
rewrite behavior.

Sources: Coding guidelines, Learnings

@jschuler

Copy link
Copy Markdown
Author

Responding to CodeRabbit's two findings:

disable-model-invocation: true — valid, added in the latest commit.

pf- prefix — intentionally omitted. Per CONTRIBUTING-SKILLS.md: "Use pf- prefix only for PatternFly-specific skills/agents." This skill and agent are deliberately scoped broader than PatternFly — they cover Red Hat brand content and UI copy for Red Hat products, sourced from the Red Hat corporate style guide and brand standards in addition to patternfly.org. Naming it pf-content-review would misrepresent that scope. Happy to defer to maintainer preference if the convention is that all consumer plugin skills should carry the prefix regardless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant