## Lesson — Avoid circular dependencies with dynamic imports

**Tags:** architecture, esm, dependencies
**Scope:** .claude/hooks/**/*.js, !**/*.test.*, !**/*.spec.*

Use workspace-relative dynamic imports to load core utilities into repository hooks. This pattern avoids circular workspace dependencies at the repo root while allowing hooks to access shared resolution logic.
