agentleFS
robissonrobisson/build-like-amazon-agent-skills/skills/design-review/SKILL.md

design-review

Skill16 starsChanged 39 days agoMITView on GitHub

Review a technical design before specs or implementation. Evaluate problem clarity, requirements, alternatives, trade-offs, architecture, dependency behavior, security, operations, cost, testability, and simplicity.

155 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use project-stage-detect, team-audio and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • CoralGameSkill

    project-stage-detect

    Automatically analyze project state, detect stage, identify gaps, and recommend next steps based on existing artifacts.

    Also in 16 projects that use this

  • CoralGameSkill

    team-audio

    Orchestrate audio team: audio-director + sound-designer + technical-artist + gameplay-programmer for full audio pipeline from direction to implementation.

    Also in 13 projects that use this

  • julianoczkowskiSkill

    brief-to-tasks

    Break a design brief into an ordered checklist of independently buildable tasks using vertical slices. Saves as a markdown checklist. Use when user wants to break down work, create tasks from a brief, plan implementation order, or mentions "tasks" or "breakdown".

    Also in 7 projects that use this

  • lilangMaxSkill

    asset-spec

    Generate per-asset visual specifications and AI generation prompts from GDDs, level docs, or character profiles. Produces structured spec files and updates the master asset manifest. Run after art bible and GDD/level design are approved, before production begins.

    Also in 10 projects that use this

  • lilangMaxSkill

    create-control-manifest

    After architecture is complete, produces a flat actionable rules sheet for programmers — what you must do, what you must never do, per system and per layer. Extracted from all Accepted ADRs, technical preferences, and engine reference docs. More immediately actionable than ADRs (which explain why).

    Also in 10 projects that use this

  • +4 more from CoralGame
  • +3 more from lilangMax

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. 0 are common, 12 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 129 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before creating implementation specs from a design document

    line 22
  2. Distinctive:

    Before implementing a new service, major component, public API, shared library, infrastructure change, or data model change

    line 23
  3. Distinctive:

    When the design introduces new external dependencies, queues, caches, databases, third-party APIs, or cross-service calls

    line 24
  4. Distinctive:

    When the design changes security boundaries, access models, customer data handling, or operational blast radius

    line 25
  5. Distinctive:

    When a decision is a one-way door or would be expensive to reverse after implementation

    line 26
  6. Very specific:

    Before reviewing, load agents/design-bar-raiser.md and apply that persona's review lens.

    line 36
  7. Distinctive:

    Before reviewing, classify the design:

    line 40
  8. Distinctive:

    If any answer is yes, review at full depth.

    line 48
  9. Distinctive:

    Use concise, evidence-backed findings:

    line 131
  10. Distinctive:

    Write feedback like this:

    line 140
  11. Distinctive:

    Before approving the design, verify:

    line 195
  12. Distinctive:

    The design must stand alone: If it needs verbal explanation to make sense, the document is incomplete.

    line 210
  13. Distinctive:

    Simplicity wins unless complexity earns its place: Every extra concept must pay rent.

    line 215

“Common” is measured: kept by at least 6 in 10 of the 129 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Design Review

Overview

Design Review is a quality gate before spec-driven-implementation and /build. Its purpose is to catch design flaws while they are still cheap to fix in a document instead of expensive to fix in code or production.

This is not a meeting format, SLA, or panel process. For an agent, the job is straightforward: evaluate whether the design is clear, complete, simple, operable, and safe enough to become executable specs. If the design does not meet the bar, block progression and explain exactly what must change.

When to Use

  • Before creating implementation specs from a design document
  • Before implementing a new service, major component, public API, shared library, infrastructure change, or data model change
  • When the design introduces new external dependencies, queues, caches, databases, third-party APIs, or cross-service calls
  • When the design changes security boundaries, access models, customer data handling, or operational blast radius
  • When a decision is a one-way door or would be expensive to reverse after implementation

Amazon Context

Amazon-style design review raises the bar by forcing written reasoning before implementation. The reviewer evaluates the design on behalf of the customer and the long-term operators of the system, not on behalf of delivery pressure.

