Cursor

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.

Cursor 2.1

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
All Cursor prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY