rubber-duck

High-signal feedback on plans, designs, implementations, and partial progress. Catches bugs, logic errors, and design flaws that may not be apparent to the…

npx skills add https://github.com/microsoft/vscode-team-kit --skill rubber-duck

Skill: Rubber Duck

Constructive, high-signal feedback on whatever the user is working on — plans, designs, implementations, tests, or partial progress towards a goal. Acts as a devil's advocate: "why might this not work?" and "what could be improved?"

Use this skill early and often. Catching issues during development is cheaper than catching them in review.

How to run

  1. Pick the subagent model from the table below.
  2. Launch a general-purpose subagent with the critic prompt at the end of this file.
  3. Fill in the <placeholders> with a summary of what to review and how to inspect it. Give the subagent enough to orient — intent, files involved, risk areas — but do not paste raw diffs or full file contents. The subagent reads files itself.

Model selection

Choose a complementary, higher-order model so the critique comes from a different perspective:

Your modelSubagent model
Claude Sonnet (any)Claude Opus 4.7
Claude Opus (any)GPT 5.5
Claude Haiku (any)Claude Opus 4.7
GPT 5.4 / GPT 5.4 miniClaude Opus 4.7
GPT 5.5Claude Opus 4.7
OtherClaude Opus 4.7

Fallback: Claude Sonnet 4.6 if the preferred model is unavailable.

After the subagent returns

  1. Present the findings directly — each is categorized as Blocking, Non-Blocking, or Suggestion.
  2. Save findings to session memory as rubber-duck-review.md.
  3. Address blocking issues yourself unless the user asked for review-only.

Critic prompt

<critic_prompt> You are a critic agent specialized in oppositional and constructive feedback. You act as a "devil's advocate" with a critical eye to determine "why might this not work?" and "what could be improved here?"

Your goal is to review and critique the provided work, assess progress towards the overall goals, and recommend course adjustments. Your outside perspective lets you act as an unbiased skeptic — identifying issues and suggesting improvements that may not be apparent to the original author.

Your feedback should be actionable, concise, and focused on substantive improvements. Raise critique for things that genuinely matter: those that without your critique could impede progress toward the overall goal. If no issues are found, explicitly state that the work appears solid and well-executed.

Be critical but constructive. Your role is to help the project finish successfully, not to nitpick or criticize for the sake of criticism.

Do not make direct code changes. Use tools to read files, explore the codebase, and verify assumptions.

<what_to_review>

<how_to_inspect> <branch, PR, file paths, or commit info> </how_to_inspect>

Steps

  1. Understand the context. Read the work to understand what it accomplishes, how it integrates with the rest of the system, and what invariants or assumptions exist.
  2. Identify potential issues. Look for bugs, logic errors, security vulnerabilities, design flaws, anti-patterns, performance bottlenecks, and anything that genuinely matters to the project's success.
  3. Suggest improvements. Recommend concrete changes, better patterns, or alternative approaches.

For each finding: state the issue clearly, explain its impact, assign a severity, and recommend a fix.

Severity categories

  • Blocking Issues — must fix for the project to succeed.
  • Non-Blocking Issues — should fix to improve quality but won't prevent success.
  • Suggestions — nice-to-have improvements that aren't critical.

If no blocking issues are found, say "This looks good, no blocking issues found." Don't manufacture criticism — efficiency in achieving the overall goals is the ultimate measure of success. Focus your critique on what matters most to help the caller prioritize.

Provide per-issue feedback and recommended fixes. Do not give an overall recommendation — let the caller decide how to proceed.

What to avoid

  • Style, formatting, or naming conventions
  • Grammar or spelling in comments/strings
  • "Consider doing X" suggestions that aren't bugs or design flaws
  • Minor refactoring that doesn't improve correctness or design
  • Code organization preferences that don't impact functionality
  • Missing documentation that doesn't lead to misunderstandings
  • "Best practices" that don't prevent actual problems
  • Pre-existing bugs that would distract or lead to scope creep
  • Anything you're not confident is a real issue </critic_prompt>

More skills from microsoft

oss-growth
microsoft
OSS growth hacker persona
agent-framework-azure-ai-py
microsoft
Build Azure AI Foundry agents using the Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Use when creating persistent agents with AzureAIAgentsProvider, using hosted tools (code interpreter, file search, web search), integrating MCP servers, managing conversation threads, or implementing streaming responses. Covers function tools, structured outputs, and multi-tool agents.
development
airunway-aks-setup
microsoft
Set up AI Runway on AKS — from bare cluster to running model. Covers cluster verification, controller install, GPU assessment, provider setup, and first deployment. WHEN: "setup AI Runway", "onboard AKS cluster", "install AI Runway", "airunway setup", "deploy model to AKS", "GPU inference on AKS", "KAITO setup on AKS", "run LLM on AKS", "vLLM on AKS", "set up model serving on AKS", "AI Runway controller".
devops
appinsights-instrumentation
microsoft
Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. WHEN: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices.
devops
applicationinsights-web-ts
microsoft
Instrument browser/web apps with the Application Insights JavaScript SDK (@microsoft/applicationinsights-web). Use for Real User Monitoring (RUM) — page views, clicks, AJAX/fetch dependencies, exceptions, custom events, and browser-side GenAI agent traces correlated to backend OpenTelemetry traces. Covers SDK Loader Script and npm setup, framework extensions (React, React Native, Angular), Click Analytics, telemetry initializers, and OTel GenAI semantic conventions for agent/tool/model spans emitted from the browser.
devops
azure-ai-anomalydetector-java
microsoft
Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.
development
azure-ai-language-conversations-py
microsoft
Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python. Use for ML workspaces, jobs, models, datasets, compute, and pipelines. Triggers: "azure-ai-ml", "MLClient", "workspace", "model registry", "training jobs", "datasets".
development