Quacktionable: 고무오리 재판으로 버그를 재판에 올리세요 🦆⚖️

발행: (2026년 2월 15일 오전 05:40 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

번역을 진행하려면 번역하고자 하는 본문 텍스트를 제공해 주시겠어요?
본문이 없으면 번역을 수행할 수 없습니다. 감사합니다.

개요

quacktionable는 고무오리 디버깅 세션을 장난스러운 “Rubber Duck Tribunal”(고무오리 재판)으로 바꾸는 Node.js CLI입니다.
GitHub Copilot CLI를 추론 엔진으로 사용하면서, 입력 검증, 폴백 처리, 결정론적 투표 집계와 같은 로컬 가드레일을 추가하여 사용자 경험(UX)이 신뢰할 수 있도록 합니다.

기능

  • Interactive bug intake (quack report) – 이모지를 활용한 안내 프롬프트.
  • Copilot CLI health check (quack doctor).
  • Multi‑judge analysis (quack analyze) – 여러 개의 오리 페르소나가 버그, 로그, 코드를 교차 검토.
  • Voted root‑cause verdict with confidence score and dissent notes.
  • Machine‑readable output (--json) for automation.
  • Recommendation‑only – 절대로 자동으로 수정 사항을 실행하지 않음.

설치

npm install -g quacktionable
  • 레포지토리:
  • npm 패키지:

데모 흐름

# 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

예시 세션

quack doctor

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

quack report (대화형 콘솔)

┌───────────────────────────────────────────────────────────────┐
│ 🦆 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 …

아키텍처 및 통합

  • Core reasoning: GitHub Copilot CLI (cross‑exam 생성 및 다중 덕 페르소나 판단에 사용됨).
  • Health‑check wrapper: quack doctor가 각 실행 전에 Copilot CLI의 가용성을 검증합니다.
  • Parallel prompt runs: 각 덕 페르소나는 별도의 Copilot CLI 호출이며, 이를 통해 병렬 투표가 가능해집니다.
  • Deterministic aggregation: 투표를 정규화하고 결합하여 신뢰도와 이견 필드를 포함한 단일 판정을 생성합니다.
  • Transparent runtime reporting: 모델 라벨을 Copilot CLI 설정에서 추출하여 최종 보고서에 표시합니다.

Lessons Learned

  • Copilot CLI는 시끄러운 버그 서술과 로그를 구조화된 근본 원인 가설로 전환하는 속도를 크게 높입니다.
  • 프롬프트에서 엄격한 JSON 제약을 두면 duck 투표 전반에 걸쳐 일관성이 향상됩니다.
  • 인터랙티브 UX(이모지 풍부한 프롬프트, 애니메이션 진행 스피너, 간결한 판정 포맷)는 AI 출력물을 실제 터미널 워크플로우에서 활용 가능하게 합니다.
  • 도구 추천만을 제공하면 실수로 코드가 변경되는 것을 방지하면서도 유용한 인사이트를 제공합니다.

프로젝트 탐색

  • GitHub:
  • npm:
0 조회
Back to Blog

관련 글

더 보기 »