Technology

A full read of the technical foundation lives at TECHNOLOGY.md in the repo. The summary below is the marketing-safe extract.

One engine, two products

The detector and the humanizer share a single library — @humaniser/core — written as ~600 lines of pure JavaScript with no npm dependencies. Both products call the same nine feature extractors, the same scoring functions, and the same AI-tell phrase blocklist.

Why this matters: when our humanizer recommends an edit, that edit is proven to move the score on the same metric a content site uses to decide whether the page is safe to publish. Our humanizer fixes exactly what Google's scaled-content-abuse policy flags.

The nine features

  1. AI-tell phrase blocklist hits ("delve into", "in today's digital landscape", "a testament to", "comprehensive guide", and ~30 more — same regex set in detector and rewriter).
  2. Sentence-length variance — humans vary, AI is uniform.
  3. Paragraph-length variance — same, at paragraph scale.
  4. Discourse-marker density (however / moreover / furthermore) — high density signals AI.
  5. Hedge density (might / could / typically) — AI hedges, humans cite.
  6. First-hand experience markers (I tested / we shipped / in production) — absence is the strongest negative signal.
  7. Concrete-detail density (numbers, ISO dates, version pins, URLs, acronyms) — low density is suspicious.
  8. Sentence-start variety — repetition kills.
  9. Stop-word ratio — extreme uniformity is a tell.

The three artefacts

Honest limits

No detector reliably classifies AI vs human. Heuristics produce false positives on academic prose and false negatives on carefully-edited AI output. The score is a signal, not a verdict. The structural defence remains: a named editor signs off on every published page, states what they verified, and lists primary sources they personally checked.

Engine versioning

The engine ships SemVer. Major bumps reflect rule additions or blocklist expansions that change scoring of existing texts. Consumer sites pin the bundled engine version; sync is a single-file copy via humaniser.eu/scripts/sync.mjs.