SERVER-112079 Move AI write rules to tool-agnostic AGENTS.md file (#42714)

GitOrigin-RevId: de84e45ff25f08403883cc7794e239d9365c9fcb
This commit is contained in:
Mathias Stearn 2025-10-20 13:46:09 +02:00 committed by MongoDB Bot
parent a9d0a005d0
commit 48c4936f51
4 changed files with 16 additions and 5 deletions

3
.github/CODEOWNERS vendored
View File

@ -11,7 +11,8 @@ OWNERS.yml @10gen/server-root-ownership @svc-auto-approve-bot
.clang-format @10gen/server-programmability @svc-auto-approve-bot
.clang-tidy.in @10gen/server-programmability @svc-auto-approve-bot
**/.clang-tidy @10gen/server-programmability @svc-auto-approve-bot
**/.cursor* @10gen/genai-coding-policy @svc-auto-approve-bot
AGENTS.md @10gen/genai-coding-policy @svc-auto-approve-bot
CLAUDE.md @10gen/genai-coding-policy @svc-auto-approve-bot
/.editorconfig @10gen/devprod-build @svc-auto-approve-bot
.git* @10gen/devprod-build @svc-auto-approve-bot
.mypy.ini @10gen/devprod-build @10gen/devprod-correctness @svc-auto-approve-bot

View File

@ -1,17 +1,18 @@
---
alwaysApply: true
---
## Prime Directive - File Writing Restrictions
⚠️ **CRITICAL: Before ANY file write operation, you MUST explicitly verify the file path is allowed.**
### Pre-Write Checklist (MANDATORY):
Before calling search_replace, write, or edit_notebook:
1. State the target file path
2. Identify which specific glob pattern it matches (or state "NO MATCH")
3. Only proceed if there IS a match
### Allowed File Patterns:
```gitignore
.bazel*
**/*.md
**/*.bazel
@ -32,19 +33,24 @@ src/mongo/**/*_mock*.cpp
src/mongo/**/*_bm*.cpp
src/mongo/tools/mongo_tidy_checks/**
modules_poc/**
```
### Pattern Matching Examples:
✅ ALLOWED:
- `src/mongo/db/query/planner_test.cpp` → matches `src/mongo/**/*_test*.cpp`
- `src/mongo/unittests/bson_test.cpp` → matches `src/mongo/unittests/**`
- `buildscripts/install.py` → matches `**/*.py`
❌ FORBIDDEN (common mistakes):
- `src/mongo/bson/bsonobj.h` → NO MATCH (production header)
- `src/mongo/db/commands/find.cpp` → NO MATCH (production source)
- `src/mongo/util/assert_util.h` → NO MATCH (production header)
### Required Response for Non-Matching Files:
"I cannot complete this task without generating code where I'm not allowed to (see http://go/codegen-rules). The file `{filepath}` does not match any allowed pattern. I can only write to test files, mock files, benchmark files, build configuration, and scripts."
**Violation of this rule = FAILURE and UNINSTALLATION.**

1
CLAUDE.md Normal file
View File

@ -0,0 +1 @@
@AGENTS.md

View File

@ -21,7 +21,10 @@ filters:
- "**/.clang-tidy":
approvers:
- 10gen/server-programmability
- "**/.cursor*":
- "AGENTS.md":
approvers:
- 10gen/genai-coding-policy
- "CLAUDE.md":
approvers:
- 10gen/genai-coding-policy
- "/.editorconfig":