Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,13 @@ cython_debug/
.vscode/

# AI Assistant Config Files
.cursor/
.clinerules/
.roorules/
AGENT.md
CLAUDE.md
GEMINI.md
QWEN.md

# Must-Gather Artifacts
must-gather-collected/
19 changes: 19 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Overview
This is a testing repo for OpenDataHub and OpenShift AI, which are MLOps platforms for OpenShift.
The tests contained in the repo are high-level integration tests at the Kubernetes API level.

# Documentation
All the general information about the repo is contained in the /docs directory.
At the start of each session, consider if you need to consult any of these files in order to answer:
- [Guidelines for Getting Started](./docs/GETTING_STARTED.md)
- [Developer Guide](./docs/DEVELOPER_GUIDE.md)
- [Style Guide](./docs/STYLE_GUIDE.md)

# Specific Instructions
- Avoid unnecessary complexity: Aim for the simplest solution that works, while keeping the code clean.
- Avoid obvious comments: Only add comments to explain especially complex code blocks.
- 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.

- When in doubt about something, ask the user.
25 changes: 0 additions & 25 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,3 @@ If a related issue doesn't exist, you can open a new issue using a relevant [iss

## Pull requests
Follow the guidelines in [Developer guide](DEVELOPER_GUIDE.md)


## Adding new runtime
To add a new runtime, you need to:
1. Add a new file under [manifests](../utilities/manifests) directory.
2. Add `<runtime>_INFERENCE_CONFIG` dict with:
```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>,
},
},
```
3. See [caikit_standalone](../utilities/manifests/caikit_standalone.py) for an example
32 changes: 32 additions & 0 deletions docs/DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,3 +176,35 @@ Run tox:
```bash
tox
```

## Adding new runtime
To add a new runtime, you need to:
1. Add a new file under [manifests](../utilities/manifests) directory.
2. Add `<runtime>_INFERENCE_CONFIG` dict with:
```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>,
},
},
```
3. See [caikit_standalone](../utilities/manifests/caikit_standalone.py) for an example

## AI Usage
If using AI tooling to assist you in the process of writing or reviewing code:
1. Understand what you are doing --as a developer, you are ultimately responsible for the code. Always assume the code produced by the AI tools is unsafe and incorrect, and always double-check it.
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
```