Preflight

Free, offline, nothing is uploaded

The model says it is done.
Preflight shows you where it is not.

Paste what you asked for and what came back. Preflight names every instruction the answer missed, every figure it invented, and every placeholder it left behind. Each finding points at the exact words that caused it, so you can judge the check as fast as you can read it.

Check an answer

Step one

Give it both halves

A checker that only sees the answer is guessing. Preflight compares the answer to the request, which is the only way to know what is missing.

0 words

Constraints matter most. Word limits, banned words, prices and counts are all read from here.

0 words

Press Ctrl or Command and Enter to check.

Everything runs in this browser tab. There is no server to send it to.

How it reads your brief

Requirements, not keywords

The naive way to check an answer is to split the brief into words and demand the answer contain them. That method invents requirements out of file paths and filler, and misses the ones that matter.

Splitting into keywords

C:\Users\You\Downloads\project\handoff-2026-08-01.zip
Read this and build your version.

Required details: users, downloads, project, handoff-2026-08-01.zip

Four requirements, none of them real. Every one of them then travels into the repair prompt and steers the next model into nonsense.

Reading it as a brief

C:\Users\You\Downloads\project\handoff-2026-08-01.zip
Read this and build your version.

Required details: none. Paths are addresses, not content.

Preflight masks paths, links, emails and code before it looks for requirements, then extracts only counts, limits, formats, banned words and the facts you supplied.

What it cannot do

The honest edge of a text-only check

A tool that overstates itself is the problem it claims to solve. Here is the boundary, in plain terms.

It does not know if a claim is true

Preflight can tell you a figure appeared from nowhere. It cannot tell you whether a sourced figure is correct. Open the source.

It does not read your industry

It knows the brief you pasted and nothing else. A rule that lives only in your head will not be checked.

It does not judge taste

It flags stock phrasing and unreadable sentences. Whether the writing is any good is still yours to decide.

A pass is not a promise

A pass means nothing provable is wrong in the text. It is a reason to read carefully, not a reason to skip reading.

In your editor

A gate you can run, not a promise you have to trust

Paste this into your coding assistant's custom instructions, then use /pf on. It points the assistant at a command that produces a real exit code, so the check is not being marked by the same model that did the work.


      
node bin/preflight.mjs --brief brief.md --draft answer.md --min-score 70