A strong review does not try to prove the author wrong. It makes the design better by surfacing missing assumptions, weak trade-offs, hidden failure modes, operational gaps, and unnecessary complexity.

The Process

Before reviewing, load agents/design-bar-raiser.md and apply that persona's review lens. If the design contains a one-way door decision, also load agents/principal-engineer.md and apply that persona to the irreversible decision, blast-radius, and long-term architecture trade-off review.

1. Context Assessment

Before reviewing, classify the design:

  • Is this a one-way door? Public API, data migration, security model, data deletion, service split/merge, or irreversible infrastructure change.
  • Does it introduce or change external dependencies? Services, databases, caches, queues, config systems, or third-party APIs.
  • Does it handle customer, Confidential, or Restricted data?
  • Does it affect other teams, shared infrastructure, or public consumers?
  • Does it add operational burden, new alarms, new runbooks, or new on-call failure modes?

If any answer is yes, review at full depth. If all answers are no, perform a lightweight review but still verify clarity, correctness, simplicity, and testability.

2. Review Dimensions

Problem And Requirements

  • The problem statement links to customer value or an approved Working Backwards artifact.
  • Requirements are specific, testable, and avoid vague terms like "fast", "scalable", or "reasonable".
  • Success metrics and non-functional requirements have numeric targets.
  • Scope boundaries are explicit: what is included, what is excluded, and what is deferred.

Alternatives And Trade-Offs

  • At least two real alternatives are considered.
  • Rejected alternatives are plausible, not strawmen.
  • When a pattern from patterns/INDEX.md plausibly fits the workload (per its criteria), it appears as a real alternative or is the chosen approach — not silently skipped.
  • If a pattern is adopted, its Skill Impact Map is reflected in Architecture, Operational Concerns, and Testing.
  • Trade-offs are explicit: "choosing X over Y because Z, accepting W."
  • The design explains why the simplest viable option is sufficient or why extra complexity is necessary.

Architecture And Data

  • Component boundaries are clear.
  • Data ownership, schema evolution, and migration strategy are defined.
  • Backward compatibility is preserved or a versioned migration path exists.
  • Failure domains and blast radius are understood.
  • The design works at expected scale and has a credible path to 10x scale.

Dependency Behavior

  • Every external dependency is listed and classified as critical or non-critical.
  • Timeout, retry, backoff, jitter, circuit breaker, and bulkhead strategies are defined where relevant.
  • Non-critical dependencies degrade gracefully.
  • Dependency health is observable through metrics, logs, traces, and alarms.
  • The design does not couple this system's availability unnecessarily to a weaker dependency.

Security And Privacy

  • Data classification is stated.
  • Authentication and authorization paths are clear.
  • IAM, roles, policies, and secrets follow least privilege.
  • Threat model risks are addressed or explicitly deferred with rationale.
  • Sensitive data is protected in transit, at rest, and in logs.

Operations

  • Deployment and rollback strategy are described.
  • Feature flags or safe defaults protect incomplete or risky behavior.
  • Metrics, logs, traces, dashboards, and alarms cover new failure modes.
  • Runbooks are planned for likely failures.
  • The system can be debugged by an on-call engineer without the original author present.

Cost And Capacity

  • Cost estimate includes build and run cost.
  • Cost scales predictably with traffic, storage, and dependency usage.
  • Capacity assumptions are backed by numbers.
  • Load, soak, or failure testing is planned for high-risk paths.

Testability

  • Unit, integration, contract, and end-to-end test boundaries are clear.
  • Property-based tests or invariants are defined for complex logic.
  • Dependency failure scenarios are testable.
  • Acceptance criteria can be verified from the eventual implementation.

3. Blocking Criteria

Block progression to specs or build if any of these are true:

  • Problem or requirements are ambiguous.
  • The design has no real alternatives or trade-off analysis.
  • A pattern from patterns/INDEX.md plausibly fits the workload but was not considered as an alternative or as the chosen approach.
  • A one-way door decision lacks explicit sign-off criteria.
  • External dependencies are introduced without failure behavior.
  • Security-sensitive flows lack a threat model or mitigation plan.
  • Data migration, schema evolution, or rollback is undefined.
  • Operational readiness is missing for new failure modes.
  • The design is too complex to explain clearly and succinctly.
  • Acceptance criteria cannot be tested.

