
Improve Codebase Architecture
- 164 installs
- 40 repo stars
- Updated August 4, 2026
- akillness/oh-my-skills
Improve Codebase Architecture is a Claude Code skill that surfaces architectural friction and proposes refactors turning shallow modules into deep ones.
About
Improve Codebase Architecture surfaces architectural friction and proposes deepening refactors that turn shallow modules into deep ones for better testability and AI-navigability. It uses a defined vocabulary (module, interface, depth, seam) and a deletion test to identify pass-through modules, then runs a grilling loop on a chosen candidate. A developer uses it when a codebase is hard to navigate or test and modules feel tightly coupled.
- Surfaces architectural friction and proposes turning shallow modules into deep ones
- Applies a deletion test to find pass-through modules that do not earn their keep
- Runs a grilling loop on a chosen candidate and updates CONTEXT.md and ADRs as decisions crystallize
Improve Codebase Architecture by the numbers
- 164 all-time installs (skills.sh)
- Ranked #366 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
improve-codebase-architecture capabilities & compatibility
- Capabilities
- architecture analysis · refactoring · code review · testability audit
- Use cases
- refactoring · code review
- Runs
- Runs locally
- Pricing
- Free
What improve-codebase-architecture says it does
Surface architectural friction and propose **deepening opportunities** — refactors that turn shallow modules into deep ones.
imagine deleting the module. If complexity vanishes, it was a pass-through. If complexity reappears across N callers, it was earning its keep.
npx skills add https://github.com/akillness/oh-my-skills --skill improve-codebase-architectureAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 164 |
|---|---|
| repo stars | ★ 40 |
| Last updated | August 4, 2026 |
| Repository | akillness/oh-my-skills ↗ |
What it does
Surface architectural friction and propose deepening refactors that improve a codebase's testability and navigability.
Who is it for?
Codebases that are hard to navigate or test where modules feel tightly coupled or shallow.
Skip if: Quick targeted refactors, design review of a plan, or writing implementation tickets.
When should I use this skill?
You want architectural improvement opportunities or to consolidate tightly-coupled, shallow modules.
What you get
A numbered list of deepening opportunities with files, problems, solutions, and testability benefits.
- numbered list of deepening opportunities
- CONTEXT.md and ADR updates
By the numbers
- 3-step process (explore, present candidates, grilling loop)
Files
Improve Codebase Architecture
Surface architectural friction and propose deepening opportunities — refactors that turn shallow modules into deep ones. Goal: testability and AI-navigability.
Vocabulary (use these terms exactly)
- Module — anything with an interface and implementation (function, class, package, slice)
- Interface — everything a caller must know: types, invariants, error modes, ordering, config
- Depth — leverage at the interface: much behavior behind a small interface. Deep = high leverage. Shallow = interface nearly as complex as the implementation
- Seam — where an interface lives; a place behavior can be altered without editing in place
- Adapter — a concrete thing satisfying an interface at a seam
- Leverage — what callers get from depth
- Locality — what maintainers get from depth: change, bugs, knowledge concentrated in one place
Key principles:
- Deletion test: imagine deleting the module. If complexity vanishes, it was a pass-through. If complexity reappears across N callers, it was earning its keep.
- The interface is the test surface.
- One adapter = hypothetical seam. Two adapters = real seam.
When to use this skill
- User wants architectural improvement opportunities
- Codebase is hard to navigate or test
- Modules feel tightly coupled or shallow
- Refactoring would improve testability
When not to use this skill
- Quick targeted refactors → use
code-refactoring - Design review of a plan → use
grill-with-docs - Implementation tickets → use
to-issues
Process
1. Explore
Read domain glossary (CONTEXT.md) and ADRs first. Then walk the codebase organically, noting friction:
- Where does understanding one concept require bouncing between many small modules?
- Where are modules shallow — interface nearly as complex as the implementation?
- Where have pure functions been extracted for testability, but real bugs hide in how they're called?
- Where do tightly-coupled modules leak across seams?
- Which parts are untested or hard to test through their current interface?
Apply the deletion test to suspected shallow modules.
2. Present candidates
Numbered list of deepening opportunities. For each:
- Files — which files/modules are involved
- Problem — why the current architecture causes friction
- Solution — plain English description of what would change
- Benefits — in terms of locality, leverage, and test improvement
Use CONTEXT.md vocabulary for domain terms. Use the vocabulary above for architecture terms.
ADR conflicts: if a candidate contradicts an ADR, only surface it when friction is real enough to warrant revisiting. Mark clearly: "contradicts ADR-0007 — but worth reopening because…"
Ask: "Which of these would you like to explore?" — do NOT propose interfaces yet.
3. Grilling loop
Once user picks a candidate, drop into a grilling conversation. Walk the design tree: constraints, dependencies, module shape, what sits behind the seam, what tests survive.
Side effects as decisions crystallize:
- New concept not in CONTEXT.md? Add the term immediately
- Fuzzy term sharpened? Update CONTEXT.md right there
- User rejects with a load-bearing reason? Offer an ADR (only when a future explorer would need it to avoid re-suggesting the same thing)
Instructions
1. Identify the task trigger and expected output. 2. Follow the workflow steps in this skill from top to bottom. 3. Validate outputs before moving to the next step. 4. Capture blockers and fallback path if any step fails.
Examples
- Example: Apply this skill to a small scope first, then scale to full scope after validation passes.
Best practices
- Keep outputs deterministic and auditable.
- Prefer small reversible changes over broad risky edits.
- Record assumptions explicitly.
References
- Project standards:
.agent-skills/skill-standardization/SKILL.md - Validator script:
.agent-skills/skill-standardization/scripts/validate_skill.sh
Related skills
FAQ
What is the deletion test?
Imagine deleting a module: if complexity vanishes it was a pass-through; if it reappears across callers it earns its keep.
When should I not use it?
For quick targeted refactors use code-refactoring; for plan review use grill-with-docs.