heddle check --only restatement
restatement Check
How much of a post restates its sources, in code. The second half of the explainer gate, beside the helpful-content check. Ported from the source site's restatement script (10 October 2026), built because a draft explainer that retold one vendor announcement had passed every helpful floor and was discarded by a person the day before. Measured against the pages the writer read.
When Heddle is set up on your site, this check runs on every build alongside 25 others, so a page that fails it is fixed before a buyer or a search engine sees it.
Why it exists
How much of a post restates its sources, in code. The second half of the explainer gate, beside the helpful-content check. Ported from the source site's restatement script (10 October 2026), built because a draft explainer that retold one vendor announcement had passed every helpful floor and was discarded by a person the day before. Measured against the pages the writer read.
Copied share of the post's eight-word runs found verbatim in a source paraphrased share of the post's sentences whose content words are at least 60% one source sentence's (a reworded sentence) lead the same, counting only the single source most sentences come from (a retelling of one announcement) numbers of the post's figures found in the sources, the share found in only one of them (reported, never gated)
Code blocks are left out on both sides. A documented request shown as an example is fair.
Calibration (source site, 10 October 2026, thirteen explainers a person approved and the one discarded). None of these measures separated the discarded draft from the approved ones. It sat mid-range on every one (copied 0.015, paraphrased 0.17, lead 0.08; approved up to 0.058, 0.31 and 0.28). Its fault was adding nothing, not copying.
So each limit is the highest any approved explainer reached plus half again, and the check catches a post that copies or rewords its sources more than any approved explainer did. A post that retells one announcement in fresh words still passes; that stays a person's call. An install that calibrates on its own approved posts sets site.json restatement.limits.
Two ways in. The writer agent measures every draft against the pages it read before the draft can be proposed or published (lib/agents/writer/run.mjs). As a check it is opt-in (--only restatement, or site.json checks.include), because it fetches every page a post lists under "## Sources"; fetched pages are cached in .heddle-cache/restatement so a run reads each once a day.
From lib/checks/restatement.mjs in the Heddle repository at ddb1b16.
Questions
What does the restatement check look for?
Network: does a post copy or reword the pages it lists as sources more than any approved explainer did?
Does the restatement check need an AI model?
No. It reads the built pages or the sources directly, so it runs offline and costs nothing per run.
How do I run it?
Build the site, then run node bin/heddle.mjs check <site> --only restatement from the Heddle repository.
Work with us
Let the agents bring you the leads.
Tell us about your business and who buys from you. On a short call we'll show you the searches your buyers make where you don't show up yet, and what the agents would do about them in their first month.
On the call, for your site
- The searches your buyers makeMeasured, with how many people make each one
- Where you show up, and where you don'tOn Google and in ChatGPT's answers
- The agents' first monthThe pages, fixes and links they would start with