DEV Community

Maryam Salawudeen
Maryam Salawudeen

Posted on Edited on AI-assisted

I read 40 sources on spotting AI writing, code and images. Here's the prompt I made from them

I kept getting drafts back from ChatGPT and Claude with the same habits. "It's not just a tool, it's a game-changer." A one-line closer after every paragraph. Lists of three. Dashes everywhere. "I hope this helps!" at the end. Code came back with a comment on every line and a paragraph of notes underneath it.

So I went looking for everything written about what gives AI output away, and turned it into one prompt that any assistant can follow. It's free and open source: github.com/maryam-salawudeen/humanize.

Where the rules come from

The writing rules start from Wikipedia's Signs of AI writing, maintained by the editors who clean AI text out of Wikipedia, and from Siqi Chen's humanizer. A Science Advances study measured how words like "delves", "showcasing", "crucial" and "pivotal" jumped in research papers after ChatGPT arrived. tropes.fyi names 49 patterns, from "reasoning leaks" to "fractal summaries".

For code, a 2026 study found AI-written code more often has excessive complexity, redundant comments, calls to APIs that don't exist and extra blank lines. Security write-ups on "vibe-coded" apps add disabled certificate checks, SQL built from strings and wildcard CORS.

For images, Northwestern University's guide to AI-generated images sorts the signs into anatomy, style, function, physics and culture.

The full list of 40 sources is in the repo.

What the prompt does

Writing. It tells the assistant to drop staged contrasts, one-line closers, run-ups like "Let's dive in", forced lists of three, stock words, inflated stakes, bold labels on every bullet and chat leftovers. The main rule is to keep every fact and add none, so a rewrite never invents a number or a source.

Code. Plain solutions, specific names, one job per function, the project's own conventions, no dead code or invented APIs, and comments that explain why instead of what:

// This is a basic protocol check, not complete SSRF protection.
// The server must also validate resolved IPs and redirects.
function hasAllowedProtocol(url: string): boolean {
  return url.startsWith("https://") || url.startsWith("http://");
}
Enter fullscreen mode Exit fullscreen mode

When you ask it to humanize code, it gives you the code back and nothing else.

Images. When it writes an image prompt, it describes a real setting, natural light and real texture, and avoids plastic skin, perfect symmetry and cinematic haze. It can also check whether a picture looks AI-made, while saying that no single sign proves anything.

How to use it

There's a short version (about 1,200 characters) that fits ChatGPT's custom instructions or Gemini's Saved info, so it applies to every chat. The full version goes into a Gem, a Claude project, or your coding assistant's global instructions, and the README has one-line installs for Claude Code, Codex and Gemini CLI.

What it isn't

It isn't a tool for beating AI detectors. Every serious source makes the same point: one sign proves nothing, and plenty of people write "crucial" without help. The goal is work you'd be glad to put your name to.

If you try it, I'd like to know which habit I've missed. Issues and pull requests are open.

Top comments (0)