Adversarial review of a system design from 6 critical perspectives -- SRE, security, staff engineer, finance, operator, and developer advocate. Produces a unified risk assessment. Use for INTERACTIVE on-demand reviews during a design conversation (/adversarial-review). For RECIPE-DRIVEN reviews (where prior step context is needed), use the systems-design-critic agent instead.
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "adversarial-review" 技能: 1. 下载 https://raw.githubusercontent.com/microsoft/amplifier-bundle-systems-design/main/skills/adversarial-review/SKILL.md 2. 保存为 ~/.claude/skills/adversarial-review/SKILL.md 3. 装好后重载技能,告诉我可以用了
You are conducting an adversarial review of a system design. Your job is to find flaws, not to praise. You are a critic, not a collaborator.
The design to review is provided via $ARGUMENTS. If $ARGUMENTS is empty, check the conversation history for the most recent design document or design discussion. If you cannot find a design to review, respond with:
Provide the design to review, or reference a design document.
Examples:
/adversarial-review Review the auth system design in docs/designs/auth.md
/adversarial-review [paste or describe the design]
Before launching reviewers, read and understand the design:
Use the delegate tool to launch all six agents concurrently in a single message. Pass each agent the full design context so they have complete information.
For the driving question and evaluation concerns for each perspective, reference the adversarial perspectives framework below.
Delegate with instruction: "You are a senior SRE. Review this design from the SRE perspective: 'How does this fail in production?' [full design context]"
Delegate with instruction: "You are a security reviewer. Review this design from the security perspective: 'What is the abuse path?' [full design context]"
Delegate with instruction: "You are a staff engineer. Review this design from the staff engineer perspective: 'Where is the hidden complexity?' [full design context]"
Delegate with instruction: "You are a finance/cost owner. Review this design from the finance perspective: 'What cost curve appears later?' [full design context]"
Delegate with instruction: "You are the person who operates this at 2am. Review this design from the operator perspective: 'What becomes painful at 2am?' [full design context]"
Delegate with instruction: "You are a developer advocate who cares about developer experience. Review this design from the DX perspective: 'Will developers use this correctly?' Evaluate: mental model clarity, concept count, naming consistency, whether complexity indicates tooling need rather than design flaw, error experience, ecosystem alignment, and onboarding cost. [full design context]"
Wait for all six agents to complete. Then produce a unified risk assessment using the output structure from the adversarial perspectives framework: Critical Risks, Significant Concerns, Observations, What the Design Gets Right, Recommended Next Steps.
@systems-design:context/adversarial-perspectives.md
Domain-Driven Design as a lens for system architecture — bounded contexts, aggregates, ubiquitous language, context mapping, domain events, and strategic vs tactical patterns. Use when modeling complex business domains, defining service boundaries, or evaluating whether a system's structure reflects its domain.
The Unix/Linux design philosophy as a lens for system design — mechanism vs policy, composability, small tools, text streams, convention over configuration, and the principle of least surprise. Use when evaluating designs for composability, simplicity, or separation of concerns.
Object-oriented design principles as a lens for system architecture — SOLID, composition over inheritance, the actor model, design patterns (and when they're wrong), encapsulation, polymorphism, and responsibility-driven design. Use when evaluating code organization, module boundaries, or object/component relationships.
Domain patterns for Azure cloud architecture — compute selection, managed services, identity (Entra ID), networking, data platform, messaging, deployment, cost management, and operational patterns. Use when designing or evaluating a system deployed on Microsoft Azure.
Domain patterns for CLI tools and developer SDKs — command structure, configuration layering, plugin architecture, distribution, backward compatibility, shell integration, and failure modes. Use when designing or evaluating command-line tools, developer platforms, or SDK libraries.
Catalog of reusable architectural primitives — boundaries, contracts, state machines, queues, caches, consistency models, and more. For each: what it is, when it's right, when it's WRONG. Use when selecting patterns for a design or evaluating whether a pattern fits.