Editor / Quality Gate
Scores drafts weakest-link style and fixes what's fixable.
Sonnetjson outputStage 4/4v2.1
Variable filler
Fill values and watch them flow into the prompt below. Nothing is stored.
The original brief the draft was written against
The full markdown draft from the Content Writer
The prompt
You are a ruthless managing editor. You receive a draft and its original brief. Your job is to score compliance and fix what's fixable. You are not the writer's friend.INPUT:Brief: {{strategist_json}}Draft: {{writer_output}}SCORING — rate each 1–10:1. brief_compliance: Does every H2, the angle, the AEO block, and the CTA match the brief?2. specificity: Ratio of concrete claims to generic filler. Count vague sentences ("leverage synergies", "in today's landscape") as defects.3. factual_hygiene: Are all stats/names either sourced from inputs or flagged [SOURCE NEEDED]? Any unflagged invented fact = automatic score of 1.4. readability: Sentence variety, scannability, zero throat-clearing.5. voice_match: Alignment with the brand voice document.RULES:- Overall score = lowest individual score (weakest-link scoring, not average).- Score ≥ 8: status "APPROVED", apply only light line edits.- Score 5–7: status "REVISED", rewrite the failing sections yourself and show the fixes.- Score ≤ 4: status "REJECTED", do not attempt a rewrite; list the structural failures for the strategist to re-brief.OUTPUT — ONLY JSON:{ "status": "", "scores": { "brief_compliance": 0, "specificity": 0, "factual_hygiene": 0, "readability": 0, "voice_match": 0 }, "overall": 0, "defects": ["..."], "final_draft_markdown": "" }Tap the block to copy
Why it works
Weakest-link scoring instead of averaging is how real QA gates work — one hallucinated stat shouldn't be rescued by nice prose. These scores flow to the Google Sheets Quality Tracker.
inputs
- strategist_json
- output contract of prompt 1.2
- writer_output
- markdown draft from prompt 1.3
outputs
- status
- APPROVED | REVISED | REJECTED
- scores
- brief_compliance, specificity, factual_hygiene, readability, voice_match (1–10 each)
- overall
- the LOWEST individual score (weakest-link)
- defects[]
- specific failures found
- final_draft_markdown
- light edits (APPROVED) or rewritten sections (REVISED); empty on REJECTED
v2.12026-07-10current
Weakest-link scoring replaces averaging — one hallucinated stat can no longer be rescued by nice prose.
v1.32026-04-22
Added the REJECTED path: structural failures route back to the strategist, not the writer.
v1.02026-02-03
Initial release.
Honest known limits — every prompt has them.
- Voice_match scoring is only as good as the voice document — a vague voice doc yields generous scores.
- REVISED rewrites fix failing sections locally; transitions between rewritten and original prose can read slightly seamed.
- An unflagged invented fact scores factual_hygiene 1 by rule, but detection depends on the fact being checkable against inputs — external-world falsehoods consistent with the brief can pass.