Skip to content

Consolidate 4 plugin skills into unified create-plugin skill#17

Merged
schultzp2020 merged 9 commits into
mainfrom
consolidate-plugin-skills
May 6, 2026
Merged

Consolidate 4 plugin skills into unified create-plugin skill#17
schultzp2020 merged 9 commits into
mainfrom
consolidate-plugin-skills

Conversation

@schultzp2020

Copy link
Copy Markdown
Collaborator

Summary

Consolidates 4 separate plugin development skills into a single create-plugin skill with a sub-command router, following the Agent Skills open standard architecture patterns.

Before (9 skills) → After (6 skills)

Removed Replaced by
create-backend-plugin create-plugin backend
create-frontend-plugin create-plugin frontend
export-and-package create-plugin export
generate-frontend-wiring create-plugin wiring

Why

These 4 skills formed a single linear workflow that constantly cross-referenced each other:

  • Both scaffold scripts were near-identical (same version map, same yarn new, differ only in --select backend-plugin vs frontend-plugin)
  • Each creation skill ended with "see export-and-package for next step"
  • All four shared the same prerequisites and consulted the same versions.md
  • Duplicate examples/dynamic-plugins.yaml across multiple skills

What changed

  • New skills/create-plugin/ with SKILL.md sub-command router (130 lines, well under 500 limit)
  • Unified scaffold.py — single script with --type backend|frontend replacing two near-identical scripts
  • Command references in references/ — backend.md, frontend.md, export.md, wiring.md
  • Deep-dive references preserved — export-options, packaging-formats, integrity-hashes, frontend-wiring, entity-page
  • Consolidated examples — deduplicated dynamic-plugins.yaml, kept frontend-wiring.yaml
  • Updated rhdh router — routes to create-plugin instead of 4 separate skills, renumbered intake menu
  • Updated README.md — rewritten for clarity, removed slash commands section, broader team framing
  • Updated ADR-0003 — reflects consolidated architecture
  • Bug fixes from review: Windows shell=True in export-plugin.py, NO_COLOR support in scaffold.py, stderr TTY check

Review

Created a skill-reviewer subagent that audited the consolidation. All issues (5 medium, 3 low) and suggestions (4) were addressed. See commit message for details.

Tests

All 245 tests pass.

Merge create-backend-plugin, create-frontend-plugin, export-and-package,
and generate-frontend-wiring into a single create-plugin skill with
sub-commands: backend, frontend, export, wiring.

Changes:
- New skills/create-plugin/ with SKILL.md sub-command router (130 lines)
- Unified scaffold.py (--type backend|frontend replaces two scripts)
- Command references in references/ (backend.md, frontend.md, export.md, wiring.md)
- Deep-dive references preserved (export-options, packaging-formats, etc.)
- Consolidated examples/ (deduplicated dynamic-plugins.yaml)
- Updated rhdh router to point to create-plugin (renumbered intake menu)
- Updated README.md, ADR-0003
- Fixed export-plugin.py: Windows shell=True, updated docstrings
- Fixed scaffold.py: NO_COLOR support, stderr TTY check
- Applied review feedback: compatibility frontmatter, Grid Spacing gotcha,
  script path note, Backstage App note, normalized reference paths

Removed:
- skills/create-backend-plugin/
- skills/create-frontend-plugin/
- skills/export-and-package/
- skills/generate-frontend-wiring/

All 245 tests pass.
Lessons learned from the create-plugin consolidation:

- New references/consolidation-guide.md: signals for when to consolidate,
  step-by-step workflow (analyze, design, merge scripts, consolidate
  examples, update consumers, audit paths, review), anti-patterns
- Updated SKILL.md: consolidation triggers in description, routing to
  consolidation guide, signal check during interview, consolidation-
  specific review checklist items
- Updated scripts-guide.md: NO_COLOR env var support, stderr vs stdout
  TTY gotcha, Windows shell=True for subprocess with npm/yarn tools
