{
  "version": "1.2.0",
  "canonical": "https://writelikehuman.app/patterns",
  "categories": [
    {
      "id": "leakage",
      "name": "Leakage",
      "blurb": "Chatbot residue that no human ever types."
    },
    {
      "id": "rhetoric",
      "name": "Rhetoric",
      "blurb": "Sentence shapes models reach for by default."
    },
    {
      "id": "lexicon",
      "name": "Lexicon",
      "blurb": "Words whose frequency jumped after 2022."
    },
    {
      "id": "punctuation",
      "name": "Punctuation",
      "blurb": "Marks that give away the tool or the training data."
    },
    {
      "id": "formatting",
      "name": "Formatting",
      "blurb": "Structure used because it is safe, not because the content needs it."
    },
    {
      "id": "substance",
      "name": "Substance",
      "blurb": "Text that reads fine and says nothing."
    },
    {
      "id": "overcorrection",
      "name": "Overcorrection",
      "blurb": "The tells that come from scrubbing too hard."
    },
    {
      "id": "polish",
      "name": "Polski",
      "blurb": "Wzorce typowe dla polskiego tekstu z AI."
    }
  ],
  "patterns": [
    {
      "id": "citation-artifacts",
      "name": "Citation and tool artifacts",
      "category": "leakage",
      "section": "1",
      "lang": "any",
      "severity": "ban",
      "why": "Internal tokens from ChatGPT, Grok and other tools that survive a copy-paste. Nothing else produces them.",
      "fix": "Delete the token. If a real source sat behind it, cite that source by name.",
      "bad": "Revenue grew in Q3 :contentReference[oaicite:2]{index=2}.",
      "good": "Revenue grew in Q3 (company filing, 14 October).",
      "detectable": true
    },
    {
      "id": "tracking-params",
      "name": "Chatbot tracking parameters",
      "category": "leakage",
      "section": "1",
      "lang": "any",
      "severity": "ban",
      "why": "Links copied out of a chatbot answer carry the chatbot in the URL.",
      "fix": "Strip the utm_source parameter.",
      "bad": "https://example.com/report?utm_source=chatgpt.com",
      "good": "https://example.com/report",
      "detectable": true
    },
    {
      "id": "cutoff-disclaimer",
      "name": "Knowledge-cutoff disclaimer",
      "category": "leakage",
      "section": "1",
      "lang": "en",
      "severity": "ban",
      "why": "Only a language model talks about its training data.",
      "fix": "Delete the whole sentence. If the information may be stale, say what date it comes from.",
      "bad": "As of my last update, the tool supports six languages.",
      "good": "The tool supported six languages in March.",
      "detectable": true
    },
    {
      "id": "refusal-residue",
      "name": "Refusal and assistant residue",
      "category": "leakage",
      "section": "1",
      "lang": "en",
      "severity": "ban",
      "why": "Assistant voice leaking into text that a person is supposed to have written.",
      "fix": "Delete the whole sentence.",
      "bad": "As an AI language model, I cannot give legal advice, but here are some points.",
      "good": "This is not legal advice. Three points to check with your lawyer:",
      "detectable": true
    },
    {
      "id": "template-slots",
      "name": "Unfilled template slots",
      "category": "leakage",
      "section": "1",
      "lang": "any",
      "severity": "ban",
      "why": "A bracketed blank means the text was generated and never read.",
      "fix": "Stop and ask the user for the missing value. Never guess it.",
      "bad": "Dear [Client Name], thank you for choosing [Company].",
      "good": "Dear Ms Ortega, thank you for choosing Harbor Print.",
      "detectable": true
    },
    {
      "id": "closing-offer",
      "name": "Unasked closing offer",
      "category": "leakage",
      "section": "1",
      "lang": "en",
      "severity": "ban",
      "why": "The chatbot sign-off. A person who wrote the text does not offer to write more of it.",
      "fix": "Delete it. End on the last real point.",
      "bad": "Let me know if you would like me to expand on any of these points!",
      "good": "(nothing; the text ends on its last point)",
      "detectable": true
    },
    {
      "id": "meta-narration",
      "name": "Meta-narration",
      "category": "leakage",
      "section": "1",
      "lang": "en",
      "severity": "ban",
      "why": "Describing the text instead of writing it. It reads like the wrapper around a chatbot answer.",
      "fix": "Delete it. The reader can see the structure.",
      "bad": "Certainly! Here's a rewritten version that is more concise:",
      "good": "(start with the text itself)",
      "detectable": true
    },
    {
      "id": "markdown-in-plain-text",
      "name": "Markdown in a plain-text channel",
      "category": "leakage",
      "section": "1",
      "lang": "any",
      "severity": "watch",
      "why": "Asterisks and hashes show up raw in email, LinkedIn and SMS. Only a model pastes them there.",
      "fix": "Use the channel's own formatting, or none.",
      "bad": "Hi Sam, **quick update:** ### Next steps",
      "good": "Hi Sam, quick update on next steps.",
      "detectable": true
    },
    {
      "id": "negative-parallelism",
      "name": "Negative parallelism",
      "category": "rhetoric",
      "section": "2.1",
      "lang": "en",
      "severity": "ban",
      "why": "The loudest short-form tell of 2026. It invents a position nobody held so it can knock it down.",
      "fix": "State the claim directly, or write two plain sentences.",
      "bad": "It's not just a tool, it's a new way of working.",
      "good": "The tool cut our review time from two days to one.",
      "detectable": true
    },
    {
      "id": "autopilot-triplet",
      "name": "Rule of three on autopilot",
      "category": "rhetoric",
      "section": "2.2",
      "lang": "en",
      "severity": "limit",
      "limit": {
        "per": 200,
        "max": 1
      },
      "why": "Three balanced items is what a model produces when it has one real example and fills to three.",
      "fix": "Keep the items you can defend. Two or four is fine. Uneven lists read as human.",
      "bad": "Our platform is efficient, scalable, and reliable.",
      "good": "The platform handled 3,000 orders on Black Friday without a restart.",
      "detectable": true
    },
    {
      "id": "empty-opener",
      "name": "Empty opener",
      "category": "rhetoric",
      "section": "2.3",
      "lang": "en",
      "severity": "ban",
      "why": "Throat-clearing before the point. An editor deletes it first.",
      "fix": "Open on the actual claim.",
      "bad": "In today's fast-paced digital world, businesses need to move quickly.",
      "good": "Our competitors ship a release every week. We ship one a quarter.",
      "detectable": true
    },
    {
      "id": "fake-authority",
      "name": "Fake authority",
      "category": "rhetoric",
      "section": "2.4",
      "lang": "en",
      "severity": "ban",
      "why": "An appeal to research that has no name, date or link behind it.",
      "fix": "Name the study, the number and the year, or delete the claim. Never attach a citation you cannot verify.",
      "bad": "Studies have shown that remote teams are more productive.",
      "good": "In a 2015 Stanford experiment with a Chinese travel agency, staff working from home were 13% more productive.",
      "detectable": true
    },
    {
      "id": "pseudo-wisdom",
      "name": "Pseudo-wisdom filler",
      "category": "rhetoric",
      "section": "2.5",
      "lang": "en",
      "severity": "ban",
      "why": "A sentence shaped like insight that carries no information. Delete it and nothing is lost.",
      "fix": "Delete it. If the paragraph now feels thin, it was thin before.",
      "bad": "At the end of the day, the key is finding the right balance.",
      "good": "We cap meetings at two afternoons a week.",
      "detectable": true
    },
    {
      "id": "transition-stacking",
      "name": "Transition stacking",
      "category": "rhetoric",
      "section": "2.6",
      "lang": "en",
      "severity": "limit",
      "why": "Paragraphs that open with Furthermore, Moreover, Additionally read like an outline being filled in.",
      "fix": "Delete the connector. Let the order of the paragraphs carry the logic. Zero in anything under 400 words.",
      "bad": "Moreover, the new process reduces errors.",
      "good": "The new process also caught the invoice bug we missed in May.",
      "detectable": true
    },
    {
      "id": "outline-closer",
      "name": "Outline-formula closer",
      "category": "rhetoric",
      "section": "2.7",
      "lang": "en",
      "severity": "ban",
      "why": "The five-paragraph-essay ending: challenges, then the future, then a restatement.",
      "fix": "End on the last real thing you have to say.",
      "bad": "As the landscape continues to evolve, one thing is clear: adaptability will be key.",
      "good": "We will know by March whether the pilot pays for itself.",
      "detectable": true
    },
    {
      "id": "ing-tail",
      "name": "Superficial -ing tail",
      "category": "rhetoric",
      "section": "2.8",
      "lang": "en",
      "severity": "ban",
      "why": "A participle bolted onto the end of a sentence to claim significance it has not earned.",
      "fix": "Cut the tail, or make it its own sentence with a real subject.",
      "bad": "The team shipped the feature early, highlighting the importance of collaboration.",
      "good": "The team shipped the feature a week early.",
      "detectable": true
    },
    {
      "id": "sycophancy",
      "name": "Sycophantic tone",
      "category": "rhetoric",
      "section": "2.9",
      "lang": "en",
      "severity": "ban",
      "why": "Praise for the question instead of an answer to it.",
      "fix": "Delete it. Start with the answer.",
      "bad": "Great question! You're absolutely right to ask about pricing.",
      "good": "Pricing starts at $12 a seat.",
      "detectable": true
    },
    {
      "id": "copula-avoidance",
      "name": "Copula avoidance",
      "category": "rhetoric",
      "section": "2.10",
      "lang": "en",
      "severity": "limit",
      "limit": {
        "per": 300,
        "max": 1
      },
      "why": "Models avoid plain \"is\" and \"has\" and reach for \"serves as\" and \"boasts\".",
      "fix": "Use \"is\" or \"has\" unless the fancier verb adds meaning.",
      "bad": "The library serves as a hub for the community and boasts a large archive.",
      "good": "The library is where the town meets. It has 40,000 photographs of the harbour.",
      "detectable": true
    },
    {
      "id": "significance-inflation",
      "name": "Significance inflation",
      "category": "rhetoric",
      "section": "2.11",
      "lang": "en",
      "severity": "ban",
      "why": "Everything is pivotal, vital and lasting. The reader stops believing any of it.",
      "fix": "Say what happened and let the fact carry its own weight.",
      "bad": "The launch marks a pivotal moment and leaves an indelible mark on the industry.",
      "good": "The launch doubled our weekly sign-ups.",
      "detectable": true
    },
    {
      "id": "promotional-puffery",
      "name": "Promotional puffery",
      "category": "rhetoric",
      "section": "2.11",
      "lang": "en",
      "severity": "limit",
      "limit": {
        "per": 300,
        "max": 1
      },
      "why": "Brochure adjectives. They describe how the writer wants you to feel, not the thing.",
      "fix": "Replace the adjective with the detail that made you reach for it.",
      "bad": "Nestled in the heart of the city, this breathtaking venue offers world-class service.",
      "good": "The venue is two streets from the station and seats 120.",
      "detectable": true
    },
    {
      "id": "elegant-variation",
      "name": "Elegant variation",
      "category": "rhetoric",
      "section": "2.12",
      "lang": "any",
      "severity": "watch",
      "why": "Rotating synonyms so a noun never repeats. The reader wonders whether \"the firm\" and \"the organisation\" are different things.",
      "fix": "Pick one name and repeat it, or use a pronoun.",
      "bad": "Acme raised prices. The firm said the organisation needed to cover costs, and the Ohio-based company expects…",
      "good": "Acme raised prices. Acme said it needed to cover costs and expects…",
      "detectable": false
    },
    {
      "id": "false-range",
      "name": "False range",
      "category": "rhetoric",
      "section": "2.13",
      "lang": "en",
      "severity": "ban",
      "why": "\"From X to Y\" where X and Y are not two ends of any scale. It sounds broad and says little.",
      "fix": "Name the things you mean, or drop the phrase.",
      "bad": "We help everyone from startups to governments with everything from pricing to culture.",
      "good": "We help software companies with 10 to 200 staff set their prices.",
      "detectable": true
    },
    {
      "id": "staged-reveal",
      "name": "Staged reveal",
      "category": "rhetoric",
      "section": "2.14",
      "lang": "en",
      "severity": "ban",
      "why": "A drumroll before the point. Social-media copy taught models to set up every fact like a punchline.",
      "fix": "State the result in a normal sentence.",
      "bad": "The result? A 40% drop in errors. Here's the kicker: it took one afternoon.",
      "good": "Errors dropped 40%, and the change took one afternoon.",
      "detectable": true
    },
    {
      "id": "stacked-fragments",
      "name": "Fragment drumroll",
      "category": "rhetoric",
      "section": "2.14",
      "lang": "any",
      "severity": "ban",
      "why": "Three clipped fragments in a row (\"No fluff. No filler. Just results.\") is a template, not a voice.",
      "fix": "Write one sentence that says the thing.",
      "bad": "No fluff. No filler. Just results.",
      "good": "The report is two pages and every number in it has a source.",
      "detectable": true
    },
    {
      "id": "whether-youre",
      "name": "Audience split",
      "category": "rhetoric",
      "section": "2.14",
      "lang": "en",
      "severity": "ban",
      "why": "\"Whether you're a X or a Y\" tries to address everyone and so addresses no one.",
      "fix": "Write to the one reader this text is for.",
      "bad": "Whether you're a seasoned pro or just starting out, this guide has you covered.",
      "good": "This guide is for people setting up their first online shop.",
      "detectable": true
    },
    {
      "id": "hedge-stacking",
      "name": "Hedge stacking",
      "category": "rhetoric",
      "section": "7",
      "lang": "en",
      "severity": "watch",
      "why": "Two hedges on one claim. Honest uncertainty names its limit; stacked hedges just blur it.",
      "fix": "Keep one hedge and say what it depends on.",
      "bad": "This could potentially help to possibly reduce costs.",
      "good": "This should cut costs if the supplier holds its price.",
      "detectable": true
    },
    {
      "id": "style-words",
      "name": "Post-2022 style words",
      "category": "lexicon",
      "section": "3.1",
      "lang": "en",
      "severity": "limit",
      "limit": {
        "per": 500,
        "max": 3
      },
      "why": "Words like delve, underscore and showcase spiked in published text after ChatGPT launched. Two in one sentence is a fingerprint.",
      "fix": "delve → look at · underscore → show · tapestry → describe the thing · landscape → field · foster → build · harness → use · navigate → handle.",
      "bad": "This report delves into the intricate landscape of fintech, underscoring its multifaceted nature.",
      "good": "This report looks at how 40 fintech startups priced their first product.",
      "detectable": true
    },
    {
      "id": "verb-inflation",
      "name": "Corporate verb inflation",
      "category": "lexicon",
      "section": "3.2",
      "lang": "en",
      "severity": "limit",
      "limit": {
        "per": 300,
        "max": 1
      },
      "why": "Latinate verbs standing in for plain ones.",
      "fix": "utilize/leverage → use · facilitate → help · streamline → simplify · commence → start · endeavour → try.",
      "bad": "We leverage AI to streamline and facilitate onboarding.",
      "good": "We use AI to fill in the onboarding forms.",
      "detectable": true
    },
    {
      "id": "buzz-phrases",
      "name": "Buzz phrases",
      "category": "lexicon",
      "section": "3.3",
      "lang": "en",
      "severity": "ban",
      "why": "Phrases so worn they carry no meaning.",
      "fix": "Say what changed, what the easy part is, what moved.",
      "bad": "This is a real game-changer that will move the needle.",
      "good": "This halves the time it takes to close a month.",
      "detectable": true
    },
    {
      "id": "empty-intensifiers",
      "name": "Empty intensifiers",
      "category": "lexicon",
      "section": "3.4",
      "lang": "en",
      "severity": "limit",
      "limit": {
        "per": 200,
        "max": 1
      },
      "why": "Very, truly, incredibly: volume without information.",
      "fix": "Delete it, or replace it with a number.",
      "bad": "Sales grew significantly and the team was incredibly happy.",
      "good": "Sales grew 34%.",
      "detectable": true
    },
    {
      "id": "vague-quantifiers",
      "name": "Vague quantifiers",
      "category": "substance",
      "section": "6",
      "lang": "en",
      "severity": "watch",
      "why": "\"Many\", \"numerous\", \"a wide range of\" stand where a number should be.",
      "fix": "Use the number. If you do not have it, ask for it.",
      "bad": "Numerous customers use a wide range of our features.",
      "good": "212 customers use at least three of our features.",
      "detectable": true
    },
    {
      "id": "em-dash-density",
      "name": "Em dash density",
      "category": "punctuation",
      "section": "4.1",
      "lang": "en",
      "severity": "limit",
      "why": "Humans use dashes too. The tell is density: well above 10 per 1,000 words, several per paragraph. Banning dashes outright is now its own tell.",
      "fix": "Keep under 15 per 1,000 words and one per paragraph in short pieces. Swap the rest for commas, colons, parentheses or full stops.",
      "bad": "The plan — which we tested — worked — mostly.",
      "good": "The plan worked, mostly. We tested it for two weeks.",
      "detectable": true
    },
    {
      "id": "dash-convention-mix",
      "name": "Mixed dash conventions",
      "category": "punctuation",
      "section": "4.1",
      "lang": "en",
      "severity": "watch",
      "why": "Spaced dashes ( — ) and tight dashes (word—word) in the same text suggest pasted fragments.",
      "fix": "Pick one convention and hold it.",
      "bad": "The plan — tested twice—worked.",
      "good": "The plan, tested twice, worked.",
      "detectable": true
    },
    {
      "id": "double-hyphen",
      "name": "Double hyphen as a dash",
      "category": "punctuation",
      "section": "4.2",
      "lang": "any",
      "severity": "ban",
      "why": "A plain-text substitute for a dash that usually marks copied output.",
      "fix": "Use a full stop or a comma.",
      "bad": "We shipped it -- finally.",
      "good": "We shipped it. Finally.",
      "detectable": true
    },
    {
      "id": "curly-quotes-plain-text",
      "name": "Curly quotes in plain text",
      "category": "punctuation",
      "section": "4.2",
      "lang": "en",
      "severity": "watch",
      "why": "Typographic quotes in a code comment, SMS or form field are a copy-paste fingerprint.",
      "fix": "Use straight quotes when the destination is plain text. Keep curly quotes in typeset documents.",
      "bad": "Reply “yes” to confirm.",
      "good": "Reply \"yes\" to confirm.",
      "detectable": true
    },
    {
      "id": "emoji-bullets",
      "name": "Emoji as bullets or dividers",
      "category": "punctuation",
      "section": "4.3",
      "lang": "any",
      "severity": "ban",
      "why": "The rocket, lightbulb, sparkles and check-mark set is the signature of generated social posts.",
      "fix": "At most one emoji per message, and only when it carries tone a word cannot.",
      "bad": "🚀 Faster builds\n💡 Smarter defaults\n✅ Fewer bugs",
      "good": "Builds are faster, the defaults changed, and we closed 30 bugs.",
      "detectable": true
    },
    {
      "id": "bold-lead-ins",
      "name": "Bold lead-ins in lists",
      "category": "formatting",
      "section": "4.4",
      "lang": "any",
      "severity": "ban",
      "why": "\"**Speed:** the system is faster\" on every bullet is the house style of chatbot answers.",
      "fix": "Write the bullet as a sentence, or turn the list into prose. Fine in reference documentation.",
      "bad": "- **Speed:** The system is faster.\n- **Cost:** It is cheaper.",
      "good": "The system is faster and costs less to run.",
      "detectable": true
    },
    {
      "id": "title-case-headings",
      "name": "Title-case headings",
      "category": "formatting",
      "section": "4.4",
      "lang": "any",
      "severity": "ban",
      "why": "Every Word Capitalised in a body-copy heading is a default, not a choice.",
      "fix": "Sentence case: capital on the first word and on names only.",
      "bad": "## How To Improve Your Team Workflow",
      "good": "## How to improve your team workflow",
      "detectable": true
    },
    {
      "id": "bold-overuse",
      "name": "Bold overuse",
      "category": "formatting",
      "section": "4.4",
      "lang": "any",
      "severity": "limit",
      "why": "When everything is bold, nothing is.",
      "fix": "Keep bold for the one phrase a skimming reader must not miss.",
      "bad": "The **new plan** gives **every team** a **clear budget** and **faster approvals**.",
      "good": "The new plan gives every team its own budget. **Approvals now take one day.**",
      "detectable": true
    },
    {
      "id": "list-for-prose",
      "name": "A list where prose would do",
      "category": "formatting",
      "section": "4.4",
      "lang": "any",
      "severity": "watch",
      "why": "Models reach for bullets because bullets are safe. Three sentences that follow from each other are not a list.",
      "fix": "Write the sentences.",
      "bad": "- The deadline moved\n- So we cut scope\n- So we shipped on time",
      "good": "The deadline moved, so we cut scope and still shipped on time.",
      "detectable": false
    },
    {
      "id": "rule-between-sections",
      "name": "Horizontal rules everywhere",
      "category": "formatting",
      "section": "4.4",
      "lang": "any",
      "severity": "watch",
      "why": "A divider between every short section is decoration.",
      "fix": "Let headings and white space separate sections.",
      "bad": "Intro\n---\nPoint one\n---\nPoint two",
      "good": "Intro, then two sections under their own headings.",
      "detectable": false
    },
    {
      "id": "no-specifics",
      "name": "No specifics",
      "category": "substance",
      "section": "6",
      "lang": "any",
      "severity": "limit",
      "why": "The most reliable signal. Strip every tell from an empty paragraph and it is still empty.",
      "fix": "At least one number, name or date per 100 words. If the source has none, ask the user for one. Never invent it.",
      "bad": "Nutrition plays a crucial role in overall wellness.",
      "good": "Swapping one soda a day for water cut my sugar intake by about 35 grams.",
      "detectable": true
    },
    {
      "id": "deletion-test",
      "name": "Fails the deletion test",
      "category": "substance",
      "section": "6",
      "lang": "any",
      "severity": "limit",
      "why": "A sentence you can delete without losing information was filler.",
      "fix": "Delete it. Fewer than a third of sentences should survive deletion without loss.",
      "bad": "Communication is essential in any team. It helps everyone stay aligned.",
      "good": "We moved the stand-up to Slack and got back 40 minutes a day.",
      "detectable": false
    },
    {
      "id": "fabricated-specifics",
      "name": "Fabricated specifics",
      "category": "substance",
      "section": "10",
      "lang": "any",
      "severity": "ban",
      "why": "The worst outcome of humanising. A made-up statistic is real harm; a generic sentence is only a style problem.",
      "fix": "Ask the user for the number. Use [brackets] only while drafting, and never ship them.",
      "bad": "(an invented \"73% of managers\" to satisfy the specificity rule)",
      "good": "\"How many clients did you onboard last quarter? I will use your number.\"",
      "detectable": false
    },
    {
      "id": "over-scrubbing",
      "name": "Over-scrubbing",
      "category": "overcorrection",
      "section": "7",
      "lang": "any",
      "severity": "watch",
      "why": "Choppy fragments, forced lowercase and no subordinate clauses: the style that replaced the em dash as a tell.",
      "fix": "Keep long sentences when the idea is long. Merge two short sentences into one.",
      "bad": "we tried it. it worked. kind of. not really.",
      "good": "We tried it for a month, and it worked about half the time.",
      "detectable": true
    },
    {
      "id": "deliberate-flaws",
      "name": "Deliberate flaws",
      "category": "overcorrection",
      "section": "7",
      "lang": "any",
      "severity": "ban",
      "why": "Planted typos, fake \"I think maybe\" hedges and padded personal detail are now tells of their own.",
      "fix": "Write correctly. Keep the author's real quirks; do not add new ones.",
      "bad": "i think maybe this could work lol, teh numbers look ok",
      "good": "This could work. The numbers hold if churn stays under 3%.",
      "detectable": false
    },
    {
      "id": "voice-scrubbing",
      "name": "Scrubbing the author's voice",
      "category": "overcorrection",
      "section": "10",
      "lang": "any",
      "severity": "ban",
      "why": "An author's lowercase starts or double-dot pauses are the fingerprint you are protecting.",
      "fix": "Keep the quirks from the source text, including ones that look like errors.",
      "bad": "(normalising a writer who always starts emails with \"hey..\")",
      "good": "(leaving \"hey..\" exactly as they write it)",
      "detectable": false
    },
    {
      "id": "synonym-swapping",
      "name": "Synonym swapping without restructuring",
      "category": "overcorrection",
      "section": "10",
      "lang": "any",
      "severity": "watch",
      "why": "Swapping \"leverage\" for \"use\" inside the same balanced 20-word sentence changes nothing measurable.",
      "fix": "Fix the structure first, the vocabulary second.",
      "bad": "We use AI to simplify and help onboarding. (same shape as before)",
      "good": "AI now fills in the onboarding forms. It took a week to set up.",
      "detectable": false
    },
    {
      "id": "pl-openers",
      "name": "Puste otwarcia",
      "category": "polish",
      "section": "11.1",
      "lang": "pl",
      "severity": "ban",
      "why": "Rozgrzewka przed tezą. Redaktor kasuje ją jako pierwszą.",
      "fix": "Zacznij od tego, co masz do powiedzenia.",
      "bad": "W dzisiejszym dynamicznie zmieniającym się świecie firmy muszą działać szybciej.",
      "good": "Konkurencja wypuszcza nową wersję co tydzień, my raz na kwartał.",
      "detectable": true
    },
    {
      "id": "pl-fake-authenticity",
      "name": "Fałszywa autentyczność",
      "category": "polish",
      "section": "11.2",
      "lang": "pl",
      "severity": "watch",
      "why": "Anegdota bez żadnego konkretu. Przechodzi tylko wtedy, gdy w następnym zdaniu pada rok, branża, liczba albo nazwa.",
      "fix": "Dodaj konkret albo skasuj zdanie.",
      "bad": "Ostatnio rozmawiałem z klientem o ważnych sprawach.",
      "good": "Rozmawiałem z trenerką, która prowadzi szkolenia HR od 2018 roku.",
      "detectable": true
    },
    {
      "id": "pl-fillers",
      "name": "Wypełniacze",
      "category": "polish",
      "section": "11.3",
      "lang": "pl",
      "severity": "ban",
      "why": "Zwroty, które zapowiadają treść zamiast ją podać.",
      "fix": "Skasuj w całości. Zdanie zwykle działa bez nich.",
      "bad": "Warto zauważyć, że kluczowym aspektem jest komunikacja.",
      "good": "Zespół odpisuje klientom w ciągu dwóch godzin.",
      "detectable": true
    },
    {
      "id": "pl-closers",
      "name": "Szkolne zakończenia",
      "category": "polish",
      "section": "11.4",
      "lang": "pl",
      "severity": "ban",
      "why": "Zakończenie z wypracowania: podsumowanie tego, co czytelnik właśnie przeczytał.",
      "fix": "Kończ na ostatniej rzeczy, którą naprawdę masz do powiedzenia.",
      "bad": "Podsumowując, mam nadzieję, że ten artykuł okazał się pomocny.",
      "good": "Pilotaż kończy się w marcu. Wtedy zobaczymy, czy się zwraca.",
      "detectable": true
    },
    {
      "id": "pl-negative-parallelism",
      "name": "To nie X, to Y",
      "category": "polish",
      "section": "11.5",
      "lang": "pl",
      "severity": "ban",
      "why": "Najgłośniejsza konstrukcja z angielskiego szablonu, przeniesiona 1:1 na polski.",
      "fix": "Powiedz wprost, o co chodzi, albo napisz dwa zwykłe zdania.",
      "bad": "To nie tylko narzędzie — to nowy sposób pracy.",
      "good": "Narzędzie skróciło nam przegląd umów z dwóch dni do jednego.",
      "detectable": true
    },
    {
      "id": "pl-stacked-fragments",
      "name": "Trzy urwane zdania",
      "category": "polish",
      "section": "11.5",
      "lang": "pl",
      "severity": "ban",
      "why": "„Bez ściemy. Bez bullshitu. Tylko konkret.\" to szablon, nie styl.",
      "fix": "Napisz jedno zdanie, które mówi, o co chodzi.",
      "bad": "Bez ściemy. Bez lania wody. Tylko konkret.",
      "good": "Raport ma dwie strony i każda liczba ma źródło.",
      "detectable": true
    },
    {
      "id": "pl-empty-adjectives",
      "name": "Przymiotniki bez pokrycia",
      "category": "polish",
      "section": "11.6",
      "lang": "pl",
      "severity": "limit",
      "limit": {
        "per": 150,
        "max": 1
      },
      "why": "Najsilniejszy polski sygnał. Trzy lub cztery z tej listy w jednym akapicie to praktycznie pewność, że pisała AI.",
      "fix": "Zostaw jeden na 150 słów i tylko z liczbą albo dowodem obok.",
      "bad": "Oferujemy kompleksowe, innowacyjne i profesjonalne rozwiązania.",
      "good": "Jako pierwsi w Polsce łączymy kurs Excela z audytem firmowych arkuszy.",
      "detectable": true
    },
    {
      "id": "pl-calques",
      "name": "Kalki z angielskiego",
      "category": "polish",
      "section": "11.7",
      "lang": "pl",
      "severity": "ban",
      "why": "Angielskie wyrażenia przetłumaczone słowo w słowo.",
      "fix": "dedykowany → dla, przeznaczony dla · zaadresować problem → zająć się · dostarczać wartość → nazwij, co konkretnie.",
      "bad": "Dedykowane rozwiązanie zaadresuje problem i dostarczy wartość.",
      "good": "Program dla księgowych z biur rachunkowych skraca zamknięcie miesiąca o dwa dni.",
      "detectable": true
    },
    {
      "id": "pl-inflated-verbs",
      "name": "Czasowniki napuszone",
      "category": "polish",
      "section": "11.8",
      "lang": "pl",
      "severity": "limit",
      "limit": {
        "per": 150,
        "max": 1
      },
      "why": "Urzędowe czasowniki w miejscu zwykłych.",
      "fix": "posiadać → mieć · realizować → robić · dokonać zakupu → kupić · poprzez → przez · w celu → żeby.",
      "bad": "Posiadamy zespół, który realizuje projekty poprzez dedykowane narzędzia.",
      "good": "Mamy pięć osób, które robią projekty w Figmie.",
      "detectable": true
    },
    {
      "id": "pl-participle-tails",
      "name": "Ogony imiesłowowe",
      "category": "polish",
      "section": "11.9",
      "lang": "pl",
      "severity": "ban",
      "why": "Dopisek na końcu zdania, który ma nadać mu wagę.",
      "fix": "Utnij albo zrób z tego osobne zdanie z prawdziwym podmiotem.",
      "bad": "Wdrożyliśmy nowy proces, co przekłada się na lepszą jakość.",
      "good": "Wdrożyliśmy nowy proces. Reklamacji jest o połowę mniej.",
      "detectable": true
    },
    {
      "id": "pl-coaching",
      "name": "Coachingowy bełkot",
      "category": "polish",
      "section": "11.10",
      "lang": "pl",
      "severity": "ban",
      "why": "Język z okładek poradników.",
      "fix": "Skasuj. Napisz, co konkretnie się zmieni.",
      "bad": "Uwolnij swój wewnętrzny potencjał i wyrusz w podróż transformacji.",
      "good": "Po sześciu tygodniach będziesz prowadzić spotkanie zespołu bez notatek.",
      "detectable": true
    },
    {
      "id": "pl-em-dash",
      "name": "Angielska pauza w polskim tekście",
      "category": "polish",
      "section": "11.11",
      "lang": "pl",
      "severity": "ban",
      "why": "Długa pauza bez spacji (słowo—słowo) to import z angielskiego. Po polsku myślnik ma spacje z obu stron, standardem jest półpauza.",
      "fix": "słowo – słowo (półpauza ze spacjami). Poniżej 10 na 1000 słów, najwyżej jedna na akapit.",
      "bad": "Wynik—jak się okazało—był lepszy.",
      "good": "Wynik – jak się okazało – był lepszy.",
      "detectable": true
    },
    {
      "id": "pl-quotes",
      "name": "Angielski cudzysłów",
      "category": "polish",
      "section": "11.11",
      "lang": "pl",
      "severity": "ban",
      "why": "Polski cudzysłów to „tekst”. Angielski \"tekst\" albo “tekst” w polskim zdaniu to odcisk kopiuj-wklej.",
      "fix": "Zamień na „…”. Cytat w cytacie: «…».",
      "bad": "Nazwaliśmy to \"szybką ścieżką\".",
      "good": "Nazwaliśmy to „szybką ścieżką”.",
      "detectable": true
    },
    {
      "id": "pl-ellipsis",
      "name": "Trzy kropki zamiast wielokropka",
      "category": "polish",
      "section": "11.11",
      "lang": "pl",
      "severity": "watch",
      "why": "Wielokropek to jeden znak.",
      "fix": "Zamień ... na …",
      "bad": "I wtedy...",
      "good": "I wtedy…",
      "detectable": true
    },
    {
      "id": "pl-comma-after-adverbial",
      "name": "Przecinek po okoliczniku",
      "category": "polish",
      "section": "11.7",
      "lang": "pl",
      "severity": "ban",
      "why": "„Dodatkowo, warto…\" to angielska interpunkcja. Po polsku bez przecinka.",
      "fix": "Usuń przecinek albo cały łącznik.",
      "bad": "Ponadto, system wysyła przypomnienia.",
      "good": "System wysyła też przypomnienia.",
      "detectable": true
    },
    {
      "id": "pl-declension",
      "name": "Nieodmienione nazwy",
      "category": "polish",
      "section": "11.12",
      "lang": "pl",
      "severity": "ban",
      "why": "Modele uczone na angielskim zostawiają nazwy w mianowniku: „podczas zamach na Donald Trump\".",
      "fix": "Sprawdź przypadek każdej nazwy własnej, liczebniki („dwóch klientów\") i rekcję („używać czegoś\").",
      "bad": "Po rozmowie z Anna Kowalska podpisaliśmy umowę z firma Orlen.",
      "good": "Po rozmowie z Anną Kowalską podpisaliśmy umowę z Orlenem.",
      "detectable": false
    },
    {
      "id": "pl-address-mixing",
      "name": "Mieszana forma adresu",
      "category": "polish",
      "section": "11.13",
      "lang": "pl",
      "severity": "ban",
      "why": "Przeskok z „Sprawdź\" na „Zachęcamy Państwa\" w sąsiednich akapitach.",
      "fix": "Wybierz jedną formę: ty, Państwo albo bezosobową, i trzymaj ją do końca.",
      "bad": "Sprawdź naszą ofertę. Zachęcamy Państwa do kontaktu.",
      "good": "Sprawdź naszą ofertę i napisz do nas.",
      "detectable": true
    },
    {
      "id": "pl-anaphora",
      "name": "Anafora ×3",
      "category": "polish",
      "section": "11.5",
      "lang": "any",
      "severity": "ban",
      "why": "Trzy zdania pod rząd zaczynające się tak samo to retoryczny szablon.",
      "fix": "Połącz dwa z nich albo zacznij inaczej.",
      "bad": "Chcemy rosnąć. Chcemy zatrudniać. Chcemy zmieniać rynek.",
      "good": "W tym roku chcemy zatrudnić dwie osoby do obsługi klienta.",
      "detectable": true
    },
    {
      "id": "pl-title-case",
      "name": "Wielkie Litery W Nagłówkach",
      "category": "polish",
      "section": "11.7",
      "lang": "pl",
      "severity": "ban",
      "why": "Po polsku wielka litera tylko w pierwszym słowie i nazwach własnych.",
      "fix": "„Jak rozpoznać tekst AI\", nie „Jak Rozpoznać Tekst AI\".",
      "bad": "## Jak Rozpoznać Tekst Pisany Przez AI",
      "good": "## Jak rozpoznać tekst pisany przez AI",
      "detectable": true
    }
  ]
}