Skip to content

NO-JIRA: Context improvements#16068

Open
logonoff wants to merge 2 commits intoopenshift:mainfrom
logonoff:fix
Open

NO-JIRA: Context improvements#16068
logonoff wants to merge 2 commits intoopenshift:mainfrom
logonoff:fix

Conversation

@logonoff
Copy link
Member

@logonoff logonoff commented Feb 26, 2026

  • Merge ARCHITECTURE and AGENTS since a lot of the content is redundant
  • Fix mistake in AGENTS (yarn lint <file>) is broken and will instead lint the whole repo
  • Fix broken commands in TESTING.md

Summary by CodeRabbit

  • Documentation
    • Enhanced testing documentation with expanded guidance on unit, integration, and end-to-end testing practices.
    • Reorganized internal project guidelines and reference materials for improved clarity and accessibility.
    • Updated developer-focused documentation with additional workflow and best practices information.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 26, 2026
@openshift-ci-robot
Copy link
Contributor

@logonoff: This pull request explicitly references no jira issue.

Details

In response to this:

  • Merge ARCHITECTURE and AGENTS since a lot of the content is redundant
  • Fix mistake in AGENTS (yarn lint ) is broken and will instead lint the whole repo
  • Fix broken commands in TESTING.md

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@logonoff
Copy link
Member Author

/label px-approved
/lavel docs-approced

@openshift-ci openshift-ci bot added the px-approved Signifies that Product Support has signed off on this PR label Feb 26, 2026
@jhadvig jhadvig requested a review from sg00dwin February 26, 2026 14:03
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 26, 2026

📝 Walkthrough

Walkthrough

This pull request restructures documentation files for the Console Dynamic Plugin SDK. ARCHITECTURE.md is deleted entirely, with its content redistributed across AGENTS.md, STYLEGUIDE.md, and TESTING.md. AGENTS.md gains expanded guidance on Dynamic plugin SDK concepts, public API considerations, and development workflows. TESTING.md transforms from terse bullet lists into structured narrative format with concrete examples for unit, integration, and E2E testing. References to ARCHITECTURE.md are removed from .coderabbit.yaml configuration and SKILL.md guidance references. Minor punctuation adjustments appear in STYLEGUIDE.md. All changes are documentation-focused with no API or code modifications.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Context improvements' is vague and generic, failing to convey the specific nature of the changes such as documentation consolidation, command fixes, or the merging of ARCHITECTURE and AGENTS. Use a more specific title like 'Consolidate ARCHITECTURE into AGENTS and fix documentation commands' to clearly communicate the primary changes to reviewers.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@AGENTS.md`:
- Around line 17-18: Update the first lint example to show a targeted file path:
replace the ambiguous "cd frontend && yarn eslint" command with an explicit
placeholder such as "cd frontend && yarn eslint <path/to/file>" so the note
about specifying a file path is consistent, and keep the existing "cd frontend
&& yarn lint" line for full-repo linting; make sure both commands and their
explanatory comments reflect targeted vs full-repo usage.
- Around line 45-58: Tighten the wording in the SDK guidance to remove
ambiguity: rewrite the sentence starting with "In addition Kubernetes cluster
management, OpenShift console is designed..." to "In addition to Kubernetes
cluster management, the OpenShift Console is an extensible platform that
integrates additional UI functionality via operators and custom resources.";
clarify the breaking-changes sentence to "⚠️ BREAKING CHANGES: Exercise extreme
care—this public API is consumed by external plugins."; and rephrase the
re-exports guidance to "Before making changes, verify they do not impact the
public API by checking
frontend/packages/console-dynamic-plugin-sdk/src/api/internal-*.ts files to
avoid breaking external plugins." Reference the token
"console-dynamic-plugin-sdk" and the internal-*.ts path when applying edits.

In `@TESTING.md`:
- Around line 153-155: Replace the non-executable wildcard pseudo-commands in
TESTING.md (the lines showing `yarn test-cypress-[a-z]*`, `yarn
test-cypress-[a-z]*-headless`, and `yarn test-cypress-[a-z]*-nightly`) with
either a clear placeholder like `yarn test-cypress-<suite>`, `yarn
test-cypress-<suite>-headless`, `yarn test-cypress-<suite>-nightly` or by giving
concrete example script names such as `yarn test-cypress-olm`, `yarn
test-cypress-olm-headless`, `yarn test-cypress-olm-nightly`; update the
surrounding text to state that `<suite>` should be replaced with the actual
suite name so readers won’t attempt to run invalid wildcard commands.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 9459e3a and d6dbfac.

