grill-with-docs, improve-codebase-architecture, tdd, and triage kept non-spec markdown files at their skill root, in violation of skill-audit's file-structure.md rule (only SKILL.md/README.md belong at the root; everything else lives in scripts/, references/, assets/ or tests/). A root-level file is invisible to the ADR-0020 dangling-reference gate, which only resolves unqualified `references/...` pointers. - Moved and renamed to lowercase-kebab-case under references/: grill-with-docs (ADR-FORMAT.md, CONTEXT-FORMAT.md), improve-codebase-architecture (DEEPENING.md, INTERFACE-DESIGN.md, LANGUAGE.md), tdd (five files, casing was already fine), triage (AGENT-BRIEF.md, OUT-OF-SCOPE.md). - Updated every in-skill link to the new references/ paths, including link text that still showed the old uppercase filenames. - Fixed improve-codebase-architecture/SKILL.md's cross-skill citation of grill-with-docs's two files to the sanctioned possessive form with the references/ segment included. - Updated all four skills' README.md file tables to match. - Regenerated the flat content mirror via scripts/sync-plugin-content.sh --all. Fixes #122. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PDj6F7SPXzh3FtPN78dZ88
34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
# Deep Modules
|
|
|
|
From "A Philosophy of Software Design":
|
|
|
|
**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 interfaces, ask:
|
|
|
|
- Can I reduce the number of methods?
|
|
- Can I simplify the parameters?
|
|
- Can I hide more complexity inside?
|