Skip to content

Conversation

@titusfortner
Copy link
Member

@titusfortner titusfortner commented Dec 15, 2025

User description

Reason for PR

  • Need a single summary of the project that is short and easily parsable by AI coding agents to better understand the repo.
  • Goal is only information that is useful in every context window when working with Selenium using Codex or Claude Code, etc

💥 What does this PR do?

  • Adds primary AGENTS.md file with overview of project so agents can better understand the repo
  • Adds AGENTS.md files in each of the language directories for language specific information
  • Points CLAUDE.md and .github/copilot-instructions.md to AGENTS.md
  • Adds the other popular AI tooling directories & files to .gitignore

🔧 Implementation Notes

  • Split the file into multiple files to minimize what agents must store in context window, so if a dev is only working in one language binding, the agent only has to work with that agents file.

💡 Additional Considerations

This PR assumes the TESTING.md files created in #16734 exist


PR Type

Documentation


Description

  • Adds comprehensive AGENTS.md files for AI coding agent guidance

  • Creates language-specific agent documentation in each binding directory

  • Redirects CLAUDE.md and copilot-instructions.md to primary AGENTS.md

  • Provides standardized instructions for AI agents working in Selenium monorepo


Diagram Walkthrough

flowchart LR
  A["Root AGENTS.md<br/>Monorepo Overview"] --> B["java/AGENTS.md<br/>Java Binding Guide"]
  A --> C["py/AGENTS.md<br/>Python Binding Guide"]
  A --> D["rb/AGENTS.md<br/>Ruby Binding Guide"]
  A --> E["javascript/AGENTS.md<br/>JavaScript Binding Guide"]
  A --> F["dotnet/AGENTS.md<br/>.NET Binding Guide"]
  A --> G["rust/AGENTS.md<br/>Rust/Manager Guide"]
  H["CLAUDE.md"] -.->|references| A
  I["copilot-instructions.md"] -.->|references| A
Loading

File Walkthrough

Relevant files
Documentation
9 files
AGENTS.md
Root agent guidance for monorepo overview                               
+64/-0   
CLAUDE.md
Redirect to primary AGENTS.md file                                             
+1/-0     
copilot-instructions.md
GitHub Copilot instructions redirect                                         
+1/-0     
AGENTS.md
Java bindings and Grid agent guidance                                       
+15/-0   
AGENTS.md
Python bindings agent guidance                                                     
+15/-0   
AGENTS.md
Ruby bindings agent guidance                                                         
+16/-0   
AGENTS.md
JavaScript bindings agent guidance                                             
+12/-0   
AGENTS.md
.NET bindings agent guidance                                                         
+15/-0   
AGENTS.md
Rust and Selenium Manager agent guidance                                 
+13/-0   

@selenium-ci selenium-ci added C-py Python Bindings C-rb Ruby Bindings C-dotnet .NET Bindings C-java Java Bindings C-nodejs JavaScript Bindings B-build Includes scripting, bazel and CI integrations C-rust Rust code is mostly Selenium Manager B-manager Selenium Manager labels Dec 15, 2025
@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Dec 15, 2025

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Dec 15, 2025

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Separate concatenated shell commands
Suggestion Impact:The combined command line was changed by separating out (and keeping) only the `bazel build //rb/...` part, removing the concatenated `bazel run //:bundle -- update` from that line. However, the second suggested list item was not added in this patch.

code diff:

 ## Common commands
-- `bazel build //rb/... bazel run //:bundle -- update`
+- `bazel build //rb/...`
 

Separate the single-line bazel build and bazel run commands in the "Common
commands" section into two distinct list items for clarity and correct
execution.

rb/AGENTS.md [8-9]

 ## Common commands
-- `bazel build //rb/... bazel run //:bundle -- update`
+- `bazel build //rb/...`
+- `bazel run //:bundle -- update`

[Suggestion processed]

Suggestion importance[1-10]: 7

__

Why: The suggestion correctly identifies two concatenated commands that would fail if run as written, and proposes splitting them for clarity and to ensure correct execution by an AI agent.

Medium
Include JavaScript binding in search command
Suggestion Impact:The documentation was updated to include `javascript/selenium-webdriver/` in the cross-binding `rg ` command under "Cross-binding consistency checks", ensuring JavaScript bindings are searched alongside java/py/rb/dotnet.

code diff:

+## Cross-binding consistency checks
+When changing user-visible behavior, compare with at least one other binding:
+- `rg <term> java/ py/ rb/ dotnet/ javascript/selenium-webdriver/`
 

Add the JavaScript binding path (javascript/selenium-webdriver/) to the example
rg search command to ensure all relevant bindings are checked for changes.

AGENTS.md [26-27]

 When changing behavior, compare to the equivalent areas in at least one other binding:
-- `rg <term> java/ py/ rb/ dotnet/`
+- `rg <term> java/ py/ rb/ dotnet/ javascript/selenium-webdriver/`

[Suggestion processed]

Suggestion importance[1-10]: 6

__

Why: The suggestion correctly identifies that the rg command is missing the JavaScript binding path, which could lead to inconsistent changes across bindings if an AI agent uses this instruction.

Low
General
Replace placeholder with an explanatory comment

Replace the '???' placeholder in the .NET dependency management section with a
more descriptive comment indicating the process is to be determined.

dotnet/AGENTS.md [11-12]

 ## Dependency management
-???
+<!-- TBD: The dependency management process for .NET is not yet documented for AI agents. -->
  • Apply / Chat
Suggestion importance[1-10]: 4

__

Why: The suggestion improves the clarity of the documentation by replacing an ambiguous placeholder with an explicit comment, which is more helpful for both human and AI readers.

Low
  • Update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations B-manager Selenium Manager C-dotnet .NET Bindings C-java Java Bindings C-nodejs JavaScript Bindings C-py Python Bindings C-rb Ruby Bindings C-rust Rust code is mostly Selenium Manager Review effort 1/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants