Quacktionable: Put Your Bug on Trial with a Rubber Duck Tribunal 🦆⚖️

Published: (February 14, 2026 at 03:40 PM EST)
3 min read
Source: Dev.to

Source: Dev.to

Overview

quacktionable is a Node.js CLI that turns a rubber‑duck debugging session into a playful “Rubber Duck Tribunal.”
It uses the GitHub Copilot CLI as the reasoning engine while adding local guardrails (input validation, fallback handling, deterministic vote aggregation) to keep the UX reliable.

Features

  • Interactive bug intake (quack report) – guided prompts with emojis.
  • Copilot CLI health check (quack doctor).
  • Multi‑judge analysis (quack analyze) – several duck personas cross‑examine the bug, logs, and code.
  • Voted root‑cause verdict with confidence score and dissent notes.
  • Machine‑readable output (--json) for automation.
  • Recommendation‑only – never auto‑executes fixes.

Installation

npm install -g quacktionable
  • Repository:
  • npm package:

Demo Flow

# Check Copilot CLI connectivity
quack doctor

# Start the interactive bug‑report intake
quack report

# Run a built‑in example analysis
quack analyze --example

# Analyze a real bug with optional files and JSON output
quack analyze \
  --bug-file examples/bug.txt \
  --log examples/logs.txt \
  --json

Example Sessions

quack doctor

quack doctor 🩺🦆
- cliAvailable: true
- promptRoundTripOk: true
- details: Copilot CLI is online and beak-to-beak communication is healthy.

quack report (interactive console)

┌───────────────────────────────────────────────────────────────┐
│ 🦆 Rubber Duck Tribunal · Interactive Intake Console          │
│ Explain the bug. The duck bench handles the drama.           │
└───────────────────────────────────────────────────────────────┘

⚖️  Court mode: ENABLED
🔍 Evidence mode: TRACKING
🎭 Vibes: dramatic, but factual

1) 📝 Describe the bug in plain language:
2) 📜 Optional log path or raw log line (enter to skip):
3) 📂 Optional code paths (comma‑separated, enter to skip):
4) 🔁 Cross‑exam rounds per duck [2]:
5) 🧾 Output JSON only? [y/N]:

🚀 Launching tribunal proceedings...

quack analyze --example

⠋ Gathering bug clues...
⠸ Asking Copilot for spicy cross‑exam ammo...
⠧ 🦆 Detective Quackson is cross‑examining your theory...
⠇ 🦆 Captain Crashbeard is cross‑examining your theory...
⠏ 🦆 Null Pointer Patty is cross‑examining your theory...
✅ Tribunal complete. Verdict delivered.

🦆⚖️ Rubber Duck Tribunal (Court is now in session)
🎭 Opening statement: no bug survives cross‑examination.
🆔 Session: 5a077c56-b0fe-4f18-a26e-1a7408d56273
🤖 Engine: gpt-5

📝 Bug Tale
- 🐛 Users intermittently get a 500 error when opening profile right after login...

🚨 Suspicious Signals
- 📍 ERROR TypeError: Cannot read properties of undefined (reading 'name')

🗳️ Judge Duck Votes
- 🦆 Detective Quackson: … (92%)
- 🦆 Captain Crashbeard: … (92%)
- 🦆 Null Pointer Patty: … (92%)

🏛️ Final Quackdict
- 🎯 root cause: null‑safety violation around profile access
- 🔥 confidence: 100%
- 🙋 dissent: alternate race‑condition wording
- 🧾 summary: The duck bench quacks in favor of …

Architecture & Integrations

  • Core reasoning: GitHub Copilot CLI (used for cross‑exam generation and multi‑duck persona judgments).
  • Health‑check wrapper: quack doctor validates Copilot CLI availability before each run.
  • Parallel prompt runs: Each duck persona is a separate Copilot CLI invocation, enabling parallel voting.
  • Deterministic aggregation: Votes are normalized and combined to produce a single verdict with confidence and dissent fields.
  • Transparent runtime reporting: Model label is extracted from Copilot CLI configuration and displayed in the final report.

Lessons Learned

  • Copilot CLI dramatically speeds up turning noisy bug narratives and logs into structured root‑cause hypotheses.
  • Strict JSON constraints in prompts improve consistency across duck votes.
  • Interactive UX (emoji‑rich prompts, animated progress spinners, concise verdict formatting) makes AI output usable in real terminal workflows.
  • Keeping the tool recommendation‑only avoids accidental code changes while still providing valuable insight.

Explore the Project

  • GitHub:
  • npm:
0 views
Back to Blog

Related posts

Read more »

🐾GitPet - No more lonely debuging

!Cover image for 🐾GitPet - No more lonely debuginghttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fde...