The gates
Every check is a mistake that shipped once.
Heddle runs 16 checks on a site's built pages and Markdown sources. 12 of them read the files directly and run offline in seconds. The other 4 ask a model questions a rule can't answer, such as whether a paragraph says anything. Each check exists because the failure it catches shipped once on a real site, and a page that fails doesn't go out.
- agent-readyofflineAgent-ready. llms.txt, Markdown twins, answer-engine crawlers allowed, JSON-LD @ids, an answer under the H1, content without JS.
- answersmodelAnswers. do openings, sections and FAQ answers answer their question outright?
- apologyofflineApology. First-person disclaimers of the writer's own experience.
- buyermodelBuyer. would this page's reader understand it and want to talk?
- claimsofflineClaims. Wording company.json forbids: tiers not held, retired names, unearned designations.
- densityofflineDensity. No paragraph over 80 words outside articles, and no 80-word block before the first heading.
- groundedmodelGrounded. does each paragraph stay within the pages it links to?
- humanizerofflineHumanizer. Vocabulary, punctuation and rhythm that read as machine-written.
- known-errorsofflineKnown errors. Mistakes known-errors.json says have shipped before, plus a byline written in the third person.
- metaofflineMeta. Titles, descriptions, canonicals, share cards, H1s, breadcrumbs and crawl paths on the built pages.
- orphansofflineOrphans. Pages with no inbound link from another page, nav coverage, and family links to nowhere.
- qualitymodelQuality. is each paragraph apologetic, generic, hype, defensive or machine-written?
- search-surfaceofflineSearch surface. Titles, H1s and canonicals against the recorded surface; one page per local search.
- uniquenessofflineUniqueness. Share of each family page's 8+ word sentences also on a sibling, against the family's ceiling.
- urlsofflineURLs. Legacy URLs resolve; no redirect hides a built page; internal links reach a page.
- voiceofflineVoice. Internal language and avoided name spellings on public pages; every page has a reader.
Generated from the Heddle repository at de0c02b.
Questions
When do the checks run?
On every build, locally and in CI, and inside the agents before they open a pull request. An agent's draft that fails a check goes back to the agent, not to a person.
What happens when the model is unavailable?
The checks that need it report SKIPPED, never PASS. The rest still run. A gate that quietly stops judging is how unreviewed copy ships, so a skip is always shown.
Can a check be turned off for one page?
Pages can be exempted by route with a written reason in site.json, such as legal text that nobody may rewrite. The reason is printed with the run, so an exemption can't hide.
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