# Rubber Duck

Adversarial "rubber duck" review that turns explaining-out-loud into a hallucination...

- Repository: https://github.com/kirodotdev/KiroCrew (4711 stars)
- Category: Design
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kirodotdev/KiroCrew --skill rubber-duck -g -a claude-code -y`
Codex: `npx skills add kirodotdev/KiroCrew --skill rubber-duck -g -a codex -y`
Cursor: `npx skills add kirodotdev/KiroCrew --skill rubber-duck -g -a cursor -y`
Gemini CLI: `npx skills add kirodotdev/KiroCrew --skill rubber-duck -g -a gemini-cli -y`

## Description

Adversarial "rubber duck" review that turns explaining-out-loud into a hallucination check. The main session is the PRESENTER (it did the work, a design doc, investigation, or analysis, and holds the real reasoning) and reconstructs the topic to a LISTENER, a spawned subagent pinned to a DIFFERENT-vendor model that has NOT seen the reasoning and interrogates it adversarially, hunting inconsistencies, gaps, unsupported magnitudes, and claims stated as fact but actually inferred. Goal, artifacts that are complete, gaps that are honest, findings that are truthful. Triggers include "rubber duck this", "rubber duck review", "explain this to a skeptic", "reconcile my findings", "is my doc honest".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Rubber Duck Review

## Overview

The classic debugging trope, aimed at hallucination. The **main session is the
Presenter**, it did the work and holds the real reasoning (including the hedges it
never wrote down). It reconstructs the topic *out loud, in its own words*, to a
**Listener**: a spawned subagent pinned to a **different-vendor** model that has NOT
seen the reasoning and interrogates it adversarially. Two forces do the work:

1. **The Feynman effect**, reconstructing the argument from scratch surfaces the
   Presenter's *own* hand-waving before the Listener even replies.
2. **An unstaked skeptic**, the Listener has no investment in the conclusion, so it
   catches what the artifact's own self-review rationalized past.

This is a **dialogue**, not a static-artifact review: the Presenter reconstructs the
argument live, and the divergence between the reconstruction and the written artifact
is itself a finding.

## When to use / when NOT

**Use** before shipping a findings doc, design, RCA, or investigation you want to be
honest, anything where a "confirmed" might be hiding an unproven leap, or a magnitude
might be hand-waved. **Do NOT use** for simple lookups or routine turns: it costs one+
extra model run per round *and* real Presenter effort. A deliberate, occasional move.

## Roles

The rest: https://github.com/kirodotdev/KiroCrew/blob/HEAD/skills/rubber-duck/SKILL.md
