Skip to content

feat: add AGENTS.md#579

Merged
adolfo-ab merged 3 commits intoopendatahub-io:mainfrom
adolfo-ab:add-agentsmd
Sep 5, 2025
Merged

feat: add AGENTS.md#579
adolfo-ab merged 3 commits intoopendatahub-io:mainfrom
adolfo-ab:add-agentsmd

Conversation

@adolfo-ab
Copy link
Copy Markdown
Contributor

@adolfo-ab adolfo-ab commented Sep 3, 2025

Add AGENTS.md, an open format to guide AI coding agents

Merge criteria:

  • The commits are squashed in a cohesive manner and have meaningful messages.
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has manually tested the changes and verified that the changes work

Summary by CodeRabbit

  • Documentation

    • Added a new AI agent guidelines document with coding principles and pointers to existing docs.
    • Moved and expanded guidance on adding new runtimes into the developer guide, including structured runtime configuration details and an example.
    • Introduced explicit best practices for using AI tooling and a compatibility tip.
    • Removed the runtime-addition section from the contributing guide.
  • Chores

    • Updated ignore list to cover AI assistant configuration directories and related files.

@adolfo-ab adolfo-ab requested a review from a team as a code owner September 3, 2025 12:58
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Sep 3, 2025

📝 Walkthrough

Walkthrough

Updates .gitignore with new AI assistant config ignores, adds AGENTS.md, removes the “Adding new runtime” section from docs/CONTRIBUTING.md, and adds expanded “Adding new runtime” and “AI Usage” guidance to docs/DEVELOPER_GUIDE.md with a formatting newline.

Changes

Cohort / File(s) Summary of Changes
Ignore rules updates
/.gitignore
Added ignore entries: directories .cursor/, .clinerules/, .roorules/ and files AGENT.md, GEMINI.md, QWEN.md.
New documentation file
/AGENTS.md
Added AGENTS.md containing Overview, Documentation pointers, and Specific Instructions (coding guidelines and workflow notes).
CONTRIBUTING doc update
/docs/CONTRIBUTING.md
Removed the entire "Adding new runtime" section (including example INFERENCE_CONFIG and caikit_standalone example) and two trailing blank lines.
Developer guide update
/docs/DEVELOPER_GUIDE.md
Added "Adding new runtime" section (runtime manifest and per-query-type INFERENCE_CONFIG structure) and "AI Usage" guidance; inserted trailing newline after Run tox section.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

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

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Sep 3, 2025

The following are automatically added/executed:

  • PR size label.
  • Run pre-commit
  • Run tox
  • Add PR author as the PR assignee
  • Build image based on the PR

Available user actions:

  • To mark a PR as WIP, add /wip in a comment. To remove it from the PR comment /wip cancel to the PR.
  • To block merging of a PR, add /hold in a comment. To un-block merging of PR comment /hold cancel.
  • To mark a PR as approved, add /lgtm in a comment. To remove, add /lgtm cancel.
    lgtm label removed on each new commit push.
  • To mark PR as verified comment /verified to the PR, to un-verify comment /verified cancel to the PR.
    verified label removed on each new commit push.
  • To Cherry-pick a merged PR /cherry-pick <target_branch_name> to the PR. If <target_branch_name> is valid,
    and the current PR is merged, a cherry-picked PR would be created and linked to the current PR.
  • To build and push image to quay, add /build-push-pr-image in a comment. This would create an image with tag
    pr-<pr_number> to quay repository. This image tag, however would be deleted on PR merge or close action.
Supported labels

{'/wip', '/cherry-pick', '/build-push-pr-image', '/hold', '/lgtm', '/verified'}

Copy link
Copy Markdown
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: 1

🧹 Nitpick comments (6)
.gitignore (1)

171-178: Clarify intent: ignore AGENT.md vs track AGENTS.md.

This repo adds AGENTS.md (plural) to version control while ignoring AGENT.md (singular). If that singular filename isn’t used by your tools, consider removing it from .gitignore to avoid confusion; if it is, add a short comment explaining the difference.

 # AI Assistant Config Files
 .cursor/
 .clinerules/
-.roorules/
+.roorules/  # verify this is the intended tool directory
-AGENT.md
+AGENT.md    # ignored intentionally; AGENTS.md is tracked as the canonical spec
 CLAUDE.md
 GEMINI.md
 QWEN.md
AGENTS.md (3)

1-4: Add a link to the AGENTS.md spec for quick reference.

 # Overview
