Design deep modules and clean seams. Use when the user wants to improve architecture, design or compare module interfaces, decide where a seam belongs, make code more testable or AI-navigable, run a deletion test, or when another skill needs deep-module vocabulary. Adapted from mattpocock/skills.
Use a small shared vocabulary for code shape: deep modules, small interfaces, clear seams, and tests through the same interface callers use.
Avoid using "component", "service", "API", and "boundary" when these terms are more precise.
Ask these before adding abstractions:
Use this when a design smells "clever" but not trustworthy:
AGENTS.md, a style page, a skill, or a test/doctor.For code review or design work, produce a short table:
| Area | Current shape | Risk | Better interface | Proof |
|---|
Only recommend a new module when the deletion test passes and there is a concrete test surface.
DEEPENING.md when evaluating how to deepen a shallow module and how its dependencies affect the test seam.DESIGN-IT-TWICE.md when Kevin wants multiple interface options or a chosen deepening candidate needs design alternatives.improve for broad codebase audits and plan banking.generate-interface for interface extraction/refactoring.no-sus-code-doctor for strict ship-quality review.domain-modeling when the seam depends on domain language.Wiki references: wiki/style/code-taste.md, wiki/style/dedalus-style-guide.md.
Upstream: github.com/mattpocock/skills/skills/engineering/codebase-design/SKILL.md at 5d78bd0903420f97c791f834201e550c765699f8.