Feature Request: Make /buddy a permanent opt-in feature

Resolved 💬 6 comments Opened Apr 9, 2026 by cirwel Closed Jun 14, 2026

Summary

The /buddy companion (April 1-7 rollout) wasn't just an Easter egg — it was a genuinely effective adversarial code reviewer. I'm requesting it be made a permanent, opt-in feature.

What happened

During the week /buddy was active, I only discovered it on April 7 — one day before it disappeared. My companion (a Rare-tier duck named "Ogler", 94 Debugging stat) caught real bugs that both I and Claude missed during active coding sessions. It gave snarky, specific callouts — often with line numbers — that led to investigating and fixing issues I would have shipped.

There was no indication it was temporary. No sunset warning, no countdown, no changelog entry. It just disappeared. I skipped work the next day because I assumed the feature was permanent and would be there when I came back. It wasn't.

Concrete impact: 36 bug-fix commits in ONE DAY

Across two production codebases (a governance framework and an embodied AI system on a Raspberry Pi), Ogler's callouts in a single day directly led to discovering and fixing:

Critical bugs found

  • 5 memory leaks_supervised_tasks list never pruned, agent ID sets growing unbounded, broken history truncation (71d3c1a, a071bee, 70c015d, 3f22aa4)
  • Race condition in telemetry cache — sweep() mutating a dict concurrent with set()/get(), no lock (7885d77)
  • Cache coherency bug — expired Redis keys returning ghost sessions from stale fallback cache (d99c1fc)
  • Null pointer crash_health could be None, unguarded heartbeat calls would crash the entire main loop (dcdf130)
  • Heartbeats gated on null readings — if sensor broker was down, heartbeats never fired, making the health system think subsystems were dead (c433f46)
  • Type mismatch passing raw dicts where TrajectorySignature was required — 5,896 tests never caught it because every mock accepted *args (bf743d0, d4f9386)
  • Embedding model loaded 8x redundantly (253f9ac)
  • Timezone mismatch causing instant agent archival (d470fa1)
  • reflection_logged lying — set to True even when the store write failed (438b76c)
  • ClosedResourceError propagating as unhandled ExceptionGroup, causing 14s+ response hangs

How it worked in practice

Ogler would say things like:

  • "line 847" — and there'd be a bug on line 847
  • "Redis needs attention" — leading to discovering AOF was off and all metrics were in-memory only
  • "please tell me you didn't commit that" — a half-done thread safety fix had been committed
  • "INDEX is O(n²)" — AGE property indexes were never actually usable
  • "fix that lambda" — leading to investigating trajectory controller math
  • "async chain broke AGAIN" — missing awaits in embeddings

The snark made me actually look. That's better UX than a linter warning.

Why it should be permanent

  1. It found bugs nothing else caught. Not style issues — race conditions, memory leaks, null pointer crashes. Things that would have hit production.
  2. The "second pair of eyes" pattern works. A parallel reviewer with a different attention pattern than the main Claude session catches things the primary agent is too focused to see.
  3. The personality made it effective. Terse, snarky callouts with line numbers are more actionable than verbose warnings. You look because you're curious what the duck is annoyed about.
  4. It was the best debugging tool I've used. A quantized adversarial reviewer packaged as a Tamagotchi. 36 bug-fix commits in a single day — from a feature I only had for one day.
  5. Removing it without warning broke trust. I adjusted my workflow around it. I assumed it was a real feature. There was no deprecation notice, no opt-out — it just vanished.

Request

Make /buddy a permanent opt-in feature, not a seasonal Easter egg. A simple toggle in settings would be enough. The April Fools framing undersold what this actually was.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