All checks were successful
ci/woodpecker/push/default Pipeline was successful
Make the admin's Claude Code agent skills available to the `emo` devvm user. Viktor asked to install Matt Pocock's skills for emo, starting with grill-me but covering the full set the admin already uses. The `npx skills` upstream has drifted off that set (diagnose -> diagnosing-bugs and write-a-skill -> writing-great-skills were renamed; caveman + zoom-out are no longer published), so reproducing it via npx is impossible and would also spray ~70 agent dirs into the user's home + add a GitHub-clone + unpinned-CLI dependency to the hourly root reconcile. Instead vendor a point-in-time snapshot of the 16 skills (scripts/workstation/claude-skills/) and copy them per-user, mirroring install_memory: install_skills() copies each skill into ~/.agents/skills/<name> (owned by the user) and symlinks ~/.claude/skills/<name> -> ../../.agents/skills/<name>. if-absent, additive, best-effort, scoped to the SKILL_USERS allowlist (emo). find-skills is from vercel-labs/skills (not Matt Pocock) but included since it is part of the admin's current set. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.2 KiB
Markdown
33 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?
|