ovecc explain
Explains an element from its deterministic context slice: a coupling characterization (isolated / entry-point / foundational / intermediary), direct dependencies and dependents, change-impact paths, and the findings touching it. Offline — no network, no LLM; every sentence is backed by a fact from the model.
Usage: ovecc explain [OPTIONS] <TARGET>
Example
$ ovecc explain core
# core
`core` is foundational: 3 component(s) depend on it and it has no dependencies of
its own, so changes here ripple outward. It lies on 3 traced call path(s).
2 finding(s) affect it, the most severe being low.
## Dependencies (0)
`core` has no outgoing dependencies in scope.
## Dependents (3)
- routes
- services
- src
## Change impact
Modifying `core` directly affects 3 dependent(s); change can propagate along:
- core -> routes
- core -> services
- core -> src
## Findings (2)
- [low] Unused type export: AppConfig in src/core/config.ts: type 'AppConfig' is exported ... Safe to remove — types have no runtime effect.
- [low] Unused type export: Row in src/core/db.ts: ...
Works at file granularity too:
$ ovecc explain src/core/db.ts
`src/core/db.ts` is an intermediary: it depends on 1 component(s) and is used by 3.
## Change impact
- src/core/db.ts -> src/routes/api.ts
- src/core/db.ts -> src/routes/api.ts -> src/index.ts
- src/core/db.ts -> src/services/billing.ts
And on APIs and tables: ovecc explain "api:/search", ovecc explain table:users.
Semantics worth knowing
- Dependencies / Dependents list the direct (depth-1) edges in each direction.
- Change-impact paths follow the reverse-dependency direction only — who is affected if this changes — up to three hops.
- A target that matches nothing is a usage error (exit
2) with a search hint:try a module name, a file path, or ovecc query "module <name>" to search.
Options
Takes a <TARGET> (target forms) plus the
global options.
Related
export context— the same slice as raw JSONimpact— the full transitive blast radius