Skip to content

feat: add test-placement skill for the plugin testing strategy - #58

Merged
kadel merged 4 commits into
redhat-developer:mainfrom
gustavolira:feat/test-placement-skill
Jul 21, 2026
Merged

feat: add test-placement skill for the plugin testing strategy#58
kadel merged 4 commits into
redhat-developer:mainfrom
gustavolira:feat/test-placement-skill

Conversation

@gustavolira

Copy link
Copy Markdown
Member

Summary

Adds a test-placement skill (skills/test-placement/): when a developer asks "where should I test this?", the assistant gathers the context and proposes the right repo (rhdh-plugins / rhdh-plugin-export-overlays / rhdh), the right test layer (L1 unit → L4b cluster e2e), the location, and how to scaffold the test.

It encodes the per-repository testing responsibility split consolidated on epic RHIDP-13501: artifact bugs → overlays native smoke (merged in overlays#2714 — install from OCI + startTestBackend boot, workspace mode, bundle presence) · source bugs → the plugin's source repo · integration/UI-render bugs → the rhdh cluster-free harness (merged in rhdh#5005) · platform bugs → cluster e2e. Guiding rule: the cheapest environment that catches the bug wins. Includes the researched dead-ends (catalog-extending modules in minimal startTestBackend, local-path artifacts, standalone Scalprum host) so devs don't burn time on them.

Why here

Per review feedback on overlays#2726: the skill covers the entire RHDH ecosystem (three repos, five test layers), not any single repo — exactly what this centralized repo exists to hold. Supersedes and replaces the three per-repo sibling PRs:

Compared to those PRs, the References section was refreshed: overlays#2714 and rhdh#5005 have since merged.

Changes

  • New skill: skills/test-placement/SKILL.md (content-only, no scripts)
  • README: new "Test Placement" section
  • Orchestrator (skills/rhdh/SKILL.md): new "Test Placement Routes" entry
  • Version bump 0.6.10.7.0 (new skill = minor), in sync across pyproject.toml, plugin.json, marketplace.json

Related

Epic RHIDP-13501 · overlays#2714 · rhdh#5005 · rhdh#5044 (layer matrix) · rhdh#4967 (catalog-index sanity)

🤖 Generated with Claude Code

Comment thread skills/rhdh/SKILL.md Outdated
Comment thread skills/test-placement/SKILL.md
Comment thread skills/test-placement/SKILL.md Outdated
Comment thread skills/test-placement/SKILL.md Outdated
Comment thread skills/test-placement/SKILL.md Outdated
Comment thread README.md
gustavolira added a commit to gustavolira/rhdh-skill that referenced this pull request Jul 7, 2026
- Quote literal trigger phrases in the frontmatter description,
  matching the nfs-migration/backstage-upgrade convention
- Add test-placement to the orchestrator intake menu (item 10) and
  skills_index; renumber release/general items and routes
- Cross-reference skills/rhdh/references/rhdh-repos.md with the
  standalone-install caveat (backstage-upgrade pattern)
- Drop the layer-matrix URL that 404s until rhdh#5044 merges; keep
  the repo path + PR reference
- Remove the hardcoded date from the References header
- Add parametrized frontmatter validation for every skills/*/SKILL.md
  (name matches directory, description within spec limits)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@durandom durandom left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Review

Clean, well-scoped skill that fills a real gap — developers repeatedly ask "where should I test this?" and get it wrong (adding cluster e2e tests for pure UI logic, or missing the overlays native smoke entirely).

What's good

  • Decision table (Step 2) — the 10-row table mapping "what you want to verify" → repo, harness, cluster?, Docker? is the core value of this skill. Concrete and actionable.
  • Layer ladder (Step 3) — L1→L4b progression with "cheapest that catches the bug wins" as the guiding rule is clear.
  • "Not possible today" section — documenting researched dead-ends (standalone Scalprum host, `@backstage/frontend-dynamic-feature-loader`, catalog modules in minimal `startTestBackend`) saves developers from wasting time. This is the kind of tribal knowledge that's hardest to discover independently.
  • PR status awareness — "PR statuses are as of the last edit — verify before citing as merged" is responsible. The References section correctly notes which PRs have merged vs. are in review.
  • Output format — specifying what the recommendation should include (Repo, Layer/harness, Location, Scaffolding, Why not elsewhere, Cost) gives consistent, useful answers.

Test additions (bonus)

The `TestAllSkillsFrontmatter` class is a great addition:

  • `test_name_matches_directory` — catches skill name/directory mismatches
  • `test_description_within_spec_limits` — enforces 20-1024 char description length
  • Parameterized via `ALL_SKILL_MD_FILES` glob — automatically covers new skills

Issues

  1. Version conflict with #54. Both PRs bump 0.6.1 → 0.7.0. Only one can merge with that version. Coordinate — whoever merges second needs to bump to 0.7.1 or 0.8.0.

  2. No version bump needed for tests? Per AGENTS.md: "Do NOT bump for docs-only or CI-only changes." The test file changes (`test_skill_structure.py`) are CI-only. But the new skill does warrant the minor bump, so this is correct overall.

  3. Orchestrator menu renumbering. Items 10→11, 11→12, 12→13 — correct. The routing table matches.

Recommendation

Ship it (after version coordination with #54). This is content-only, well-scoped, and the test additions are a bonus that benefits all future skills.

durandom pushed a commit to gustavolira/rhdh-skill that referenced this pull request Jul 10, 2026
- Quote literal trigger phrases in the frontmatter description,
  matching the nfs-migration/backstage-upgrade convention
- Add test-placement to the orchestrator intake menu (item 10) and
  skills_index; renumber release/general items and routes
- Cross-reference skills/rhdh/references/rhdh-repos.md with the
  standalone-install caveat (backstage-upgrade pattern)
- Drop the layer-matrix URL that 404s until rhdh#5044 merges; keep
  the repo path + PR reference
- Remove the hardcoded date from the References header
- Add parametrized frontmatter validation for every skills/*/SKILL.md
  (name matches directory, description within spec limits)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@durandom
durandom force-pushed the feat/test-placement-skill branch from edf53d0 to 6718d01 Compare July 10, 2026 14:03
gustavolira and others added 3 commits July 20, 2026 11:56
Centralizes the test-placement skill here instead of duplicating it
across rhdh, rhdh-plugins, and rhdh-plugin-export-overlays
(supersedes overlays#2726, rhdh#5045, plugins#3670).

Given a change, bug, or feature in the RHDH dynamic-plugin ecosystem,
the skill proposes the right repo, the right test layer (L1 unit to
L4b cluster e2e), the location, and how to scaffold the test. Encodes
the RHIDP-13501 per-repo responsibility split and researched dead-ends.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Quote literal trigger phrases in the frontmatter description,
  matching the nfs-migration/backstage-upgrade convention
- Add test-placement to the orchestrator intake menu (item 10) and
  skills_index; renumber release/general items and routes
- Cross-reference skills/rhdh/references/rhdh-repos.md with the
  standalone-install caveat (backstage-upgrade pattern)
- Drop the layer-matrix URL that 404s until rhdh#5044 merges; keep
  the repo path + PR reference
- Remove the hardcoded date from the References header
- Add parametrized frontmatter validation for every skills/*/SKILL.md
  (name matches directory, description within spec limits)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… merged

The cluster-free harness expansion (10 specs / 14 test cases) and the
native-smoke workspace mode both merged on 2026-07-07; the References
section now cites them so the decision-table capabilities stay backed by
merged PRs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gustavolira
gustavolira force-pushed the feat/test-placement-skill branch from 6718d01 to be2da3f Compare July 20, 2026 14:57
@gustavolira gustavolira changed the title feat: add test-placement skill for the plugin testing strategy (v0.7.0) feat: add test-placement skill for the plugin testing strategy Jul 20, 2026
Comment thread skills/test-placement/SKILL.md Outdated
Comment thread skills/test-placement/SKILL.md Outdated
Comment thread skills/test-placement/SKILL.md
- rhdh#4864 is merged, not closed — corrected in both the L3 section
  and References, and the L3 entry now names the concrete templates
  that landed (packages/app/src/**/*.test.tsx) instead of telling the
  reader to go hunt for merged examples.
- rhdh#5044 merged 2026-07-20 — layer matrix marked merged and the
  blob URL restored, since the path now resolves on main.
- Dropped the first "When to Use" bullet: it restated the trigger
  phrases already quoted in the frontmatter description.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gustavolira
gustavolira requested a review from kadel July 21, 2026 13:20
@kadel
kadel merged commit b77e18a into redhat-developer:main Jul 21, 2026
4 checks passed
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.

5 participants