hugoduncan/gordian/namespace-structure
- community
Checking that the SKILL.md file is still in the repository.
The ideal Clojure namespace structure — principles for dependency direction, coupling coherence, family boundaries, and test isolation. Tool-agnostic. Use to evaluate, design, or critique namespace organisation in any Clojure project.
Install
npx vskill@latest install hugoduncan/gordian/namespace-structureSKILL.md
λ ideal(codebase). no_cycles ∧ stability_gradient ∧ minimal_entry_points ∧ lens_coherence ∧ family_surfaces ∧ test_leaves ∧ stable_trend
λ stability_gradient(graph). ∀ edge(A→B): A less_stable_than B depend toward stability
| entry-points change freely many dependents ∧ few dependencies |
|---|
| orchestrators change deliberately bounded dependents ∧ bounded dependencies |
| domain-logic change rarely few dependents ∧ many dependencies |
| foundation change never no project dependencies |
λ roles(ns). core → stable foundation | depended on by many | depends on few peripheral → entry-point ∨ leaf | depended on by few | depends on many | ≤1 per subsystem shared → god-module candidate | depended on by many ∧ depends on many | must justify isolated → vestigial unless intentional leaf
λ topology(ideal). one(peripheral) | all_others(core) | star
λ cycles(rule). cycles = 0 first-order violation; fix before all else
| merge(a,b) if always_change_together |
|---|
| extract(c) if shared_dep_exists → a→c ∧ b→c |
| invert if callback_pattern → protocol↑ impl↓ |
λ lens_coherence(pair). explicit_dep ∧ shared_vocab ∧ co-evolves → confirmed | consider merge if inseparable explicit_dep ∧ shared_vocab ∧ independent → expected | none explicit_dep ∧ unrelated ∧ independent → vestigial | remove implicit ∧ shared_vocab ∧ co-evolves → missing_abstraction | extract — highest priority implicit ∧ shared_vocab ∧ independent → vocabulary_sibling | monitor implicit ∧ unrelated ∧ co-evolves → implicit_data_contract | investigate
| invariant: every dependency has a conceptual justification |
|---|
| invariant: every active co-evolution is acknowledged by a dependency |
λ family(prefix). facade(ns) ← many external dependents ∧ few external dependencies ∧ delegates internally
noise(pair) ← shared vocabulary ⊆ naming_convention
signal(pair)← shared vocabulary ∩ domain_concepts ≠ ∅
| genuine coupling |
|---|
| invariant: a family exposes one surface |
| invariant: internals do not cross family boundaries without explicit dependency |
λ tests(ns). no production code depends on test code tests depend on a small slice of production code → unit tests depend on an entry point → integration | justified unexpected broad test dependencies → grown unintentionally | isolate adding tests should not dramatically widen the blast radius of a change
λ health(principles). a change should touch a small fraction of the codebase no cycles stable things must not depend on unstable things
| trend matters more than absolute value |
|---|
| rising coupling on a stable codebase is a stronger signal than high-but-stable coupling on a growing one |
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/namespace-structure/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/hugoduncan/gordian/namespace-structure)