Skip to content
This repository was archived by the owner on Aug 11, 2026. It is now read-only.

feat(PF-4363): add pf-assist agent and eval - #131

Merged
jpuzz0 merged 2 commits into
patternfly:mainfrom
jpuzz0:PF-4363
Jul 2, 2026
Merged

feat(PF-4363): add pf-assist agent and eval#131
jpuzz0 merged 2 commits into
patternfly:mainfrom
jpuzz0:PF-4363

Conversation

@jpuzz0

@jpuzz0 jpuzz0 commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds pf-assist as an agent in the code-review plugin — always-on routing knowledge that makes every PF consumer skill contextually available to any @patternfly/* project
  • Gate checks for @patternfly/* in package.json and exits immediately on non-PF projects
  • Contextually routes to the right PF skills based on what the developer is doing (validation, testing, scaffolding, design)
  • Adds agent eval using skill: "" + plugin_dirs — tests behavioral influence (does the agent surface specific sub-skill names?) with 3 test cases and 3 judges
  • Declares agents field in plugin.json for both react and code-review plugins — required for marketplace installs to discover agents (auto-discovery only works with direct --plugin-dir installs)
  • Regenerates PLUGINS.md and plugin READMEs (also fixes duplicate entries in react README)

Skills routed contextually

Context Skills invoked
Code changes (validation) /pf-component-structure, /pf-import-checker, /pf-raw-colors-scan, /pf-token-auditor, /pf-compliance-checker, /pf-class-migration-scanner
After implementation (testing) /pf-unit-test-generator
New projects (scaffolding) /pf-project-scaffolder
Figma/design work /pf-figma-icon-finder, /pf-design-mode, /pf-design-comments, /pf-ai-experience-patterns

Eval coverage

Test case What it tests Judge
pf-validation-routing PF project with hardcoded hex colors routes to validation sub-skills routes_to_subskills
non-pf-gate-check Non-PF project gets no PF-specific routing gate_skip_non_pf
pf-testing-gap PF component without tests routes to unit test generator routes_to_subskills

Closes: PF-4363

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds the pf-assist routing guide, updates plugin documentation to list it, adds pf-assist eval configuration and cases, and narrows one .gitignore rule.

Changes

pf-assist plugin docs and eval cases

Layer / File(s) Summary
pf-assist agent definition
plugins/code-review/agents/pf-assist.md
Adds the pf-assist routing guide with @patternfly/* gating, context detection, and sub-skill grouping rules.
Plugin documentation updates
PLUGINS.md, plugins/code-review/README.md, README.md, CONTRIBUTING-SKILLS.md, plugins/react/README.md
Lists pf-assist in plugin docs, updates the React skill/agent lists, removes one example skill, and bumps the README badge count.
Non-PF gate case
eval/pf-assist/cases/non-pf-gate-check/*
Adds the gate-skip eval case metadata, prompt, package manifest, and UserCard component.
Testing-gap case
eval/pf-assist/cases/pf-testing-gap/*
Adds the unit-test routing eval case metadata, prompt, package manifest, and AlertBanner component.
Validation-routing config and case
eval/pf-assist/eval.yaml, eval/pf-assist/cases/pf-validation-routing/*
Adds the validation-routing eval config, case annotations, prompt, package manifest, and StatusCard component.
Eval runs ignore rule
.gitignore
Narrowes the ignored path from eval/ to eval/runs/.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

Suggested reviewers: dlabaj

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change by adding the pf-assist agent and its eval work.
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.
✨ 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.

@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.

🧹 Nitpick comments (4)
plugins/code-review/skills/pf-standards-check/SKILL.md (4)

1-95: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consumer-facing skill should have an eval.

Per path instructions, consumer-facing skills are expected to have an eval/<skill-name>/eval.yaml. This skill lives in code-review (a consumer plugin), not pf-workshop. Consider adding an eval that proves the orchestrator's unique value — e.g., testing that it correctly gates on package.json, sequences all six sub-skills, and formats consolidated output.

As per path instructions: "Consumer-facing skills are expected to have an eval.yaml in eval//. If this PR adds or significantly modifies a consumer skill and no corresponding eval exists, flag it as a nitpick reminder."

🤖 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/code-review/skills/pf-standards-check/SKILL.md` around lines 1 - 95,
The pf-standards-check consumer-facing skill is missing the required eval
coverage, so add an eval under eval/pf-standards-check/eval.yaml for this
orchestrator in code-review. Make the eval verify the gate check on
package.json, the sequencing of all six sub-skills, and the consolidated report
formatting produced by the pf-standards-check workflow.

Source: Path instructions


92-92: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Add language specifier to fenced code block.

The CLAUDE.md integration example lacks a language specifier. Add text or markdown.

+```text
After code review or implementation workflows, run /pf-standards-check before collecting feedback.


As per path instructions referencing CONTRIBUTING-SKILLS.md, keep documentation concise and AI-friendly.

<details>
<summary>🤖 Prompt for AI Agents</summary>

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/code-review/skills/pf-standards-check/SKILL.md at line 92, The
fenced example in SKILL.md is missing a language specifier, so update the
documentation block to use a tagged fence such as text or markdown. Locate the
CLAUDE.md integration example in the SKILL.md content and keep the surrounding
guidance concise and AI-friendly per CONTRIBUTING-SKILLS.md.


</details>

<!-- cr-comment:v1:517827ecfc60d72437851d04 -->

_Source: Path instructions_

---

`2-4`: _📐 Maintainability & Code Quality_ | _🔵 Trivial_ | _💤 Low value_

**Consider a stronger action verb in the description.**

"Check" is a weak verb per the skill description formula. Prefer "Audit" or "Validate" to front-load capability more clearly.

```diff
-description: Check PatternFly code against all validation dimensions — component structure, imports, design tokens, colors, design compliance, and migration readiness. Use when PatternFly component code has been written, modified, or reviewed.
+description: Audit PatternFly code against all validation dimensions — component structure, imports, design tokens, colors, design compliance, and migration readiness. Use when PatternFly component code has been written, modified, or reviewed.

As per coding guidelines, descriptions should start with a strong action verb.

🤖 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/code-review/skills/pf-standards-check/SKILL.md` around lines 2 - 4,
The skill description in pf-standards-check uses the weak verb “Check”; update
the top-level description to start with a stronger action verb such as “Audit”
or “Validate” while preserving the rest of the scope, so the skill name and
description read as a clear capability statement.

Source: Coding guidelines


64-64: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Add language specifier to fenced code block.

The output format example lacks a language specifier. Add text or markdown to satisfy markdownlint.

+```text

PatternFly Standards Check Results


As per path instructions referencing CONTRIBUTING-SKILLS.md, keep documentation concise and AI-friendly.

<details>
<summary>🤖 Prompt for AI Agents</summary>

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/code-review/skills/pf-standards-check/SKILL.md at line 64, The
fenced code block in the output format example is missing a language specifier,
which should be added to satisfy markdownlint. Update the example in SKILL.md so
the fenced block around “PatternFly Standards Check Results” uses a specifier
like text or markdown, and keep the surrounding documentation concise and
AI-friendly as required by CONTRIBUTING-SKILLS.md.


</details>

<!-- cr-comment:v1:c83e9d9cc1a81851434cf8d7 -->

_Source: Path instructions_

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @plugins/code-review/skills/pf-standards-check/SKILL.md:

  • Around line 1-95: The pf-standards-check consumer-facing skill is missing the
    required eval coverage, so add an eval under eval/pf-standards-check/eval.yaml
    for this orchestrator in code-review. Make the eval verify the gate check on
    package.json, the sequencing of all six sub-skills, and the consolidated report
    formatting produced by the pf-standards-check workflow.
  • Line 92: The fenced example in SKILL.md is missing a language specifier, so
    update the documentation block to use a tagged fence such as text or markdown.
    Locate the CLAUDE.md integration example in the SKILL.md content and keep the
    surrounding guidance concise and AI-friendly per CONTRIBUTING-SKILLS.md.
  • Around line 2-4: The skill description in pf-standards-check uses the weak
    verb “Check”; update the top-level description to start with a stronger action
    verb such as “Audit” or “Validate” while preserving the rest of the scope, so
    the skill name and description read as a clear capability statement.
  • Line 64: The fenced code block in the output format example is missing a
    language specifier, which should be added to satisfy markdownlint. Update the
    example in SKILL.md so the fenced block around “PatternFly Standards Check
    Results” uses a specifier like text or markdown, and keep the surrounding
    documentation concise and AI-friendly as required by CONTRIBUTING-SKILLS.md.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `99d5b137-271b-484e-b184-183151cd52ad`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 8e69cb557ad385a67b1afa5951ddc7f5f1afe322 and 8e23fb03bda991075fe63fc7f8be7fe043f90c0d.

</details>

<details>
<summary>📒 Files selected for processing (6)</summary>

* `CONTRIBUTING-SKILLS.md`
* `PLUGINS.md`
* `README.md`
* `plugins/code-review/README.md`
* `plugins/code-review/skills/pf-standards-check/SKILL.md`
* `plugins/react/README.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@jpuzz0 jpuzz0 changed the title feat(PF-4363): add pf-standards-check orchestrator skill feat(PF-4363): add pf-assist skill Jun 30, 2026
Convert pf-assist from skill to always-on agent. The routing knowledge
(gate check, 4 context tables, context detection signals) is "always
follow" knowledge that should activate contextually in any project with
@patternfly/* dependencies — not require explicit invocation.

Narrows .gitignore from eval/ to eval/runs/ so eval definitions are
tracked while run artifacts stay ignored.
@jpuzz0 jpuzz0 changed the title feat(PF-4363): add pf-assist skill feat(PF-4363): add pf-assist agent Jul 1, 2026
@jpuzz0 jpuzz0 changed the title feat(PF-4363): add pf-assist agent feat(PF-4363): add pf-assist agent and eval Jul 1, 2026
@jpuzz0
jpuzz0 requested review from a team and dlabaj and removed request for a team July 1, 2026 15:38

@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.

🧹 Nitpick comments (1)
eval/pf-assist/cases/pf-validation-routing/src/components/StatusCard.tsx (1)

11-16: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Raw hex colors instead of PF tokens — presumably intentional bait for /pf-raw-colors-scan and /pf-token-auditor routing in this validation-routing eval case, so leaving as-is.

🤖 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 `@eval/pf-assist/cases/pf-validation-routing/src/components/StatusCard.tsx`
around lines 11 - 16, No code change is needed here; the raw hex colors in
StatusCard are intentional for this validation-routing case, so leave the Card
backgroundColor and span color styling unchanged.
🤖 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.

Nitpick comments:
In `@eval/pf-assist/cases/pf-validation-routing/src/components/StatusCard.tsx`:
- Around line 11-16: No code change is needed here; the raw hex colors in
StatusCard are intentional for this validation-routing case, so leave the Card
backgroundColor and span color styling unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a6dc08f9-f48c-4286-ad14-b441c057d9c6

📥 Commits

Reviewing files that changed from the base of the PR and between 1195b55 and d200334.

📒 Files selected for processing (13)
  • eval/pf-assist/cases/non-pf-gate-check/annotations.yaml
  • eval/pf-assist/cases/non-pf-gate-check/input.yaml
  • eval/pf-assist/cases/non-pf-gate-check/package.json
  • eval/pf-assist/cases/non-pf-gate-check/src/components/UserCard.tsx
  • eval/pf-assist/cases/pf-testing-gap/annotations.yaml
  • eval/pf-assist/cases/pf-testing-gap/input.yaml
  • eval/pf-assist/cases/pf-testing-gap/package.json
  • eval/pf-assist/cases/pf-testing-gap/src/components/AlertBanner.tsx
  • eval/pf-assist/cases/pf-validation-routing/annotations.yaml
  • eval/pf-assist/cases/pf-validation-routing/input.yaml
  • eval/pf-assist/cases/pf-validation-routing/package.json
  • eval/pf-assist/cases/pf-validation-routing/src/components/StatusCard.tsx
  • eval/pf-assist/eval.yaml
✅ Files skipped from review due to trivial changes (8)
  • eval/pf-assist/cases/pf-validation-routing/input.yaml
  • eval/pf-assist/cases/pf-testing-gap/input.yaml
  • eval/pf-assist/cases/pf-validation-routing/package.json
  • eval/pf-assist/cases/non-pf-gate-check/annotations.yaml
  • eval/pf-assist/cases/pf-validation-routing/annotations.yaml
  • eval/pf-assist/cases/non-pf-gate-check/src/components/UserCard.tsx
  • eval/pf-assist/cases/pf-testing-gap/package.json
  • eval/pf-assist/eval.yaml

Tests agent behavioral influence using skill: "" + plugin_dirs —
no harness extension needed. Three cases: PF validation routing,
non-PF gate check, and PF testing gap. Three judges verify sub-skill
routing, gate check accuracy, and actionable next steps.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant