Skip to content

no-jira: improve AI agent readiness with guidelines and AGENTS.md#10474

Merged
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
rochacbruno:no-jira-agent-readiness
Jun 3, 2026
Merged

no-jira: improve AI agent readiness with guidelines and AGENTS.md#10474
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
rochacbruno:no-jira-agent-readiness

Conversation

@rochacbruno

@rochacbruno rochacbruno commented Apr 7, 2026

Copy link
Copy Markdown
Member

Add layered documentation system for AI-assisted development:

  • docs/security-guidelines.md — TLS, credentials, FIPS, secrets
  • docs/error-handling-guidelines.md — Error wrapping, validation, cloud errors
  • docs/testing-guidelines.md — Mocks, table-driven tests, integration tests
  • docs/integration-guidelines.md — Cloud platform structure, CAPI, tagging, SDKs
  • docs/performance-guidelines.md — Concurrency, rate limiting, destroy flows
  • AGENTS.md — Cross-cutting conventions, architecture, docs index
  • CLAUDE.md — Updated to import AGENTS.md, removed duplicated content
  • .coderabbit.yaml — Added code_guidelines.filePatterns for guideline enforcement

Assessment:

Requirement Before After
Domain-specific guideline files (docs/)
AGENTS.md (agent onboarding + docs index)
CLAUDE.md (Claude-specific config + imports) ✅ (no import)
CodeRabbit configured to enforce guidelines
README.md (project overview + getting started)
CONTRIBUTING.md (contribution workflow)
docs/ARCHITECTURE.md (design decisions + context)

Summary by CodeRabbit

  • Documentation

    • Added comprehensive developer guides covering error handling, integration, performance, security, testing, and AI agent guidance; consolidated top-level guidance into a single included reference and expanded contributor/architecture conventions.
  • Chores

    • Added repository-level automation and review configuration with tailored review/workflow settings, multiple tooling integrations, and chat auto-replies.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 7, 2026
@openshift-ci

openshift-ci Bot commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

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

Details

In response to this:

Add layered documentation system for AI-assisted development:

  • docs/security-guidelines.md — TLS, credentials, FIPS, secrets
  • docs/error-handling-guidelines.md — Error wrapping, validation, cloud errors
  • docs/testing-guidelines.md — Mocks, table-driven tests, integration tests
  • docs/integration-guidelines.md — Cloud platform structure, CAPI, tagging, SDKs
  • docs/performance-guidelines.md — Concurrency, rate limiting, destroy flows
  • AGENTS.md — Cross-cutting conventions, architecture, docs index
  • CLAUDE.md — Updated to import AGENTS.md, removed duplicated content
  • .coderabbit.yaml — Added code_guidelines.filePatterns for guideline enforcement

Assessment:

Requirement Before After
Domain-specific guideline files (docs/)
AGENTS.md (agent onboarding + docs index)
CLAUDE.md (Claude-specific config + imports) ✅ (no import)
CodeRabbit configured to enforce guidelines
README.md (project overview + getting started)
CONTRIBUTING.md (contribution workflow)
docs/ARCHITECTURE.md (design decisions + context)

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.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 7, 2026
@coderabbitai

coderabbitai Bot commented Apr 7, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key: "tools"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
📝 Walkthrough

Walkthrough

Adds a CodeRabbit repository configuration and multiple guideline documents (AI agent guidance, error handling, integration, performance, security, testing), and replaces top-level CLAUDE.md content with an include to AGENTS.md.

Changes

Repository guidance and tooling

