emitting-output
Writing or converting formatted output in ripwire's C++ source — std::print/std::format via…
Code QUALITY of what YOU just wrote, before commit or 'done', or a cleanup: --quality-delta lists what got WORSE in 12 kinds, exit 2 if old code got worse (new-symbol rows never gate, except defect-shape format-arity); the fix a measured shape (humps/deep, tangle) calls for.
$ npx -y skills add redhat-et/ripwire --skill ripwire-quality-bar --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ripwire-quality-barContext preview
The summary Claude sees to decide when to auto-load this skill.
Code QUALITY of what YOU just wrote, before commit or 'done', or a cleanup: --quality-delta lists what got WORSE in 12 kinds, exit 2 if old code got worse (new-symbol rows never gate, except defect-shape format-arity); the fix a measured shape (humps/deep, tangle) calls for.
name: ripwire-quality-bar description: > Code QUALITY of what YOU just wrote, before commit or 'done', or a cleanup: --quality-delta lists what got WORSE in 12 kinds, exit 2 if old code got worse (new-symbol rows never gate, except defect-shape format-arity); the fix a measured shape (humps/deep, tangle) calls for. Merge safety → change-check. Even a single-line leaf fix runs it. allowed-tools: Bash, Read
> Routing: > • PR-submission readiness — tests to run, blast radius, "safe to merge?" → **ripwire-change-check** — run > `--quality-delta` FIRST, then its `--test-gate`: clean code that runs the wrong tests still regresses. > • Reusing before you write the code in the first place → **ripwire-reuse-first**. > • Wide-angle "where does this still look rotten" read across a whole file/subsystem (not a before/after > delta) → the panel below, or **ripwire-fresh-eyes** for the full six-family breakdown. > • **You have the measurement and need the FIX** — for your own diff or for a subsystem **ripwire-fresh-eyes** > just measured → the shape → refactor playbook, the closed fix loop and the debt fix loop are all on this page, below. > • **The regression is a MEMORY-layout hypothesis, not one of the 12 quality kinds** — `--lint`'s built-in > cache-\* pack (8 static data-layout checks) is a normal part of a lint pass; `--field-affinity[=STRUCT]` > is the deeper struct-level lens once a profile implicates a specific aggregate → **ripwire-perf-target**. > • Not sure which skill? → **ripwire-router**.
Don't eyeball quality — **measure the delta your change introduced**, with a deterministic oracle, in a bounded loop. A file that was already complex is not your regression.
Apply the "non-trivial work" trigger to the LOOP, not the check. `--quality-delta` warm-runs in well under a second — cheaper than deciding by eye whether a fix "counts" as trivial, and that eyeball judgment is precisely where a leaf-looking edit that quietly changed a signature or added a branch slips through unmeasured. Run it. What a single-line leaf fix that preserves the signature and adds no branch, symbol, dependency, or abstraction gets to skip is everything AFTER a clean run: the drill-down table, `--dmm`, acking, a second round. This skill (and this file) earns its cost when the one-shot delta actually reports something — a clean `gating="0"` run on a leaf fix is confirmation, not ceremony you were right to skip.
`ripwire <dir> --quality-panel[=strict|default|lenient] --legend=compact` is THE SINGLE COMMAND for "does what I just touched still look rotten" — one ranked report over **six** evidence families (the four `--ensemble` joins — `structural`, `lexical`, `confusion`, `historical` — plus `colocation` and `state`; the full per-family breakdown lives in **ripwire-fresh-eyes**). Point it at the file or symbol you just edited for a multi-angle second opinion the single `--quality-delta` number can't give you on its own.
**Read it correctly: it is a lens, never a gate.** `--help` says so in the flag's own text and the contract is enforced in code — `--quality-panel` exits 0 unconditionally, on every preset, on every repo. It does not compare against a baseline and it cannot fail a commit. The gate for "did MY change make this WORSE" is Step 3 below (`--quality-delta`) — that is the only pass in this skill (or in ripwire) with an exit code that means something. Run `--quality-panel` for the wide-angle read, converge with `--quality-delta`, never the other way round.
Pick the preset by what "rotten" needs to mean right now: `lenient` (all six families, 1 must agree) is a reading order, roughly a third of any tree; `default` (all six, 2 must agree) is a review list; `strict` (only the four families measured stable enough to stand behind repeatedly — `historical` and `colocation` are fixed-size worst-40 cuts over a ranking whose population moves, so both re-shuffle release to release on code that never changed) is the rung closest to something CI-shaped, but it is still a lens — nothing here plugs into an exit code the way `--quality-delta` does.
`nest=` reports the single deepest line in a function. One line at depth 9 and a thousand lines at depth 9 report the same number, so `nest=9` cannot tell a **tangled** body from a long **blocked-sequential** one whose max was set by one inner loop nobody has to hold in their head. Acting on `nest=` alone is how an agent guard-clauses a dispatch table. `--metrics` (and the structural family's `why=` string in `--quality-panel` / `--ensemble`) now carry the profile beside the max:
<e f="structural" counted="1" why="ccx=724 loc=1244 nest=9 humps=30 deep=308 rrank=1"/>
**Every concrete number on this page is ILLUSTRATIVE OF A SHAPE, never a value to expect.** The counters themselves are under active calibration — an else-clause over-count fix in flight moves `humps=` down by a large fraction, and `ccx=`/`nest=` with it, on else-heavy functions. What is durable is what you *do* with the row: `humps=1` vs many, the two ratios below, and the semantics (regions vs lines, absence below the bar, `deep < humps` legal). Read the row in front of you; never carry a remembered number to it.
root; CodeScene's "bumpy road": a rise above the threshold then a fall). One deep tangle is `1`; repeated missing abstractions are many. EXACT, not a floor.
disclosed FLOOR (`deep_floor="1"`).
The ripgrep of AI context. A map before your agent reads the repo — and a check on what it writes. Ranked, deterministic call graph: what to touch, what it breaks, which tests to run.
Repo: redhat-et/ripwire
Writing or converting formatted output in ripwire's C++ source — std::print/std::format via…
Starting a FEATURE (multi-symbol work): the plan, the API boundary, the scope — how big does…
Merge-SAFETY of an existing diff — yours before you push, or a PR you review: blast radius,…
You have a SYMPTOM — crash, exception, wrong output, failing test, error string — and don't…
Maintenance risk in code you did NOT write — inheriting a module, planning a refactor, a…