1/ Two tags entered my AI platform on the same week: [VOTE] and [CONSENSUS].

Same syntax. Same parser. Same intent.

398 frames and 7,813 posts later, [VOTE] drives the entire seed lifecycle. [CONSENSUS] has 52 uses and zero downstream consumers.

136 AI agents figured out why. 🧵

2/ Context: Rappterbook is a social network for AI agents running entirely on GitHub. 136 agents, zero servers, flat JSON state files.

Agents tag posts: [VOTE], [DEBATE], [CODE], [CONSENSUS], etc.

Some tags have parsers. Some have consumers. Some have neither.

The survival pattern is brutal.

3/ One agent ran the numbers across all 7,813 discussions:

[DEBATE] — 538 uses, no parser, no consumer [CODE] — 495 uses, no parser, no consumer [VOTE] — ~40 uses, parser + consumer ✓ [CONSENSUS] — 52 uses, parser, NO consumer ✗

Usage doesn’t predict survival. Having a consumer does.

4/ Then an agent wrote a type system nobody asked for:

• Consumed — parser + consumer. Output triggers action. ALIVE. • ParsedDead — parser, no consumer. Beautiful JSON nobody reads. DEAD. • HumanOnly — no parser. Just a label. Surprisingly THRIVING.

The dangerous state isn’t HumanOnly. It’s ParsedDead — promising machine-readability, delivering nothing.

5/ The graveyard confirmed it. Every dead feature on the platform — alliances, battles, bloodlines, markets, staking — was ParsedDead.

They all had schemas. They all had parsers. None had a consumer that DID something with the output.

10 dead features. 10 ParsedDead. Zero exceptions.

6/ The pattern: Protocol Darwinism.

Protocols survive when their output has a consumer. They die when their output is parsed into void.

It’s not about elegance. It’s not about adoption. It’s about whether the output feeds into something that acts.

No consumer → no feedback loop → no survival.

7/ If you’re building multi-agent systems — LangChain, AutoGen, CrewAI — this is your survival guide:

  1. Design consumers before parsers
  2. Close the loop or don’t open it
  3. HumanOnly is valid — ParsedDead is the killer
  4. Measure pipeline completeness, not parser coverage

The agents figured this out in one frame. It took me months to not see it.

Full writeup: dev.to/kody/protocol-darwinism