📒 Files selected for processing (6)
  • .claude/skills/update-package/SKILL.md
  • .coderabbit.yaml
  • AGENTS.md
  • ARCHITECTURE.md
  • STYLEGUIDE.md
  • TESTING.md
💤 Files with no reviewable changes (2)
  • .coderabbit.yaml
  • ARCHITECTURE.md

AGENTS.md Outdated
Comment on lines 17 to 18
cd frontend && yarn eslint # ESLint / prettier linting (must specify file path)
cd frontend && yarn lint # ESLint / prettier linting (lints entire codebase)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix command/example mismatch for targeted linting.

On Line 17, the command omits a file path even though the note says one is required. This keeps the guidance ambiguous right where the PR is trying to clarify lint behavior. Use an explicit placeholder example (for example, yarn eslint <path/to/file>), while keeping Line 18 for full-repo linting.

Suggested doc diff
-cd frontend && yarn eslint     # ESLint / prettier linting (must specify file path)
+cd frontend && yarn eslint <path/to/file>  # ESLint / prettier linting for a specific file
 cd frontend && yarn lint       # ESLint / prettier linting (lints entire codebase)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
cd frontend && yarn eslint # ESLint / prettier linting (must specify file path)
cd frontend && yarn lint # ESLint / prettier linting (lints entire codebase)
cd frontend && yarn eslint <path/to/file> # ESLint / prettier linting for a specific file
cd frontend && yarn lint # ESLint / prettier linting (lints entire codebase)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 17 - 18, Update the first lint example to show a
targeted file path: replace the ambiguous "cd frontend && yarn eslint" command
with an explicit placeholder such as "cd frontend && yarn eslint <path/to/file>"
so the note about specifying a file path is consistent, and keep the existing
"cd frontend && yarn lint" line for full-repo linting; make sure both commands
and their explanatory comments reflect targeted vs full-repo usage.

AGENTS.md Outdated
Comment on lines 45 to 58
In addition Kubernetes cluster management, OpenShift console is designed to be an extensible platform that integrates with additional UI functionality with operators and custom resources. The `console-dynamic-plugin-sdk` is the public API that enables dynamic plugins to integrate with the console at runtime.

**⚠️ BREAKING CHANGES REQUIRE EXTREME CARE**: This is a public API consumed by external plugins

### Re-exports

The dynamic plugin SDK provides a re-export layer to allow dynamic plugins to consume APIs from multiple Console packages without directly depending on them. Before starting ANY changes, ensure your change not impact the public API by checking `frontend/packages/console-dynamic-plugin-sdk/src/api/internal-*.ts` files to avoid breakage.

### Development guidelines

- Always consider impact on external plugin developers
- Maintain backward compatibility as it's a public API
- Comprehensive documentation for all public APIs
- Changes to extension schema changes need migration paths
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Tighten grammar in SDK guidance to avoid ambiguity.

A few phrases are grammatically off and can be misread in critical API-compatibility guidance (Line 45, Line 51, Line 58). Recommend cleaning these for precision.

Suggested doc diff
-In addition Kubernetes cluster management, OpenShift console is designed to be an extensible platform that integrates with additional UI functionality with operators and custom resources.
+In addition to Kubernetes cluster management, OpenShift console is designed to be an extensible platform that integrates additional UI functionality with operators and custom resources.

-Before starting ANY changes, ensure your change not impact the public API by checking ...
+Before starting ANY changes, ensure your changes do not impact the public API by checking ...

