Loading...
Loading...
Invoke a Rubber Duck Reviewer subagent to independently critique plans and implementations before proceeding. Use when the agent is about to implement a non-trivial plan (multi-file changes, architectural decisions, security-sensitive logic, database schema changes), after completing a self-contained unit of work (module, endpoint, feature), when stuck or facing repeated failures (same test fails 2+ times, unexpected results), or when the agent wants independent validation of assumptions and design decisions. Triggers on any non-trivial implementation task where independent critique would catch blind spots before they become costly mistakes.
npx skill4agent add jim60105/copilot-prompt rubber-duckreferences/rubber-duck-system-prompt.mdPlatform fallback: If your agent platform does not support binding a separate system prompt to the subagent, send the contents ofas the highest-priority instruction before the review request message.references/rubber-duck-system-prompt.md
## Task
[Copy or precisely summarize the user's original request]
## My Plan / Implementation
[Complete step-by-step plan OR the actual code being reviewed.
Paste real code. Never summarize what the code does — show it.]
## Design Decisions and Assumptions
[Key choices and reasoning:
- Why approach A over approach B?
- Environment assumptions (language version, framework, data shape)?
- Constraints (existing API contracts, upstream/downstream callers)?]
## Specific Questions (optional)
[Focused questions for targeted feedback:
- "Is the error handling complete for the case where X is null?"
- "Is it safe to assume Y will never be called concurrently?"
- "Does this approach handle the edge case where Z is empty?"]| Tier | Action |
|---|---|
| 🔴 Blocking Issues | Stop. Fix before proceeding. |
| 🟡 Non-Blocking Issues | Evaluate. Decide deliberately whether to address or defer. |
| 🟢 Suggestions | Consider. Address if convenient. |
| ✅ Verdict | Read carefully — determines whether to proceed, adjust, or rethink. |
| Anti-pattern | Why it fails |
|---|---|
| One-line summary instead of real code | Cannot review what it cannot see |
| "Review everything" with no context | Unfocused prompts produce unfocused feedback |
| Ignoring 🔴 findings because the fix is hard | Difficulty is not a reason to skip |
| Over-invoking on every small change | Dilutes value; becomes background noise |
| Treating verdict as final approval | It only knows what you told it |
| Summarizing assumptions instead of stating them | Ambiguous assumptions are the top blind spot source |