Layer 1 runs zero AI. It executes existing static analysis tooling and produces 100% repeatable results. Because it is fully deterministic, it cannot be prompt-injected. This is the floor of the review pipeline.
Default Checks (Visdom Standard)
| Check | Reference tooling | Block PR? |
|---|---|---|
| Linting | ESLint / Checkstyle / Pylint (per stack) | Configurable |
| Formatting | Prettier / google-java-format | Configurable |
| Secret detection | gitleaks / truffleHog | Always block |
| SAST (static security) | Semgrep / CodeQL | Configurable per severity |
| Test coverage delta | Coverage tool + custom threshold | Configurable |
| Build passes | Existing CI | Always block |
| Dependency audit | npm audit / Dependabot / Snyk | Configurable per severity |
TORS Filtering
Layer 1 consults the Test Oracle Reliability Score for the current test suite. Tests with reliability below a configurable threshold (default: 0.5) are excluded from the signal sent to subsequent layers and to agents.
This prevents the Lying Oracle problem: agents do not "fix" flaky tests, and Layer 2/3 do not reason over false failures.
TORS = (real failures) / (total failures)
If TORS < threshold -> test excluded from feedback signal
Agent receives: "14/14 reliable tests: PASS. 1 flaky test excluded." Output
Layer 1 produces layer1-results.json:
{
"passed": false,
"blocking_findings": [...],
"non_blocking_findings": [...],
"coverage_delta": -2.3,
"new_dependencies": ["lodash@4.17.21"],
"tors": {
"overall": 0.94,
"excluded_flaky_tests": ["test_user_search_pagination"],
"reliable_tests_passed": 14,
"reliable_tests_total": 14
}
} ✅ Key Principle
Layer 1 does not stop the review pipeline (unless a blocking finding is present). Results flow as additional context to Layer 2 and 3. The AI knows what linters already caught and does not repeat those findings.