improve-codebase-architecture
Use when a debugging post-mortem concludes the root cause was architectural (no test seam, tangled callers, hidden coupling), or when the user asks for an…
Skill by HundredBillion
Chalk Labs
Need help deploying improve-codebase-architecture?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/hundredbillion-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: documents, frontend, testing
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 and code. Checked Oct 26, 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
- Use when a debugging post-mortem concludes the root cause was architectural (no test seam, tangled callers, hidden coupling), or when the user asks for an architecture review, a deepening pass, or wants to find over-engineering to cut. Writes an HTML report to a temp directory and opens it.
- License
- MIT
- Instructions
- 77 lines in SKILL.md · view on GitHub
Files (2)
- HTML-REPORT.md
- SKILL.md
SKILL.md (first lines)
# Improve Codebase Architecture
Surface architectural friction and propose two kinds of candidate, both decided by the **deletion test**: **deepening opportunities** — refactors that turn shallow modules into deep ones — and **simplify / delete opportunities** — shallow or speculative structure to cut. The aim is testability and AI-navigability. A codebase improves as much by deleting shallow cruft as by deepening.
This command is _informed_ by the project's domain model and built on a shared design vocabulary:
- Run the `dmi-superpowers:codebase-design` skill for the architecture vocabulary (**module**, **interface**, **depth**, **seam**, **adapter**, **leverage**, **locality**) and its principles (the deletion test, "the interface is the test surface", "one adapter = hypothetical seam, two = real"). Use these terms exactly in every suggestion — don't drift into "component," "service," "API," or "boundary."
- The domain language in `CONTEXT.md` gives names to good seams; ADRs in `docs/adr/` record decisions this command should not re-litigate.
## Process
### 1. Explore
Read the project's domain glossary (`CONTEXT.md`) and any ADRs in the area you're touching first.
Then use the Agent tool with `subagent_type=Explore` to walk the codebase. Don't follow rigid heuristics — explore organically and note where you experience 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 just for testability, but the real bugs hide in how they're called (no **locality**)?
- Where do tightly-coupled modules leak across their seams?
- Which parts of the codebase are untested, or hard to test through their current interface?
- Where is there **over-engineering to cut** — a reinvented standard-library
function, a dependency doing what the platform already does, an interface
with one implementation, config nobody sets, dead flexibility? These are
**Simplify / delete** candidates.
Apply the **deletion test** to every candidate: delete the thing and ask what happens to the complexity. If it *concentrates* because the thing was hiding real work, it is a **deep module** — a Deepen candidate, keep and extend it. If it vanishes or merely moves, the thing was **shallow** or speculative — a Simplify / delete candidate, cut it.
### 2. Present candidates as an HTML report
Write a self-contained HTML file to the OS temp directory so nothing lands in the repo. Resolve the temp dir from `$TMPDIR`, falling back to `/tmp` (or `%TEMP%` on Windows), and write to `<tmpdir>/architecture-review-<timestamp>.html` so each run gets a fresh file. Open it for the user — `xdg-open <path>` on Linux, `open <path>` on macOS, `start <path>` on Windows — and tell them the absolute path.
The report uses **Tailwind via CDN** for layout and styling, and **Mermaid via CDN** for diagrams where a graph/flow/sequence reliably communicates the structure. Mix Mermaid with hand-crafted CSS/SVG visuals — use Mermaid when relationships are graph-shaped (call graphs, dependencies, sequences), and hand-built divs/SVG when you want something more editorial (mass diagrams, cross-sections, collapse animations). Each candidate gets a **before/after visualisation**. Be visual.
For each candidate, render a card with:
- **Files** — which files/modules are involved
- **Problem** — why the current architecture is causing friction
- **Solution** — plain English description of what would change
- **Benefits** — explained in terms of locality and leverage, and how tests would improve
- **Before / After diagram** — side-by-side, custom-drawn, illustrating the shallowness and the deepening
- **Recommendation strength** — one of `Strong`, `Worth exploring`, `Speculative`, rendered as a badge
**Candidate type:** tag each card as **Deepen** or **Simplify / delete**. For
Simplify / delete cards, label the specific move with the tag taxonomy —
`delete:` / `stdlib:` / `native:` / `yagni:` / `shrink:` — and state the line
count the deletion saves. That count must come from performing or dry-running the
deletion — read every file you propose to collapse. A number estimated from file
sizes routinely overstates the saving several-fold, because most of what looks
duplicated turns out to be genuinely per-case; a report whose purpose is
prioritisation is the wrong place for that error. If you have not done the read,
label the figure an estimate and say how you arrived at it. The before/after
diagram shows the structure shrinking rather than deepening.
End the report with a **Top recommendation** section: which candidate you'd tackle first and why.
**Use CONTEXT.md vocabulary for the domain, and the `dmi-superpowers:codebase-design` vocabulary for the architecture.** If `CONTEXT.md` defines "Order," talk about "the Order intake module" — not "the FooBarHandler," and not "the Order service."
**ADR conflicts**: if a candidate contradicts an existing ADR, only surface it when the friction is real enough to warrant revisiting the ADR. Mark it clearly in the card (e.g. a warning callout: _"contradicts ADR-0007 — but worth reopening because…"_). Don't list every theoretical refactor an ADR forbids.
See [HTML-REPORT.md](HTML-REPORT.md) for the full HTML scaffold, diagram patterns, and styling guidance.
Do NOT propose interfaces yet. After the file is written, ask the user: "Which of these would you like to explore?"
### 3. Grilling loop
Once the user picks a candidate, run the `dmi-superpowers:grilling` skill to walk the design tree with them — constraints, dependencies, the shape of the deepened module, what sits behind the seam, what tests survive.
Side effects happen inline as decisions crystallize — run the `dmi-superpowers:domain-modeling` skill to keep the domain model current as you go:
- **Naming a deepened module after a concept not in `CONTEXT.md`?** Add the term to `CONTEXT.md`. Create the file lazily if it doesn't exist.
- **Sharpening a fuzzy term during the conversation?** Update `CONTEXT.md` right there.
- **User rejects the candidate with a load-bearing reason?** Offer an ADR, framed as: _"Want me to record this as an ADR so future architecture reviews don't re-suggest it?"_ Only offer when the reason would actually be needed by a future explorer to avoid re-suggesting the same thing — skip ephemeral reasons ("not worth it right now") and self-evident ones.
- **Want to explore alternative interfaces for the deepened module?** Run the `dmi-superpowers:codebase-design` skill and use its design-it-twice parallel sub-agent pattern.From HundredBillion/dmi_superpowers, MIT.
More from HundredBillion/dmi_superpowers
- 0.609score
subagent-driven-development
HundredBillion
Use when executing a written implementation plan (TSP) whose tasks are independent, in the current session.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
property-based-testing
HundredBillion
Use when a parser, serializer, normalizer, comparator, reversible transformation, numeric operation, or state transition should be tested over an input domain…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
creating-a-pull-request
HundredBillion
Use when opening, creating, or writing a pull request, pushing a branch for review, or running gh pr create - covers the PR title, body, and evidence so the…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
migrating-safely
HundredBillion
Use when replacing or removing a database shape, public API, event contract, dependency, service, or feature that active consumers must leave without downtime…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
source-grounded-development
HundredBillion
Use when implementation correctness depends on a framework, library, platform, protocol, or tool whose APIs and recommended patterns vary by version
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
executing-plans
HundredBillion
Use when executing an approved written TSP inline, when your human partner chose this session as the implementer, or when subagents are unavailable
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
say
HundredBillion
Use when reporting a finding about code to the user during grilling, grill-with-docs, or systematic-debugging, and when drafting or rewriting prose for a…
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
prototype
HundredBillion
Build a throwaway prototype to flesh out a design — a runnable terminal app for state/business-logic questions, or several radically different UI variations…
SkillAFreshness: A★ 3Claude Code +9 - 0.581score
brainstorming
HundredBillion
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior.
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
finishing-a-development-branch
HundredBillion
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting…
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
domain-modeling
HundredBillion
Build and sharpen a project's domain model.
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
dispatching-parallel-agents
HundredBillion
Use when facing 2+ independent tasks with no shared state or ordering between them and no written plan to work from — ad-hoc fan-out.
SkillAFreshness: A★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 23, 2026 (2 months ago)
- Last release
- Oct 18, 2026 (12 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from HundredBillion
- 0.609score
subagent-driven-development
HundredBillion
Use when executing a written implementation plan (TSP) whose tasks are independent, in the current session.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
creating-a-pull-request
HundredBillion
Use when opening, creating, or writing a pull request, pushing a branch for review, or running gh pr create - covers the PR title, body, and evidence so the…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
say
HundredBillion
Use when reporting a finding about code to the user during grilling, grill-with-docs, or systematic-debugging, and when drafting or rewriting prose for a…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
migrating-safely
HundredBillion
Use when replacing or removing a database shape, public API, event contract, dependency, service, or feature that active consumers must leave without downtime…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
executing-plans
HundredBillion
Use when executing an approved written TSP inline, when your human partner chose this session as the implementer, or when subagents are unavailable
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
source-grounded-development
HundredBillion
Use when implementation correctness depends on a framework, library, platform, protocol, or tool whose APIs and recommended patterns vary by version
SkillAFreshness: A★ 3Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get improve-codebase-architecture running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
improve-codebase-architecture skill. Agent Mart. https://agentmart.dev/skills/hundredbillion-improve-codebase-architecture (last updated 2026-10-24)