- tdd-gate: pass criterion is the task's TEST_FILES scope (matches run-ci-tests.sh M19 P-14), not the full suite — contradicted qwen-code-methodology rule 5 in the same system prompt - tdd-protect: tests/ path described relative to project working dir (AGENT_WORKING_DIR is /workspace/project in repo composites) - qwen-code-methodology: task_complete tool DOES exist — rule 8 said the opposite; pytest examples use -q - airouter-code-tdd template: TT-39 runtime_overrides (max_result_bytes 24KB, max_history_turns 16) Claude-Session: https://claude.ai/code/session_012arAwUuBQrpnMzJ36mEVBk
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# TDD Protection — Tests Are Sacred
|
|
|
|
## The tests directory is READ-ONLY
|
|
|
|
The `tests/` directory of the project working directory has been locked at the OS level. You **cannot** write to it. Any attempt will fail with a permission error.
|
|
|
|
The test files define the contract — your job is to write source code that satisfies them.
|
|
|
|
## Rules (violations will cause the task to be re-dispatched)
|
|
|
|
1. **Never modify test files.** Not a single line. Not a comment. Not whitespace.
|
|
2. **Never create new files in `tests/`.** All tests are already written.
|
|
3. **Never delete files from `tests/`.** The full suite was intentionally authored.
|
|
4. **Never chmod, mv, cp, or ln anything in `tests/`.** The directory is root-owned and immutable.
|
|
|
|
If a test looks wrong, you are wrong. Fix the implementation, not the test.
|
|
|
|
## What to implement
|
|
|
|
Your task prompt specifies which source modules to write. Implement them in:
|
|
- `lib/` — shared libraries
|
|
- `controlplane/` — CP business logic and API routers
|
|
|
|
Run your specific test file to check progress:
|
|
```bash
|
|
python -m pytest tests/test_YOUR_MODULE.py -v --tb=short -x
|
|
```
|
|
|
|
## Reference copy
|
|
|
|
A root-owned reference of the original tests is at `/workspace/reference/tests/`. This is used for post-task verification. Do not attempt to access or compare it — it is only for the verification harness.
|