What happens in one run
Normalize text
Split the sample into words and sentences, then compute rhythm baselines.
Detect patterns
Run phrase and structure checks across known AI-typical pattern families.
Aggregate by family
Group flags by signal family. Each flag keeps its severity, count, and location through the aggregation.
Return the profile
Expose the per-family breakdown and every individual flag, so each trigger can be checked in the source text.
Input minimum is 50 words. For more stable reads, use 150+ words when available.
Signal families we track
Thirty-one detectors live across six families. The Pattern Profile Specification documents each detector individually; the families below are how the engine groups them in the profile output.
Stock phrases and AI-scented vocabulary. Templates like “in today’s rapidly evolving landscape” and “it’s important to note,” plus hedge constructions (“it could be argued,” “it appears that”) that cluster heavily in machine output.
Text that talks about itself: throat-clearing intros (“In this article we’ll explore…”), formulaic conclusions (“In conclusion…”), signpost markers (First/Second/Third), pre-digested reveals (“The takeaway:”), and assistant-style answer scaffolding.
Sentence and paragraph shape: uniform rhythm (low variation in sentence length), paragraph-length uniformity, opener repetition, passive overuse, and list-formatting patterns that read as scaffolding.
Rhetorical moves that manufacture stakes: “not just X but Y” pivot crutches, “experts say” weasel attributions, both-sides false-balance framing, and “buried in the changelog” manufactured drama.
Writer-voice leakage: chatbot phrasings (“great question,” “hope this helps”), AI self-disclosure (“as an AI,” “my training data”), and credibility theater (“let me be honest,” “real talk”).
Fancy verb substitution: “serves as / stands as / acts as” where a plain “is” would read more naturally. An over-correction for “weak verbs” that the engine catches as a stylistic tell.
What the diagnostic returns
- Profile: total instances detected, grouped into the six signal families with per-family counts, plus a severity breakdown across all flags.
- Per-flag detail: for each triggered detector, the engine returns
patternId,label,severity,count, the matched text, and adetectorNoteexplaining what the pattern is and why it matters. - Metrics: word count, sentence count, average sentence length, standard deviation, and burstiness.
- Deprecated: the JSON output still emits
slopScore(0–100) for backward compatibility, but the UI no longer surfaces it. See Why we removed the score.
The profile is what to read. The flags are the evidence.
How the profile is built
Triggered flags carry a severity (high / medium / low) and a count of matched instances. The engine groups them by signal family. The output shows total instances across the text, the number of detectors that fired per family, the severity breakdown, and the per-flag detail underneath.
Three flags from one family read differently than three flags spread across three families. Corroboration across families is a stronger signal than density within a single family. Both are surfaced without compressing them into a verdict.
Two markers attach to specific detectors. Fragile means the single-instance signal is unreliable in isolation; weight it lightly when nothing else fires. Direct-leak means the signal is highly specific to AI output regardless of co-occurrence — three detectors carry this marker: ASSISTANT_PERSONA, AI_DISCLAIMER, and CREDIBILITY_THEATER.
How to read the profile
There’s no compressed verdict to read — treat the output as evidence to weigh, not a number to act on. Three things to look at:
The family spread. A handful of flags concentrated in one family reads differently than the same count spread across three or four. Cross-family corroboration is a stronger signal than single-family density. If the only family lit up is structure, that often reflects edited human prose (academic, legal, technical) rather than AI authorship.
The direct-leak detectors. If ASSISTANT_PERSONA, AI_DISCLAIMER, or CREDIBILITY_THEATER fired, the text contains writer-voice tells that human writers don’t naturally produce — chatbot phrasing, AI self-disclosure, or credibility-theater labels. These are the most specific signals in the inventory.
The matched text. Every flag points at specific text and names the pattern in plain language. Open the flag, read the matched span, verify against the source. The diagnostic is meant to be auditable at the flag level; counts and family breakdowns are summaries of work you can check yourself.
If you came for a number, the profile won’t give you one. That’s deliberate — see Why we removed the score for the reasoning.
What the profile cannot prove
The profile cannot prove authorship, intent, or misconduct. Pattern overlap is not authorship proof; it’s evidence of stylistic features the text shares with machine output. Heavily-edited human prose can read AI-shaped (constrained vocabulary, formal structure, low rhythm variation). Lightly-edited AI prose can read human-shaped (selective deletion of the patterns the diagnostic catches). The diagnostic surfaces evidence to weigh; it doesn’t render verdicts.
A profile with many flags across many families means stronger pattern overlap. It does not mean proven AI authorship.
Reliability discipline
Interpret every run with context and known failure modes. Use this page with Limitations, Calibration Log, How AI Detectors Work, and the False Positive Hall of Fame.
If stakes are high, detector output starts the review process. It does not end it.