
codependix-navigate
Answer dependency navigation and architecture questions using codependix CLI commands or committed graphs. Use when finding dependency paths between projects, files, or NestJS modules, tracing blast radius, determining what touches or imports a file or package, choosing narrowing flags to minimize run costs, or reading committed README diagrams across packages without running commands.
- Installs
- 269
- Last 24h
- +11
- Trending rank
- #8287
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/organizzolini/codebase --skill codependix-navigate- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads codependix-navigate automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Navigating a codebase with codependix
Codependix builds and queries dependency graphs across Nx workspaces, NestJS containers, and file-level TypeScript and Python imports. When asking "how does X reach Y?", "what breaks if I change Z?", or "what does this package depend on?", use codependix commands to query relationships directly, or inspect committed graphs already on disk.
Command first: querying dependency paths
Reach for codependix path to trace directed dependency paths between two
nodes without parsing diagrams or grepping source files by hand. Every
invocation names the configuration with --config <path> — in this repository
configuration/codependix.config.ts — because nothing is searched for
and there is no default.
# How does project-a reach project-c?
codependix path project-a project-c --config configuration/codependix.config.ts
# How does one file import another?
codependix path src/modules/auth/auth.service.ts src/modules/users/user.entity.ts --config configuration/codependix.config.ts
# What NestJS modules connect two modules in a container?
codependix path AuthModule DatabaseModule --config configuration/codependix.config.ts
Path query flags and narrowing
Running across a full workspace can be expensive because it parses Nx projects, TypeScript ASTs, and container registrations across the entire monorepo. Use narrowing flags to scope the run and minimize execution time:
| Flag | Purpose |
|---|---|
-f, --format <format> | Output format: markdown (default), json, or mermaid |
--nx-projects / --no-nx-projects | Toggle Nx workspace project dependency graph search |
--file-imports / --no-file-imports | Toggle internal file-level import graph search |
--nestjs-modules / --no-nestjs-modules | Toggle NestJS container module graph search |
--projects <names> | Comma-separated project names or globs to search across |
-d, --directory <dir> | Directory whose Nx workspace to read |
--include <globs> / --exclude <globs> | Override configured project inclusion or exclusion globs |
--tags <tags> | Comma-separated Nx project tags to filter by |
--config <path> | Required. Path to the codependix configuration file; every example here passes it |
Path results
- Path found: Prints the shortest directed path connecting
<from>to<to>(for exampleproject-a → project-b → project-c). - No path: Reports
_No path connects "<from>" to "<to>"._(or an empty list in JSON) and exits 0. A missing path is an answer, not an error.
When to read a committed diagram instead of running the CLI
Running the CLI builds graph representations from source files. Before running a command, check if the question is already answered by committed artifacts on disk:
- Every package in the monorepo commits its own graphs. Look in any
project's
README.mdunder the## 🕸️ Codependixsection or between<!-- codependix:start name="..." -->markers. - Immediate blast radius (1 hop): The project's committed Nx
Neighborhood diagram lists all immediate
dependencies(what it reaches) anddependents(what breaks if its public API changes). - Internal file structure: The project's committed File import graph lists all file-to-file imports and isolated files within that project.
- Container structure: The project's committed NestJS module graph lists wired container modules.
- Whole-workspace structure: The repository root
README.mdcarries the committed workspace graph.
Cost rule of thumb:
- Read README diagrams or JSON for single-hop dependencies, immediate blast radius, or local file layout (zero build cost, instant answer on disk).
- Run
codependix pathfor multi-hop transitive paths, cross-project reachability, verifying unstaged changes, or generating machine-readable JSON.
The four graph types and their questions
| Graph | Scope | Answers |
|---|---|---|
| Nx Neighborhood | Project | What one project reaches (dependencies) and who breaks if it changes (dependents) |
| Workspace graph | Workspace | High-level architectural layering and cross-package relationships |
| NestJS module graph | Container | What modules the DI container wires together at runtime |
| File import graph | Project files | File-to-file import relationships, cycles, and local refactoring fan-out |
Interpreting graph artifacts
Nx Neighborhood: blast radius
A Neighborhood covers one hop in each direction from the focal project (highlighted in diagrams):
dependentsis the blast radius of a breaking change: every listed project must build against the new shape. For breaking changes spanning deeper layers, walk outward neighborhood by neighborhood or runcodependix path.dependenciesis the allowed surface: A project may only import what is declared here.- Edges marked
implicitare Nx workspace configuration dependencies rather than code imports.
File import graph: refactoring and moves
Edges are strictly between files inside the same project:
- External packages and cross-project imports are excluded by design (they live in the Nx Neighborhood).
isolatedFileNamesis a shortlist to investigate, not dead code. An isolated file may be an entry point, an external export, or a configuration file.- Cycles are real: An import cycle within a project produces runtime
undefinedbindings or initialization order bugs. Walk the cycle edges to locate where to decouple. - Renaming a file? Edges pointing to the old relative path show the exact blast radius.
NestJS module graph: DI container wiring
Built by evaluating container modules:
- Global or ambient modules: Modules imported by nearly all others (for
example core logging or configuration) have individual edges omitted to
reduce visual noise; they are listed under
ambientModuleNamesand drawn with rounded corners. - Dynamic wrapper modules: Private internal host modules created by
forRootor dynamic providers are collapsed into the declaring module. - A missing module was never registered in the container hierarchy, meaning its exported providers are unavailable.
Confirming freshness before trusting committed graphs
A committed graph reflects the repository state at the last
codependix map --write. To check whether committed graphs are up to date:
# Check if any committed reports are stale without modifying files
codependix map --check reports --config configuration/codependix.config.ts
# Update all committed graphs across the workspace
codependix map --write --config configuration/codependix.config.ts
If committed graphs are stale with respect to recent local edits, either
re-run codependix map --write or use codependix path for real-time queries.
FAQ
What does the codependix-navigate skill do?
Answer dependency navigation and architecture questions using codependix CLI commands or committed graphs. Use when finding dependency paths between projects, files, or NestJS modules, tracing blast radius, determining what touches or imports a file or package, choosing narrowing flags to minimize run costs, or reading committed README diagrams across packages without running commands.
How do I install codependix-navigate?
Run npx skills add https://github.com/organizzolini/codebase --skill codependix-navigate in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/codependix-navigate/ (personal) or .claude/skills/codependix-navigate/ (project).
Which AI agents can use codependix-navigate?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is codependix-navigate safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains codependix-navigate?
It is published by organizzolini in organizzolini/codebase. It has 269 recorded installs.
More from organizzolini/codebase
conformetry-generate
organizzolini/codebase
Scaffold code with a conformetry generator instead of writing it by hand. Use when adding a module, component, service, application, or package to a workspace that has a conformetry configuration; when deciding whether a generator exists for the shape you are about to create; when a generator run overwrote or misplaced files; or when a conformance run reports a file that a generator should have produced. Covers both the Nx plugin and the conformetry command-line host, whose input contracts differ.
conformetry-configure
organizzolini/codebase
Add or change a conformetry generator, and write the template it renders. Use when a needed generator does not exist yet; when editing a conformetry configuration file; when writing or changing files under a template directory; when choosing placeholders or naming-case variants; when a generated file came out with an empty value or an odd path segment; or when a conformetry command refuses to run because the emitted generator plugin is out of date.
conformetry-validate
organizzolini/codebase
Run a conformetry conformance check and act on what it reports. Use when a conformetry-validate target fails; when a composite lint run reports conformance differences; when a report names a missing file, a missing declaration, a missing comment, a placeholder it could not infer, an ambiguous instance, or an unmatched instance; when deciding whether to edit an instance or regenerate it; or before claiming generated code is finished. Covers both the Nx plugin and the conformetry command-line host.
codependix-export
organizzolini/codebase
Run a codependix dependency graph export or boundary check, choose between --check boundaries, --check reports, and --write, point a run at a workspace root or a configuration file, or read a Mermaid block or JSON graph it produced. Use when running codependix or npx codependix, when a run exits 0 having written nothing, when --check is refused for carrying no value, when looking for a flag that selects one graph type, when wiring codependix into a CI step or an Nx task, when a codependix-gate target failed, or when reading an exported Nx Neighborhood, NestJS module graph, or file-level import graph. Covers the command-line host directly, without assuming any task runner.
codependix-configure
organizzolini/codebase
Open the skill to read its SKILL.md instructions.
codometer-configure
organizzolini/codebase
Write or edit a codometer.config.ts, declaring inputs, limits, custom convention counters, comment budgets, exclusions, or output destinations. Use when a repository has no codometer configuration yet, when adding a size or count limit, when bounding how long a comment block or a JSDoc comment may run, when declaring an input for compiled or generated output, when counting a naming convention no built-in analyzer knows about, when a limit fails to bind or an input matches no files, or when deciding whether one configuration can describe every project in a workspace.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.