Vale CMS Need more than a rule playground? Explore
Package Explorer

ai-tells

Flags the fingerprints of AI-written prose, with rule messages that name the fix rather than only the phrase.

Source style

Getting started

Add it to your .vale.ini, then run vale sync.

Packages = ai-tells

[*.md]
BasedOnStyles = Vale, ai-tells

Rules 107

107 error
  • ai-tells.AbsoluteAssertions error existence

    AI overreach: '%s'. Verify this claim or soften it.

  • ai-tells.AffirmativeFormulas error existence

    AI affirmation: '%s'. Cut the flourish and state the point plainly.

  • ai-tells.AIAdjectiveNounPairs error sequence

    AI adjective-noun pair: '%s %s'. Use concrete description instead.

  • ai-tells.AICompoundPhrases error existence

    AI fingerprint: '%s'. Rewrite with concrete specifics instead of this clichéd phrase.

  • ai-tells.AnnouncementHeadings error existence scope: heading

    AI announcement heading: '%s'. Cut the heading or rename it to the topic.

  • ai-tells.AnthropomorphicCognition error existence

    AI anthropomorphism: '%s'. State what the tool checks or produces. Disable this rule for prose about people.

  • ai-tells.AnthropomorphicJustification error existence

    AI cliché: '%s'. Say what you mean directly.

  • ai-tells.CataphoricForecasting error existence

    AI numbered lead-in: '%s'. Present the items or the measured figures directly instead of leading with a count.

  • ai-tells.ClosingPleasantries error existence

    AI closing: '%s'. Delete it and end with your actual content.

  • ai-tells.ColloquialAssessments error existence

    AI colloquial assessment: '%s'. State the assessment directly.

  • ai-tells.ColonUsage error existence scope: ~heading

    AI punctuation: '%s'. Lowercase the word after the colon unless it is a proper noun.

  • ai-tells.ConclusionMarkers error existence

    AI conclusion: '%s'. Delete this and end on your final point.

  • ai-tells.ContrastiveFormulas error existence

    AI contrast: '%s'. State the positive claim directly without the 'not X, but Y' formula.

  • ai-tells.ContrastiveNegation error existence

    AI contrast by negation: '%s'. State the positive directly without the trailing negation.

  • ai-tells.DefensiveHedges error existence

    AI defensive hedge: '%s'. State your point directly without pre-defending it.

  • ai-tells.DespiteChallenges error existence

    AI despite-formula: '%s'. Engage with the challenges substantively or remove the hedge.

  • ai-tells.DoubleHyphen error existence

    AI punctuation: '%s'. Backtick it if it is a CLI flag or literal, or use a real em dash for punctuation.

  • ai-tells.EmDashUsage error existence

    AI punctuation: em-dash detected. Use a comma, period, or parentheses instead.

  • ai-tells.EmphaticCopula error existence scope: raw

    AI emphasis: '%s'. Remove the italics. Emphasizing a common word rarely adds meaning.

  • ai-tells.EnforcementMetaphors error existence

    AI enforcement metaphor: '%s'. Say what the check refuses or allows. Disable this rule for security or law-enforcement prose.

  • ai-tells.EvasionMetaphors error existence

    AI evasion metaphor: '%s'. Name what the check missed and why.

  • ai-tells.ExplainerHeadings error existence scope: heading

    AI explainer heading: '%s'. Name what you're explaining instead.

  • ai-tells.ExplainerLeads error existence scope: ~heading

    AI explainer lead: '%s'. State the point directly instead of announcing it.

  • ai-tells.FalseBalance error existence

    AI evasion: '%s'. Take a clear position or remove the hedge.

  • ai-tells.FalseExclusivity error existence

    AI false exclusivity: '%s'. State the point directly without claiming insider knowledge.

  • ai-tells.FigurativeBreeds error existence

    AI overused verb: '%s'. Say the one causes the other. Disable this rule for husbandry or biology prose.

  • ai-tells.FigurativeCarries error existence

    AI overused verb: '%s'. Name what it contains or entails directly. Disable this rule for freight or logistics prose.

  • ai-tells.FigurativeCasts error existence

    AI overused verb: '%s'. State the doubt or the effect directly. Disable this rule for fishing, metalwork, or theater prose.

  • ai-tells.FigurativeClears error existence

    AI hurdle metaphor: '%s'. Say the check passed. Disable this rule for athletics prose.

  • ai-tells.FigurativeDemands error existence

    AI overused verb: '%s'. Say the work requires it. Disable this rule for labor or economics prose.

  • ai-tells.FigurativeDisguises error existence

    AI disguise metaphor: '%s'. Name what the thing is, then say how it differs from what it resembles. Disable this rule for security, forensics, or costume prose.

  • ai-tells.FigurativeDraws error existence

    AI overused verb: '%s'. Name the source or the comparison directly. Disable this rule for art or card-game prose.

  • ai-tells.FigurativeFalls error existence

    AI overused verb: '%s'. Name the shortfall or the membership directly. Disable this rule for gravity or weather prose.

  • ai-tells.FigurativeFires error existence

    AI overused verb: '%s'. Say the rule matches or reports. Disable this rule for firearms or ceramics prose.

  • ai-tells.FigurativeHolds error existence

    AI overused verb: '%s'. State the comparison or the claim directly. Disable this rule for legal or wrestling prose.

  • ai-tells.FigurativeIdioms error existence

    AI idiom: '%s'. State the literal outcome instead.

  • ai-tells.FigurativeLands error existence

    AI overused verb: '%s'. Name the literal action: is merged or is routed to. Disable this rule for aviation or nature prose.

  • ai-tells.FigurativeLends error existence

    AI overused verb: '%s'. State what it adds or enables directly. Disable this rule for library or finance prose.

  • ai-tells.FigurativeLives error existence

    AI overused verb: '%s'. Say where the item is defined or stored. Disable this rule for biography or housing prose.

  • ai-tells.FigurativeLoud error existence

    AI overused word: '%s'. Name the actual behavior instead of calling emphasis volume. Disable this rule for prose about sound.

  • ai-tells.FigurativeOwns error existence

    AI ownership metaphor: '%s'. Name the file that defines it or the tool that writes it. Disable this rule for concurrency or memory prose.

  • ai-tells.FigurativePays error existence

    AI money metaphor: '%s'. Name the plain benefit or cost. Disable this rule for finance or commerce prose.

  • ai-tells.FigurativeQuantities error existence

    AI quantity metaphor: '%s'. Give the count, or write 'a few' or 'many'.

  • ai-tells.FigurativeQuiet error existence

    AI overused word: '%s'. Name the actual behavior instead of calling inaction silence. Disable this rule for prose about sound.

  • ai-tells.FigurativeReaches error existence

    AI overused verb: '%s'. Say uses or resorts to instead. Disable this rule for sports or robotics prose.

  • ai-tells.FigurativeRides error existence

    AI overused verb: '%s'. Name the dependency or the mechanism directly. Disable this rule for transit or equestrian prose.

  • ai-tells.FigurativeRuns error existence

    AI overused verb: '%s'. Name the actual behavior. Disable this rule for athletics or plumbing prose.

  • ai-tells.FigurativeSees error existence

    AI overused verb: '%s'. Say who uses it or what changed. Disable this rule for prose about eyesight.

  • ai-tells.FigurativeSettles error existence

    AI settlement metaphor: '%s'. State the conclusion and the evidence, or name the stable state. Disable this rule for legal or geology prose.

  • ai-tells.FigurativeSits error existence

    AI overused verb: '%s'. Name the literal relation: is at or rests with. Disable this rule for furniture or geography prose.

  • ai-tells.FigurativeStays error existence

    AI overused verb: '%s'. Say the item is unchanged, or name what it avoids. Disable this rule for lodging or travel prose.

  • ai-tells.FigurativeStrikes error existence

    AI overused verb: '%s'. State the effect or the tradeoff directly. Disable this rule for labor or percussion prose.

  • ai-tells.FigurativeSurfaces error existence

    AI discovery metaphor: '%s'. Say what reported the problem and when. Disable this rule for marine or graphics prose.

  • ai-tells.FigurativeSweeps error existence

    AI overused verb: '%s'. Name the literal action: is removed or is replaced. Disable this rule for housekeeping or weather prose.

  • ai-tells.FigurativeTravels error existence

    AI overused verb: '%s'. Name the literal movement: is sent or is copied. Disable this rule for transit or physics prose.

  • ai-tells.FigurativeTrips error existence

    AI overused verb: '%s'. Say the text matches the check. Disable this rule for electrical or hiking prose.

  • ai-tells.FigurativeWins error existence

    AI overused verb: '%s'. State the benefit or the outcome directly. Disable this rule for sports or gaming prose.

  • ai-tells.FillerIntensifier error existence

    AI intensifier: '%s'. Delete the intensifier. The determiner already states the count.

  • ai-tells.FillerPhrases error existence

    AI filler: '%s'. Delete this phrase. It adds nothing.

  • ai-tells.FormalRegister error existence

    AI formalism: '%s'. Use a plainer everyday word (e.g., 'use', 'help', 'start').

  • ai-tells.FormalTransitions error existence

    AI transition: '%s'. Delete it, or use a simpler connector like 'and', 'but', or 'so'.

  • ai-tells.GrowthMetaphors error existence

    AI growth metaphor: '%s'. Say what literally happens, or disable this rule for medical or nature writing.

  • ai-tells.HedgingPhrases error existence

    AI hedge: '%s'. Delete this throat-clearing and state your point directly.

  • ai-tells.HollowAcknowledgment error existence

    AI hollow acknowledgment: '%s'. Resolve the thing you just named or cut the clause.

  • ai-tells.HouseStyle error substitution

    AI house compound: use %s instead of '%s'.

  • ai-tells.IncompleteComparison error existence

    AI incomplete comparison: '%s'. Complete it with 'than' and the baseline.

  • ai-tells.JourneyMetaphors error existence

    AI journey metaphor: '%s'. Say what literally happened and what the next step is. Disable this rule for travel writing.

  • ai-tells.LabelAndExplain error existence scope: ~heading

    AI label-and-explain: '%s'. Fold the noun-phrase label into the sentence it introduces.

  • ai-tells.ListIntroductions error existence

    AI list intro: '%s'. Skip the announcement and present the content directly.

  • ai-tells.MarketingHeadings error existence scope: heading

    AI marketing heading: '%s'. Strip the puffery and name the topic plainly.

  • ai-tells.Metacommentary error existence scope: raw

    AI metacommentary: '%s'. Delete it or replace it with substantive content.

  • ai-tells.MicDrop error existence

    AI mic-drop: '%s'. Integrate the point into the surrounding text or cut it.

  • ai-tells.MicDropHeadings error existence scope: heading

    AI mic-drop: '%s'. Use a descriptive heading instead.

  • ai-tells.NarrativePivots error existence

    AI narrative pivot: '%s'. State your point directly.

  • ai-tells.NegatedObject error existence

    AI stilted negation: '%s'. Negate the verb with 'doesn't' instead of shifting 'no' onto the object.

  • ai-tells.NegatedSubject error existence

    AI negated subject: '%s'. Name who does what: 'you don't need to configure anything' instead of announcing an absence.

  • ai-tells.NounString error sequence

    AI noun string: '%[2]s %[3]s %[4]s %[5]s'. Rewrite the stack as a phrase that shows how the nouns relate.

  • ai-tells.OpeningCliches error existence

    AI opening: '%s'. Start with your actual point instead of this generic lead-in.

  • ai-tells.OrganicConsequence error existence

    AI inevitability: '%s'. Say the choice was designed that way.

  • ai-tells.OverusedVocabulary error existence

    AI vocabulary: '%s'. Replace with a more specific or common word.

  • ai-tells.OverusedVocabularyVerbs error sequence

    AI vocabulary (verb form): '%s'. Replace with a direct verb.

  • ai-tells.ParallelStaccato error existence

    AI staccato: '%s'. Combine these clipped parallel sentences or vary the structure.

  • ai-tells.ParticipialPadding error existence

    AI participial padding: '%s'. Delete it or make the point concrete.

  • ai-tells.PromotionalPuffery error existence

    AI puffery: '%s'. Use neutral, specific language.

  • ai-tells.RedundantPrecaution error existence

    AI cliché: '%s'. Name the specific safeguard or cut the phrase.

  • ai-tells.ResonateOveruse error existence

    AI overused verb: '%s'. Name what connects and why, or disable this rule for physics or audio writing.

  • ai-tells.RestatementMarkers error existence

    AI restatement: '%s'. Delete it and trust your original phrasing.

  • ai-tells.RhetoricalDevices error existence

    AI rhetoric: '%s'. Remove it or rephrase as a plain statement.

  • ai-tells.RhetoricalSelfAnswer error existence scope: raw

    AI rhetorical self-answer: '%s'. State the point directly instead of posing and answering your own question.

  • ai-tells.SelfReference error existence

    AI cross-reference: '%s'. Rewrite the passage to work without the cross-reference.

  • ai-tells.SemicolonUsage error existence

    AI punctuation: '%s'. Replace the semicolon with a period or two sentences.

  • ai-tells.SequencingMarkers error existence

    AI sequencing: '%s'. Use natural transitions or write an actual list.

  • ai-tells.ServesAsDodge error existence

    AI copula dodge: '%s'. Use 'is' or 'are' instead of this inflated construction.

  • ai-tells.ShipOveruse error existence

    AI overused word: '%s'. Name the specific action or object. Disable this rule for maritime or logistics writing.

  • ai-tells.StackedAnaphora error existence

    AI anaphora: '%s'. Vary the sentence openings or combine into one statement.

  • ai-tells.StackedHedges error existence

    AI stacked hedge: '%s'. Drop one hedge, or give a number instead.

  • ai-tells.StrategyBuzzwords error existence

    AI strategy buzzword: '%s'. Describe the actual mechanism or advantage plainly.

  • ai-tells.StructureAnnouncements error existence

    AI structure announcement: '%s'. Present the content instead of narrating that you're about to.

  • ai-tells.SycophancyMarkers error existence

    AI sycophancy: '%s'. Delete this. It sounds robotic and insincere.

  • ai-tells.UniversalObject error existence

    AI totality claim: '%s'. Say which cases were checked, or drop the quantifier.

  • ai-tells.UniversalSubject error existence

    AI blanket claim: '%s'. Say which cases were checked, or drop the quantifier.

  • ai-tells.UnpackExplore error existence

    AI explainer prompt: '%s'. Explain it directly instead of announcing it.

  • ai-tells.UrgencyInflation error existence

    AI urgency: '%s'. Delete it or show the stakes concretely.

  • ai-tells.VagueAttributions error existence

    AI vague attribution: '%s'. Name the specific source or delete the claim.

  • ai-tells.VerbTricolon error existence

    AI tricolon: '%s'. Exactly three parallel verbs in series. Restructure or vary the count.

  • ai-tells.VerbTricolonDensity error occurrence scope: paragraph

    AI tricolon: multiple verb tricolons in one paragraph (found %d). Rewrite some with two or four items.

  • ai-tells.WrapUpHeadings error existence scope: heading

    AI wrap-up heading: '%s'. Delete the section or rename the heading to the topic.