Learn-skills.dev cohesion-coupling-review

Review a proposed change for high cohesion/low coupling; recommends the smallest boundary-safe refactor (ownership, minimal public surface, no reach-in imports).

install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/7spade/black-tortoise/cohesion-coupling-review" ~/.claude/skills/neversight-learn-skills-dev-cohesion-coupling-review && rm -rf "$T"
manifest: data/skills-md/7spade/black-tortoise/cohesion-coupling-review/SKILL.md
source content

High Cohesion / Low Coupling (Review Skill)

Use when

  • A change touches multiple folders/layers/capabilities.
  • You’re tempted to import a file from another capability.
  • “Shared” is being considered for convenience.

Checklist (fast)

  1. Ownership: which capability/bounded context owns the rule/data?
  2. Cohesion: is the logic colocated with its change reason?
  3. Coupling: are dependencies narrow (ports/events) rather than concrete imports?
  4. Public surface: can exports be reduced to the minimal stable interface?
  5. Import hygiene: any deep imports into another capability/layer?
  6. Promotion: does it truly qualify for
    shared
    (2+ contexts, no business policy)?

Smallest fixes (preferred order)

  • Move code to the owner (increase cohesion).
  • Introduce/adjust a port or event (reduce coupling).
  • Narrow exports / add an explicit entry point (stabilize interface).
  • Only then consider
    shared
    (if it meets promotion rules).

References

  • .github/instructions/06-cohesion-coupling-copilot-instructions.md
  • .github/instructions/05-design-principles-copilot-instructions.md
  • scripts/dependency-cruiser.js