Layer / File(s) Summary
CodeRabbit configuration
.coderabbit.yaml
New repository configuration for CodeRabbit: language/tone, review workflow, branch auto-review rules, path filters, per-path review guidance, integrated scanners/linters, and chat auto-replies.
AI agent guidance
AGENTS.md
New agents guide consolidating repository conventions: Go style, import ordering, generated-code rules, asset DAG architecture, provider/destroy/CAPI wiring, build-tag/vendoring practices, and contribution norms.
Top-level docs consolidation
CLAUDE.md
Replaces expanded top-level guidance with a single include/reference to AGENTS.md, removing duplicated architecture and project overview content.
Guidelines — integration
docs/integration-guidelines.md
Adds platform integration conventions: file placement, defaults/validation patterns, destroyer registration (init()), CAPI provider hooks/registration, metadata wiring, resource tagging, and AWS/GCP-specific patterns.
Guidelines — error handling
docs/error-handling-guidelines.md
Adds error creation/wrapping/propagation rules, validation error patterns (field.ErrorList), asset error propagation conventions, sentinel messages, and platform-specific error-handling guidance.
Guidelines — performance
docs/performance-guidelines.md
Adds concurrency, retry, ordering, and synchronization patterns: platform-specific teardown models, semaphores/worker pools, retry/backoff configs, logging/thread-safety, and context/timeout conventions.
Guidelines — security
docs/security-guidelines.md
Adds security conventions: TLS/certificate rules, crypto randomness, credential generation/storage, FIPS behaviors, SSH/pull-secret handling, file permission guidance, and gosec annotation practices.
Guidelines — testing
docs/testing-guidelines.md
Adds testing conventions: unit/integration test patterns, mocking/regeneration with gomock, testscript usage, test layout, assertion preferences, and shared test helpers/templates.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding AI agent readiness documentation and configuration (AGENTS.md, guidelines, .coderabbit.yaml).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed Repository uses standard Go table-driven tests with t.Run(), not Ginkgo. No It()/Describe()/Context()/When() patterns found. Ginkgo-specific check is not applicable.
Test Structure And Quality ✅ Passed PR contains only documentation and configuration files (.md and .yaml files); no Ginkgo test code is present, making the check inapplicable.
Microshift Test Compatibility ✅ Passed This PR contains only documentation and configuration files (8 files: .coderabbit.yaml and 7 Markdown guideline docs). No Ginkgo e2e tests are added, making this custom check not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No Ginkgo e2e tests are added in this PR; only documentation and configuration files are modified. The check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed The PR adds only documentation and configuration files. The check applies exclusively to deployment manifests, operator code, and controllers—none of which are present.
Ote Binary Stdout Contract ✅ Passed The PR correctly handles OTE stdout contract: main.go sets klog.SetOutput(io.Discard) at start of main(), preventing klog output corruption. No fmt.Print calls or problematic init() code found.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds only documentation and configuration files. No Ginkgo e2e tests are added, so the IPv6/disconnected network check is not applicable.
No-Weak-Crypto ✅ Passed No weak crypto (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB) found. PR adds documentation/config only. Recommends RSA-2048, ECDSA P-256, bcrypt, crypto/rand.
Container-Privileges ✅ Passed PR contains only documentation and configuration files; no Kubernetes/container manifests with privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, or allowPrivilegeEscalation settings found.
No-Sensitive-Data-In-Logs ✅ Passed PR contains documentation and configuration files only. No logging code exposes passwords, tokens, API keys, or PII. Security guidelines document proper credential handling.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@rochacbruno rochacbruno marked this pull request as ready for review April 17, 2026 10:21
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 17, 2026
@openshift-ci openshift-ci Bot requested review from barbacbd and rwsu April 17, 2026 10:23
@rochacbruno rochacbruno force-pushed the no-jira-agent-readiness branch from b345bd2 to eac5fb9 Compare April 17, 2026 19:20
@rochacbruno

Copy link
Copy Markdown
Member Author

