Yieldpoint

Configuration

Everything that decides anything lives in .yieldpoint.json, committed, so a team tunes it in review rather than forking the tool.

A minimal file

{
  "project": "billing-service",
  "test_contract": {
    "protected_patterns": ["tests/**"],
    "assertion_monotonicity": "repair"
  },
  "structure": { "severity": "advisory", "max_file_lines": 300 },
  "metrics": { "enabled": true }
}

Sections

SectionDecides
test_contractWhich paths are protected, and how hard each contract rule bites.
structureSize and shape limits. Reported, but do not fail a run unless gates is true.
refactorDangling references and removed exports.
boundariesLayer zones, and what may import what.
ciWhether removing or disabling a CI step is reported.
routingHow churn, complexity and importance escalate a verdict.
loop_breakerWhen an agent is going round without making progress.
generatedHow generated files are detected, and what a hand-edit means.
lintersOptional external linters. Off by default, curated argv only.
metricsLocal accounting, and your token price for the cost estimate.
voiceWhat gets spoken aloud, for voice-driven sessions.
scanWhat a repository audit ignores.

An unknown section or key is reported as a warning, never ignored silently — believing you configured something while a default quietly applies is worse than a wrong value.

What stops a commit

A finding that says something was taken away fails the run. A finding that describes the shape of the code does not — it is printed, counted, and visible in scan, but it does not stand between you and a commit.

$ yieldpoint review
REPAIR  1 finding(s)

  22 files:0  [change_too_large]
    This change adds 1472 lines across 22 files, over the limit of 1200.

→ Reported, not blocking. These describe shape, not a weakening.
  Set structure.gates true in .yieldpoint.json to make them binding.

The reasoning is about what happens next rather than about severity: a gate that fires on ordinary days gets passed --no-verify out of habit, and the habit does not distinguish a long function from a deleted assertion.

Severities

Every rule resolves to one of these, and the CLI's exit code follows the worst one. There is no "advisory" severity: a finding either has a status that fails the run or the rule is off. The editor hook is separately installable in an advisory mode that reports without blocking, which is a property of that surface, not of a rule.

SeverityMeans
offNot evaluated at all.
repairThe agent can fix this itself; hand it back the prescription.
escalateA person needs to look. Retrying will not help.
blockDo not apply, do not retry. Reserved for rules with a measured false-positive rate.