askill
design-review

design-reviewSafety 90Repository

Solution selection and adversarial validation. Use when proposing solutions, evaluating build-vs-buy, reviewing designs, or finalizing architecture decisions.

1 stars
1.2k downloads
Updated 2/7/2026

Package Files

Loading files...
SKILL.md

Design Review

Two-phase design validation: select the right approach, then stress-test the proposal.


Phase 1: Solution Selection

Before proposing new solutions, validate against existing assets.

┌─────────────────────────────────────────────────────────────┐
│  Can existing code be extended/configured?                  │
│     YES → Propose extension, skip new implementation        │
│     NO  ↓                                                   │
│                                                             │
│  Does a project-approved library solve this?                │
│     YES → Use it, document integration approach             │
│     NO  ↓                                                   │
│                                                             │
│  Is there a well-maintained OSS solution?                   │
│     YES → Evaluate: adoption cost vs build cost             │
│     NO  ↓                                                   │
│                                                             │
│  Custom implementation justified?                           │
│     → Document why alternatives were rejected               │
└─────────────────────────────────────────────────────────────┘

Portability Checklist (for external dependencies)

ConcernQuestionRequired Output
AbstractionCan we swap the underlying provider?Interface/adapter pattern
DataCan we export/migrate data if we switch?Migration path
StabilityIs this a stable, well-maintained project?Maintenance status

Cost-Benefit Sanity Check

  • Effort vs Value: Is the solution proportionate to the problem?
  • Opportunity Cost: What else could this time be spent on?
  • Maintenance Burden: What's the ongoing cost of this solution?

Phase 2: Stress Test

Before finalizing, argue against your proposal. Genuine adversarial thinking, not a checkbox exercise.

Severity Classification

LevelDefinitionResponse
CriticalBlocking, breaking, or security riskMention prominently
Tech debtAccumulating risk, worth trackingNote in tradeoffs
StyleLow impact preferenceMention only if asked

IMPORTANT: Flag issues only when relevant to the user's question — avoid unsolicited critiques.

Concern Checklist

Challenge your solution against these 6 concerns:

1. Architectural Drift

Challenge: Does this fit where the codebase is heading, or does it fight the grain?

Detection SignalResponse
Module X imports from module Y's internals; bypassed abstractionsNote deviation, assess if intentional or erosion
Same problem solved 3+ different ways across codebaseIdentify the canonical pattern, flag divergences
Naming, file structure, or API style doesn't match established patternsReference project conventions, suggest alignment

2. Abstraction Errors

Challenge: Is this the right abstraction level? What might leak?

Anti-PatternSymptomGuidance
Leaky abstractionImplementation details exposed in interfaceSuggest encapsulation boundaries
Wrong abstractionForced inheritance, awkward genericsRecommend composition or simpler design
Premature abstractionGeneric solution for single use caseAdvise "rule of three" before abstracting

3. Coupling Creep

Challenge: What new dependencies does this introduce? Will they hurt later?

SignalGuidance
Module A knows too much about Module B's internalsIdentify dependency direction, suggest inversion
Circular or bidirectional dependenciesBreak cycle with interface/event pattern

4. API Surface Issues

Challenge: Would a new team member understand this interface? Is naming consistent?

Surface problems to flag:

  • Inconsistent naming (getUserById vs fetch_user vs user.get)
  • Mixed paradigms (callbacks + promises + async/await)
  • Leaking internal types in public interfaces
  • Missing or inconsistent error responses
  • Versioning gaps or breaking changes without migration path

5. Over/Under-Engineering

Challenge: Is the solution complexity proportionate to the problem?

IMPORTANT: Calibrate feedback to problem scope — avoid applying enterprise patterns to scripts or MVP shortcuts to production systems.

Over-engineering signals:

  • Abstractions with single implementation
  • Configuration for scenarios that don't exist
  • "Flexibility" that adds complexity without clear benefit
  • Multiple indirection layers for simple operations

Under-engineering signals:

  • Copy-paste instead of parameterization
  • Hard-coded values that should be configurable
  • Missing error handling for likely failure modes
  • No consideration for scale/growth in critical paths

6. Pattern Violations

Challenge: What existing conventions does this break? Is breaking them justified?


Assessment Actions

For each relevant concern:

Risk LevelAction
No risk identifiedBriefly note why in thinking
Risk exists with mitigationDocument the mitigation
Accepted tradeoffDocument explicitly in output
Serious flaw revealedREVISE SOLUTION before proceeding

Scaling by Complexity

ComplexityRequirement
SimpleUse judgment — skip if concerns clearly don't apply
ModerateMandatory — document even if all clear
ComplexMandatory — full table with explicit assessments

Output Format

### Accepted Tradeoffs

- **[Concern]**: [Why acceptable. Mitigation if any. Known limitations.]

_If no tradeoffs: "None — solution aligns with all design concerns evaluated."_

Anti-Patterns

  • ❌ Adding new library without checking existing patterns
  • ❌ Custom implementation when mature OSS exists
  • ❌ External dependency without exit strategy
  • ❌ Over-engineering simple problems
  • ❌ Jumping to implementation without stress-testing

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/11/2026

A comprehensive and highly actionable guide for conducting design reviews, covering both solution selection and adversarial stress-testing with clear checklists and decision logic.

90
100
100
95
95

Metadata

Licenseunknown
Version-
Updated2/7/2026
PublisherfaroukBakari

Tags

apici-cdsecuritytesting