deepen-module
Skill14 starsChanged 5 days agoMITView on GitHub
Use when a person asks to design a new module's interface or to rework an existing module so that it hides much behind little, in any tier (backend, frontend, test support, tooling), or says a module's callers know too much about it. Produces a module document in aiview, how a caller uses it, its one public entry point as signatures, what stays outside and the gap from today, discussed with the person until agreed. Not for writing the task that carries the rework out (orchestrate's tasks) and not for the rework itself.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Ovich/swarmstormword for word, first seen Oct 25, 2026
Other versions1 project uses a version of this.
Word for word · 1
- Ovich/swarmstorm★ 14100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- brainstormSkill
- brainswarmSkill
- interviewSkill
- whiteboard-defenseSkill
- complexity-reworkSkill
- dependency-graphSkill
- simplify-reworkSkill
- simplifySkill
- write-diagramsSkill
- aiviewSkill
- swarm-boardSkill
- execute-planSkill
- long-horizonSkill
- orchestrate-planSkill
- guide-complexitySkill
- guide-createSkill
- guide-deepen-moduleSkill
- helpSkill
- next-stepSkill
- orchestrateSkill
- cold-readSkill
- write-planSkill
- roadmapSkill
- technical-writingSkill
- write-conventionsSkill
- pr-reviewSkill
- recurring-review-findingsSkill
- swarmSkill
- design-prototypeSkill
- point-atSkill
- validate-deliverySkill
- verification-skill-createSkill
- create-workbenchSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
all access to the module goes through the entry
- Distinctive: line 29
every project-specific name, path or setting is an option with a working default
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Deepen a module
The goal is to hide accidental complexity: the codebase knows the module's entry and nothing behind it, as if it were a package that has not been published.
A building block is not a deep module: a module other modules are built from, one job, several callers, no module document of its own. It still has an entry, held to the same rule as a deep module's (The entry, below).
One module document per module, written from the first finding, never in chat. Through the aiview skill: kind module, file YYYY-MM-DD-<module>.module.md, tags = module name, in the plan's group when a plan waits on it. Each stage below writes its sections into it.
Discover
For an existing module, discover its actual boundaries before designing. Its code may be scattered across the codebase. Document its files, its callers and its application dependencies in Today. A new module starts at Design.
Design
Sections in this order, each marked provisional where an open decision could change it.
- Usage: the complete code a caller writes to use the module; for a component, its tag with its inputs and outputs. It carries the caller's intent and no accidental complexity: no wiring, ordering, configuration or knowledge of internals.
- The entry: one logical public entry point per case the callers are in: a file, a component, a factory or a package entry. Callers bound by different rules get an entry each, named for their case, over a core they cannot import. All public access goes through an entry, each surface stays cohesive, and each is written as signatures without bodies.
- Outside: what stays in the project: its data, and the one binding that passes the project's names to the module.
- The conditions, each marked held or broken today:
- all access to the module goes through the entry
- the module imports nothing from the application, and receives any collaborator it drives
- it reads no environment and no global state
- every project-specific name, path or setting is an option with a working default
- its tuning numbers (a limit, a retry count, a default, a threshold) are named once in one constants file beside its entry, never written as a literal in a branch or a schema bound
- its tests go through the entry only, and a boundary test enforces these conditions
- The gap: what changes from Today to reach the design: exports, imports, and every caller. Changing the callers is part of the work. A large gap is drawn, who depends on whom before and after, through the
write-diagramsskill. - The open decisions, numbered, each with its options and a recommendation.
Discuss
Resolve the open decisions with the interview skill, writing each answer into the section it changes. Challenge every export: what no caller clearly needs stays inside.
Agree
The document is agreed when the list is empty and the person says so. The date goes in its header, and the entry is frozen: a later change to it is a new decision.
Implement
The rework is a task, and it quotes the agreed entry word for word.
Red flags
| Thought | Reality |
| "I'll add an option for that" | An option nobody passes is surface. |
| "One entry, an option picks the mode" | Neither the import nor the call says which rules apply. One entry per case. |
| "Callers may need this helper" | Name the caller. One that exists only in the tests is served by the entry. |
| "It's only a 3, it reads fine inline" | The same 3 in a second file drifts from the first. Name it in the constants file. |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

