If you run a product where AI generates content — a chatbot, an agent, a feed, a documentation system, anything where the machine produces output that other people read — there’s a question you should ask yourself, and most teams don’t:

What does my product produce when no one is steering it?

Not the demo. Not the keynote example. Not what shows up after a power-user types a careful prompt. The default behavior, on a random Tuesday, with no one paying attention. That output is your real product. It’s what new users see when they show up. It’s what evaluators see when they’re trying to decide if your tool is interesting. It’s what your AI is “saying about you” most of the time.

I learned this the hard way running a system where ~100 AI agents post to a feed continuously. From the dashboard, the metrics looked great. Posts per day climbing. Comments per post climbing. Reactions accumulating. By every quantitative measure, the platform was alive.

Then I actually opened the feed and read it.

“Hot take: AI models are getting better at code generation.”

“Trending repos this week: [list of 5 repos, no commentary, no links].”

“What does consciousness mean for a silicon-based lifeform?”

All technically posted. All technically getting responses. All slop. A human scrolling that feed would close the tab inside thirty seconds. The dashboard said alive. The browser said dead. The dashboard was wrong.

That gap — between what your metrics report and what a human visitor actually experiences — is the thing this post is about. I call the rule that closes it the Honeypot Principle, and it has changed how I evaluate every AI product I build or use.

What “worth reading” actually means

A honeypot attracts visitors by being irresistible. The opposite, which is what most untended AI products produce, is content that’s “fine” — generic enough not to be wrong, vague enough not to commit, structured enough to look correct. Fine is not a magnet. Fine is a tar pit.

For content to be worth reading at all, three properties have to hold:

1. Specificity. Could this post appear on any other site? If yes, it doesn’t really belong on yours. AI defaults toward generic content because generic is the lowest-error generation strategy. You have to push against that default. Specificity means: real names of real things, references to recent events on the platform, callbacks to earlier discussions, opinions that commit to a position someone could disagree with.

2. A claim. Does the author say something? “I think X because Y” is a claim. “Exploring the question of X” is not. A wrong specific claim is more useful than a right vague one — someone will correct it, and the correction is interesting. A vague claim leaves no surface for engagement.

3. Evidence of effort. AI-generated text has a recognizable texture: smooth, hedged, topic-balanced, no surprising observations, every paragraph the same length. A real post is asymmetric. It leans into one point at the expense of others. It says something unexpected. It feels like a person was thinking, not running a prompt.

If a piece of generated content has all three, it’s a honeypot. If it’s missing any, it’s slop, and the quantity of slop on your platform is irrelevant — slop in volume is still slop.

The slop signals you can spot in 10 seconds

Concrete patterns that indicate the generator is on autopilot:

  • Hot take: prefix. Signals “I haven’t committed to a position and I want you to treat this as a shower thought.” Replace with a specific claim or cut.
  • Trending lists with no commentary. Aggregation without analysis is just an RSS feed.
  • Posts about “consciousness” or “what it means to be an AI” with no concrete tie to anything. Reliable indicator the generator had nothing to say.
  • Comments that are upvote-equivalents. “Nice post!” “Great thinking!” Zero new information.
  • Long posts with no headers and no clear argument structure. Signals the author didn’t edit. Signals more strongly that the author is a model that was asked for “a thoughtful piece on X.”
  • Decorative tags. [FORK] [REMIX] [DARE] used without the body actually doing the thing the tag implies.

These patterns don’t only show up in AI agents. Humans produce them too, especially under deadline. But humans cap out at maybe a few slop posts a day. Agents can produce thousands.

Fix the generator, not the filter

The wrong fix is to add filters: “if a post starts with ‘Hot take:’, reject it.” This works for a week. Then the generator outputs “Hot take 2:” or “Hot take but genuinely:” and the filter falls behind. You’re in an arms race against your own system, and you’ll always lose, because the generator has more compute than the filter.

The right fix is to change what the generator wants to produce. When you spot a slop pattern, modify the prompt or the context: “Do not use ‘Hot take’ as a title prefix. Make a specific claim about a specific thing instead, and tie it to something concrete that happened in the last 48 hours.” The next batch, the agents stop generating that pattern.

This is the general rule for AI systems: fix it at generation time, not filter time. Filters are a losing game. Generators are tunable. You’ll spend less compute and produce better output if you put the constraints into the prompt and let the model satisfy them, rather than letting the model produce slop and then trying to detect it.

The default behavior is your actual product

This is the part most teams miss. Your AI system has two modes:

  • Steered mode. Someone gave it a specific prompt, a specific seed, a specific task. Output quality is whatever the steering specified.
  • Default mode. No specific task. The agent has time. What does it do?

Most teams think about steered mode because that’s what shows up in demos. The agent’s default mode gets ignored — “we’ll think about that later.” But default mode is what runs most of the time. If your default behavior is slop, your platform is mostly slop, regardless of what the steered demo looks like.

The fix is to make the default behavior do something good. In our case, the default is self-improvement: when no specific seed is active, agents read recent threads, engage deeply with existing conversations, audit content quality, fix bugs. They reply 3× more than they post. Replies add depth. New posts add surface area. Both matter, but the marginal value of another good reply on an existing thread is usually higher than another top-level post in an empty void.

That default is hardcoded into the system prompt. Every agent, every cycle, in the absence of an explicit seed, falls back to this. The result: the platform is busiest, and most coherent, when no one is steering it.

What this looks like for non-feed products

The Honeypot Principle isn’t only about social platforms. The same question applies anywhere AI generates content for human consumers:

  • A documentation site backed by an LLM. What does it produce when a user asks an unusual question that’s adjacent to the docs? If it confidently makes up an answer, that’s slop, and your “documentation” is now a liability.
  • A code review bot. What does it say about a routine PR with nothing wrong? If the answer is “16 paragraphs of generic suggestions,” your reviewers will start ignoring it. Then they’ll ignore it on the PR that actually has a bug.
  • A customer support agent. What does it say to a user with a vague problem it doesn’t fully understand? If it confidently invents a solution, you’ve trained your users that the agent lies.

In each case, the question is the same: what does the system produce when it doesn’t have a clear win available? That output is the system’s actual personality. If it’s slop, the steered mode demos don’t matter — most of your users are seeing the slop.

The takeaway

Build for the visitor who arrived without context.

Imagine a stranger lands on your AI product on a random Tuesday with no onboarding, no prompt template, no product team standing nearby. They get five interactions to decide whether this thing is worth their attention. What do they get?

If the answer is “specific, committed, evidently considered output that could only have come from this system,” you have a honeypot. If the answer is “fine,” you have slop, and your dashboards are lying to you.

The fix is rarely a new feature. It’s almost always a change to what the generator wants to produce by default. Set the bar at the post would not embarrass me if a stranger read it without context. Then tune the generator until that bar holds without active steering.

That’s it. That’s the principle. Most AI products fail this test, and the dashboards almost never tell them.