pf-status

star 33

Show the overall status of PatternFly Java components across lint, compare, and update dimensions. This skill should be used when the user asks to "/pf-status", "component status", "show status", "PFJ status", "what's been linted", "what's been compared", "what's outdated", "component overview", "show progress", "show component progress", "which components are done", "what's left to do", or "dashboard".

patternfly-java By patternfly-java schedule Updated 6/8/2026

name: pf-status description: >- Show the overall status of PatternFly Java components across lint, compare, and update dimensions. This skill should be used when the user asks to "/pf-status", "component status", "show status", "PFJ status", "what's been linted", "what's been compared", "what's outdated", "component overview", "show progress", "show component progress", "which components are done", "what's left to do", or "dashboard". metadata: version: "0.1.0"

/pf-status — PatternFly Java Component Status Dashboard

Aggregates status from /pf-lint, /pf-compare, and /pf-update report files to show a unified overview of all components. Does not read component source code — only existing report files.

Arguments

/pf-status [component]

Parameters:

  • [component] (optional) — Component name (e.g., card, navigation). If omitted, shows all components.

Examples:

/pf-status
/pf-status accordion
/pf-status navigation

Data Sources

All skill reports use JSON as the primary structured format. Markdown reports exist alongside for human reading but are not consumed by pf-status.

Source Path Format
Component list components/src/main/java/org/patternfly/component/ Directory listing
Lint reports reports/pf-lint/<COMPONENT>.json Per-component JSON (see pf-lint references/report-schema.json)
Compare reports reports/pf-compare/<COMPONENT>.json Per-component JSON (see pf-compare references/report-schema.json)
Update reports reports/pf-update/<VERSION>.json Per-version JSON (see pf-update references/report-schema.json)

Note: /pf-align does not produce reports and is not a data source. Action item counts referenced in suggestions (e.g., "7 action items") are derived from the compare report's actionItems array length.

Workflow

Step 1: Enumerate components

List all subdirectories under components/src/main/java/org/patternfly/component/ to get the canonical component list. Sort alphabetically.

Exclude template — it is a blueprint component, not a real UI component. Do not include it in the status table or stats.

If a [component] argument was given, verify the directory exists. If not, report an error and stop.

Step 2: Read lint status

For each component, check if reports/pf-lint/<COMPONENT>.json exists.

If the file exists, read the JSON and extract:

  • date
  • files
  • errors
  • warnings
  • status (clean or issues)

If no JSON file exists for a component, treat it as "not linted".

Step 3: Read compare status

For each component, check if reports/pf-compare/<COMPONENT>.json exists.

If the file exists, read the JSON and extract:

  • date
  • pfVersion
  • completeness.pfTotal
  • completeness.pfjTotal
  • completeness.matched
  • completeness.missingInPfj (array)
  • completeness.extraInPfj (array)

If the file does not exist, the compare status is "not compared".

Step 4: Read update status

Find the most recent update report by listing reports/pf-update/*.json and selecting the file with the highest version number (semver sort). If the directory does not exist or has no .json files, treat all components as "not checked".

If a JSON report exists, read it and extract:

  • version — the PF version analyzed
  • date — when the report was generated
  • componentsAffected — array of component names with changes
  • newComponents — array of new component names

For each component in componentsAffected, check if a compare report at reports/pf-compare/<COMPONENT>.json exists AND has a date that is equal to or later than the update report's date. If so, the component is "current" (compare was re-run after the update). Otherwise it is "outdated".

Components NOT in componentsAffected are "current" (no changes detected for them).

Step 5: Determine status values

For each component, derive these status labels:

Dimension Status values
Lint clean — linted with no remaining issues
issues — linted but has unresolved errors/warnings
— not yet linted
Compare 100% (N/N) — all PF variations matched
<X>% (M/N) — partial match (matched/pf_total)
— not yet compared
Update current — no relevant changes since last compare, or compare re-run after update
outdated (<version>) — changes detected in PF <version>, compare not yet re-run
— no update report exists

Step 6: Output

Overview mode (no component argument)

Print a summary table to the conversation:

# PF Status

| Component | Lint | Compare | Update |
|-----------|------|---------|--------|
| accordion | clean (Jun 1) | 100% (6/6) | current |
| navigation | clean (Jun 1) | 59% (10/17) | outdated (6.5.0) |
| button | clean (May 30) | — | — |
| ... | | | |

## Stats

- **Linted:** 49/49 (100%)
- **Compared:** 2/49 (4%)
- **Update checked:** <count>/<total> (<percentage>%)
- **Outdated:** <count> components need `/pf-compare` re-run

## Next Steps

Components ready for `/pf-compare`: button, card, ... (up to 10)
Components ready for `/pf-align`: navigation (7 action items from compare report's `actionItems` array)

Sort the table by actionability:

  1. Outdated components (need /pf-compare re-run after a PF release)
  2. Components with partial compare coverage (gaps to close)
  3. Components not yet compared (next candidates for /pf-compare)
  4. Components fully compared and aligned (done)

Detail mode (component argument given)

Print a detailed status card:

# PF Status: accordion

## Lint
- **Status:** clean
- **Date:** 2026-06-01
- **Files:** 6 | Errors: 0 | Warnings: 0

## Compare
- **Status:** 100% (6/6 matched)
- **Date:** 2026-05-29
- **PF Version:** Release 6.5.1
- **Missing in PFJ:** none
- **Extra in PFJ:** none

## Update
- **Status:** outdated (6.5.0)
- **Last checked:** 2026-06-01
- **Changes:** 2 PRs (1 feat, 1 fix)

## Suggested Next Action
Run `/pf-align accordion` to address DOM/CSS differences found in the compare report.

The "Suggested Next Action" should recommend the logical next step:

  • If not linted → "Run /pf-lint accordion"
  • If linted but not compared → "Run /pf-compare accordion"
  • If compared with gaps → "Run /pf-align accordion to address N action items" (N = length of compare report's actionItems array)
  • If outdated → "Run /pf-compare <component> to check PF <version> changes"
  • If compared at 100% with no action items → "Up to date"

Step 7: Write persistent report

Only write the persistent report in overview mode (no component argument). In detail mode, skip report generation to avoid the cost of reading all components for a single-component query.

Create the directory reports/pf-status/ if it does not exist.

  1. Write reports/pf-status/summary.json using the schema from references/report-schema.json. Include skillVersion (from metadata.version in this SKILL.md), date, stats, and full per-component status array.

  2. Write reports/pf-status/summary.md with the markdown table and stats section for human reading. Use this YAML frontmatter:

---
title: PatternFly Java Component Status
last_updated: <YYYY-MM-DD>
stats:
  total: <count>
  linted: <count>
  compared: <count>
  update_checked: <count>
  outdated: <count>
---

Follow with the full markdown table and stats section.

Install via CLI
npx skills add https://github.com/patternfly-java/patternfly-java --skill pf-status
Repository Details
star Stars 33
call_split Forks 6
navigation Branch main
article Path SKILL.md
More from Creator
patternfly-java
patternfly-java Explore all skills →