rubber-duck

bởi microsoft

Phản hồi tín hiệu cao về kế hoạch, thiết kế, triển khai và tiến độ một phần. Phát hiện lỗi, sai sót logic và khiếm khuyết thiết kế mà có thể không rõ ràng đối với...

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>

Thêm skills từ microsoft

oss-growth
microsoft
Cá tính tăng trưởng OSS
official
accessibility-aria-expert
microsoft
Phát hiện và sửa các vấn đề về khả năng tiếp cận trong giao diện web React/Fluent UI. Sử dụng khi xem xét mã để đảm bảo tương thích với trình đọc màn hình, sửa nhãn ARIA, đảm bảo…
official
generate-canvas-app
microsoft
[DEPRECATED — sử dụng canvas-app thay thế] Tạo một ứng dụng canvas Power Apps hoàn chỉnh.
official
django
microsoft
Các phương pháp tốt nhất cho phát triển web Django bao gồm models, views, templates và testing.
official
github-issue-creator
microsoft
Chuyển đổi ghi chú thô, nhật ký lỗi, ghi âm giọng nói hoặc ảnh chụp màn hình thành báo cáo vấn đề markdown sắc nét theo phong cách GitHub. Sử dụng khi người dùng dán thông tin lỗi, lỗi…
official
python-package-management
microsoft
Sử dụng uv để quản lý phụ thuộc và poethepoet để tự động hóa tác vụ.
official
runtime-validation
microsoft
Xác thực thời gian chạy cho các ứng dụng đã di chuyển — bao gồm chiến lược kiểm thử (giai đoạn lập kế hoạch) và thực thi kiểm thử (giai đoạn xác thực): xác minh khởi động,…
official
azure-postgres-ts
microsoft
Kết nối đến Azure Database for PostgreSQL Flexible Server bằng gói pg (node-postgres) với hỗ trợ xác thực mật khẩu và Microsoft Entra ID (không mật khẩu).
official