Agent skill

Codebase Design

by romiluz13 in romiluz13/cc10x

Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a lot of behaviour behind a small interface at a clean seam, testable…

MITAuto-check passed

Install Codebase Design

skills CLI
$ npx skills add romiluz13/cc10x --skill codebase-design -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install romiluz13/cc10x codebase-design --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/romiluz13/cc10x.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/cc10x/skills/codebase-design .claude/skills/codebase-design && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
codebase-design
GitHub stars
164
Token cost
~1.9k tokens
SKILL.md length
808 words
Files
3
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a lot of behaviour behind a small interface at a clean seam, testable…

  • Works in 3 steps: Accept dependencies, don't create them. → Return results, don't produce side… → Small surface area. Fewer methods =…
  • Improving a modules interface
  • SKILL.md covers Glossary, Deep vs shallow, The Deletion Test and Principles, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Codebase Design is an agent skill from romiluz13/cc10x. Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a lot of behaviour behind a small interface at a clean seam, testable through that interface. The single source of truth for these terms; other skills (architecture, codebase-hygiene, building, planning) point here instead of restating them. Use when designing or improving a module's interface, finding deepening opportunities, deciding where a seam goes, or making code more testable.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `DEEPENING.md` and `DESIGN-IT-TWICE.md`).

The repository describes itself as: The Loop Engine for Claude Code — engineer the loop, not the prompt. 1 router · 9 agents · 16 skills · 4 workflows. Fail-closed gates, test honesty, anti-anchored review. The licence is MIT.

When your agent uses it

  • Improving a modules interface
  • Finding deepening opportunities
  • Deciding where a seam goes
  • Making code more testable

Example prompts

  • “/codebase-design”

Requirements

  • Pre-approved tools (allowed-tools): Read, Grep, Glob, LSP

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Accept dependencies, don't create them.
  2. Return results, don't produce side effects.
  3. Small surface area. Fewer methods = fewer tests needed. Fewer params = simpler test setup.

What it can do on your machine

Read from SKILL.md and the folder at commit 891acf0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Grep
    • Glob
    • LSP

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Codebase Design loads about 1.9k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 808 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from romiluz13/cc10x at commit 891acf0, republished under its MIT licence (© romiluz13). 808 words, ~1,863 tokens.

Download SKILL.mdSave it as .claude/skills/codebase-design/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
codebase-design
description
Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a lot of behaviour behind a small interface at a clean seam, testable through that interface. The single source of truth for these terms; other skills (architecture, codebase-hygiene, building, planning) point here instead of restating them. Use when designing or improving a module's interface, finding deepening opportunities, deciding where a seam goes, or making code more testable.
allowed-tools
Read, Grep, Glob, LSP
user-invocable
false
<!-- Upstream: github.com/mattpocock/skills @ e9fcdf95b402d360f90f1db8d776d5dd450f9234
     Classification: ADAPTED (cc10x frontmatter; body is Matt's vocabulary, which is
     pure terminology with no human-gates to transform). Companions ported verbatim. -->

Codebase Design

Design deep modules: a lot of behaviour behind a small interface, placed at a clean seam, testable through that interface. Use this language and these principles wherever code is being designed or restructured. The aim is leverage for callers, locality for maintainers, and testability for everyone.

Glossary

Use these terms exactly — don't substitute "component," "service," "API," or "boundary." Consistent language is the whole point.

Module — anything with an interface and an implementation. Deliberately scale-agnostic: a function, class, package, or tier-spanning slice. Avoid: unit, component, service.

Interface — everything a caller must know to use the module correctly: the type signature, but also invariants, ordering constraints, error modes, required configuration, and performance characteristics. Avoid: API, signature (too narrow — they refer only to the type-level surface).

Implementation — what's inside a module, its body of code. Distinct from Adapter: a thing can be a small adapter with a large implementation (a Postgres repo) or a large adapter with a small implementation (an in-memory fake). Reach for "adapter" when the seam is the topic; "implementation" otherwise.

Depth — leverage at the interface: the amount of behaviour a caller (or test) can exercise per unit of interface they have to learn. A module is deep when a large amount of behaviour sits behind a small interface, shallow when the interface is nearly as complex as the implementation.

Seam (Michael Feathers) — a place where you can alter behaviour without editing in that place; the location at which a module's interface lives. Where to put the seam is its own design decision, distinct from what goes behind it. Avoid: boundary (overloaded with DDD's bounded context).

