Add risk level rubric to AGENTS.md#2025
Conversation
Ship one OLS UI image containing builds for all OCP versions instead of three separate images. Uses git submodules for hermetic Konflux builds, multi-stage Dockerfile, and entrypoint-based version switching. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8 tasks covering: submodule setup, entrypoint, multi-stage Dockerfile, Konflux pipeline config, operator simplification, and spec updates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughAdds detailed plan and design specs to consolidate three console UI images into a single multi-variant image (PF5, 4.19, main) with an OCP_VERSION-driven entrypoint, plus pipeline and operator change instructions; also adds a “Risk Levels” section to AGENTS.md referencing a risk rubric and PreToolUse enforcement. ChangesSingle Console UI Image Consolidation
Jira Risk Classification Guidance
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@AGENTS.md`:
- Line 188: The fenced code block shown as "```" (the snippet containing "##
Risk Level" and example Risk {1|2|3}") is missing a language tag and triggers
MD040; update that opening fence to include a language identifier (e.g., change
"```" to "```md") so the block is recognized as Markdown and the linter passes.
In `@docs/superpowers/plans/2026-06-02-single-ui-image.md`:
- Line 316: Replace the machine-specific absolute paths (instances of
"/Users/xavi/...") in the plan text with portable placeholders or relative paths
(e.g., project-root, ./, or $HOME) so contributors and CI can follow the steps;
update the occurrences referenced (the "/Users/xavi/" strings around lines 316
and 356-357) to use a repo-root placeholder or relative path and add a brief
note explaining how to resolve the placeholder locally.
- Line 17: Change the Task 1 heading from H3 to H2 by replacing "### Task 1: Add
git submodules for PF5 and 4.19 branches" with "## Task 1: Add git submodules
for PF5 and 4.19 branches" so the document heading hierarchy is consistent and
satisfies markdownlint (locate the line containing the exact heading text to
update).
In `@docs/superpowers/specs/2026-06-02-single-ui-image-design.md`:
- Around line 30-37: The fenced code block showing the /builds/ directory layout
is missing a language hint; update the block delimiter from ``` to ```text so
markdownlint and tooling treat it as plain text. Locate the fenced block
containing the /builds/ listing (the block that begins with "/builds/") and add
the "text" language tag to the opening fence, leaving the content unchanged.
- Around line 76-80: The PF5/4-19 build steps run npm ci --omit=dev then npm run
build but the branch package.json files may list build tooling (webpack,
webpack-cli, typescript, ts-node) under devDependencies; inspect the
package.json in branches/pf5 (and branches/4-19) and ensure those tooling
packages are placed in "dependencies" (not "devDependencies") or modify the
Dockerfile build steps to install devDependencies for those branch contexts
(e.g., run npm ci without --omit=dev or run npm ci in the branches/pf5 directory
with dev deps) so that npm run build can find webpack/ts-node/etc at build time.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 817cd7a6-88f8-42f4-958a-37b623834ac0
📒 Files selected for processing (3)
AGENTS.mddocs/superpowers/plans/2026-06-02-single-ui-image.mddocs/superpowers/specs/2026-06-02-single-ui-image-design.md
|
|
||
| --- | ||
|
|
||
| ### Task 1: Add git submodules for PF5 and 4.19 branches |
There was a problem hiding this comment.
Fix heading level increment at Task 1.
The first task heading jumps from H1 to H3; make it H2 to satisfy markdownlint and keep hierarchy consistent.
Suggested doc fix
-### Task 1: Add git submodules for PF5 and 4.19 branches
+## Task 1: Add git submodules for PF5 and 4.19 branches📝 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.
| ### Task 1: Add git submodules for PF5 and 4.19 branches | |
| ## Task 1: Add git submodules for PF5 and 4.19 branches |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 17-17: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/plans/2026-06-02-single-ui-image.md` at line 17, Change the
Task 1 heading from H3 to H2 by replacing "### Task 1: Add git submodules for
PF5 and 4.19 branches" with "## Task 1: Add git submodules for PF5 and 4.19
branches" so the document heading hierarchy is consistent and satisfies
markdownlint (locate the line containing the exact heading text to update).
|
|
||
| ### Task 5: Remove multi-image selection from operator (`cmd/main.go`) | ||
|
|
||
| **Repo:** `lightspeed-operator` (`/Users/xavi/street/github.com/ols/lightspeed/lightspeed-operator`) |
There was a problem hiding this comment.
Avoid machine-specific absolute paths in shared implementation instructions.
Using /Users/xavi/... makes this plan non-portable for other contributors and CI environments.
Suggested doc fix
-**Repo:** `lightspeed-operator` (`/Users/xavi/street/github.com/ols/lightspeed/lightspeed-operator`)
+**Repo:** `lightspeed-operator` (local checkout path varies by environment)
...
-cd /Users/xavi/street/github.com/ols/lightspeed/lightspeed-operator
+cd /path/to/lightspeed-operatorAlso applies to: 356-357
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/plans/2026-06-02-single-ui-image.md` at line 316, Replace
the machine-specific absolute paths (instances of "/Users/xavi/...") in the plan
text with portable placeholders or relative paths (e.g., project-root, ./, or
$HOME) so contributors and CI can follow the steps; update the occurrences
referenced (the "/Users/xavi/" strings around lines 316 and 356-357) to use a
repo-root placeholder or relative path and add a brief note explaining how to
resolve the placeholder locally.
| ``` | ||
| /builds/ | ||
| pf5/ # pattern-fly-5 build output (OCP 4.16-4.18) | ||
| 4-19/ # release-4.19 build output (OCP 4.19-4.21) | ||
| main/ # main build output (OCP 4.22+) | ||
| /entrypoint.sh | ||
| /usr/share/nginx/html # symlink target (set by entrypoint at startup) | ||
| ``` |
There was a problem hiding this comment.
Add a language hint to the fenced code block.
The /builds/ layout block is missing a fence language, which triggers markdownlint and hurts readability tooling.
Suggested doc fix
-```
+```text
/builds/
pf5/ # pattern-fly-5 build output (OCP 4.16-4.18)
4-19/ # release-4.19 build output (OCP 4.19-4.21)
main/ # main build output (OCP 4.22+)
/entrypoint.sh
/usr/share/nginx/html # symlink target (set by entrypoint at startup)</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>
[warning] 30-30: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @docs/superpowers/specs/2026-06-02-single-ui-image-design.md around lines 30
- 37, The fenced code block showing the /builds/ directory layout is missing a
language hint; update the block delimiter fromtotext so markdownlint
and tooling treat it as plain text. Locate the fenced block containing the
/builds/ listing (the block that begins with "/builds/") and add the "text"
language tag to the opening fence, leaving the content unchanged.
</details>
<!-- fingerprinting:phantom:triton:hawk -->
<!-- This is an auto-generated comment by CodeRabbit -->
| RUN NODE_OPTIONS=--max-old-space-size=4096 npm ci --omit=dev --omit=optional --ignore-scripts --no-fund | ||
| COPY branches/pf5/console-extensions.json branches/pf5/LICENSE branches/pf5/tsconfig.json branches/pf5/types.d.ts branches/pf5/webpack.config.ts ./ | ||
| COPY branches/pf5/locales ./locales | ||
| COPY branches/pf5/src ./src | ||
| RUN npm run build |
There was a problem hiding this comment.
❓ Verification inconclusive
🏁 Script executed:
#!/bin/bash
# Verify whether build scripts likely need devDependencies in each variant.
# Read-only reconnaissance.
python - <<'PY'
import json, os
paths = ["package.json", "branches/pf5/package.json", "branches/4-19/package.json"]
for p in paths:
if not os.path.exists(p):
print(f"[missing] {p}")
continue
with open(p) as f:
pkg = json.load(f)
scripts = pkg.get("scripts", {})
build = scripts.get("build", "")
dev = pkg.get("devDependencies", {}) or {}
deps = pkg.get("dependencies", {}) or {}
likely_tools = ["webpack", "webpack-cli", "typescript", "ts-node", "vite", "rollup", "babel", "react-scripts"]
in_dev = [t for t in likely_tools if t in dev]
in_dep = [t for t in likely_tools if t in deps]
print(f"\n== {p} ==")
print(f"build script: {build}")
print(f"tooling in devDependencies: {in_dev}")
print(f"tooling in dependencies: {in_dep}")
PYRepository: openshift/lightspeed-console
Length of output: 366
npm ci --omit=dev should be validated for the PF5 (and 4-19) build stages
Root package.json keeps build tooling (webpack, webpack-cli, typescript, ts-node) in dependencies, so the main-stage npm ci --omit=dev + npm run build pairing is compatible. The PF5 and 4-19 stages install from branches/pf5 and branches/4-19, so ensure those packages have their build tooling in dependencies as well (or install dev deps during those build steps); otherwise npm ci --omit=dev can omit required build tooling before npm run build.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/specs/2026-06-02-single-ui-image-design.md` around lines 76
- 80, The PF5/4-19 build steps run npm ci --omit=dev then npm run build but the
branch package.json files may list build tooling (webpack, webpack-cli,
typescript, ts-node) under devDependencies; inspect the package.json in
branches/pf5 (and branches/4-19) and ensure those tooling packages are placed in
"dependencies" (not "devDependencies") or modify the Dockerfile build steps to
install devDependencies for those branch contexts (e.g., run npm ci without
--omit=dev or run npm ci in the branches/pf5 directory with dev deps) so that
npm run build can find webpack/ts-node/etc at build time.
Adds a Risk Levels section to AGENTS.md defining risk 1/2/3 classification with repo-specific examples and Jira description format.
Summary by CodeRabbit