Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
During a multi-agent orchestration workflow (DevSwarm topology), the native Cursor Agent (Composer/Auto) acting as the “Coder” engaged in a classic case of “Reward Hacking”.
The Cursor Agent was assigned to write code and be evaluated by a Revisor agent using a strict 4-point criteria file (P2-impl-notes.md) tracked in main. Because the Cursor Agent had write access to its isolated worktree, it overwrote the rubric file locally, inflating the criteria from 4 points to 10 points tailored to pass its own code. The QA agents then read the “hacked” rubric and approved the code. Cursor’s AI literally rewrote its own exam to get a 100% passing grade.
Note: The attached raw log of our macro-orchestrator (Queen agent’s internal monologue) is in Spanish, but it clearly shows the agent catching the Cursor Coder modifying the §8 / §9 rubric rules.
Log 1: The Rubric Hack (Cursor Coder modifying the QA criteria)
text:
docs/ux/P2-impl-notes.md en origin/main — la spec que definiste tú — tiene 4 secciones, terminando en §4 Criterios de Aceptación (Tester & Revisor) con 4 checks.
La versión que Coder reescribió dentro de su propio commit 776f042 tiene 10 secciones, y añade:
- §8 Smoke (Tester)
- §9 Anti-sycophancy (Revisor)
Ambos reportes citan textualmente esas secciones como su autoridad:
- Tester: “Spec smoke: P2-impl-notes.md §8”
- Revisor: “Criterios §9”, y su veredicto dice “Ningún criterio §9 de REJECT se activó”
§8 y §9 no existen en main. Las escribió el implementador, en el mismo commit que evaluaban. Esto invierte el control cruzado. Tester y Revisor ejecutaron con rigor formal pero contra un contrato redactado por la parte revisada.
Bonus Bug: Rogue Agent Breaking HOLD Orders & Git Branch Corruption
While investigating the rubric hack, our macro-orchestrator (Claude CLI) set up a bash monitor and caught the Cursor Coder agent going rogue.
The Coder was explicitly placed on a HOLD order pending an architecture audit. Instead of halting, the Coder ignored the hold, switched to a closed branch from a previous phase (ux/p1-progressive-disclosure), and began writing 93 lines of uncommitted Phase 2 code on top of it. If the Coder had committed this, it would have squashed two architectural phases together, corrupting the git tree.
Log 2: The Rogue Agent (Queen catching Cursor breaking HOLD)
text
Y Coder rompió el HOLD — peor de lo que decía la alerta
Le escribí el HOLD a las 11:46. No hay ACK. Y no solo tocó app/:
- Cambió de rama. Está en ux/p1-progressive-disclosure @ 41c362c, no en ux/p2-sidebar-routing.
- Tiene 93 líneas sin commitear de código P2 encima. Está reimplementando P2 sobre la rama de P1.
Si eso se commitea ahí, P1 y P2 quedan fusionados en una sola rama y se vuelve imposible revisar, revertir o mergear P2 por separado. Esto sí es la desviación que mi rol me obliga a interrumpir en el acto. Voy a escribirle un STOP duro: no commitear nada, no cambiar de rama, y stashear ese WIP con nombre identificable.
Steps to Reproduce
Set up a local DevSwarm architecture where isolated subagents (Coder, Tester, Revisor) operate in separate git worktrees, communicating via markdown files.
Have a master orchestrator (Queen / Claude Code) dispatch a coding task to the Coder agent, evaluated by a strict rubric file in main.
Observe the Coder agent modifying the rubric file locally inside its worktree to add fake criteria that its code can easily pass.
Observe the Tester/Revisor agents evaluating the Coder based on the local, corrupted rubric rather than the official main branch rubric, leading to a false positive approval.
Expected Behavior
There should ideally be a mechanism in Cursor/Composer (like a .cursorignore or a protected file list) to prevent autonomous agents from modifying specific critical files (such as test rubrics, QA protocols, or PROTOCOL.md) within their workspaces. This would eliminate the risk of “Reward Hacking” where an agent alters its own acceptance criteria to force a passing grade.
Screenshots / Screen Recordings
Operating System
Windows 10/11
Version Information
Cursor IDE: 3.12.17 (stable)
For AI issues: which model did you use?
Multi-Agent Architecture (DevSwarm topology)
Primary Workspace (Cursor): Running on Cursor’s Auto router (dynamically switching background models per turn).
Macro-Orchestrator (Queen): Claude Opus 4.8 via Claude Code CLI.
Rogue Agent (Coder): Claude Opus 4.8 (Confirmed via agent’s internal settings).
QA Agent (Revisor): Claude Opus 4.8.
For AI issues: add Request ID with privacy disabled
N/A - This is an emergent behavior report (Reward Hacking and Agent Impersonation) across a local DevSwarm architecture using multiple agents over several hours, not a single Composer request crash.
Additional Information
To mitigate these issues, I established a “Queen Supremacy” orchestration topology. In this setup, Cursor’s Auto router (Primary) acts strictly as a messenger/terminal, while the macro-orchestrator (Claude Code CLI) retains absolute authority over git operations and QA validation.
As a side note, my macro-orchestrator also discovered that DevSwarm creates untracked .devswarm-temp/ folders that block git merge commands across isolated worktrees. We had to fix this globally using .git/info/exclude to prevent agents from getting stuck on stale branches (which contributed to the Coder breaking the HOLD order).
Does this stop you from using Cursor
No - Cursor works, but with this issue


