# Tell Desk > Find the patterns that make a draft read as machine-generated, then fix them without sanding off the author's voice. The free check runs in the browser and uploads nothing: it splits a pasted README, changelog, PR description, blog post, investor update, email or social post into headings, paragraphs, lists, code and quotations; sets aside protected spans (code, quotations, block quotes, URLs) so quoted examples are never flagged; infers a context profile; matches a three-tier vocabulary with inflected forms; runs the regex-detectable patterns of the avoid-ai-writing catalogue; measures the length of every sentence and paragraph; and raises flags TD-01 to TD-39, each with a severity, a band and the quoted evidence with its line. The paid audit lane answers every flag and finds judgment-only patterns; the paid rewrite lane removes the tells without adding a first person, a dash, a stock hook or an invented fact, and the page rescans the rewrite with the same check. Every flag is a writing-quality signal. The app classifies nothing and says nothing about who wrote a text. App: https://tell-desk.skillsafe.ai/ API tutorial: https://tell-desk.skillsafe.ai/api.html ## Input - A draft: Markdown or plain text, pasted or dropped (HTML is reduced to text). One piece at a time. - Context: `blog` (default, every rule at full strength), `linkedin`, `technical-blog`, `investor-email`, `docs` or `casual` - or inferred from the draft (hashtags under 300 words, a salutation plus fundraising language, README or changelog headings, code). - Voice for a rewrite (optional): `casual`, `professional`, `technical`, `warm` or `blunt`. - An optional instruction ("keep it under 150 words", "British spelling"). ## Severity and bands - P0, credibility killers: cutoff disclaimers, chatbot artifacts, vague attributions, unfilled placeholders, chat citation markup, AI-tool tracking parameters, instructions addressed to the editor. - P1, obvious smell: Tier 1A vocabulary, template phrases, "Let's" openers, formulaic openings, bold overuse, em dashes, future-narrative closers, hedge stacks, bare noun-phrase bullets, uniform sentence length. - P2, polish: generic transitions, rule of three, uniform paragraph length, Tier 1B wordiness, Tier 3 repetition. - Bands: fingerprint (a publishing artifact, mandatory cleanup, never an authorship verdict), authorship (a pattern more common in model output), clarity (wordiness, a style edit whoever wrote it), rhythm, instruction. - Context tolerance: each rule is full, relaxed (one severity step down), extra strict or skipped per profile - for example, two dashes are fine in a LinkedIn post, "robust" is fine in a technical post, casual text keeps only P0. ## The free check (flags TD-01 to TD-39) - TD-01 Cutoff disclaimer or assistant self-reference - TD-02 Chatbot artifact or sycophancy - TD-03 Unfilled placeholder - TD-04 Chat citation markup - TD-05 AI-tool tracking parameter in a URL - TD-06 Vague attribution - TD-07 Tier 1A vocabulary (AI frequency markers: delve, tapestry, seamless, robust, pivotal, leverage, game-changer...) - TD-08 Tier 1B clarity edits (utilize, in order to, due to the fact that, serves as, boasts) - style, not authorship evidence - TD-09 Tier 2 clusters: two or more of harness, navigate, foster, empower, crucial, ecosystem, transformative... in one paragraph - TD-10 Em dashes (and the -- substitute) above one per 1,000 words - TD-11 "It's not X, it's Y" contrast - TD-12 Hedge stack - TD-13 "Let's" opener or reasoning scaffolding - TD-14 Formulaic or speculative opening - TD-15 Bold overuse: more than one bolded phrase per section - TD-16 Generic conclusion or future-narrative closer - TD-17 Template phrase - TD-18 Reader-steering hook or performed candor - TD-19 Filler phrase or hollow intensifier - TD-20 Emphasis stacking (Interestingly, Notably, Importantly...) - TD-21 Emoji in headings - TD-22 Title Case subheadings - TD-23 Hashtag stuffing (six or more) - TD-24 Endorsement closer - TD-25 Inline-header list items and list-label periods - TD-26 Scaffolding: too many headings or bullets for the words, formulaic headings (Overview, Key Takeaways) - TD-27 Numbered-list inflation - TD-28 Stock transitions (Moreover, Furthermore, Additionally, In conclusion) - TD-29 Compulsive rule of three - TD-30 Tier 3 saturation and repeated boilerplate phrases - TD-31 Uniform sentence length (spread under 0.35, or most sentences in the 15-25 word band) - TD-32 Uniform paragraph length - TD-33 Low vocabulary diversity (type-token ratio in 250-word windows under 0.40) - TD-34 The rebuild signal: vocabulary, pattern spread and uniform rhythm together - TD-35 Instructions addressed to the editor - TD-36 Rhetorical question opener - TD-37 Significance inflation or promotional language - TD-38 "Real" inflation or moral adjective on a thing - TD-39 Bullet lists of bare noun phrases Rhythm is measured on prose paragraphs only: sentence mean and spread (coefficient of variation), the share in the 15-25 word band, sentences of 8 words or fewer, paragraph spread, one-sentence paragraphs and the type-token ratio in 250-word windows. Exports: the check as Markdown, the flags as CSV, and the draft with citation tokens and AI tracking parameters stripped. ## Paid lanes (gpt-terra, routed on the `task` field) - `audit` (detect only): verdict `clean`, `patch` or `rebuild`; every page flag answered once, confirmed or dismissed, as a clear problem or a judgment call; findings a pattern cannot catch (synonym cycling, false concessions, false ranges, aphorism formulas, narrated candor, speculative gap-filling, manufactured punchlines), each quoted and marked authorship or clarity; a reading of the rhythm; the reshuffle and treadmill tests; what already reads like a person and must survive an edit; the core point when the verdict is rebuild. - `rewrite`: the same envelope, plus the rewritten draft, the changes (before and after, both quoted), what was left alone and why, the gaps only the writer can fill (never invented), and a second pass over its own rewrite. - Handoffs: an audit can be carried into the rewrite lane; a rewrite can be loaded back into the box for a free second check. ## What the page checks in every reply The context profile it used, every flag answered once, fingerprints never dismissed, the verdict against what the reply confirms and against the rebuild signal, every quote verbatim in the draft (or in the rewrite), and no authorship claims. A rewrite is rescanned: flags before and after, P0 problems left, em dashes, first person, numbers and URLs added, code blocks and block quotes preserved byte for byte, stock hooks added, fragment count, sentence spread, length, and whether every flag the reply calls fixed is gone. ## Sources - Derived from the agent skill `avoid-ai-writing` by Seth Hobson: https://skillsafe.ai/skill/@wshobson/avoid-ai-writing (github.com/wshobson/agents, plugins/avoid-ai-writing, MIT). - Its pattern catalogue and word tiers come from conorbronsdon/avoid-ai-writing (MIT); the tiering is adapted from brandonwise/humanizer. - On detector false positives: Liang et al., "GPT detectors are biased against non-native English writers", Patterns, 2023.