/retest

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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`:
- Line 42: Update the phrase "Platform type packages" to the hyphenated form
"platform-type packages" in the AGENTS.md sentence that reads "Every package
should have a `doc.go` file with a package comment. Platform type packages also
define their platform `Name` constant in `doc.go`" so it becomes "platform-type
packages also define their platform `Name` constant in `doc.go`" to improve
correctness and readability.
- Around line 143-149: The fenced code block showing "<subsystem>: <what
changed> ... Fixes #<issue-number>" needs a language hint to satisfy MD040 and
improve rendering; update that fenced block (the one containing "<subsystem>:
<what changed>" at the noted snippet) to use a language tag such as "text"
(i.e., change the opening ``` to ```text) so the markdown linter and renderers
recognize the block type.
🪄 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: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9f77b501-cfdb-4892-9569-d862135c6d77

📥 Commits

Reviewing files that changed from the base of the PR and between b345bd2 and eac5fb9.

📒 Files selected for processing (3)
  • .coderabbit.yaml
  • AGENTS.md
  • CLAUDE.md
✅ Files skipped from review due to trivial changes (2)
  • CLAUDE.md
  • .coderabbit.yaml

Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated

@barbacbd barbacbd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

/approve

Concept is good. Coderabbit only had very minor updates that I don't think are 100% necessary. But you need to address the failing tests.

@openshift-ci

openshift-ci Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: barbacbd

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

The pull request process is described 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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 28, 2026
Add layered documentation system for AI-assisted development:

- docs/security-guidelines.md — TLS, credentials, FIPS, secrets
- docs/error-handling-guidelines.md — Error wrapping, validation, cloud errors
- docs/testing-guidelines.md — Mocks, table-driven tests, integration tests
- docs/integration-guidelines.md — Cloud platform structure, CAPI, tagging, SDKs
- docs/performance-guidelines.md — Concurrency, rate limiting, destroy flows
- AGENTS.md — Cross-cutting conventions, architecture, docs index
- CLAUDE.md — Updated to import AGENTS.md, removed duplicated content
- .coderabbit.yaml — Added code_guidelines.filePatterns for guideline enforcement

Assessment:

| Requirement                                        | Before | After |
|----------------------------------------------------|--------|-------|
| Domain-specific guideline files (docs/)            |   ❌   |  ✅   |
| AGENTS.md (agent onboarding + docs index)          |   ❌   |  ✅   |
| CLAUDE.md (Claude-specific config + imports)       |   ✅ (no import)   |  ✅   |
| CodeRabbit configured to enforce guidelines        |   ❌   |  ✅   |
| README.md (project overview + getting started)     |   ✅   |  ✅   |
| CONTRIBUTING.md (contribution workflow)            |   ✅   |  ✅   |
| docs/ARCHITECTURE.md (design decisions + context)  |   ❌   |  ❌   |

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rochacbruno rochacbruno force-pushed the no-jira-agent-readiness branch from 4a61c3e to 955d169 Compare June 1, 2026 11:32

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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 `@docs/error-handling-guidelines.md`:
- Around line 55-57: The fenced code block showing the error example is missing
a language tag; update that fenced block so it uses a language identifier of
"text" for the example containing failed to generate asset "Cluster" -> failed
to fetch dependency of "Cluster" -> ... (the fenced block in
docs/error-handling-guidelines.md), i.e., change the triple-backtick fence to
```text and leave the inner content unchanged so it satisfies the MD040 linter
rule.

In `@docs/testing-guidelines.md`:
- Around line 156-170: The fenced code block in docs/testing-guidelines.md
currently uses an unannotated triple-backtick which triggers markdownlint MD040;
update the example fence around the testscript (the block starting with the
comment "# Comment describing the test" and the lines showing exec
openshift-install ... and the install-config.yaml/agent-config.yaml snippets) to
include a language identifier (e.g., change ``` to ```txt) so the block is
annotated and MD040 is satisfied.
🪄 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: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e26e1e5e-d5d1-475f-be18-100f6e833b0c

📥 Commits

Reviewing files that changed from the base of the PR and between 4a61c3e and 955d169.

📒 Files selected for processing (8)
  • .coderabbit.yaml
  • AGENTS.md
  • CLAUDE.md
  • docs/error-handling-guidelines.md
  • docs/integration-guidelines.md
  • docs/performance-guidelines.md
  • docs/security-guidelines.md
  • docs/testing-guidelines.md