-This is a testing repo for OpenDataHub and OpenShift AI, an MLOps platform for OpenShift.
+This is a testing repo for OpenDataHub and OpenShift AI—an MLOps platform for OpenShift.
+It supports the open AGENTS.md format: https://agents.md/
 The tests contained in the repo are high-level integration tests at the Kubernetes API level.

6-10: Tighten phrasing of the docs checklist.

-At the start of each session, consider if you need to consult any of these files in order to answer:
+At the start of each session, consider consulting:
 - [Guidelines for Getting Started](./docs/GETTING_STARTED.md)
 - [Developer Guide](./docs/DEVELOPER_GUIDE.md)
 - [Style Guide](./docs/STYLE_GUIDE.md)

13-19: Security wording: “exposing” not “filtering”.

-- Keep security in mind: Avoid filtering sensitive information and running destructive commands.
+- Keep security in mind: Avoid exposing sensitive information and avoid running destructive commands.
docs/DEVELOPER_GUIDE.md (2)

185-189: Correct typos in comments.

-    "support_multi_default_queries": True|False,  # Optioanl, if set to True, `default_query_model` should contains a dict with corresponding inference_type
+    "support_multi_default_queries": True|False,  # Optional; if True, `default_query_model` should contain a dict keyed by `inference_type`

206-210: Subject–verb agreement and clarity in AI Usage.