- Remove Jira intake menu item, routing section, and principle from
  rhdh SKILL.md so the rhdh-jira skill activates naturally instead
  of being intercepted by a stale jira-structure.md reference
- Remove jira-reference.md and jira-structure.md from reference index
  and shared references table (files kept for overlay's cross-reference)
- Update consult_tool_references principle: GitHub only, with note to
  use rhdh-jira skill directly for Jira work
- Renumber intake menu (1-9) and routing table to match
- Fix L1: export-plugin.py ANSI color check uses both stdout+stderr TTY
- Fix L2: README skill-maker description mentions consolidation
- Fix S1: consolidation-guide.md grep example includes --exclude-dir=.git
- Fix scaffold.py: move os import to top-level (ruff E402)
- Delete skills/rhdh/references/jira-reference.md (stale, used jira-cli
  instead of acli)
- Delete skills/rhdh/references/jira-structure.md (duplicated by rhdh-jira
  skill's own project/issue-type reference)
- Remove last Jira redirect from rhdh SKILL.md principle
- Update overlay/workflows/onboard-plugin.md to point to rhdh-jira skill
  instead of deleted reference file
- Remove test_jira_structure_skill.py (tested the deleted file)
- Fix pytest hook: use 'uv' instead of hardcoded /opt/homebrew/bin/uv
  so it works on Windows, macOS, and Linux
- Bump pre-commit-hooks rev v4.5.0 → v5.0.0 (fixes deprecated stage
  names warning)
- Fix markdownlint errors:
  - graphql-queries.md: h4 after h2 → h3 (MD001)
  - CONTEXT.md: blank line inside blockquote (MD028)
- Apply auto-fixes from ruff-format, trailing-whitespace, end-of-file-fixer
- Install pre-commit hook in .git/hooks/

All pre-commit checks pass. All 240 tests pass.
- Add .githooks/pre-commit that delegates to pre-commit if installed,
  skips gracefully with a warning if not
- Set core.hooksPath=.githooks (one-time per clone, documented in README)
- Update README Development section with the setup command

Contributors clone, run one git config command, and hooks work.
No 'pre-commit install' needed.
- Replace symlink (broke on CI — git checkout creates plain text file
  with symlink target instead of resolving it) with @AGENTS.md directive
- Update test to verify the directive instead of checking content
- Add CONTRIBUTING.md with setup, testing, linting, and PR guidelines
- Add .githooks/pre-commit for auto hook setup via core.hooksPath
@schultzp2020 schultzp2020 merged commit 46c4d8a into main May 6, 2026
4 checks passed
@schultzp2020 schultzp2020 deleted the consolidate-plugin-skills branch May 6, 2026 17:04
durandom pushed a commit to durandom/rhdh-skill that referenced this pull request May 26, 2026
…lidation

Session learnings from 2.1 Feature Exploration readiness check:

parse_issues.py:
- Add 'size' to ENRICHED_SELECT so T-shirt sizing appears in
  enriched output alongside story_points

SKILL.md:
- Gotcha redhat-developer#16: Feature→Epic child links use Parent Link
  (customfield_10018), not issuelinks — prevents false 'no child
  Epics' reports
- Gotcha redhat-developer#17: REST /rest/api/3/search returns 410 Gone, use
  /rest/api/3/search/jql POST endpoint instead
- Add validate_components.py to scripts table

fields.md:
- Full 90-component catalog with descriptions, grouped by category
  (RHDH Core, Backstage, Extension Plugin, Program)
- Freeze exclusion flags (Excl FF, CF, Post CF, Excl RN) per
  component — matches the Release Automation Sheet
- Component inference instructions: inherit from parent, match
  keywords from summary, validate against project
- Validation section now references validate_components.py

feature-exploration.md:
- Clarify New status is expected going into Feature Exploration
- Epic creation can happen before exploration to help size Features

validate_components.py (new):
- Compares fields.md component catalog against live RHIDP + RHDHPLAN
  Jira components via REST API
- Reports drift in both directions
- Supports --json for structured output
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