← ClaudeAtlas

deepenlisted

Find shallow modules (interface nearly as complex as their implementation) and propose deepening refactors — bigger implementations behind smaller interfaces. Optionally explores 2-3 interface variants in parallel via the Agent tool ("Design It Twice"). Use for architectural friction: hard-to-test modules, tangled callers, refactors that feel obvious but the right shape isn't. Triggers: "deepen", "/deepen", "improve architecture", "refactor this module", "make X more testable".
DefaultPerson/agent-skills · ★ 0 · AI & Automation · score 71
Install: claude install-skill DefaultPerson/agent-skills
# Deepen Surface architectural friction and propose **deepening opportunities** — refactors that turn shallow modules into deep ones. Aim: testability + the next reader's ability to navigate. > Adapted from mattpocock/skills `improve-codebase-architecture` (MIT). Vocabulary is Ousterhout-derived. > **Letter = spirit.** If a rule blocks you from reaching the goal it was > written for, the rule is wrong, not the goal. Don't look for a wording > loophole — ask what the rule is protecting, and protect that. ## Weaknesses and when NOT to use - **Not for green-field code.** Architectural friction only manifests when there are callers, tests, and history. On a blank slate, just write the first version. - **Not for one-off bug fixes.** `/diagnose` owns the bug loop; if a bug surfaces architectural pain, `/diagnose` Phase 6 hands off here. - **Doesn't refactor for you.** Output is candidates + (optional) interface designs. Actually executing the refactor is downstream (manual / `mattpocock:tdd` / goal feature). - **Vocabulary is opinionated.** Module / Interface / Seam / Adapter (not "component" / "service" / "API" / "boundary"). Stick to it — drift defeats the point. Full glossary in `references/architecture-language.md`. ## How to do it wrong vs right ### Module depth ❌ **Wrong:** Extract every pure function into its own file "for testability"; tests are easy to write but bugs hide in how the functions compose at the callers. No **locality**. ✅ **Right:** Group functions th