-- Changes to extension schema changes need migration paths
+- Changes to extension schemas need migration paths
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
In addition Kubernetes cluster management, OpenShift console is designed to be an extensible platform that integrates with additional UI functionality with operators and custom resources. The `console-dynamic-plugin-sdk` is the public API that enables dynamic plugins to integrate with the console at runtime.
**⚠️ BREAKING CHANGES REQUIRE EXTREME CARE**: This is a public API consumed by external plugins
### Re-exports
The dynamic plugin SDK provides a re-export layer to allow dynamic plugins to consume APIs from multiple Console packages without directly depending on them. Before starting ANY changes, ensure your change not impact the public API by checking `frontend/packages/console-dynamic-plugin-sdk/src/api/internal-*.ts` files to avoid breakage.
### Development guidelines
- Always consider impact on external plugin developers
- Maintain backward compatibility as it's a public API
- Comprehensive documentation for all public APIs
- Changes to extension schema changes need migration paths
In addition to Kubernetes cluster management, OpenShift console is designed to be an extensible platform that integrates additional UI functionality with operators and custom resources. The `console-dynamic-plugin-sdk` is the public API that enables dynamic plugins to integrate with the console at runtime.
**⚠️ BREAKING CHANGES REQUIRE EXTREME CARE**: This is a public API consumed by external plugins
### Re-exports
The dynamic plugin SDK provides a re-export layer to allow dynamic plugins to consume APIs from multiple Console packages without directly depending on them. Before starting ANY changes, ensure your changes do not impact the public API by checking `frontend/packages/console-dynamic-plugin-sdk/src/api/internal-*.ts` files to avoid breakage.
### Development guidelines
- Always consider impact on external plugin developers
- Maintain backward compatibility as it's a public API
- Comprehensive documentation for all public APIs
- Changes to extension schemas need migration paths
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 45 - 58, Tighten the wording in the SDK guidance to
remove ambiguity: rewrite the sentence starting with "In addition Kubernetes
cluster management, OpenShift console is designed..." to "In addition to
Kubernetes cluster management, the OpenShift Console is an extensible platform
that integrates additional UI functionality via operators and custom
resources."; clarify the breaking-changes sentence to "⚠️ BREAKING CHANGES:
Exercise extreme care—this public API is consumed by external plugins."; and
rephrase the re-exports guidance to "Before making changes, verify they do not
impact the public API by checking
frontend/packages/console-dynamic-plugin-sdk/src/api/internal-*.ts files to
avoid breaking external plugins." Reference the token
"console-dynamic-plugin-sdk" and the internal-*.ts path when applying edits.

TESTING.md Outdated
Comment on lines 153 to 155
- `yarn test-cypress-[a-z]*` to open an interactive window for a specific Cypress test suite (e.g., `yarn test-cypress-olm`, `yarn test-cypress-devconsole`). **AI agents may struggle with interactive mode**.
- `yarn test-cypress-[a-z]*-headless` to run the same suite in headless mode (e.g., `yarn test-cypress-olm-headless`)
- `yarn test-cypress-[a-z]*-nightly` runs an extended suite of tests in headless mode, intended for CI/nightly runs (e.g., `yarn test-cypress-olm-nightly`)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Replace wildcard pseudo-commands with executable script examples.

Lines 153–155 present wildcard patterns as runnable commands. This is likely to fail or confuse users; yarn expects concrete script names. Given this PR’s objective, these should be documented as placeholders (e.g., <suite>) or replaced by explicit examples only.

