Skip to content

feat: add test-placement skill for the plugin testing strategy (v0.7.0)#58

Open
gustavolira wants to merge 3 commits into
redhat-developer:mainfrom
gustavolira:feat/test-placement-skill
Open

feat: add test-placement skill for the plugin testing strategy (v0.7.0)#58
gustavolira wants to merge 3 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.

gustavolira and others added 3 commits July 10, 2026 16:03
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>
@durandom durandom force-pushed the feat/test-placement-skill branch from edf53d0 to 6718d01 Compare July 10, 2026 14:03
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.

2 participants