Method
How Lineage actually reads
Most detectors sell a single percentage and hide the work. Lineage is a forensic desk: local linguistic signals first, a model briefing second, and a name — family, generation, or exact — only as far as the evidence reaches.
Two passes
Typing is enough for the first pass. Burstiness, stock phrases, outline bones, register, and lived detail update on the page. Run full read sends the text to a second opinion (Grok) with those stats as a prior. The two scores are blended. If the briefing is down, you still have the local read — not a spinner and a shrug.
The signals
- Burstiness
- Variance in sentence length. Models often keep a metronome. People lurch — a six-word punch, then a long aside.
- Stock phrasing
- A phrase bank of assistant manners: Certainly, delve, tapestry, I hope this helps, here’s a breakdown, I want to be careful, look, honestly.
- Register
- Contractions, heat, and spoken reductions versus pressed-suit diction.
- Outline bones
- Markdown headings, numbered thirds, key-takeaway scaffolding.
- Lexical weave
- A moving type-token ratio. Mid and even is a common default. Idiosyncratic peaks are not.
- Lived detail
- Names, numbers, places, wet shoes. Generators can invent them; they usually don’t, not like this.
How far the name goes
- Exact
- Only when the writing identifies a version in its own voice: “I am GPT-4o, a language model trained by OpenAI,” “Claude 3.5 Sonnet,” “Grok 4.7.” A sticker, a quote, or “she announced” does not count. “I’m ChatGPT” names the product, not a checkpoint.
- Generation
- A style band inside the house: GPT-3.5, GPT-4, GPT-4o, the o-series, Claude 3, Claude 4, Gemini 1.5, Gemini 2.5, Grok 3, Grok 4, DeepSeek V3, DeepSeek-R1, Llama 3. It takes at least two independent cues, or one signature as strong as a reasoning-trace tag. A later checkpoint that shares the voice — GPT-5.6, Claude Opus 5 — is exact only when named.
- Family
- The house is clear and the generation is not. ChatGPT, Claude, Gemini, Grok, DeepSeek, Llama.
- Unresolved
- Short text, a single borrowed word, or two houses at once. One “delve” in a diary stays a diary.
House styles
- ChatGPT
- Early ChatGPT still says certainly and hopes this helps. GPT-4 writes brochure. Later ChatGPT gets shorter: short version, quick take, want me to. The o-series shows its work.
- Claude
- Claude 3 hedges, names the tension, and reaches for the em dash. Claude 4 is more direct: I’ll be direct, worth separating, skip the preamble.
- Gemini
- Gemini 1.5 gives you the breakdown and the takeaways. Gemini 2.5 leans on at-a-glance lines and inline bold.
- Grok
- Grok 3 will say look, here’s the thing, hot take. Grok 4 still picks a side, then talks about the actual constraint and what it would ship.
- DeepSeek
- V3 inventories key points. R1 leaves the reasoning trace in the page, including a think tag.
- Llama
- Opens with Sure and closes with Remember. Open-model helpfulness, without the brochure.
What the tests lock
npm test runs the desk corpus and the policy invariants. On the clear set the family has to be right. On the model set the generation has to be the one we named, with no exact claim. Exact cases have to match the version string. Traps — a diary that says “delve,” a quoted “I am GPT-4o,” an academic paragraph with “in conclusion” — must not receive a model. Short text abstains. The briefing is not allowed to mint an exact name the local pass did not see, and a disagreement between the two passes drops the checkpoint.
That suite is a regression lock on this desk, not a field accuracy for every model in the wild. Surface style cannot separate two checkpoints that were trained to sound alike. We stop at the generation when that is the truth.
What we will not claim
- No 99.9. The cap is honest because the overlap is real.
- A generation is a style band, not a watermark from the lab.
- An exact model is a claim the text made about itself, checked against a quote and a sticker.
- Heavily edited drafts, style prompts, and formal essays will muddy the read.
- Short samples stay low-confidence on purpose.