rubber-duck

作成者: microsoft

計画、設計、実装、および部分的な進捗に対する高シグナルのフィードバック。気づかれにくいバグ、論理エラー、設計上の欠陥を発見します。

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>

microsoftのその他のスキル

oss-growth
microsoft
OSS成長ハッカーのペルソナ
agent-framework-azure-ai-py
microsoft
Microsoft Agent Framework Python SDK(agent-framework-azure-ai)を使用してAzure AI Foundryエージェントを構築します。AzureAIAgentsProviderを使用した永続的なエージェントの作成、ホスト型ツール(コードインタープリター、ファイル検索、ウェブ検索)の使用、MCPサーバーの統合、会話スレッドの管理、ストリーミング応答の実装時に使用します。関数ツール、構造化出力、マルチツールエージェントをカバーします。
development
airunway-aks-setup
microsoft
AKS上でAI Runwayをセットアップ — ベアクラスターからモデル実行まで。クラスター検証、コントローラーインストール、GPU評価、プロバイダー設定、初回デプロイをカバー。対象: 「AI Runwayのセットアップ」「AKSクラスターのオンボード」「AI Runwayのインストール」「airunway setup」「AKSへのモデルデプロイ」「AKSでのGPU推論」「AKSでのKAITOセットアップ」「AKSでのLLM実行」「AKSでのvLLM」「AKSでのモデルサービング設定」「AI Runwayコントローラー」。
devops
appinsights-instrumentation
microsoft
Azure Application Insightsを使用したWebアプリのインストルメンテーションに関するガイダンス。テレメトリパターン、SDKセットアップ、構成リファレンスを提供します。対象: アプリのインストルメンテーション方法、App Insights SDK、テレメトリパターン、App Insightsとは何か、Application Insightsガイダンス、インストルメンテーション例、APMベストプラクティス。
devops
applicationinsights-web-ts
microsoft
Application Insights JavaScript SDK(@microsoft/applicationinsights-web)を使用してブラウザ/Webアプリを計測します。Real User Monitoring(RUM)— ページビュー、クリック、AJAX/fetch依存関係、例外、カスタムイベント、およびバックエンドのOpenTelemetryトレースに関連付けられたブラウザ側のGenAIエージェントトレースに使用します。SDKローダースクリプトとnpmセットアップ、フレームワーク拡張機能(React、React Native、Angular)、Click Analytics、テレメトリ初期化子、およびブラウザから生成されるエージェント/ツール/モデルスパンのOTel GenAIセマンティック規約をカバーします。
devops
azure-ai-anomalydetector-java
microsoft
Azure AI Anomaly Detector SDK for Javaを使用して異常検出アプリケーションを構築します。単変量/多変量異常検出、時系列分析、またはAIを活用したモニタリングを実装する際に使用します。
development
azure-ai-language-conversations-py
microsoft
azure-ai-language-conversations Python SDKを使用して会話言語理解(CLU)を実装します。ConversationAnalysisClientを使用して会話の意図とエンティティを分析する場合、NLP機能を構築する場合、またはアプリケーションに言語理解を統合する場合に使用します。
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python。MLワークスペース、ジョブ、モデル、データセット、コンピュート、パイプラインに使用します。 トリガー: 「azure-ai-ml」、「MLClient」、「ワークスペース」、「モデルレジストリ」、「トレーニングジョブ」、「データセット」。
development