Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Environment
- OS: Windows 10/11 (win32 10.0.26200)
- Cursor: Agent mode, Auto disabled
- Model: Composer 2.5 Fast (manual selection)
- Project: private Python repo, pytest + mypy strict
- Audit methodology: documented in repo rule
.cursor/rules/elnath-stage-audit.mdc
Summary
I have used Cursor Agent with Composer as my primary pre-merge auditor for some time and was very happy with the results. During a multi-day audit session in July 2026, the Agent repeatedly issued PASS / merge-ready verdicts when only the behavioral pytest suite was green, while adversarial edge suites (run separately by another tool on the same SHAs) found real blockers.
The gap was not “the model can’t code” — it was audit discipline: skipping edge regressions, downgrading failed edge tests, and stopping as soon as the official suite turned green.
When I enforced the full audit procedure (fetch → ls-tree → behavioral + all edge rounds → fresh clone), results aligned with the external auditor. This suggests a workflow / agent-behavior issue as much as raw model capability — possibly amplified by Composer 2.5 / Fast.
Expected audit procedure (explicit in session + repo rule)
git fetch→ confirm SHAgit ls-tree— run tests only from committed files- Behavioral pytest
- All edge / reaudit / premerge rounds
mypy --strict- Fresh git clone @ same SHA → repeat
- Verdict only if both formal and adversarial layers pass
Rule: Behavioral green without edge/reaudit = verdict withheld, never PASS.
Observed failure pattern
| SHA / stage | Agent verdict | Behavioral | Edge / adversarial | External auditor |
|---|---|---|---|---|
e6a86f4 (E2) |
PASS (incorrect) | 93/93 | round3 not run | 6 failed round3 |
f6a1868 (E2) |
PASS (incorrect) | 98/98 | round4 not run | 4 failed round4 |
9127270 (E2) |
PASS (incorrect) | 98/98 + fresh clone | round5 not run | 2 blockers round5 |
4618396 (E2) |
PASS (incorrect) | 104/104 | round6 not run; failure misclassified | 2 blockers round6 |
a3146ce (E3) |
PASS (incorrect) | 102/102 | round6 edge not run | DO NOT MERGE round6 |
Example of misclassification: At 4618396, edge test test_out_of_scope_direct_match_reenters_only_as_flagged_graph_context failed (KeyError: record missing from hits). Agent classified it as a non-blocking documentation issue and issued PASS. External audit classified the same scenario as blocker B1 (graph context lost when record was also a direct candidate). Fix landed in later commits.
Illustrative blockers found by edge tests after behavioral 98–104/104 was green:
- time_scope + graph seeding: out-of-scope direct hit filtered before graph closure
- coverage.dec_count:
out_of_time_scope_contextDEC still counted - Graph seed exclusion: record both direct candidate (out of scope) and graph neighbor → vanished from report
coverage.limited=truestill allowedno_decisionverdict- Self-relation in graph.expand: seed became spurious graph hit
Behavioral suite on branch did not include these until after edge findings were ported.
What worked when procedure was followed
- Behavioral + all local edge files matching
test_e*_premerge_round*.py - Fresh clone verification @ target SHA
- Explicit instruction: “do not PASS until round N is green”
- Final E2 merge recommendation only after rounds 3–9 regressed green (109 behavioral, 49 edge, mypy clean)
Hypotheses for investigation
- Agent completion bias: stopping when
pytest tests/behavioralpasses - Untracked test blind spot:
git ls-treecorrectly excludes localtests/edge/, but Agent reported “not on branch” without withholding PASS - Model variant: user was happy with “Composer” before; now sees Composer 2.5 Fast — unclear if Fast vs Standard explains regression (related thread)
- No built-in adversarial audit mode: no first-class step to run all
tests/edge/**or refuse PASS when edge exists but wasn’t executed - User rules ignored: repo rule stated “behavioral green ≠ PASS” — violated multiple times in one session
Constructive suggestions
- Optional “pre-merge audit” Agent preset: user-supplied command list must all pass before allowing PASS summary
- Warn when project contains
tests/edge/or*premerge*but Agent verdict is PASS without running them - Document the Fast toggle more visibly
- System reminder when user rules say “never PASS on behavioral alone” in long audit sessions
Minimal reproduction
- Repo with green
tests/behavioral/**on a feature branch - Add local
tests/edge/test_*_premerge_roundN.pythat fails on current HEAD (not committed) - Ask Agent: “Audit before merge, full procedure, PASS/FAIL”
- Observe whether Agent runs only behavioral and issues PASS
- Run edge locally → failures
- Repeat with: “run tests/edge/test__premerge_round.py or withhold verdict”
Request IDs: Not collected during this session. I can reproduce and supply IDs from the message ⋮ menu if support needs traces.
Intent: Constructive feedback to help identify a reproducible quality gap — not a billing dispute. I still want Composer to work well for audits; sharing this in case it helps tune audit-style Agent workflows.
Steps to Reproduce
N/A
Operating System
Windows 10/11
Version Information
OS: Windows 10/11 (win32 10.0.26200)
Cursor: Agent mode, Auto disabled
Model: Composer 2.5 Fast (manual selection)
Project: private Python repo, pytest + mypy strict
Audit methodology: documented in repo rule .cursor/rules/elnath-stage-audit.mdc
For AI issues: which model did you use?
Composer 2.5 Fast
For AI issues: add Request ID with privacy disabled
5f9957cf-6bcd-429b-909c-dfe9f262a1d0
Additional Information
Does this stop you from using Cursor
Yes - Cursor is unusable