Adapter — a concrete thing that satisfies an interface at a seam. Describes role (what slot it fills), not substance (what's inside).

Leverage — what callers get from depth: more capability per unit of interface they learn. One implementation pays back across N call sites and M tests.

Locality — what maintainers get from depth: change, bugs, knowledge, and verification concentrate in one place rather than spreading across callers. Fix once, fixed everywhere.

Deep vs shallow

Deep module = small interface + lots of implementation:

┌─────────────────────┐
│   Small Interface   │  ← Few methods, simple params
├─────────────────────┤
│                     │
│  Deep Implementation│  ← Complex logic hidden
│                     │
└─────────────────────┘

Shallow module = large interface + little implementation (avoid):

┌─────────────────────────────────┐
│       Large Interface           │  ← Many methods, complex params
├─────────────────────────────────┤
│  Thin Implementation            │  ← Just passes through
└─────────────────────────────────┘

When designing an interface, ask:

  • Can I reduce the number of methods?
  • Can I simplify the parameters?
  • Can I hide more complexity inside?

The Deletion Test

For every module or abstraction, ask: "If I deleted this module and inlined its code at every call site, where does the complexity go?"

  • It vanishes → the module was a pass-through / shallow. It adds indirection without hiding complexity. Delete it or deepen its interface.
  • It reappears across N call sites → the module is deep. It earns its existence by hiding complexity that would otherwise be duplicated.

This is a falsifiable test, not a matter of taste — apply it before accepting any new module boundary.

Show full SKILL.md (370 more words)Show less

Principles

  • Depth is a property of the interface, not the implementation. A deep module can be internally composed of small, mockable, swappable parts — they just aren't part of the interface. A module can have internal seams (private to its implementation, used by its own tests) as well as the external seam at its interface.
  • The deletion test (above) — falsifiable, canonical.
  • The interface is the test surface. Callers and tests cross the same seam. If you want to test past the interface, the module is probably the wrong shape.
  • One adapter means a hypothetical seam. Two adapters means a real one. This rule is about ports — external dependency seams where you inject an adapter (production vs test, or two real transports). It does NOT apply to every internal seam or test boundary: an in-process deepening needs no adapter (see DEEPENING.md), and an ordinary caller or test exercising a public interface is NOT an adapter. Don't introduce a port unless something actually varies across it.

Designing for testability

Good interfaces make testing natural:

  1. Accept dependencies, don't create them.

    typescript
    // Testable
    function processOrder(order, paymentGateway) {}
    
    // Hard to test
    function processOrder(order) {
      const gateway = new StripeGateway();
    }
  2. Return results, don't produce side effects.

    typescript
    // Testable
    function calculateDiscount(cart): Discount {}
    
    // Hard to test
    function applyDiscount(cart): void {
      cart.total -= discount;
    }
  3. Small surface area. Fewer methods = fewer tests needed. Fewer params = simpler test setup.

Relationships

  • A Module has exactly one Interface (the surface it presents to callers and tests).
  • Depth is a property of a Module, measured against its Interface.
  • A Seam is where a Module's Interface lives.
  • An Adapter sits at a Seam and satisfies the Interface.
  • Depth produces Leverage for callers and Locality for maintainers.

Rejected framings

  • Depth as ratio of implementation-lines to interface-lines (Ousterhout): rewards padding the implementation. We use depth-as-leverage instead.
  • "Interface" as the TypeScript interface keyword or a class's public methods: too narrow — interface here includes every fact a caller must know.
  • "Boundary": overloaded with DDD's bounded context. Say seam or interface.

Going deeper

  • Deepening a cluster given its dependencies — see DEEPENING.md: dependency categories, seam discipline, and replace-don't-layer testing.
  • Exploring alternative interfaces — see DESIGN-IT-TWICE.md: spin up parallel sub-agents to design the interface several radically different ways, then compare on depth, locality, and seam placement.

© romiluz13, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in plugins/cc10x/skills/codebase-design of romiluz13/cc10x.

  • SKILL.md
  • DEEPENING.md
  • DESIGN-IT-TWICE.md

Open the folder on GitHubat commit 891acf0

Compare with similar skills

Codebase Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Codebase Design compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Codebase Design this skillromiluz13/cc10x164—~1.9kAutomated safety check: PassMIT
Network Interface Healthaffaan-m/ECC274k1 repos~1.4kAutomated safety check: PassMIT
Agent Adaptive Coordinatorruvnet/ruflo74k2 repos~4kAutomated safety check: PassMIT
Canonical URLthedaviddias/Front-End-Checklist74k—~414Automated safety check: PassMIT
Canonical Chainthedaviddias/Front-End-Checklist74k—~417Automated safety check: PassMIT
Canonical Headerthedaviddias/Front-End-Checklist74k—~432Automated safety check: PassMIT

Similar skills

  • Diagnose interface errors, drops, CRCs, duplex mismatches, flapping, speed negotiation issues, and counter trends on routers, switches, and Linux hosts.

    274k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Agent skill for adaptive-coordinator - invoke with $agent-adaptive-coordinator

    74k GitHub starsUsed in 2 repos~4k tokens
    Data & AnalyticsAuto-check passed
  • Canonical URL

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing metadata, crawlability, structured data, or indexability related to Set canonical URLs for all pages.

    74k GitHub stars~414 tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Canonical Chain

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing metadata, crawlability, structured data, or indexability related to Avoid redirect chains on canonical URLs.

    74k GitHub stars~417 tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Canonical Header

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing metadata, crawlability, structured data, or indexability related to Sync HTML canonical tags and Link headers.

    74k GitHub stars~432 tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • Es Modules

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing scripts, client components, bundles, or runtime behavior related to Use ES modules (import/export).

    74k GitHub stars~482 tokensUpdated yesterday
    Auto-check passed

More from romiluz13/cc10x

All 22 skills in this repo
  • Diff Driven Docs

    romiluz13/cc10x

    A skill your agent uses when a BUILD phase completes, a commit is staged, or a PR is about to be created, and the diff has not yet been reflected in documentation.

    164 GitHub stars~2.7k tokensUpdated 7 days ago
    Auto-check: notes
  • Cc10x Guide

    romiluz13/cc10x

    Answers questions about cc10x itself — what it is, how to install and configure it, how the router, workflows, memory, and hooks operate, and how to troubleshoot.

    164 GitHub stars~1.7k tokensUpdated 7 days ago
    Auto-check passed
  • Cc10x Router

    romiluz13/cc10x

    THE ONLY ENTRY POINT FOR CC10X. An agent skill from romiluz13/cc10x.

    164 GitHub stars~17k tokensUpdated 7 days ago
    Auto-check passed
  • MCP CLI

    romiluz13/cc10x

    A skill your agent uses when you need a one-off MCP server capability during research or debugging without permanently mounting it as a context-polluting integration.

    164 GitHub stars~739 tokensUpdated 7 days ago
    Auto-check: notes
  • A skill your agent uses when a git merge or rebase reports conflicts and the operation is in progress.

    164 GitHub stars~709 tokensUpdated 7 days ago
    Auto-check: notes
  • Update

    romiluz13/cc10x

    Safe cc10x upgrade that preserves local modifications. An agent skill from romiluz13/cc10x.

    164 GitHub stars~1.1k tokensUpdated 7 days ago
    Auto-check: notes

Questions about Codebase Design

What does Codebase Design do?

Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a lot of behaviour behind a small interface at a clean seam, testable…. Codebase Design is an agent skill from romiluz13/cc10x. Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a lot of behaviour behind a small interface at a clean seam, testable through that interface.

When should I use Codebase Design?

Codebase Design fits situations like: improving a modules interface; finding deepening opportunities; deciding where a seam goes; making code more testable.

How do I install Codebase Design in Claude Code?

Run `npx skills add romiluz13/cc10x --skill codebase-design -a claude-code`. Or copy the skill folder (plugins/cc10x/skills/codebase-design in romiluz13/cc10x) into .claude/skills/codebase-design in your project. Claude Code loads it when a task matches its description.

How do I install Codebase Design in Codex?

Run `npx skills add romiluz13/cc10x --skill codebase-design -a codex`. Or copy the skill folder (plugins/cc10x/skills/codebase-design in romiluz13/cc10x) into .agents/skills/codebase-design in your project. Codex loads it when a task matches its description.

Can I use Codebase Design in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add romiluz13/cc10x --skill codebase-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codebase-design, .gemini/skills/codebase-design, .github/skills/codebase-design and .opencode/skills/codebase-design in your project.

What does Codebase Design need to run?

SKILL.md names no scripts, command-line tools or credentials: Codebase Design is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Grep, Glob, LSP.

Does Codebase Design access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Codebase Design safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Codebase Design use?

Codebase Design is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Codebase Design use?

About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Codebase Design?

Skills that share tags, products or a category with Codebase Design: Network Interface Health (affaan-m/ECC, 274k stars), Agent Adaptive Coordinator (ruvnet/ruflo, 74k stars), Canonical URL (thedaviddias/Front-End-Checklist, 74k stars) and Canonical Chain (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Codebase Design?

romiluz13 (a GitHub user) maintains it in romiluz13/cc10x, which has 164 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on September 30, 2026.

Source: romiluz13/cc10x on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.