ovecc advise
The agent surface: every finding touching one file/module/component, each with its established fix. Call it before editing something. The output has two parts: the persisted findings whose evidence touches the target, then the component-level design smells around it.
Usage: ovecc advise [OPTIONS] <TARGET>
Example
$ ovecc advise src/core/db.ts
Advise for src/core/db.ts: 3 finding(s), 1 design smell(s)
[High] Circular dependency: core -> services -> core
Rule: circular-dependency
Evidence: src/core/db.ts:2 (core -> services: ../services/billing)
Evidence: src/services/billing.ts:1 (services -> core: ../core/db)
Fix: Invert one dependency or extract the shared module both sides depend on. (auto-fixable: no)
[High] core -> services
Rule: core must stay foundational
Evidence: src/core/db.ts:2 (../services/billing)
Fix: Route through the allowed boundary or move the code to the correct layer/domain. (auto-fixable: no)
[Low] Unused type export: Row in src/core/db.ts
Rule: unused-type
Evidence: src/core/db.ts:4 (type-only)
Fix: Drop the `export` keyword (or delete the symbol if it is unused internally too). (auto-fixable: yes)
[Medium] Cyclic Dependency — src/core <-> src/services (confidence 1.00)
Evidence: cycle_size=2 (>= 1), src/core/db.ts:2 — cycle_edge=1 (...), src/services/billing.ts:1 — cycle_edge=2 (...)
Fix: Break the cycle: invert one dependency or extract the shared core both sides depend on. [Dependency Inversion / Extract shared module]
Why agents should lead with this
Before an agent (or a human) edits src/core/db.ts, one call answers:
- What's already wrong here — so the edit doesn't compound it.
- What the established fix is — so remediation follows the codebase's own conventions, not invention.
- What is auto-fixable — so mechanical cleanup can be delegated to
fix.
Over MCP this is the ovecc_advise tool; see
AI agents.
Options
Takes a <TARGET> — file path, module, or component (see
targets) — plus the
global options.