ovecc violations
Every architecture + rule finding in the current snapshot: boundary violations,
banned imports, circular dependencies, security patterns, complexity, dead code,
unit size — each with file:line evidence and a machine fix action. This is the
CI artifact (--format sarif for GitHub code scanning, codeclimate for GitLab).
Usage: ovecc violations [OPTIONS]
Example
$ ovecc violations
Violations: 18
[Critical] Hardcoded secret: Stripe secret key
Rule: security/secret
Type: HardcodedSecret
Evidence: src/services/billing.ts:5 (Stripe secret key)
[High] Circular dependency: core -> services -> core
Rule: circular-dependency
Type: CircularDependency
Evidence: src/core/db.ts:2 (core -> services: ../services/billing)
Evidence: src/services/billing.ts:1 (services -> core: ../core/db)
[High] core -> services
Rule: core must stay foundational
Type: CrossDomainDependency
Evidence: src/core/db.ts:2 (../services/billing)
[Medium] Banned import: lodash*
Rule: banned-import/no-lodash
Type: ForbiddenImport
Evidence: src/utils/helpers.ts:1 (lodash/groupBy)
[Low] Unused export: refundSummary in src/services/reports.ts
Rule: unused-export
Type: UnusedExport
Evidence: src/services/reports.ts:16
...
Options
| Option | Effect |
|---|---|
--severity <level> | Only show findings at or above low / medium / high / critical |
--fail-on <medium|high|any> | Exit 1 when a finding crosses the threshold (CI check) |
--baseline | Hide findings recorded in .ovecc/baseline.json — only new ones |
--write-baseline | Accept the current findings as the baseline and exit |
--changed-since <ref> | Only findings touching files changed since this Git ref |
Plus the global options. Formats additionally
include sarif and codeclimate.
The baseline ratchet
ovecc violations --write-baseline # once: accept today's backlog
ovecc violations --baseline --fail-on any # CI: fail only on NEW findings
Findings are matched by content identity, so refactoring that merely moves an old finding doesn't defeat the baseline.
Change scoping
ovecc violations --changed-since origin/main
Progressive adoption on legacy codebases: gate the diff, not the backlog.
Machine formats
ovecc violations --format sarif > ovecc.sarif # GitHub code scanning
ovecc violations --format codeclimate > report.json # GitLab Code Quality
ovecc violations --format ndjson # one finding per line
NDJSON emits a meta record first (rule definitions), then one JSON object per
finding — ideal for streaming pipelines. See output formats.
Related
security,deadcode,health— focused slices of the same findingsreview— only what a change introduced- Rules reference — every rule and its severity