Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add asherzj/ashers-agent-skills --skill codebase-designgit clone --depth 1 https://github.com/asherzj/ashers-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/asherzj/ashers-agent-skills/codebase-design)<a href="https://agentmods.dev/skills/asherzj/ashers-agent-skills/codebase-design"><img src="https://agentmods.dev/badge/skills/asherzj/ashers-agent-skills/codebase-design/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/asherzj/ashers-agent-skills/codebase-design"><img src="https://agentmods.dev/badge/skills/asherzj/ashers-agent-skills/codebase-design.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00068 | $0.01589 |
| Opus 5.5 | $0.00027 | $0.00636 |
| Sonnet 5.5 | $0.00014 | $0.00318 |
| Haiku 4.5 | $0.00007 | $0.00159 |
Grade A, and why
codebase-design scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 115 lines — stays where its author put it; the contents beside it link to each section on GitHub.
代码库设计
设计深模块(deep module):小接口背后藏大量行为,安放在干净的接缝(seam)处,可通过该接口测试。凡是在设计或重构代码之处,都使用这套语言和这些原则。目标是给调用方杠杆(leverage),给维护者局部性(locality),给所有人可测试性。
术语表
精确使用这些术语:不要换成"component""service""API"或"boundary"。语言保持一致正是全部意义所在。
模块(Module):任何拥有接口和实现的东西。刻意不区分规模:函数、类、包,或跨层的垂直切片(vertical slice)。避免:unit、component、service。
接口(Interface):调用方要正确使用该模块必须知道的一切:类型签名,以及不变量、顺序约束、错误模式、必需的配置和性能特征。避免:API、signature(太窄,它们只指类型层面的表面)。
实现(Implementation):模块内部的东西,它的代码本体。与**适配器(adapter)**相区别:一个东西可以是带大实现的小适配器(Postgres 仓储),也可以是带小实现的大适配器(内存 fake)。话题是接缝时用"adapter",否则用"implementation"。
深度(Depth):接口处的杠杆。调用方(或测试)每学习一单位接口所能调用的行为量。大量行为位于小接口之后时,模块是深的(deep);接口几乎与实现一样复杂时,是浅的(shallow)。
接缝(Seam)(Michael Feathers):无需在原地编辑即可改变行为的地方;模块接口所处的位置。接缝放在哪里,本身就是一个独立的设计决策,与它背后放什么无关。避免:boundary(与 DDD 的 bounded context 含义过载)。
适配器(Adapter):在接缝处满足某个接口的具体事物。描述的是角色(填补哪个槽位),而非实体(内部是什么)。
杠杆(Leverage):调用方从深度中获得的东西。每学习一单位接口,换来更多能力。一个实现可在 N 个调用点和 M 个测试中获得回报。
局部性(Locality):维护者从深度中获得的东西。变更、bug、知识和验证集中在一处,而不是散布到各调用方。修一次,处处修好。
深与浅
深模块 = 小接口 + 大量实现:
┌─────────────────────┐
│ Small Interface │ ← Few methods, simple params
├─────────────────────┤
│ │
│ Deep Implementation│ ← Complex logic hidden
│ │
└─────────────────────┘
浅模块 = 大接口 + 少量实现(应避免):
┌─────────────────────────────────┐
│ Large Interface │ ← Many methods, complex params
├─────────────────────────────────┤
│ Thin Implementation │ ← Just passes through
└─────────────────────────────────┘
设计接口时,问自己:
- 能减少方法数量吗?
- 能简化参数吗?
- 能在内部藏起更多复杂度吗?
原则
- 深度是接口的属性,不是实现的属性。 深模块内部可以由小的、可 mock、可替换的部件组成;只是它们不属于接口。模块除了接口处的外部接缝,还可以有内部接缝(私有于其实现,供它自己的测试使用)。
- 删除测试(deletion test)。 想象删掉这个模块。如果复杂度随之消失,它就只是个直通层。如果复杂度在 N 个调用方身上重现,说明它物有所值。
- 接口就是测试面。 调用方和测试穿越的是同一道接缝。如果你想越过接口去测,这个模块的形状多半不对。
- 一个适配器意味着假想接缝。两个适配器才意味着真接缝。 除非真有东西跨接缝变化,否则不要引入接缝。
为可测试性设计
好的接口让测试自然而然:
-
接受依赖,不要创建依赖。
// Testable function processOrder(order, paymentGateway) {} // Hard to test function processOrder(order) { const gateway = new StripeGateway(); }
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 115 lines · 68 tokens per session scan A 1ac671e7b4a6
codebase-design is a skill published in the GitHub repository asherzj/ashers-agent-skills (3 stars, last pushed 1mo ago), licensed MIT. It adds 68 tokens to every session and 1,589 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
html-ppt-hermes-cyber-terminal
OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.
html-ppt-taste-brutalist
16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).
visual-ralph
Visual Ralph orchestration for frontend UI from generated references, static references, or live URL targets, using $ultragoal with built-in visual verdict and pixel-diff evidence until the implementation matches and leaves a reproducible design system.
glance-canonical-layouts
Use this skill to create home screen widgets using Jetpack Glance Canonical Layouts from the Android Platform Samples project, or when asked to implement standard widget layout patterns (including Check List, Image Grid, Snap Scrolling, and Standard Toolbar).
accessibility
Consolidated accessibility skill entrypoint for WCAG 2.2, ARIA Authoring Practices, cognitive accessibility, Section 508, EN 301 549, design intent verification, and the Accessibility Planner workflow.