Use before implementing or refactoring software when the task requires designing module boundaries, APIs, layers, abstractions, services, repositories, adapters, or architecture. Helps coding agents reduce total system complexity by creating deep modules, hiding implementation knowledge, avoiding leakage and pass-through APIs, comparing alternative designs, documenting interfaces before coding, and critiquing existing architecture.
93
94%
Does it follow best practices?
Impact
93%
1.13xAverage score across 5 eval scenarios
Passed
No known issues
Design brief first
100%
100%
Complexity goal
75%
100%
Two alternatives
100%
100%
Comparison dimensions
30%
100%
Interface contract
58%
100%
Deep module
100%
100%
No temporal split
100%
100%
Minimal API
100%
100%
Centralizes special cases
100%
100%
Design gates
58%
100%
Result report
62%
100%
Template shape
70%
100%
Symptoms first
80%
100%
Module map
37%
100%
Pass-through methods
100%
100%
Layer duplication
50%
75%
Leaked details
100%
100%
Distinct layers
70%
90%
Small refactor
100%
100%
Deep operation
62%
75%
Actionable errors
66%
100%
Priority order
100%
100%
Design brief
85%
100%
Stable types
90%
90%
Vendor hidden
91%
91%
Caller intent
87%
62%
Actionable errors
90%
90%
Retries/fallbacks
87%
25%
Two designs
37%
100%
Split rationale
62%
62%
No pass-through
100%
90%
Contract comments
77%
55%
Result summary
70%
90%
Conceptual modules
100%
100%
Merge rationale
90%
100%
Pass-through variables
100%
100%
Boolean flag API
100%
100%
Call order hidden
100%
100%
Small interface
100%
100%
Split criteria
87%
100%
Provider hidden
100%
100%
Special cases
100%
100%
Avoid god object
83%
100%
Alternative comparison
66%
100%
Storage hidden
100%
100%
Domain types
100%
70%
Layer distinction
80%
100%
Small operation
100%
100%
Errors actionable
100%
100%
Special cases designed
80%
100%
Storage swap localized
100%
100%
Invariants documented
62%
75%
Two designs
0%
100%
Leakage audit
75%
100%
No pattern chasing
100%
100%