Your eval templates went obsolete in July 2025. Nothing told you.
Navy Eval Forge is a compliance gate for evaluation prose: EVAL, CHIEFEVAL, and FITREP. It reads the current instruction as machine-readable rules and tells you, before anyone signs anything, whether the block you wrote can actually be submitted. The CHIEFEVAL is the change that caught everyone. It is not the only rule you can break.
The gate is free. Paste in an eval you already wrote and find out.
No account. Nothing leaves your browser. Brag sheets are CUI (PRVCY), and this was built that way on purpose.
It is 2100. You have six left.
The laptop is on the kitchen table and last year's evals are open in the other window, because last year's evals worked. You are not writing so much as reshaping: swap the name, swap the numbers, keep the shape that got signed.
Everyone does this. It is the only rational move when you have eight to twenty reports due on top of an actual job, and the alternative is a 174-page instruction you have never read end to end because nobody has three days in eval season.
The shape is the problem.
Three changes broke most of what is written about eval writing.
The governing authority is BUPERSINST 1610.10H CH-2, dated 26 May 2026, signed by M.W. Baze, Deputy Chief of Naval Personnel. Three things in it also break most of what a language model will confidently tell you, because the model learned the old form.
One. The CHIEFEVAL was redesigned in July 2025.
Reporting senior comments in block 40 went from 18 lines to 6. Seven new traits: Technical Mastery, Institutional Expertise, Professionalism, Integrity, Accountability, Deckplate Leadership, Team Effectiveness. Three bullets per trait block, six lines per block, two lines per bullet, standalone statements only. Sentences do not continue across fields. Block 42 carries a mandatory hard breakout for every member as a structured field, which means the "#1 OF 23" you were taught to write into the prose now has a box of its own.
Two. Periodic reports were eliminated for E9, CWO5, and LDO O6.
NAVADMIN 132/26, effective immediately. Detachment reports are still mandatory. If you scaffold a periodic for an E9, you are writing a report that should not exist.
Three. eNavFit is gone.
NAVFIT98A is the system of record.
Every phrase library still teaching a 16-to-18 line comments block for a chief is teaching a form that was retired. Their wording is often still good. The structure is not.
It can read well, sound like you, and still be dead on arrival.
Over budget
Block 43 on an EVAL holds 18 lines. For an E5 or E6 the last one is not yours: Ch. 13-4g(5) reserves it for the reporting senior's post summary group RSCA score. You have 17. Character limits move with pitch, and 10-pitch and 12-pitch are both accepted, so the same paragraph fits at one size and does not at the other. Nothing in your word processor knows this.
Prohibited matter
Chapter 13-5 lists what may not appear in a report: previous failure of selection, unconcluded judicial or nonjudicial proceedings, non-punitive letters of caution, investigations before they conclude, marital status and family activities, and medical matter including pregnancy.
That last one is where good intentions go wrong. You are trying to explain why a strong Sailor had a thin quarter. You write one clause about a surgery. You have just put prohibited matter into a federal personnel record, and it reads as generous right up until it does not.
Quota bust
Early Promote is capped at 20 percent of the summary group, rounded up. Combined EP and MP is capped by paygrade band: 60 percent at E5 and E6, 50 percent at E7 through E9, 40 percent at O5 and O6. For groups of 30 or fewer the instruction gives you Table 1-2 directly. Above 30 you compute it, and you take the difference of the rounded numbers, not the rounded difference. Unused EP converts to MP one for one. Three people have told you the rule and you have three different answers.
None of the three is visible to a proofreader who is not specifically hunting for it. All three are arithmetic.
You cannot proofread your way out of the instruction.
Reading your own draft harder does not find a quota violation, because a quota violation is not in the draft. It is in the relationship between the draft and eleven other drafts. Reading harder does not find a character overrun, because you cannot count 1,366 characters excluding spaces by eye. Reading harder does not reliably find prohibited matter, because prohibited matter arrives disguised as compassion.
These are not judgment calls. They are checks. A check is a program.
So the interesting question stopped being what should I write and became can this be submitted, and can something other than my own opinion tell me.
Two Sailors live in this repository. Neither is real.
They exist so the tools can be watched failing, because a check that has never been observed to fire is not known to work. The first one has two candidate drafts. One is clean. One is not.
── candidate 01 ── EVAL ── PASS [E1-E3 · Promotable] STD-WARN [LINE_FILL] Block 43 is 56% used against a 18-line budget; Promotable at E1-E3 expects 70%. Under-filling because the draft ran out of ideas while the record still holds material is a defect. Deliberate white space with nothing left to say is not: resolve which. ── candidate 02 ── EVAL ── FAIL [E1-E3 · Promotable] ERROR [PROHIBITED_COMMENT] Prohibited comment (Ch. 13-5) in comments: Medical reports and summaries; physical or psychological issues including pregnancy. Matched "surgery" STD-WARN [MIN_QUANTIFIED] Promotable at E1-E3 expects at least 1 quantified statement(s); 0 of 5 carry a number. STD-WARN [LINE_FILL] Block 43 is 39% used against a 18-line budget; Promotable at E1-E3 expects 70%. 1/2 candidates submittable 1/2 also meet the standard and may advance to stage 07
node tools/gate.mjs runs/smoke-e2 · actual output, unedited, including the warnings that make the passing draft look worse
One word killed candidate 02. Not a bad word. A caring one.
Fixture two is harder, because some failures are not visible inside a single draft.
── numeric traceability ── ERROR [UNTRACEABLE_NUMBER] candidate 01: 200 appears in the draft but nowhere in record-final.md …upervised 14-Sailor work center through over 200 corrective maintenance actions with… Fill it from the record, mark it [NEEDS NUMBER: …], rewrite without it, or declare it. Never round, never supply a typical figure. ── cross-run sameness ── ERROR [BULLET_REUSED] 100% the same statement as runs/smoke-e2 Ch. 13-2a(7): boards may discount narratives assembled from stock comments used for everyone in the command. ── paste hygiene ── ERROR [PASTE_NOT_PLAIN] navfit98a-paste.txt contains an em dash (not a naval-eval construction, and it renders unpredictably) 8 error(s), 0 warning(s)
node tools/trace.mjs runs/smoke-trace · five check families, eight findings, one command
The record said 187. The draft said "over 200." Nobody lied. Somebody rounded, the way everyone rounds, and the number in a federal personnel record stopped being true.
The gate is the product, so the gate is free.
Paste a block you have already written. Pick the paygrade and the promotion recommendation you intend. The page will tell you what the instruction says about it.
Runs in this tab. No network request is made, and there is nothing to log.
Nothing you type is transmitted. The validator runs in your browser as JavaScript. There is no server call, no logging, and no account, because brag sheets are CUI (PRVCY) and the safe way to handle CUI is not to receive it.
This is the same validate.mjs that runs on the command line, compiled to run in a page. It is
checked against the command line version on every build: identical output, or the build fails.
The page also ships a Content-Security-Policy of connect-src 'none', so the
browser itself forbids this page from making a network request. You do not have to take our
word for it, and neither does your browser.
Ten families. All mechanical. All citable.
- Line budgets per form. EVAL block 43 and FITREP block 41 at 18 lines. CHIEFEVAL block 40 at 6, with 6 per trait block and 2 per bullet.
- Character budgets at both accepted pitches, counted excluding spaces the way the form counts them.
- The reserved last line on E5 and E6 evals for the RSCA score, per Ch. 13-4g(5).
- Trait grade and recommendation interlocks. Any 1.0 forbids Promotable or higher. Any 2.0 forbids Must Promote and Early Promote. Climate-EO below 3.0 forbids Promotable.
- Forced distribution. Table 1-2 below 31, the formula above it, EP to MP conversion, and the two-person special case.
- Prohibited comments, the full Chapter 13-5 list, matched against the prose.
- Required substantiation. Adverse reports, NJP shape, retention language.
- CHIEFEVAL structure. Bullet counts, standalone statements, no continuation across fields.
- The 2026 occasion rules. A periodic for an E9, CWO5, or LDO O6 is refused with an explanation and an offer of the report that is still valid.
- Field limits, down to the 20-character career recommendation.
Four more checks live above the single draft, in a second tool: a number in the prose that
appears nowhere in the locked record, a [NEEDS] marker deleted between stages
instead of resolved, three "independent" drafts that turn out to be one draft reworded, and a
bullet reused across two Sailors in the same command.
And one very small one. The paste file may not contain an em dash. It is the least important check in the system and it is the one that tells you the most about how the rest were built.
Read this before you decide it is a machine that writes evals for you.
It is not. The refusals are the design.
It never invents a fact about a Sailor.
Every number, date, award, qualification, unit, watch station, headcount, and ranking traces
to your input or to something you confirmed. If a figure is missing it writes
[NEEDS NUMBER: …] and carries that marker forward until you resolve it. The
marker cannot be silently deleted and it cannot be quietly filled with a plausible value. A
fabricated metric in a report is not a style problem. It is a false official statement in
someone's permanent record.
The marks and the recommendation are yours.
Trait grades and the promotion tier are inputs. The system writes prose consistent with them. It will never infer a recommendation from the prose and it will never quietly inflate the writing to cover a thin record. If the evidence does not support the tier you asked for, it says so plainly and stops, and a human resolves it.
It does not sign anything.
The reporting senior owns the marks, the recommendation, and the signature. Navy Eval Forge writes.
The gate is one half. The other half runs on a brag sheet.
Stage 09 is the one to notice. It hands you a checklist of every figure in the finished report and where it came from, because the person signing is accountable for the contents and should not have to take a program's word for it.
Two stops are hard stops. The interview will not proceed on guesses, and nothing reaches paste without a human looking at it.
This is the part that will tell you whether to trust the rest.
The gate reports on two separate channels.
ERROR and WARN come from the instruction. They mean NAVFIT98A rejects this, or the record carries prohibited matter. Neither is an opinion, and there is no arguing with them.
STD-ERR and STD-WARN come from this system's own bar. Floors and countable thresholds set by paygrade band and promotion tier, so a Promotable E5 is not asked to clear an Early Promote E8's bar. They mean: perfectly submittable, and this system still will not advance it.
The two are never combined into one score, and the pass flag reflects only the first. A house preference must never be able to wear the instruction's authority. It would be trivially easy to merge them and produce a cleaner-looking product.
The standard channel is where the interesting catches live. A Promotable carrying "MY #1 OF 14." A Progressing carrying a promotion imperative. An Early Promote with no comparison group. A Sailor ranked 9 of 23 marked Early Promote when that group holds five.
There are no testimonials on this page because there are no customers.
Not few. None.
No real Sailor has ever been run through this pipeline. Both fixtures are synthetic, built to make the tools visibly fail rather than to flatter them.
The line and character figures carry a known open item. They trace to the NAVFIT98A v30 user guide from 2012, corroborated by a USFF quick reference. Current software is v33. The repository logs this at medium severity with the action "verify against a v33 constraint table or install before shipping." It is not resolved. Anyone telling you their numbers are v33-verified should be asked how they know.
The house standard is a first calibration, not a measurement. Those floors are internally consistent and defensible from the tier language in the instruction. No real report has been scored against them. They will move.
One inconsistency belongs to the instruction, not to us. The adverse-report definition references a "Character" trait below 3.0 for E7 through E9, but the redesigned CHIEFEVAL names Integrity and Professionalism and has no trait called Character. Navy Eval Forge flags this to you rather than silently picking one.
79 automated tests pass. That is a statement about the gate, not about the writing.
Start with the free one.
The validator and the machine-readable rule set. Runs offline. No account, no network, no model. Use it on evals you wrote yourself, forever.
Run it nowEverything above, plus the ten-stage pipeline, the rules factory, the traceability and voice tools, and the 112-source research library with credibility manifests and the conflict inventory. Requires Claude Code.
Not for sale yetThirty days, no questions. Though the honest version is that the free tier does the work a refund policy usually does: you can find out whether the thing works before any money is involved, on your own machine, using your own evals.
Neither paid tier can be bought today, and the prices above are placeholders that have not been approved. The gate on this page is real and works right now. The open items are here.
- "AI writes garbage evals."
- Yes. Fluent, confident, structurally wrong garbage, and it will hand you a 22-line CHIEFEVAL block without hesitating. That is the reason this exists. Generation can be sampled and filtered. Compliance cannot. The program is the part that matters, and the writing is the part that gets checked.
- "I am not putting a Sailor's brag sheet into some website."
- Correct, and you should not. It runs on your machine. The gate on this page runs in your browser. Nothing is transmitted and there is nothing to log.
- "I do not have time to learn a tool in eval season."
- Then do not. Paste one block into the gate above and read what comes back. That is the whole first use, and it costs nothing and takes a minute.
- "How do I know this is current?"
- BUPERSINST 1610.10H CH-2, 26 May 2026, signed by M.W. Baze. Verified 174-page local copy. Every rule cites its paragraph. The known gaps are published above with severities, which is not what a product does when it is hiding something.
- "Is this cheating?"
- It does not set the marks. It does not set the recommendation. It does not invent a fact. It does not sign. What it does is make sure the report you already decided to write can legally be submitted, and that the numbers in it are the numbers you actually gave it. If that is cheating, so is a spell checker.
- "$249 of my own money."
- Then start with the free one. If the gate never finds anything in your writing, you do not need the rest of it, and you should not buy it.
Compliance is a program, not an opinion.
Every other way to write an eval produces prose that looks finished and that nothing has checked. Your template folder was built against a form that changed. The phrase banks were written against a superseded instruction. A model will give you something fluent and will not know that block 40 holds six lines now. And your own second read cannot count characters or compare your Early Promote count against a quota, because those facts are not in the draft you are reading.
You are going to write these reports either way. The only question is whether anything checks them before your reporting senior's name goes on them.
Go paste something in. The gate is free.
One more, and this is the one to go check your drafts for tonight.
When you write a Significant Problems report on a chief or an officer, silence on retention is a recommendation against retention.
Not a neutral omission. A recommendation. If you write that report on a Sailor who is struggling, and you soften it, and you leave retention unmentioned because you did not want to pile on, you have recommended separating them. You did not intend it. The board reads the omission as the message.
Navy Eval Forge warns on this. Your word processor does not.