redhat-developer / redhat-developer/rhdh-plugin-export-overlays
Add AGENTS.md guidance for configure() option mode dependencies beyond dynamicPlugins
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 9
- Forks
- 72
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 143
Description
What happened
On PR #2946, the human reviewer jrichter1 commented on Aug 14 that disablePlugins in rhdh.configure() does nothing unless GIT_PR_NUMBER is set, making the conditional nightly-mode guard unnecessary complexity. The PR author had added branching logic (isNightlyMode ? {} : { disablePlugins: [...] }) to avoid calling disablePlugins in nightly mode — but the option is already a no-op there. This led to an add-then-revert cycle (commits 4a78646 → d867a24) that added noise to the PR's 38-day iteration history.
The review agent ran 14 successful review cycles on this PR and never identified this issue. It commented on disablePlugins configuration multiple times but only analyzed it at the YAML/config level — never recognizing the mode-dependent runtime behavior. The agent lacked the framework knowledge that disablePlugins works by modifying auto-generated plugin configurations during PR mode and has no effect in nightly or local dev modes.
This gap is not isolated. Multiple open E2E failure issues stem from mode-dependent configuration misunderstandings: #3458 (notifications disabled in nightly), #3455 (extensions use local paths, no OCI artifacts for nightly), #3303 (bulk-import module stripped by nightly config merge), #3044 (quickstart plugin disabled in nightly).
What could go better
The existing AGENTS.md E2E section documents the three deployment modes (PR, nightly, local dev) in the Plugin Metadata Resolution table, and issue #3112 proposes guidance for the dynamicPlugins option specifically (baked-in plugin case). However, no guidance covers the broader set of configure() options and their mode-dependent behaviors — particularly disablePlugins.
Confidence: High that this is a real gap. The human reviewer caught it immediately from experience; the agent missed it across 14 review cycles. The pattern of E2E failures linked to mode-dependent config misunderstandings (#3458, #3455, #3303, #3044) suggests this is a recurring knowledge gap affecting both agents and human contributors.
Uncertainty: The full set of mode-dependent configure() options may extend beyond disablePlugins and dynamicPlugins. An exhaustive inventory would require reviewing the e2e-test-utils source, which is in a separate repo.
Proposed change
Add a subsection to the AGENTS.md E2E Testing section titled "Mode-Dependent configure() Options" that documents which rhdh.configure() options behave differently across deployment modes. At minimum, document:
-
disablePlugins— Only effective in PR mode (whenGIT_PR_NUMBERis set). In PR mode, it removes named plugins from the auto-generated dynamic-plugins configuration. In nightly and local dev modes, plugins come from fixed OCI refs or local paths respectively, anddisablePluginsis silently ignored. Reviewers should flag conditional guards arounddisablePluginsbased on mode (e.g.,isNightlyMode ? {} : { disablePlugins: [...] }) as unnecessary complexity. -
dynamicPlugins— (Complements #3112) PassingdynamicPluginsin nightly mode causes the framework to generatedisabled: truefor baked-in plugins. Reviewers should flagdynamicPluginsusage without a nightly-mode guard.
This guidance should be placed near the existing "Plugin Metadata Resolution" table to create a coherent reference for mode-dependent behaviors. Add a review instruction: "When reviewing E2E test configure() calls, verify that mode-dependent options are used in the correct mode context."
Validation criteria
On the next 3 PRs that modify rhdh.configure() calls in E2E tests with mode-dependent options (disablePlugins, dynamicPlugins), the review agent should either: (a) correctly identify unnecessary mode guards, or (b) flag mode-dependent options used outside their effective mode. The review agent should not produce findings asking for conditional guards around options that are already no-ops in certain modes.
Generated by retro agent from https://github.com/redhat-developer/rhdh-plugin-export-overlays/pull/2946
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with AGENTS.md's E2E Testing section and the existing "Plugin Metadata Resolution" table, then inspect the e2e-test-utils source in its separate repository to inventory mode-dependent configure() options. Add the proposed "Mode-Dependent configure() Options" subsection covering disablePlugins and dynamicPlugins, including the review instruction, and verify it aligns with the validation criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- documentation, testing-qa
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100