ovecc gate
The CI gate: fails when a change introduces new cycles, violations, or quality
regressions (security / dead code / complexity counts) versus a base snapshot.
Counts only — use review for the names.
Usage: ovecc gate [OPTIONS] [BASE] [HEAD]
Example
$ ovecc gate
Gate: fail (snapshot:85ee2372… -> snapshot:5ab78093…)
New cycles: 1, new modules: 0, new deps: 4, risk: Medium
- 1 new circular-dependency component(s)
- diff risk Medium crosses --fail-on Any
- 4 new dependency edge(s)
- 1 new boundary violation(s)
- 6 new security finding(s)
- 1 new high-complexity function(s)
- 2 new unused export(s)
Exit code 1 — and the verdict payload is still printed in full, so the failing CI
step carries its own explanation (in JSON too: a failing gate returns the complete
envelope).
Options
| Option | Default | Effect |
|---|---|---|
[BASE] [HEAD] | previous latest | Snapshot ids or Git refs |
--fail-on <medium|high|any> | any | any fails on any architectural change; medium/high fail on new findings at that severity |
Plus the global options.
Choosing a threshold
| Threshold | Behavior | Use when |
|---|---|---|
any (default) | Any new cycle, violation, or regression fails | Greenfield / strict repos |
medium | New medium+ findings fail | Balanced default for most teams |
high | Only new high/critical findings fail | Legacy codebases digging out |
Related
review— the same verdict, with names and evidence- CI integration — pipelines for GitHub, GitLab, and generic CI