✅ Files skipped from review due to trivial changes (4)
  • docs/security-guidelines.md
  • docs/integration-guidelines.md
  • AGENTS.md
  • docs/performance-guidelines.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • .coderabbit.yaml
  • CLAUDE.md

Comment thread docs/error-handling-guidelines.md Outdated
Comment thread docs/testing-guidelines.md Outdated
Hyphenate compound modifier "Platform-type packages" and add `text`
language hint to commit format fenced code block (MD040).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@rochacbruno rochacbruno force-pushed the no-jira-agent-readiness branch from 955d169 to fda325a Compare June 1, 2026 12:29
@rochacbruno

Copy link
Copy Markdown
Member Author

/retest-required

@rochacbruno

Copy link
Copy Markdown
Member Author

/test okd-scos-images

@tthvo tthvo 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.

Nice, looks really good! I just have a few comments, mostly for coderrabit config file.

Comment thread .coderabbit.yaml
Comment thread .coderabbit.yaml Outdated
Comment thread .coderabbit.yaml
Comment thread .coderabbit.yaml
Comment thread .coderabbit.yaml
Comment thread docs/performance-guidelines.md Outdated
Comment thread docs/testing-guidelines.md Outdated
Comment thread docs/testing-guidelines.md
Comment thread docs/security-guidelines.md Outdated
## TLS Certificates

### Key size and algorithm
All RSA keys use 2048-bit via `rsa.GenerateKey(rand.Reader, 2048)` in `pkg/asset/tls/tls.go`. The constant `keySize = 2048` is the single source of truth. Do not introduce alternative key sizes without updating this constant.

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.

This information may change depending on #10396.

Comment thread docs/error-handling-guidelines.md Outdated
Comment thread docs/error-handling-guidelines.md Outdated
Comment thread CLAUDE.md
Comment thread AGENTS.md Outdated
Comment thread .coderabbit.yaml Outdated
Comment thread AGENTS.md Outdated
Comment thread AGENTS.md Outdated
- .coderabbit.yaml: add inheritance from org config, release-5.*
  branch, zz_generated exclusion, expanded knowledge base patterns,
  remove incomplete suggested_labels
- error-handling: prefer fmt.Errorf over deprecated pkg/errors,
  clarify graceful degradation is exception-only
- integration: add wait period annotations to hook order, improve
  AWS tagging description, remove altinfra references per openshift#10585
- performance: clarify resource ordering is platform-specific
- security: clarify credential file examples
- testing: remove Go version from table, add \Q/\E literal matching
- AGENTS.md: narrow doc.go to pkg/types/, remove altinfra references

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@tthvo tthvo 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.

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 2, 2026
@tthvo

tthvo commented Jun 2, 2026

Copy link
Copy Markdown
Member

/verified bypass
/hold

These are mostly AI agent guidelines. Since there is a new repo-wide coderrabit config (affecting all PR reviews), I hold for Patrick to green light it.

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jun 2, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@tthvo: The verified label has been added.

Details

In response to this:

/verified bypass
/hold

These are mostly AI agent guidelines. Since there is a new repo-wide coderrabit config (affecting all PR reviews), I hold for Patrick to green light it.

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.

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 2, 2026
@patrickdillon

Copy link
Copy Markdown
Contributor

/hold cancel

Thanks @rochacbruno

I do hope this is something we continue to evolve. I think it is debated how effective these readmes are, I think the CLAUDE.md used to write claude code gets passed around and it is super simple (but i can't find the reference right now so maybe my memory is faulty). On the other hand, Boris Cherny recommends how effective it is to tell claude to stop making mistakes.

So let's keep thinking about what's effective for us.

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 2, 2026
@openshift-merge-bot openshift-merge-bot Bot merged commit 5e91bda into openshift:main Jun 3, 2026
14 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants