Adding Backstage - #1209
Adding Backstage#1209FilipGrebowski wants to merge 27 commits into
Conversation
|
Caution Review failedThe pull request is closed. WalkthroughLarge multi-area change: documentation/nav reorganization and three new installation guides; CI/workflow updates (Docker, KIND, eval); tooling refactors for Grafana/Prometheus/kubernetes toolsets; test fixture additions and stabilization; RBAC/helm CRD permission flags; connection keepalive and LLM timeout configuration; removal of resource_instructions from investigation flow. Changes
Sequence Diagram(s)(omitted) Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Pre-merge checks❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📥 CommitsReviewing files that changed from the base of the PR and between b37b7349868959c9bcd73842c5a0c8931830702a and 5b4742c. 📒 Files selected for processing (109)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between 3f1d3a3 and 3c1e0c733c63e0906a2d2ff0c587f54c8bf19fae.
📒 Files selected for processing (3)
docs/data-sources/builtin-toolsets/.nav.yml(1 hunks)docs/data-sources/builtin-toolsets/backstage.md(1 hunks)docs/data-sources/builtin-toolsets/index.md(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: build (3.11)
- GitHub Check: build (3.10)
- GitHub Check: build (3.12)
- GitHub Check: llm_evals
🔇 Additional comments (3)
docs/data-sources/builtin-toolsets/.nav.yml (1)
8-8: LGTM!The Backstage entry is correctly placed in alphabetical order and follows the same format as other navigation items.
docs/data-sources/builtin-toolsets/backstage.md (1)
1-18: LGTM!The documentation clearly explains the Backstage integration, its value proposition, and includes a helpful video walkthrough. The structure and content are well-organized and informative.
docs/data-sources/builtin-toolsets/index.md (1)
14-14: LGTM!The Backstage entry is correctly formatted, properly placed in alphabetical order, and follows the same pattern as other toolset entries.
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between d205da50bd0f07c1f91335dae5ca2d5710cedb6c and cb1cc3a014a3e57ba183e86de26f1b0e4d31fa66.
📒 Files selected for processing (8)
docs/data-sources/builtin-toolsets/.nav.ymldocs/installation/.nav.ymldocs/installation/backstage-installation.mddocs/installation/cli-installation.mddocs/installation/k9s-installation.mddocs/installation/slack-installation.mddocs/installation/ui-installation.mdmkdocs.yml
✅ Files skipped from review due to trivial changes (2)
- mkdocs.yml
- docs/installation/slack-installation.md
🚧 Files skipped from review as they are similar to previous changes (1)
- docs/data-sources/builtin-toolsets/.nav.yml
🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.md
📄 CodeRabbit inference engine (CLAUDE.md)
When writing MkDocs documentation, always add a blank line between headers/bold text and lists to ensure proper rendering
Files:
docs/installation/k9s-installation.mddocs/installation/ui-installation.mddocs/installation/backstage-installation.mddocs/installation/cli-installation.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build (3.10)
- GitHub Check: build (3.12)
- GitHub Check: build (3.11)
🔇 Additional comments (6)
docs/installation/cli-installation.md (1)
261-277: LGTM! YAML formatting improvements.The added quotes around string values and improved indentation for nested structures make the YAML more explicit and easier to read.
docs/installation/.nav.yml (1)
1-8: LGTM! Clear navigation structure.The restructured navigation properly separates installation options and clearly labels third-party integrations, making it easier for users to find the right installation guide.
docs/installation/k9s-installation.md (2)
38-61: LGTM! Context handling logic is sound.The bash script properly handles Kubernetes context switching by:
- Checking if already using the correct context
- Creating a temporary kubeconfig when needed to avoid changing the user's system context
- Cleaning up temporary files
- Providing an interactive exit prompt
87-124: LGTM! Advanced plugin implementation is well-designed.The advanced plugin properly:
- Allows users to edit questions interactively
- Reuses the same context-handling logic as the basic plugin
- Filters out comment lines from the question file
- Provides clear user feedback
docs/installation/ui-installation.md (1)
1-1: LGTM! Clear title indicating third-party integration.The updated title accurately labels this as a third-party UI installation option, consistent with the navigation structure.
docs/installation/backstage-installation.md (1)
7-9: Add blank line between text and list.Missing blank line between the paragraph ending with "tap into:" (line 7) and the list starting at line 9. Per coding guidelines for MkDocs documentation, always add a blank line between headers/bold text and lists to ensure proper rendering.
🔎 Proposed fix
Because Backstage entities already contain rich metadata, HolmesGPT can tap into: + - Service documentationBased on coding guidelines.
⛔ Skipped due to learnings
Learnt from: CR Repo: HolmesGPT/holmesgpt PR: 0 File: CLAUDE.md:0-0 Timestamp: 2025-12-25T11:30:26.525Z Learning: Applies to docs/**/*.md : When writing MkDocs documentation, always add a blank line between headers/bold text and lists to ensure proper rendering
Signed-off-by: Roi Glinik <groi.tech@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
… to separate pages Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
1. Add runbook alerts to runbook prompts so llm will be able to select it. 2. Remove old alert runbook fetching as part of invesigation 3. Add eval for alert with multiple relevant runbooks due to matching alert - Test report here: https://www.braintrust.dev/app/robustadev/p/HolmesGPT/experiments/root-master-k%3D165_-20251218_145120?c= 4. Removed responses logs that spammed test logs. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit # Release Notes * **New Features** * Enhanced runbook matching to include alert-based matching in addition to symptom-based matching, improving runbook discovery accuracy. * Added alerts metadata to runbook catalog entries for better runbook relevance filtering. * **Chores** * Simplified investigation workflow by streamlining instruction data flow. * Improved test coverage with new integration test for multi-runbook alert scenarios. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Mohse Morad <moshemorad12340@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
## Summary - add automated comments to dev docker build workflow with links to built images - add automated comments to release docker build workflow with links to built images and tags - adjust workflow permissions to allow posting comments on PRs or commits ## Testing - not run (not needed for workflow changes) ------ [Codex Task](https://chatgpt.com/codex/tasks/task_b_6947d623f1a8832797c92848985d3af4) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated CI/CD workflows to automatically post Docker image build details and registry links as comments on pull requests or commits. Comments provide full and short image tags along with registry information upon image release. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Robusta Runner <aantny@gmail.com> Signed-off-by: Mohse Morad <moshemorad12340@gmail.com> Co-authored-by: moshemorad <moshemorad12340@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…rd (HolmesGPT#1223) Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…ce (HolmesGPT#1222) Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…up (HolmesGPT#1221) Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
## Summary - add warning about 30-day retention for temporary dev Docker images - include commands to copy temporary images into permanent registries ## Testing - not run (not needed) ------ [Codex Task](https://chatgpt.com/codex/tasks/task_b_694a33345d548327b15a2875460fff3f) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated CI/CD workflow messages to use shorter image tags with a consistent marker prefix. * Enhanced PR/commit comment handling to update existing comments when the marker exists, avoiding duplicates. * Expanded message content with guidance that temporary images are deleted after 30 days and how to push to a permanent registry. * Added Helm patch instructions for two charts to set image tags and registries. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Codex <codex@openai.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…s for testing nonstandard labels. (HolmesGPT#1237) Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…olmesGPT#1236) Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…PT#1238) Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
add default read permission to some kubernetes tools --------- Signed-off-by: Roi Glinik <groi.tech@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Checklist for the toolset: - [ ] Toolset has unit tests where relevant - [ ] Toolset has both ask_holmes and investigate evals - [ ] Toolset has a documentation PR opened against the [robusta](https://github.com/robusta-dev/robusta) repo - [ ] Toolset has the correct is_default flag - [ ] Toolset returns a correct `get_example_config` - [ ] Toolset does a live health check in addition to checking for correct configuration - [ ] Create a demo video (if relevant) similar to robusta-dev/robusta#1954 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Enhanced deployment workflow with improved container registry integration and security enhancements for artifact distribution. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: drfaust92 <ilia.lazebnik@gmail.com> Co-authored-by: arik <alon.arik@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…lmesGPT#1235) Make docs easier to copy-paste by replacing generic `<your-claude-model>` placeholder with actual example. Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
…sts (HolmesGPT#1241) Signed-off-by: Tomer Keshet <tomer@robusta.dev> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a "regression" test marker to identify critical regression tests. * **Chores** * CI test gating updated: consolidated pre-check determines whether regression tests run; environment and cluster setup now conditional. * Test cluster networking enhanced for Calico and increased pod capacity. * Test tooling forced to use bash for command execution. * Several tests retagged as regression; one test timeout increased. * **Documentation** * Updated marker guidance and parallel-run/infrastructure notes. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Roi Glinik <groi.tech@gmail.com> Co-authored-by: arik <alon.arik@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Configurable LLM request timeout (env var; default 600s). * Optional TCP keepalive support with configurable idle, interval, and probe count. * Keepalive can be enabled/disabled at runtime via an environment flag. * **Chores** * Runtime now applies keepalive patching when enabled. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Mohse Morad <moshemorad12340@gmail.com> Signed-off-by: Tomer Keshet <tomer@robusta.dev> Signed-off-by: Codex <codex@openai.com> Signed-off-by: Roi Glinik <groi.tech@gmail.com> Signed-off-by: drfaust92 <ilia.lazebnik@gmail.com> Co-authored-by: Tomer <tomer@robusta.dev> Co-authored-by: Natan Yellin <aantn@users.noreply.github.com> Co-authored-by: Roi Glinik <groi.tech@gmail.com> Co-authored-by: Ilia Lazebnik <Ilia.lazebnik@gmail.com> Co-authored-by: arik <alon.arik@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added kubernetes_tabular_query for extracting and optionally filtering fields from Kubernetes resources with built-in tabular summarization. * **Enhancements** * kubernetes_jq_query now processes large responses via paginated, chunked batches with per-batch progress and final summaries. * kubernetes_count upgraded to chunked/batch processing with progress reporting and clearer aggregated results. * Improved summarization prompts and input thresholds for more reliable summaries and error/continuation handling. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Arik Alon <alon.arik@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
They're currently being attached to files and not to the PR itself <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Workflow now triggers on pull requests (opened/synchronize/reopened) and cancels in-progress runs for the same head branch. * Reduces repo contents permission from write to read while retaining identity and PR permissions. * Captures build start time and short commit SHA (duplicate retrieval removed). * Posts/updates a "build started" comment on the PR and consolidates all comment operations to PR-based endpoints. * Always posts a final PR comment with computed build duration and detailed success/failure messaging. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Robusta Runner <aantny@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated CI/CD pipeline configuration for Docker image and Helm chart deployment processes. **Note:** This release contains internal infrastructure updates with no user-facing changes. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Mohse Morad <moshemorad12340@gmail.com> Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
Signed-off-by: Filip Grebowski <grebowskifilip@gmail.com>
b37b734 to
5b4742c
Compare
There was a problem hiding this comment.
Actionable comments posted: 7
♻️ Duplicate comments (2)
docs/installation/k9s-installation.md (2)
7-9: Add blank line between header and list.Missing blank line between the "Prerequisites" header and the list. Per coding guidelines, always add a blank line between headers and lists to ensure proper MkDocs rendering.
🔎 Proposed fix
-### Prerequisites +## Prerequisites + - **K9s must be installed** - See the [K9s installation guide](https://github.com/derailed/k9s#installation){:target="\_blank"}Based on coding guidelines.
124-126: Add blank line between header and list.Missing blank line between the "Usage" header and the numbered list. Per coding guidelines, always add a blank line between headers and lists to ensure proper MkDocs rendering.
🔎 Proposed fix
### Usage + 1. Run K9s and select any Kubernetes resourceBased on coding guidelines.
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📥 Commits
Reviewing files that changed from the base of the PR and between cb1cc3a014a3e57ba183e86de26f1b0e4d31fa66 and b37b7349868959c9bcd73842c5a0c8931830702a.
📒 Files selected for processing (6)
docs/installation/.nav.ymldocs/installation/backstage-integration.mddocs/installation/k9s-installation.mddocs/installation/slack-installation.mddocs/installation/ui-installation.mdmkdocs.yml
🚧 Files skipped from review as they are similar to previous changes (1)
- mkdocs.yml
🧰 Additional context used
📓 Path-based instructions (1)
docs/**/*.md
📄 CodeRabbit inference engine (CLAUDE.md)
When writing MkDocs documentation, always add a blank line between headers/bold text and lists to ensure proper rendering
Files:
docs/installation/k9s-installation.mddocs/installation/backstage-integration.mddocs/installation/ui-installation.mddocs/installation/slack-installation.md
🧠 Learnings (1)
📚 Learning: 2025-12-25T11:30:26.525Z
Learnt from: CR
Repo: HolmesGPT/holmesgpt PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-12-25T11:30:26.525Z
Learning: Applies to docs/**/*.md : When writing MkDocs documentation, always add a blank line between headers/bold text and lists to ensure proper rendering
Applied to files:
docs/installation/k9s-installation.md
🪛 LanguageTool
docs/installation/ui-installation.md
[style] ~38-~38: Using many exclamation marks might seem excessive (in this case: 3 exclamation marks for a text that’s 1066 characters long)
Context: ... Analyze alerts or troubleshoot issues !!! tip "Multiple AI Providers" You can con...
(EN_EXCESSIVE_EXCLAMATION)
🪛 markdownlint-cli2 (0.18.1)
docs/installation/k9s-installation.md
7-7: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
docs/installation/slack-installation.md
7-7: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build (3.10)
- GitHub Check: build (3.11)
- GitHub Check: build (3.12)
🔇 Additional comments (1)
docs/installation/.nav.yml (1)
2-8: LGTM! Navigation restructuring aligns with new documentation.The navigation structure correctly separates installation guides into distinct entries (UI, Slack Bot, Backstage, K9s), which aligns with the new dedicated documentation files added in this PR.
| Because Backstage entities already contain rich metadata, HolmesGPT can tap into: | ||
|
|
||
| - Service documentation |
There was a problem hiding this comment.
Add blank line before list.
Missing blank line between the introductory text (line 7) and the list starting at line 9. Per coding guidelines, always add a blank line before lists to ensure proper MkDocs rendering.
🔎 Proposed fix
Because Backstage entities already contain rich metadata, HolmesGPT can tap into:
+
- Service documentationBased on coding guidelines.
📝 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.
| Because Backstage entities already contain rich metadata, HolmesGPT can tap into: | |
| - Service documentation | |
| Because Backstage entities already contain rich metadata, HolmesGPT can tap into: | |
| - Service documentation |
🤖 Prompt for AI Agents
In docs/installation/backstage-integration.md around lines 7 to 9, the
introductory text is directly followed by a Markdown list without a separating
blank line; insert a single blank line between the paragraph ending on line 7
and the list that starts on line 9 so the list renders correctly in MkDocs.
|
|
||
|  | ||
|
|
||
| ### Prerequisites |
There was a problem hiding this comment.
Fix heading level to h2.
The heading "Prerequisites" jumps from h1 (line 1) to h3, skipping h2. Markdown best practices require incrementing heading levels by one at a time.
🔎 Proposed fix
-### Prerequisites
+## Prerequisites📝 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.
| ### Prerequisites | |
| ## Prerequisites |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
7-7: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🤖 Prompt for AI Agents
In docs/installation/k9s-installation.md around line 7, the "Prerequisites"
heading is currently an h3 and skips h2; change its markdown heading level to h2
(use '## Prerequisites') so headings increment by one level from the document's
h1 to h2.
|
|
||
|  | ||
|
|
||
| ### Setup Slack Bot |
There was a problem hiding this comment.
Fix heading level to h2.
The heading "Setup Slack Bot" jumps from h1 (line 1) to h3, skipping h2. Markdown best practices require incrementing heading levels by one at a time.
🔎 Proposed fix
-### Setup Slack Bot
+## Setup Slack Bot📝 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.
| ### Setup Slack Bot | |
| ## Setup Slack Bot |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
7-7: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🤖 Prompt for AI Agents
In docs/installation/slack-installation.md around line 7, the heading "Setup
Slack Bot" is currently an h3 and skips h2; change the heading level from h3 to
h2 (increment it one level) so headings progress sequentially from h1 to h2 to
h3, ensuring the file follows Markdown heading hierarchy and accessibility best
practices.
| ### Get Started | ||
|
|
||
| 1. **Sign up:** [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=docs&utm_medium=holmesgpt-docs&utm_content=ui_installation_section){:target="_blank"} | ||
| 1. **Sign up:** [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=docs&utm_medium=holmesgpt-docs&utm_content=ui_installation_section){:target="\_blank"} |
There was a problem hiding this comment.
Add blank line between header and list.
Missing blank line between the "Get Started" header and the numbered list. Per coding guidelines, always add a blank line between headers and lists to ensure proper MkDocs rendering.
🔎 Proposed fix
### Get Started
+
1. **Sign up:** [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=docs&utm_medium=holmesgpt-docs&utm_content=ui_installation_section){:target="\_blank"}Based on coding guidelines.
📝 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.
| ### Get Started | |
| 1. **Sign up:** [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=docs&utm_medium=holmesgpt-docs&utm_content=ui_installation_section){:target="_blank"} | |
| 1. **Sign up:** [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=docs&utm_medium=holmesgpt-docs&utm_content=ui_installation_section){:target="\_blank"} | |
| ### Get Started | |
| 1. **Sign up:** [platform.robusta.dev](https://platform.robusta.dev/signup/?utm_source=docs&utm_medium=holmesgpt-docs&utm_content=ui_installation_section){:target="\_blank"} |
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
33-33: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🤖 Prompt for AI Agents
In docs/installation/ui-installation.md around lines 33 to 35, there is no blank
line between the "Get Started" header and the numbered list which can break
MkDocs rendering; insert a single empty line immediately after the "### Get
Started" header so the numbered list starts on its own paragraph line and
conforms to the documentation formatting guidelines.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.