Tasks: the cursor adapter's model flag
Phase 3 of 3. Each task names the requirement it serves and the testing-plan row that proves it. TDD: the red root (T1) is written and run before the fix.
[x] 1. Red root — assert the argv the CLI actually parses. Add
test_cursor_oneshot_argv_uses_the_long_model_flagtocli/tests/test_critics.pyand correcttest_a_model_resolves_through_the_adapters_flagincli/tests/test_modelchoice.py. Run them and capture the failure verbatim asevidence/red.md. Requirements: R1.1, R1.4 — Test: T1[x] 2. Fix the flag.
CursorAgentAdapter.model_flag = "--model"incli/the_loop/harness/cursor_agent.py, with a comment recording thatcursor-agent --helplists no short form and what-mcost, so the next reader does not re-derive it. Requirements: R1.1, R1.2, R1.3 — Test: T1, T2[x] 3. Correct the assertion that should have caught it.
test_builtin_harness_derives_argv_from_the_adapterincli/tests/test_critics.pypinned the critic's end-to-end argv to-m. Correct it — it is the one test that exercised the whole seam and agreed with the bug. Requirements: R1.2 — Test: T2[x] 4. Prove the verdict cache needs no migration. Add
test_a_verdict_probed_with_the_old_cursor_flag_no_longer_withholdstocli/tests/test_modelprobe.py: arefusedcached against("-m", name)does not withhold once the resolved args are("--model", name). Requirements: design D3 — Test: T3[x] 5. Write the rule down where current behaviour lives.
docs/capabilities/review-loop.md: amodel_flagis a spelling the harness's own--helplists (the long form where both exist), the value for each shipped adapter, and a History row for issue-360. Requirements: R2.1, R2.2 — Test: T13[x] 6. Verify and record. Run the matrix's applicable rows and
make check; record the outcome intesting-plan.md§Verification results andevidence/verification.md; complete the execution log, the security-review gate and the PR briefing. Requirements: R1.4 — Test: T1, T2, T3, T10, T13