budget

Enforces a one-way violation-count ratchet for incremental Plumbline backlog cleanup in CI.

1|Updated Jul 21, 2026
One-click install
npx skills add https://github.com/fallguyconsulting/ok-plugins --skill budget-fallguyconsulting
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: budget
Source: https://github.com/fallguyconsulting/ok-plugins/tree/main/plugins/ok/families/ok-plumbline/skills/budget
Command: npx skills add https://github.com/fallguyconsulting/ok-plugins --skill budget-fallguyconsulting

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Large legacy codebases often have more Plumbline lint violations than a team can fix in one pass, so a strict lint gate would block all work. This Skill records a baseline violation count and fails CI only when a change increases that count, letting teams pay down the backlog incrementally without ever letting it grow. ## Core Features & Use Cases - Baseline Recording: Saves the current violation count and per-check breakdown to .ok-plumbline/budget.json via the save verb. - CI Ratchet Check: The check verb exits 2 only when the count goes up, so PRs that hold or reduce violations pass. - One-Way Enforcement: save refuses to record a higher baseline, making the ratchet strictly monotonic by design. - Use Case: A project inherits 400 Plumbline violations. The team saves 400 as the baseline, and every subsequent PR must keep the count at or below 400; whenever it drops, the new lower number is committed as the new baseline. ## Quick Start Run /ok-plumbline:budget to compare the current violation count against the saved baseline, or run /ok-plumbline:budget save to commit a lower baseline.

Frequently Asked Questions about budget

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I gradually fix a large lint backlog without blocking CI?▼

Record the current violation count as a baseline with /ok-plumbline:budget save, then have CI run the check verb on every change. The check fails only when the count increases, so PRs that hold or reduce violations pass while the backlog shrinks over time.

How does the Plumbline violation budget ratchet work?▼

The budget file .ok-plumbline/budget.json stores the current violation count and per-check breakdown. Running check compares the live count against that baseline and exits 2 only if it went up; running save commits a new, lower baseline.

Can I raise the violation baseline to make a failing PR pass?▼

No. The save verb refuses with exit code 2 when the current count is above the recorded baseline, so raising the budget is impossible by design. You must fix the new violations or surface the underlying design decision instead.

Why does the budget check fail in CI but pass locally?▼

A baseline is only comparable against the binary version that produced it. The skill prefers the project's vendored binary at .ok-plumbline/bin/plumbline; if it is missing, it falls back to the plugin payload copy, which may report different counts.

What happens when the violation count drops below the baseline?▼

The check passes, and the skill proposes committing the new lower count with /ok-plumbline:budget save. Once committed, the ratchet is one-way, so any future increase beyond the new baseline fails CI.