Feedback Format

Use concise, evidence-backed findings:

PrefixMeaningRequired Action
[BLOCKING]Must be resolved before specs or build.Revise the design.
[IMPORTANT]Should be resolved unless there is a documented reason not to.Fix or justify.
[QUESTION]Clarification needed; may reveal a blocker.Answer in the design.
[NOTE]Non-blocking observation or future consideration.Optional.

Write feedback like this:

[BLOCKING] Dependency failure behavior is undefined.
The design adds synchronous calls to PaymentService but does not define timeout,
retry, circuit breaker, fallback behavior, or customer impact when PaymentService
is unavailable. Add dependency classification and failure handling before specs.

Review Outcome

Return one of these outcomes:

OutcomeMeaningNext Step
APPROVEDDesign meets the bar.Proceed to spec-driven-implementation.
APPROVED WITH NOTESDesign is sound; notes are non-blocking.Proceed, carrying notes into specs if relevant.
NEEDS REVISIONOne or more blocking issues exist.Revise design and re-run review before specs.
RE-DESIGNCore approach is flawed or too complex.Rework the approach before continuing.

Mechanisms Over Good Intentions

IntentionMechanism
"We'll think through trade-offs"Require alternatives and explicit trade-off statements in the design doc
"We'll handle dependency failures"Require dependency classification and failure behavior before specs
"We'll make it operable"Require metrics, alarms, rollback, and runbook plans in the design
"We'll keep it simple"Require simpler alternatives and a clear complexity justification
"We'll verify it later"Require test strategy and acceptance criteria before implementation

Common Rationalizations

What They SayWhy It's WrongWhat To Do Instead
"We'll figure this out during build"Build should execute approved decisions, not discover architecture.Decide in the design doc, then preserve the decision in specs.
"The happy path is enough for now"Most production incidents happen in failure paths, not happy paths.Add failure modes, fallback behavior, and operational signals.
"This dependency is reliable"Every dependency fails, slows down, or returns bad data eventually.Define timeout, retry, circuit breaker, fallback, and observability.
"This is just an internal API"Internal APIs become dependencies and create coupling.Define contract, compatibility expectations, and migration path.
"A simpler design might not scale someday"Future scale does not justify current unnecessary complexity.Build the simplest design with a credible evolution path.

Red Flags

  • Alternatives are missing or obviously weak.
  • Requirements use vague terms without numeric targets.
  • The design assumes dependencies are always available.
  • Retry logic exists without backoff, jitter, or circuit breaking.
  • Data migration or rollback is described as "manual" without steps.
  • Security is deferred without risk classification.
  • Observability is planned "after launch".
  • The design introduces a new service when a module, library, or existing service would work.
  • The document needs verbal explanation to make sense.
  • The review finds the same missing sections across multiple designs.

Verification

Before approving the design, verify:

  • Problem, requirements, and success metrics are clear.
  • Alternatives and trade-offs are real and explicit.
  • One-way door decisions are identified.
  • Dependency-management decisions are present when dependency boundaries exist.
  • Security and privacy risks are addressed.
  • Operational readiness is designed, not deferred.
  • Cost and capacity assumptions are backed by numbers.
  • Test strategy covers behavior, contracts, and failure modes.
  • The design is simple enough for a new engineer to understand.
  • Blocking findings are resolved or the outcome is NEEDS REVISION / RE-DESIGN.

Tenets

  1. The design must stand alone. If it needs verbal explanation to make sense, the document is incomplete.
  2. Paper is cheaper than code. A design issue fixed now prevents rework later.
  3. Trade-offs are the design. A design without trade-offs is just a preference.
  4. Failure modes are first-class. Happy-path architecture is not production architecture.
  5. The bar exists for customers and operators. Reliability, security, cost, and operability are customer-impacting concerns.
  6. Simplicity wins unless complexity earns its place. Every extra concept must pay rent.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.