169 lines
4.8 KiB
Markdown
169 lines
4.8 KiB
Markdown
# 🚨🚨🚨 **CRITICAL REQUIREMENTS FOR BACKGROUND AGENTS** 🚨🚨🚨
|
|
|
|
# ⚠️ **STOP! READ THIS FIRST!** ⚠️
|
|
|
|
## **MANDATORY TESTING REQUIREMENT - NO EXCEPTIONS!**
|
|
|
|
### 🔥 **RULE #1: ALWAYS RUN `bash test` BEFORE COMPLETION** 🔥
|
|
|
|
**THIS IS THE MOST IMPORTANT RULE FOR BACKGROUND AGENTS:**
|
|
|
|
- **🚨 EVERY BACKGROUND AGENT MUST RUN `bash test` BEFORE SAYING THEY ARE DONE**
|
|
- **🚨 NO EXCEPTIONS - THIS IS MANDATORY AND NON-NEGOTIABLE**
|
|
- **🚨 IF YOU DON'T RUN `bash test`, YOUR WORK IS INCOMPLETE**
|
|
- **🚨 SAYING "DONE" WITHOUT RUNNING `bash test` IS BREAKING THE RULES**
|
|
|
|
### **WHY THIS IS CRITICAL:**
|
|
- The `bash test` command runs the full test suite including unit tests and compilation checks
|
|
- It catches breaking changes, compilation errors, and regressions
|
|
- It ensures the codebase remains stable and functional
|
|
- **WITHOUT THIS, YOU WILL BREAK THE PROJECT**
|
|
|
|
### **WHAT `bash test` DOES:**
|
|
- Runs all C++ unit tests
|
|
- Runs Python linting and formatting checks
|
|
- Validates code compilation across platforms
|
|
- Checks for syntax errors and warnings
|
|
- Ensures all examples still compile
|
|
|
|
### 🚨 **MANDATORY STEPS FOR COMPLETION - FOLLOW EXACTLY:** 🚨
|
|
|
|
1. **🔥 RUN `bash test` COMMAND**
|
|
- Execute: `bash test`
|
|
- Wait for ALL tests to complete
|
|
- Check that ALL tests PASS
|
|
|
|
2. **🔥 VERIFY TEST RESULTS**
|
|
- If ANY test fails, you MUST fix the issues
|
|
- Do NOT ignore warnings or errors
|
|
- Do NOT proceed until ALL tests pass
|
|
|
|
3. **🔥 USE MCP SERVER VALIDATION (RECOMMENDED)**
|
|
- Use the `validate_completion` tool from MCP server: `uv run mcp_server.py`
|
|
- This tool runs `bash test` and validates results
|
|
- Only indicate completion if this tool returns SUCCESS
|
|
|
|
4. **🔥 ZERO TOLERANCE FOR FAILURES**
|
|
- If ANY test fails, the background agent MUST fix the issues
|
|
- Do NOT indicate completion with failing tests
|
|
- Do NOT ignore test errors or warnings
|
|
- Fix the code and re-run `bash test` until ALL tests pass
|
|
|
|
### **COMPLETION CHECKLIST - MUST COMPLETE ALL ITEMS:**
|
|
- [ ] ✅ All code changes have been made
|
|
- [ ] ✅ **`bash test` has been run and ALL tests PASS**
|
|
- [ ] ✅ No compilation errors or warnings remain
|
|
- [ ] ✅ MCP server `validate_completion` tool shows SUCCESS (if used)
|
|
- [ ] ✅ All test output has been reviewed for any issues
|
|
- [ ] ✅ **ONLY THEN** indicate task completion
|
|
|
|
### 🔥 **CONSEQUENCES OF NOT FOLLOWING THIS RULE:** 🔥
|
|
|
|
- **YOUR CHANGES WILL BREAK THE PROJECT**
|
|
- **OTHER DEVELOPERS WILL HAVE TO FIX YOUR MISTAKES**
|
|
- **THE CONTINUOUS INTEGRATION SYSTEM WILL FAIL**
|
|
- **YOU WILL CAUSE REGRESSIONS AND BUGS**
|
|
|
|
### 🚨 **FINAL WARNING:** 🚨
|
|
|
|
**IF YOU ARE A BACKGROUND AGENT AND YOU INDICATE COMPLETION WITHOUT RUNNING `bash test`, YOU HAVE FAILED TO FOLLOW THE MOST BASIC REQUIREMENT OF THIS PROJECT.**
|
|
|
|
**NO EXCEPTIONS. NO SHORTCUTS. ALWAYS RUN `bash test` FIRST.**
|
|
|
|
---
|
|
|
|
## **Examples of CORRECT Background Agent Behavior:**
|
|
|
|
### ✅ **GOOD Example:**
|
|
```
|
|
1. Made code changes
|
|
2. Ran `bash test`
|
|
3. All tests passed
|
|
4. Indicated completion: "Task completed successfully. All tests pass."
|
|
```
|
|
|
|
### ❌ **BAD Example:**
|
|
```
|
|
1. Made code changes
|
|
2. Skipped running tests
|
|
3. Indicated completion: "Task completed successfully."
|
|
```
|
|
**^ THIS IS WRONG AND BREAKS THE PROJECT**
|
|
|
|
### ✅ **GOOD Example with Test Failures:**
|
|
```
|
|
1. Made code changes
|
|
2. Ran `bash test`
|
|
3. Some tests failed
|
|
4. Fixed the failing code
|
|
5. Ran `bash test` again
|
|
6. All tests passed
|
|
7. Indicated completion: "Task completed successfully. All tests pass."
|
|
```
|
|
|
|
### ❌ **BAD Example with Test Failures:**
|
|
```
|
|
1. Made code changes
|
|
2. Ran `bash test`
|
|
3. Some tests failed
|
|
4. Ignored failures and indicated completion anyway
|
|
```
|
|
**^ THIS IS WRONG AND BREAKS THE PROJECT**
|
|
|
|
---
|
|
|
|
## **HOW TO RUN `bash test`:**
|
|
|
|
### **Command:**
|
|
```bash
|
|
bash test
|
|
```
|
|
|
|
### **Expected Output (Success):**
|
|
```
|
|
Running C++ tests...
|
|
All C++ tests passed ✅
|
|
Running Python linting...
|
|
All Python checks passed ✅
|
|
Running compilation checks...
|
|
All compilation checks passed ✅
|
|
```
|
|
|
|
### **What to do if tests fail:**
|
|
1. **READ THE ERROR MESSAGES CAREFULLY**
|
|
2. **FIX THE CODE THAT'S CAUSING THE FAILURES**
|
|
3. **RUN `bash test` AGAIN**
|
|
4. **REPEAT UNTIL ALL TESTS PASS**
|
|
5. **ONLY THEN INDICATE COMPLETION**
|
|
|
|
---
|
|
|
|
## **MCP SERVER VALIDATION TOOL:**
|
|
|
|
### **How to use:**
|
|
```bash
|
|
# Start MCP server
|
|
uv run mcp_server.py
|
|
|
|
# Use the validate_completion tool
|
|
# This automatically runs `bash test` and validates results
|
|
```
|
|
|
|
### **Benefits:**
|
|
- Automatically runs `bash test`
|
|
- Provides clear pass/fail results
|
|
- Ensures you don't forget to run tests
|
|
- **RECOMMENDED FOR ALL BACKGROUND AGENTS**
|
|
|
|
---
|
|
|
|
## 🚨 **REMEMBER: THIS IS NOT OPTIONAL** 🚨
|
|
|
|
**EVERY BACKGROUND AGENT WORKING ON THIS PROJECT MUST:**
|
|
1. **RUN `bash test` BEFORE COMPLETION**
|
|
2. **ENSURE ALL TESTS PASS**
|
|
3. **FIX ANY FAILURES**
|
|
4. **ONLY THEN INDICATE COMPLETION**
|
|
|
|
**NO SHORTCUTS. NO EXCEPTIONS. ALWAYS TEST FIRST.**
|