{
 "schema": "aiblocks-page/1",
 "id": "blog-post-publish-check-loop",
 "type": "agent",
 "name": "Article evidence and copy editor",
 "summary": "Check a draft's source support, improve wording and structure, then return the edited piece and unresolved claims after at most three rounds.",
 "headline": "Article evidence and copy editor",
 "subhead": "Share the full draft, sources and intended point, plus voice notes when available. It checks which claims the supplied material supports, edits wording, applies the relevant voice and answer-first passes, and formats the piece. You get the draft, claim list and round record. It preserves claims, numbers and quotes for the writer to resolve, stops after three rounds and publishes nothing.",
 "job": {
  "id": "write-and-tell-stories",
  "name": "Write and tell stories"
 },
 "level": "beginner",
 "thinking": "high",
 "tested": true,
 "updated": "2026-10-28",
 "first_published": "2026-10-21",
 "inputs": [
  {
   "type": "copy_draft",
   "required": true,
   "label": "Copy draft",
   "what": "a draft of any copy (ad, page, email or script) that a check or edit pass works on"
  },
  {
   "type": "brand_brain",
   "required": false,
   "label": "Brand brain",
   "what": "the brand's facts, voice, products, offers (with effective dates), claims register, personas and look"
  },
  {
   "type": "product_data",
   "required": false,
   "label": "Product data",
   "what": "one product's facts: price, variants, ingredients or materials, how it is used, photos by job"
  }
 ],
 "outputs": [
  {
   "type": "copy_draft",
   "required": true,
   "label": "Copy draft",
   "what": "a draft of any copy (ad, page, email or script) that a check or edit pass works on"
  },
  {
   "type": "audit_report",
   "required": true,
   "label": "Audit report",
   "what": "findings with evidence, severity, missing inputs and next actions"
  }
 ],
 "you_give": [
  "The finished draft with its title, links and sources",
  "Your brand brain, for the voice check and the claims register (advised)",
  "The product's real facts, if the piece names one (optional)",
  "What kind of piece it is and the one sentence it is trying to say (advised)"
 ],
 "you_get": [
  "The piece, edited and formatted, ready to paste",
  "Every claim without proof, with the line it sits in, for you to fix",
  "The one sentence the piece says, checked against yours",
  "The main cuts and voice fixes, each with its reason",
  "A quotable score per round and whether the loop passed",
  "The one thing your drafts keep needing, from the log"
 ],
 "use_when": [
  "You publish articles or guides and want the same checks on every one before it goes live.",
  "A piece once went out with a wrong number and you want to stop that happening again.",
  "Your guides bury the answer under setup and nobody quotes them.",
  "A draft is done and you want one last read for clutter and off-brand lines."
 ],
 "skip_when": [
  "You want the piece published or scheduled for you: this agent never does that, so use your own site or CMS.",
  "Your draft has no clear point yet: write the one sentence first with a person you trust, then run the check.",
  "Your piece is an opinion piece or a story: the answer-first step is skipped, so use the Long-form draft editor for the editing alone.",
  "You want a quick spelling and grammar pass only: use your word processor's checker, as this loop is too heavy for that."
 ],
 "output_sample": {
  "input": [
   "Your finished draft with its title, links and sources",
   "Your brand brain, for the voice check and claims (advised)",
   "The product's real facts, if the piece names one (optional)",
   "The kind of piece, and the one sentence it should say (advised)"
  ],
  "prerequisites": [
   "An AI that can read your draft and, for the log, keep files between pieces (Claude Code does this)",
   "Your brand brain from the Brand profile builder (advised, not required)"
  ],
  "output": [
   {
    "name": "One sentence",
    "contains": "What the piece says in one line, and whether it matches the sentence you gave."
   },
   {
    "name": "Claims for the writer",
    "contains": "Every claim without proof, the line it sits in, and what would prove it. Nothing is fixed for you."
   },
   {
    "name": "What changed",
    "contains": "The main cuts and voice fixes, each with its reason."
   },
   {
    "name": "Scores",
    "contains": "The quotable score for each round, and whether the loop passed or stopped at three."
   },
   {
    "name": "The piece",
    "contains": "The final title, summary and formatted body, ready to paste."
   },
   {
    "name": "Pattern",
    "contains": "The one thing your drafts keep needing, read from the log."
   },
   {
    "name": "Files and missing",
    "contains": "Each round's file and every MISSING line."
   }
  ]
 },
 "output_shape": "ONE SENTENCE\n  <what the piece says> | writer's: <same | different: ...>\n\nCLAIMS FOR THE WRITER (not fixed)\n  line <n>: \"<claim>\" | proof: <none found | partial> | MISSING: <what would prove it>\n\nWHAT CHANGED\n  <cut or fix> because <reason>\n\nSCORES\n  round 1: <n>/100 | round 2: <n>/100 | round 3: <n>/100 | <passed | stopped at 3, gaps: ...>\n\nTHE PIECE\n  <title>\n  <summary>\n  <formatted body>\n\nPATTERN\n  <the one thing this writer's drafts keep needing>\n\nFILES AND MISSING\n  <each round's file> | MISSING: <every line>",
 "how_to_use": [
  "Start a chat with the agent. In Claude Code, add it as a skill or save it in .claude/agents. In ChatGPT or Gemini, paste the agent text first.",
  "Paste the draft, or point the agent at the file. Attach your brand brain if you have one.",
  "Say what kind of piece it is and, in one line, what it should say.",
  "For the quotable score, put the edited piece on a preview or staging link. Your AI reads that link, so it needs web access. No paid service or API key is needed. If your AI cannot open the link, paste each passage instead.",
  "Read the claims list first and fix those yourself. Then read the piece.",
  "Publish it yourself. Run the agent again on the next draft."
 ],
 "checks": [
  "No claim, number or quote was changed.",
  "Every unsupported claim is listed with its line.",
  "The piece still says what you meant.",
  "The scores per round are shown.",
  "Nothing was published."
 ],
 "steps": [
  {
   "position": 1,
   "id": "claim-and-proof-matcher",
   "name": "Claim evidence checker",
   "summary": "Share your copy and evidence. See which claims are supported, which go too far and how to fix them.",
   "url": "https://useaiblocks.com/skills/claim-and-proof-matcher"
  },
  {
   "position": 2,
   "id": "plain-english-editor",
   "name": "Plain English editor",
   "summary": "Paste a draft and get it back in plain English, with every cut explained and a read-aloud check. Edit stiff emails, reports and pages.",
   "url": "https://useaiblocks.com/skills/plain-english-editor"
  },
  {
   "position": 3,
   "id": "draft-brand-voice-checker",
   "name": "Draft brand voice checker",
   "summary": "Share a draft and voice guide. Get ranked findings and before-and-after edits for top issues.",
   "url": "https://useaiblocks.com/skills/draft-brand-voice-checker"
  },
  {
   "position": 4,
   "id": "answer-first-page-rewriter",
   "name": "Answer-first page rewriter",
   "summary": "Share a blog, guide or FAQ page. Get sections rewritten answer first, with facts still needing a source.",
   "url": "https://useaiblocks.com/skills/answer-first-page-rewriter"
  },
  {
   "position": 5,
   "id": "ai-citation-scorer",
   "name": "AI citation scorer",
   "summary": "Share a page. Get passage scores for clear, self-contained answers, plus rewrites to try. Scores use the skill’s own guide.",
   "url": "https://useaiblocks.com/skills/ai-citation-scorer"
  },
  {
   "position": 6,
   "id": "article-formatter",
   "name": "Article formatter",
   "summary": "Share plain text or rough Markdown. Get clearer structure, title and summary fields, while keeping the body’s words apart from obvious typos.",
   "url": "https://useaiblocks.com/skills/article-formatter"
  }
 ],
 "next": [
  {
   "name": "Pre-publish content checker",
   "url": "https://useaiblocks.com/skills/pre-publish-content-checker",
   "why": "Tell it as a story"
  },
  {
   "name": "Long-form draft editor",
   "url": "https://useaiblocks.com/skills/long-form-draft-editor",
   "why": "Tell it as a story"
  },
  {
   "name": "Story structure reorderer",
   "url": "https://useaiblocks.com/skills/story-structure-reorderer",
   "why": "Tell it as a story"
  }
 ],
 "source": null,
 "credits": [],
 "files": [],
 "links": {
  "page": "https://useaiblocks.com/agents/blog-post-publish-check-loop",
  "markdown": "https://useaiblocks.com/agents/blog-post-publish-check-loop.md",
  "json": "https://useaiblocks.com/agents/blog-post-publish-check-loop.json",
  "instructions": "https://useaiblocks.com/skills/blog-post-publish-check-loop/SKILL.md",
  "api_item": "https://useaiblocks.com/api/v1/items/blog-post-publish-check-loop",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/blog-post-publish-check-loop",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
