← Back to Docs
Detectors

Nine architectural agents, nine static checks

What are VibeCop's nine architectural detector agents?

VibeCop runs nine architectural detector agents against every pull request — three LLM-powered, two embedding-powered, three graph-powered, and one history-powered. Each agent is calibrated to your codebase's Stack Profile, and every finding it produces carries an entropy weight that feeds the Architecture Integrity Index across four axes.

What does each detector agent catch?

AgentCatchesAxis
Hallucinated AbstractionsLayers, wrappers, interfaces adding indirection without valueSimplicity
Semantic DuplicationLogic re-implemented in parallel paths instead of sharedReuse
Over-EngineeringPremature generalization, unused flexibility, config-for-config's-sakeSimplicity
Pattern DriftSame problem solved differently across the codebaseConsistency
Reinvented UtilitiesHand-rolled logic duplicating an existing library or internal utilityReuse
StructureDependency-graph cycles, high coupling, and excessive fan-outStructure
Layer ViolationsImports that cross a declared architectural layer boundaryStructure
Orphaned ModulesFiles with zero in-edges and zero out-edges in the code graphStructure
Reintroduced BugsFindings matching a previously resolved issue — a regression against review historyConsistency

Dependency Health used to sit on the Structure axis. It is now a hygiene layer alongside its sibling dependency-CVE check: it carries no axis, so it no longer moves the index. Architectural Complexity is the three graph agents above.

What static checks run before deep analysis touches any code?

Nine deterministic static checks run first, fast and free of false positives from hallucinated rules — eight hygiene layers and one error-handling check. The eight hygiene layers are dependency CVE scanning against the live osv.dev database with EPSS and CISA KEV enrichment, dependency-health checks, secret detection (24 patterns), static application security testing (SAST) across 24 CWE- and OWASP-tagged rules, infrastructure-as-code checks (22 rules), vendored-drift detection, magic-number detection, and migration-safety checks.

What does each static check catch?

CheckCatchesAxis
Dependency CVEsKnown vulnerabilities in your dependency tree, enriched with EPSS and CISA KEV dataHygiene
Dependency HealthDeprecated or unmaintained packages, missing source provenance, and weak OpenSSF Scorecard postureHygiene
SecretsAPI keys, tokens, and other credentials committed to sourceHygiene
SASTInjection, XSS, path traversal, and other risky code shapesHygiene
Infrastructure as CodeSecurity misconfigurations in Dockerfiles, Compose files, and Kubernetes manifestsHygiene
Vendored DriftVendored copies of your own packages that no longer match the originalHygiene
Magic NumbersUnexplained numeric literals that read better as named constantsHygiene
Migration SafetySQL migration steps that are fine on a small table and risky on a large oneHygiene
Error HandlingEmpty catches, caught errors that go unused, catches that only log, and throws inside finallyConsistency

What does migration safety check?

Migration safety reads the SQL migrations a pull request changes (or every migration, on a full scan) and points out the steps that can hurt on a large table: dropping a column or table, building an index without CONCURRENTLY, adding NOT NULL without a default, narrowing a column type, and renaming. It is there to help you plan the rollout, so it warns and never blocks — no migration finding goes above P2. Like the other hygiene layers, it carries no axis.

What does the error-handling check look for?

The error-handling check reads TypeScript and JavaScript for four patterns that quietly lose errors: an empty catch block, a caught error that is never used, a catch that only logs to the console, and a throw inside finally. Consistent error handling is part of how a codebase solves the same problem the same way, so these findings count toward the Consistency axis and move the index.

Do hygiene findings affect the Architecture Integrity Index?

No — hygiene findings carry no axis. They matter for security and compliance, but only findings with an axis carry an entropy weight that affects the index: those from the nine architectural detector agents and from the error-handling check. See the Architecture Integrity Index doc for the full scoring formula.

Related docs