quacktionable
v0.1.0
Published
Rubber Duck Tribunal: cross-examine bugs and vote on root cause.
Downloads
99
Maintainers
Readme

quacktionable is a playful terminal tool that helps you explain a bug, survive cross-examination by judge ducks, and get a voted root-cause verdict.
It is built around GitHub Copilot CLI as the reasoning engine.
Why this is useful
Most debugging stalls because we lock onto our first theory too early.
quacktionable forces structured skepticism:
- take your bug narrative,
- challenge it from multiple technical personas,
- and produce a final, confidence-scored quackdict.
Features
- Interactive intake mode with branded splash UI:
quack report - Fast sample run:
quack analyze --example - Flexible inputs: inline text, bug file, logs, and code paths
- Live terminal progress animation while the tribunal is thinking
- Terminal-friendly and JSON output modes
- Copilot CLI health check with
quack doctor
Requirements
- Node.js
>=18.18 - GitHub Copilot CLI installed and authenticated
Install
npm install -g quacktionableIf you prefer npx (no global install):
npx quacktionable doctorQuick start
quack doctor
quack reportOr run a one-command demo:
quack analyze --exampleLocal development
npm install
npm run build
npm linkCommand reference
quack doctor— verifies Copilot CLI availability and prompt roundtripquack report— interactive guided bug intake + analysisquack analyze --example— run with built-in sample bug/logsquack analyze --bug "..." --log ... --path "a.ts,b.ts"— explicit inputsquack analyze --bug-file bug.txt --log app.log— file-first workflowquack analyze --json— JSON output for scripts/automation
Analyze flags
--example: auto-loadsexamples/bug.txtandexamples/logs.txt--bug: bug narrative text--bug-file: path to bug narrative file--log: raw log text or a log file path--paths/--path: comma-separated code paths for extra context--rounds: tribunal rounds per duck (1-5, default 2)--json: emit machine-readable JSON only
What users see in terminal
🦆⚖️ 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...
🗳️ Judge Duck Votes
- 🦆 Detective Quackson: ...
🏛️ Final Quackdict
- 🎯 root cause: ...
- 🔥 confidence: 92%Architecture
- Input parsing (
--bug,--bug-file, stdin,--log,--path[s]) - Evidence bundling + signal extraction from logs
- Copilot CLI cross-exam prompt + per-duck judgment prompts
- Vote aggregation and confidence scoring
- Pretty terminal renderer + JSON renderer
Development
npm run lint
npm run build
npm run test