improve-codebase-architecture
Surface deepening refactors that turn shallow modules into deep ones, informed by `CONTEXT.md` and `docs/adr/`.
Skill by OutlineDriven
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/outlinedriven-improve-codebase-architecture
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/improve-codebase-architecture
What's inside
- Skill name
improve-codebase-architecture- Description
- Surface deepening refactors that turn shallow modules into deep ones, informed by `CONTEXT.md` and `docs/adr/`. Use when the user asks to improve architecture, find refactor candidates, raise testability, or make a codebase more agent-navigable. Skip for single localized fixes.
- License
- Apache-2.0
- Instructions
- 78 lines in SKILL.md · view on GitHub
Files (4)
- SKILL.md
- DEEPENING.md · references/
- INTERFACE-DESIGN.md · references/
- LANGUAGE.md · references/
SKILL.md (first lines)
Iteration loop: explore for friction, present deepening candidates, grill the chosen one, update domain artifacts inline. Vocabulary is load-bearing — see `references/LANGUAGE.md`. ## Vocabulary [LOAD-BEARING] Use these terms exactly. Do not substitute "component," "service," "API," or "boundary." Full definitions in `references/LANGUAGE.md`. - **Module** — anything with an interface and an implementation (function, class, package, slice). Scale-agnostic. - **Interface** — every fact a caller must know: types, invariants, ordering, error modes, config, performance shape. Not just signature. - **Depth** — leverage at the interface. Deep = much behaviour behind a small interface. Shallow = interface as complex as implementation. - **Seam** (Feathers) — where an interface lives; a place behaviour can be altered without editing in place. Use this, not "boundary." - **Adapter** — a concrete thing satisfying an interface at a seam. Role, not substance. - **Leverage** — capability callers gain per unit of interface learned. - **Locality** — concentration of change, bug, and knowledge at one site for maintainers. ## 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. - **Interface = test surface.** Tests cross the same seam callers cross. Wanting to test past the interface = wrong shape. - **One adapter = hypothetical seam. Two adapters = real seam.** No port without two real implementations (production + test). ## Process ### 1. Explore First tool call MUST be Explore-agent dispatch — not direct reads. The agent's brief: - Read `CONTEXT.md` (or `CONTEXT-MAP.md` + per-context `CONTEXT.md`) and any `docs/adr/`. If absent, proceed silently. - Walk the codebase organically; classify friction: - Concept understanding requires bouncing across many small modules → shallow cluster. - Interface complexity matches implementation complexity → shallow module. - Pure functions extracted only for testability while real bugs hide in callers → no locality. - Tightly coupled modules leaking across their seams. - For each suspect, run the deletion test before reporting. ### 2. Present candidates Numbered list. Each candidate: **Files**, **Problem** (concrete friction; cite deletion test), **Solution** (plain-English description; no interface yet), **Benefits** (locality, leverage, testability deltas). ADR conflicts: surface only when friction warrants reopening; mark explicitly: _"contradicts ADR-0007 — worth reopening because…"_. Ask: "Which candidate to explore?" Do not propose interfaces yet. ### 3. Grilling loop Once user picks, drop into adversarial interview — walk the design tree, resolve dependencies one decision at a time, recommend an answer per question. Side effects happen inline: - New domain term emerging? Update `CONTEXT.md` immediately (lazy create). - User rejects with a load-bearing reason that future explorers would need? Offer ADR. - User wants alternative interfaces for the chosen candidate? Pivot to `references/INTERFACE-DESIGN.md` — parallel sub-agent design twice (Ousterhout). ## Deepening categories (testing strategy per dependency class) Full treatment in `references/DEEPENING.md`. Summary: | Class | Deepenable? | Test strategy | |---|---|---| | In-process (pure / in-memory) | Always | Merge modules; test through new interface directly. No adapter. | | Local-substitutable (PGLite, in-memory FS) | Yes if stand-in exists | Stand-in runs in tests; seam stays internal. | | Remote but owned (microservices) | Yes via Ports & Adapters | Port at seam; HTTP/gRPC adapter prod, in-memory adapter test. | | True external (Stripe, Twilio) | Yes | Injected port; mock adapter for tests. | Replace, don't layer: delete shallow-module tests once interface tests exist. ## Language-neutral examples **Rust** — shallow `validate_address` + `format_address` + `geocode_address` separately called by a `Shipment` aggregator. Deletion test: removing `format_address` concentrates string-handling at one call site → was a pass-through. Deepen into `address::Resolver` with `resolve(raw) -> Result<Resolved, AddressError>`; tests cross the new interface; in-memory `Geocoder` adapter for tests, HTTP adapter for production. **Python** — module exposes `parse_invoice`, `apply_tax`, `round_total` as separate top-level functions; every caller chains all three. Deepen into `billing.Invoice.finalize(raw) -> Invoice`. Internal seams (tax tables, rounding rules) stay private; the test surface is `Invoice.finalize`. ## Reference docs - `references/LANGUAGE.md` — full vocabulary, principles, rejected framings. - `references/DEEPENING.md` — dependency taxonomy, seam discipline, replace-don't-layer testing. - `references/INTERFACE-DESIGN.md` — parallel sub-agent "Design It Twice" workflow when the chosen candidate's interface needs alternatives. Forbidden: proposing interfaces in step 2 (premature commitment), bundling unrelated refactors, re-litigating ADRs without a load-bearing reason.
From OutlineDriven/odin-codex-plugin, Apache-2.0.
More from OutlineDriven/odin-codex-plugin
- 0.525score
git-branchless
OutlineDriven
Enforce idiomatic git-branchless during planning and executing tasks — detached-HEAD-first work, in-memory rebase via `git move`, event-log recovery via `git…
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
proof-driven
OutlineDriven
Proof-driven development.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
domain-model
OutlineDriven
Grill against the existing domain model.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
gh-fix-ci
OutlineDriven
Inspect GitHub PR checks with gh, pull failing GitHub Actions logs, summarize the failure, then plan and implement the fix after user approval.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
memory-update
OutlineDriven
Scan agent's session-history transcripts for save-worthy signals (corrections, preferences, decisions, references), propose and write auto-memory files with…
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
memory-sanitize
OutlineDriven
Produce share-safe copies of memory files under /tmp with PII redacted (paths, emails, session IDs, dates) and credentials scanned (tokens, keys); never…
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
cleanup-codebase
OutlineDriven
Reduce concepts, duplication, and ceremony in internal code while touching nearby code.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
design-by-contract
OutlineDriven
Design-by-Contract (DbC) development.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
fix
OutlineDriven
Polymorphic iterative repair loop — accept a verifier failure, structured findings (review/resolve/triage-issue), or a bug description; modify→verify→keep on…
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
design
OutlineDriven
Set visual and interaction direction for any UI surface (web, React, TUI, CLI, desktop, Qt, design-system tokens) before any UI code.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
memory-clean
OutlineDriven
Audit memory directory for structural issues (orphans, dangling refs, duplicates, missing sections, oversized entries) and staleness against session-history…
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
setup-gitignore
OutlineDriven
Initialize or idempotently revise the repo's .gitignore by composing gitignore.io templates, AI-tooling/IDE patterns, and confirmed noise from git status.
SkillCFreshness: C★ 14Claude Code +9
Signals
- Stars
- 14
- Forks
- 2
- Open issues
- 2
- Last commit (this folder)
- Jul 7, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Website
- outlinedriven.github.io
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from OutlineDriven
- 0.525score
design-by-contract
OutlineDriven
Design-by-Contract (DbC) development.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
fix
OutlineDriven
Polymorphic iterative repair loop — accept a verifier failure, structured findings (review/resolve/triage-issue), or a bug description; modify→verify→keep on…
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
cleanup-codebase
OutlineDriven
Reduce concepts, duplication, and ceremony in internal code while touching nearby code.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
design
OutlineDriven
Set visual and interaction direction for any UI surface (web, React, TUI, CLI, desktop, Qt, design-system tokens) before any UI code.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
domain-model
OutlineDriven
Grill against the existing domain model.
SkillCFreshness: C★ 14Claude Code +9 - 0.525score
gh-fix-ci
OutlineDriven
Inspect GitHub PR checks with gh, pull failing GitHub Actions logs, summarize the failure, then plan and implement the fix after user approval.
SkillCFreshness: C★ 14Claude Code +9
Cite this page
improve-codebase-architecture skill. Agent Mart. https://agentmart.dev/skills/outlinedriven-improve-codebase-architecture (last updated 2026-10-24)