-2. We support [AGENTS.md](../AGENTS.md), an [open format](https://agents.md/) for guiding coding agents. If you use any proprietary tool that do not support `AGENTS.md` (e.g. Claude Code, Qwen Code, Gemini Code), you can create a symlink:
+2. We support [AGENTS.md](../AGENTS.md), an [open format](https://agents.md/) for guiding coding agents. If you use any proprietary tool that does not support `AGENTS.md` (e.g., Claude Code, Qwen Code, Gemini Code), you can create a symlink:
 ```bash
 ln -s AGENTS.md CLAUDE.md

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: CHILL

**Plan**: Pro

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 4b221f1e5a71a9dfb2b4d28ab6128cafa22a053a and 9acb812b6e3198b5c9a4414be0db0bbee1bc1682.

</details>

<details>
<summary>📒 Files selected for processing (4)</summary>

* `.gitignore` (1 hunks)
* `AGENTS.md` (1 hunks)
* `docs/CONTRIBUTING.md` (0 hunks)
* `docs/DEVELOPER_GUIDE.md` (1 hunks)

</details>

<details>
<summary>💤 Files with no reviewable changes (1)</summary>

* docs/CONTRIBUTING.md

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>AGENTS.md</summary>

[style] ~7-~7: Consider a more concise word here.
Context: ... you need to consult any of these files in order to answer: - [Guidelines for Getting Start...

(IN_ORDER_TO_PREMIUM)

---

[grammar] ~7-~7: There might be a mistake here.
Context: ...t any of these files in order to answer: - [Guidelines for Getting Started](./docs/G...

(QB_NEW_EN)

---

[grammar] ~8-~8: There might be a mistake here.
Context: ...nswer: - [Guidelines for Getting Started](./docs/GETTING_STARTED.md) - [Developer Guide](./docs/DEVELOPER_GUIDE....

(QB_NEW_EN)

---

[grammar] ~9-~9: There might be a mistake here.
Context: ...s/GETTING_STARTED.md) - [Developer Guide](./docs/DEVELOPER_GUIDE.md) - [Style Guide](./docs/STYLE_GUIDE.md)  # S...

(QB_NEW_EN)

---

[grammar] ~12-~12: There might be a mistake here.
Context: ...STYLE_GUIDE.md)  # Specific Instructions - Avoid unnecessary complexity: Aim for th...

(QB_NEW_EN)

---

[grammar] ~13-~13: There might be a mistake here.
Context: ...hat works, while keeping the code clean. - Avoid obvious comments: Only add comment...

(QB_NEW_EN)

---

[grammar] ~14-~14: There might be a mistake here.
Context: ... explain especially complex code blocks. - Maintain code consistency: Follow existi...

(QB_NEW_EN)

</details>
<details>
<summary>docs/DEVELOPER_GUIDE.md</summary>

[grammar] ~180-~180: There might be a mistake here.
Context: ...  ```bash tox ```  ## Adding new runtime To add a new runtime, you need to:   1. ...

(QB_NEW_EN)

---

[grammar] ~181-~181: There might be a mistake here.
Context: ...ntime To add a new runtime, you need to:   1. Add a new file under [manifests](../util...

(QB_NEW_EN)

---

[grammar] ~204-~204: There might be a mistake here.
Context: ...andalone.py) for an example  ## AI Usage If using AI tooling to assist you in the...

(QB_NEW_EN)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (1)</summary><blockquote>

<details>
<summary>.gitignore (1)</summary><blockquote>

`171-173`: **Confirm tool directory name: `.roorules/` looks like a typo.**

I’m not aware of an AI assistant that writes `.roorules/`. If intentional, ignore this. Otherwise, please correct to the intended directory name.

</blockquote></details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@github-actions github-actions bot added the size/m label Sep 3, 2025
@adolfo-ab
Copy link
Copy Markdown
Contributor Author

/verified

dbasunag
dbasunag previously approved these changes Sep 3, 2025
@rhods-ci-bot rhods-ci-bot added the Verified Verified pr in Jenkins label Sep 3, 2025
Copy link
Copy Markdown
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: 1

♻️ Duplicate comments (1)
docs/DEVELOPER_GUIDE.md (1)

184-201: Fix schema typos, ambiguous keys, and close the code fence; use JSON object for headers/body.

  • “Optioanl” → “Optional”; “should contains” → “should contain a dict keyed by inference_type”.
  • Use “headers” (object) not “header” (string).
  • Represent “body” as a JSON object, not a quoted string.
  • The code block fence is opened but not closed.
  • Use the correct fence language (json) for clarity.

Apply:

-```code
-    "support_multi_default_queries": True|False,  # Optioanl, if set to True, `default_query_model` should contains a dict with corresponding inference_type
-    "default_query_model": {
-        "query_input": <default query to be sent to the model>,
-        "query_output": <expected output>,
-        "use_regex": True|False, # Optional, if set to True, `query_output` should be a regex
-    },
-    "<query type, for example: all-tokens>": {
-        "<protocol, for example HTTP>": {
-            "endpoint": "<model endpoint>",
-            "header": "<model required headers>",
-            "body": '{<model expected body}',
-            "response_fields_map": {
-                "response_output": <output field in response>,
-                "response": <response field in response - optional>,
-            },
-        },
-```
+```json
+{
+  "support_multi_default_queries": true | false,  // Optional; if true, `default_query_model` should contain a dict keyed by `inference_type`.
+  "default_query_model": {
+    "query_input": "<default query to be sent to the model>",
+    "query_output": "<expected output>",
+    "use_regex": true | false  // Optional; if true, `query_output` is a regex.
+  },
+  "<query type, e.g., all-tokens>": {
+    "<protocol, e.g., HTTP>": {
+      "endpoint": "<model endpoint>",
+      "headers": { "<header-name>": "<value>" },
+      "body": { "<expected request body>" },
+      "response_fields_map": {
+        "response_output": "<field in response containing output>",
+        "response": "<entire response field - optional>"
+      }
+    }
+  }
+}
+```
🧹 Nitpick comments (4)
AGENTS.md (2)

6-10: Tighten phrasing and fix minor style nits in the “Documentation” section.

  • Use “to answer” instead of “in order to answer.”
  • Consider imperative, parallel bullets.

Apply:

-At the start of each session, consider if you need to consult any of these files in order to answer:
+At the start of each session, consider whether you should consult any of these files to answer:
 - [Guidelines for Getting Started](./docs/GETTING_STARTED.md)
 - [Developer Guide](./docs/DEVELOPER_GUIDE.md)
 - [Style Guide](./docs/STYLE_GUIDE.md)

1-1: Optional: Title case section headers for consistency.

Minor consistency polish with docs elsewhere.

Apply:

-# Overview
+# Overview

And similarly consider “# Documentation” → “# Documentation” (unchanged) and “# Specific Instructions” → “# Specific instructions” or make all Title Case consistently across the repo.

docs/DEVELOPER_GUIDE.md (2)

203-203: Cross-reference example location using fully qualified path and brief context.

Add a short note clarifying which fields the example demonstrates.

Apply:

-3. See [caikit_standalone](../utilities/manifests/caikit_standalone.py) for an example
+3. See [utilities/manifests/caikit_standalone.py](../utilities/manifests/caikit_standalone.py) for a complete example of headers/body/response_fields_map usage.

204-210: Offer Windows-friendly alternative to symlink tip.

Symlinks may require admin privileges or differ on Windows; add a fallback.

Apply:

 ```bash
 ln -s AGENTS.md CLAUDE.md

+On Windows (PowerShell), you can use:
+powershell +cmd /c mklink CLAUDE.md AGENTS.md +


</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: Path: .coderabbit.yaml

**Review profile**: CHILL

**Plan**: Pro

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 9acb812b6e3198b5c9a4414be0db0bbee1bc1682 and 8f7346bbade4dbf1ba01861cb31dc9e0adbc614e.

</details>

<details>
<summary>📒 Files selected for processing (2)</summary>

* `AGENTS.md` (1 hunks)
* `docs/DEVELOPER_GUIDE.md` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>AGENTS.md</summary>

[style] ~7-~7: Consider a more concise word here.
Context: ... you need to consult any of these files in order to answer: - [Guidelines for Getting Start...

(IN_ORDER_TO_PREMIUM)

---

[grammar] ~7-~7: There might be a mistake here.
Context: ...t any of these files in order to answer: - [Guidelines for Getting Started](./docs/G...

(QB_NEW_EN)

---

[grammar] ~8-~8: There might be a mistake here.
Context: ...nswer: - [Guidelines for Getting Started](./docs/GETTING_STARTED.md) - [Developer Guide](./docs/DEVELOPER_GUIDE....

(QB_NEW_EN)

---

[grammar] ~9-~9: There might be a mistake here.
Context: ...s/GETTING_STARTED.md) - [Developer Guide](./docs/DEVELOPER_GUIDE.md) - [Style Guide](./docs/STYLE_GUIDE.md)  # S...

(QB_NEW_EN)

---

[grammar] ~12-~12: There might be a mistake here.
Context: ...STYLE_GUIDE.md)  # Specific Instructions - Avoid unnecessary complexity: Aim for th...

(QB_NEW_EN)

---

[grammar] ~13-~13: There might be a mistake here.
Context: ...hat works, while keeping the code clean. - Avoid obvious comments: Only add comment...

(QB_NEW_EN)

---

[grammar] ~14-~14: There might be a mistake here.
Context: ... explain especially complex code blocks. - Maintain code consistency: Follow existi...

(QB_NEW_EN)

</details>
<details>
<summary>docs/DEVELOPER_GUIDE.md</summary>

[grammar] ~180-~180: There might be a mistake here.
Context: ...  ```bash tox ```  ## Adding new runtime To add a new runtime, you need to:   1. ...

(QB_NEW_EN)

---

[grammar] ~181-~181: There might be a mistake here.
Context: ...ntime To add a new runtime, you need to:   1. Add a new file under [manifests](../util...

(QB_NEW_EN)

---

[grammar] ~204-~204: There might be a mistake here.
Context: ...andalone.py) for an example  ## AI Usage If using AI tooling to assist you in the...

(QB_NEW_EN)

</details>

</details>

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

- Maintain code consistency: Follow existing code patterns and architecture.
- Maintain locality of behavior: Keep code close to where it's used.
- Make small, focused changes, unless explicitly asked otherwise.
- Keep security in mind: Avoid filtering sensitive information and running destructive commands.
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.

⚠️ Potential issue

Correct the security guidance (“filtering” → “leaking”, avoid double-verb).

“Avoid filtering sensitive information” is likely the opposite of intent. Recommend “leaking” and remove repetition.

Apply:

-- Keep security in mind: Avoid filtering sensitive information and running destructive commands.
+- Keep security in mind: Avoid leaking sensitive information and avoid running destructive commands.
📝 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
- Keep security in mind: Avoid filtering sensitive information and running destructive commands.
- Keep security in mind: Avoid leaking sensitive information and avoid running destructive commands.
🤖 Prompt for AI Agents
In AGENTS.md around line 18, the guidance currently reads "Avoid filtering
sensitive information and running destructive commands" which uses the wrong
verb and a slightly awkward conjunction; change "filtering" to "leaking" and
rephrase to eliminate the double-verb awkwardness so it reads something like
"Avoid leaking sensitive information or running destructive commands" (or
equivalent concise wording) to correct intent and improve clarity.

@rhods-ci-bot rhods-ci-bot added lgtm-by-dbasunag and removed Verified Verified pr in Jenkins labels Sep 3, 2025
Copy link
Copy Markdown
Contributor

@sheltoncyril sheltoncyril left a comment

Choose a reason for hiding this comment

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

/lgtm

@adolfo-ab adolfo-ab merged commit 491db86 into opendatahub-io:main Sep 5, 2025
10 checks passed
@github-actions
Copy link
Copy Markdown

github-actions bot commented Sep 5, 2025

Status of building tag latest: success.
Status of pushing tag latest to image registry: success.

mwaykole pushed a commit to mwaykole/opendatahub-tests that referenced this pull request Jan 23, 2026
* feat: add AGENTS.md

* typos

---------

Co-authored-by: Debarati Basu-Nag <dbasunag@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants