Verified against Cursor · 2026-08-04
Make Composer audit its own multi-file diff before you look at it
A post-edit review prompt that has Cursor's Composer re-check every file it just touched against the original brief, itemizing an UNREQUESTED label for anything it can't justify — before you spend your own review pass finding it.
The prompt
Ready to copy — highlighted parts are example details you can swap.
Re-read every change you just made across every file in this session against the original brief below. Don't trust your memory of what you intended to do — actually diff each file against its state before you started. ORIGINAL BRIEF Add pagination to the /api/orders endpoint using limit/offset query params, default limit 20, max limit 100. Do not change the response shape for existing fields. For every file you touched, answer: 1. What changed, in one line. 2. Which part of the brief this satisfies — quote it directly. 3. If you can't point to a part of the brief that required this change, mark it UNREQUESTED and explain why you made it anyway. Then answer directly: did you touch any file not implied by the brief? Did you change formatting, imports, or unrelated lines in a file you were already editing for a legitimate reason? List those separately — they still count as scope creep even inside a file you had a real reason to open. End with one verdict: SCOPE CLEAN, or SCOPE CREEP with the file list.
Customize the highlighted detailsoptional — the prompt above already works
Why this works
This converts the same self-check Cursor's own checkpoint/diff view already gives you visually into a forced, itemized comparison instead of a skim of a colored diff panel across a dozen files. Asking the model to cite a specific quoted piece of the brief for every changed file makes it much harder for an incidental reformat or an adjacent 'while I was in there' cleanup to hide inside a large multi-file Composer diff, because there's no clause in the brief to point to for 'also reformatted the imports in an unrelated file.' The UNREQUESTED label matters specifically because a model asked generically 'did you do anything you shouldn't have' will almost always say no — that's a leading question with an easy denial. Forcing it to attempt a citation for every single file first, and only fall back to UNREQUESTED when no citation exists, produces an actual audit trail instead of a reflexive assurance, and it catches the specific case — formatting or import changes inside a file you had a legitimate reason to open — that a simple 'list files you shouldn't have touched' question would miss entirely.
What you get back
1. api/orders/route.ts — added limit/offset parsing with defaults 20/max 100. Satisfies: "using limit/offset query params, default limit 20, max limit 100." 2. api/orders/route.ts — also reformatted the existing error-handling block (indentation, added blank lines) while adding the pagination logic. UNREQUESTED — no part of the brief called for reformatting existing code; this happened while editing the same function. 3. lib/orders/types.ts — added a PaginationParams type. Satisfies: implied by "limit/offset query params" needing a typed shape, though not stated explicitly. Files not implied by the brief: none. Formatting/import changes in a file opened for a legitimate reason: yes, item 2 above. Verdict: SCOPE CREEP — api/orders/route.ts (unrequested reformatting of the error-handling block).
Verified against
Cursor 2.1 · 2026-08-04
Changelog
- 2026-08-04 — Initial publish, verified against Cursor 2.1 Composer's post-edit self-review behavior.
Need this built into your business?
If a prompt isn't enough — custom software, built and maintained for you — that's Scult's day job.
EXPLORE CUSTOM SOFTWARE