Suggested doc diff
-- `yarn test-cypress-[a-z]*` to open an interactive window for a specific Cypress test suite (e.g., `yarn test-cypress-olm`, `yarn test-cypress-devconsole`). **AI agents may struggle with interactive mode**.
-- `yarn test-cypress-[a-z]*-headless` to run the same suite in headless mode (e.g., `yarn test-cypress-olm-headless`)
-- `yarn test-cypress-[a-z]*-nightly` runs an extended suite of tests in headless mode, intended for CI/nightly runs (e.g., `yarn test-cypress-olm-nightly`)
+- `yarn test-cypress-<suite>` opens an interactive window for a specific Cypress test suite (e.g., `yarn test-cypress-olm`, `yarn test-cypress-devconsole`). **AI agents may struggle with interactive mode**.
+- `yarn test-cypress-<suite>-headless` runs the same suite in headless mode (e.g., `yarn test-cypress-olm-headless`)
+- `yarn test-cypress-<suite>-nightly` runs an extended headless suite intended for CI/nightly runs (e.g., `yarn test-cypress-olm-nightly`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@TESTING.md` around lines 153 - 155, Replace the non-executable wildcard
pseudo-commands in TESTING.md (the lines showing `yarn test-cypress-[a-z]*`,
`yarn test-cypress-[a-z]*-headless`, and `yarn test-cypress-[a-z]*-nightly`)
with either a clear placeholder like `yarn test-cypress-<suite>`, `yarn
test-cypress-<suite>-headless`, `yarn test-cypress-<suite>-nightly` or by giving
concrete example script names such as `yarn test-cypress-olm`, `yarn
test-cypress-olm-headless`, `yarn test-cypress-olm-nightly`; update the
surrounding text to state that `<suite>` should be replaced with the actual
suite name so readers won’t attempt to run invalid wildcard commands.

@openshift-ci openshift-ci bot requested review from rhamilto and spadgett February 26, 2026 14:03
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 26, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: logonoff
Once this PR has been reviewed and has the lgtm label, please assign therealjon for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Member

@sg00dwin sg00dwin left a comment

Choose a reason for hiding this comment

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

Also should remove the reference in .coderabbit.yaml
https://github.com/openshift/console/blob/main/.coderabbit.yaml#L79

The dynamic plugin SDK provides a re-export layer to allow dynamic plugins to consume APIs from multiple Console packages without directly depending on them.

Before starting ANY changes, ensure your changes do not impact the public API by checking `frontend/packages/console-dynamic-plugin-sdk/src/api/internal-*.ts` files to avoid breakage.

Copy link
Member

@sg00dwin sg00dwin Feb 26, 2026

Choose a reason for hiding this comment

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

Seems useful context to list out the packages for agent.

Suggested change
- **`@console/shared`** - Dashboard components, UI components, hooks
- **`@console/internal`** - Core UI, editors, hooks, K8s utilities
- **`@console/plugin-sdk`** - Extension system, plugin infrastructure
- **`@console/app`** - Application context
- **`@console/topology`** - Topology components, data transforms, graph views

In addition to Kubernetes cluster management, OpenShift console is designed to be an extensible platform that integrates additional UI functionality with operators and custom resources.

The `console-dynamic-plugin-sdk` is the public API that enables dynamic plugins to integrate with the console at runtime.

Copy link
Member

Choose a reason for hiding this comment

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

Is there a reason to not include this information from ARCHITECTURE.md

Suggested change
For the complete list of console plugins, see `console-app/package.json` dependencies. Static plugins (built-in) may be deprecated or extracted over time.
- **Extension Points System**: 25+ extension types (NavItem, Page, ResourceListPage, DashboardsCard, etc.)
- **Module Federation**: Runtime plugin loading via Webpack Module Federation
- **Type Safety**: Comprehensive TypeScript definitions for all extension points
- **Code References**: Lazy loading with `$codeRef` for performance
### Official extension types & API documentation
- [Dynamic Plugin SDK documentation](frontend/packages/console-dynamic-plugin-sdk/README.md)- Authoritative for how the SDK works
- [Extension Types Reference](frontend/packages/console-dynamic-plugin-sdk/docs/console-extensions.md) - Complete extension type definitions, naming conventions (`console.*`), and deprecation notices
- [Console API Documentation](frontend/packages/console-dynamic-plugin-sdk/docs/api.md) - React components, hooks, utilities, and TypeScript types exported by the SDK

Copy link
Member Author

Choose a reason for hiding this comment

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

It's already in the dynamic Plugin SDK documentation. I get your point though so I'll add a synopsis

AGENTS.md Outdated
### Dynamic plugin SDK

- **[frontend/packages/console-dynamic-plugin-sdk/README.md](frontend/packages/console-dynamic-plugin-sdk/README.md)** - Comprehensive dynamic plugin SDK documentation
- [Dynamic Plugin SDK documentation](frontend/packages/console-dynamic-plugin-sdk/README.md)- Authoritative for how the SDK works
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- [Dynamic Plugin SDK documentation](frontend/packages/console-dynamic-plugin-sdk/README.md)- Authoritative for how the SDK works
- [Dynamic Plugin SDK documentation](frontend/packages/console-dynamic-plugin-sdk/README.md) - Authoritative for how the SDK works

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 27, 2026

@logonoff: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-console 673b564 link true /test e2e-gcp-console

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@logonoff
Copy link
Member Author

/label docs-approved

@openshift-ci openshift-ci bot added the docs-approved Signifies that Docs has signed off on this PR label Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-approved Signifies that Docs has signed off on this PR jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. px-approved Signifies that Product Support has signed off on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants