Skip to content

fix(check): refuse loudly instead of passing silently - #47

Merged
hyperpolymath merged 2 commits into
mainfrom
fix/check-loud-refusal
Jul 28, 2026
Merged

fix(check): refuse loudly instead of passing silently#47
hyperpolymath merged 2 commits into
mainfrom
fix/check-loud-refusal

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

--check was a fake gate — and it was one I introduced in #42.

It promises enforcement it cannot deliver: only Measured/Calibrated inputs may block a merge, but the analyzer emits nothing except Confidence::Estimated. calibration.rs exists yet was never wired in — estimate_resources() is still the naive complexity * 0.1 J that calibration's own doc comment says it replaces. So --check on an undocumented pareto-regression exited 0, silently.

The fix is not to relabel estimates as Calibrated — that would overclaim, and the numbers genuinely aren't calibrated. It is to make the refusal unmissable:

::warning::--check requested but NOT enforced: the objectives driving this
pareto-regression verdict are Estimated, and only Measured or Calibrated
inputs may block. Reported as advisory.

A gate that quietly does nothing is indistinguishable from one that passed — the exact failure mode OikosBot exists to find.

Wiring calibration properly changes every resource figure and every downstream score, so it belongs in its own reviewed change (issue to follow) rather than tacked onto this.

Also documents the limitation plainly in QUICKSTART and the action's check input, so no consumer mistakes an advisory pass for clean enforcement.

Verified: warning fires on the regression fixture that previously passed in silence; 51 workspace tests pass.

🤖 Generated with Claude Code

`--check` promises enforcement it cannot currently deliver. Only
Measured/Calibrated inputs may block, and the analyzer emits nothing but
Confidence::Estimated — calibration.rs exists but was never wired in, so
estimate_resources() is still the naive complexity*0.1 J it was written to
replace. The result: `--check` on an undocumented pareto-regression exited
0 in total silence. That is a fake gate, and it was mine.

The honest fix is not to relabel estimates as Calibrated — that would
overclaim. It is to make the refusal unmissable: when enforcement is
requested and cannot be delivered, emit a ::warning:: annotation naming the
verdict and the confidence level that blocked it.

Wiring calibration properly changes every resource figure and every
downstream score, so it belongs in its own reviewed change (issue to
follow), not tacked onto this one.

Documented the limitation plainly in QUICKSTART and in the action's `check`
input description, so no consumer mistakes an advisory pass for a clean
enforcement result.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gitar-bot

gitar-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown

Note

Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime.
Learn more

Code Review ✅ Approved

Refactors the --check gate to emit an explicit warning instead of silently passing uncalibrated estimates. No issues found.

Auto-approved and auto-merge armed: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria. — merges when pipeline and required approvals pass.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@gitar-bot

gitar-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown

⚠️ Gitar auto-approved this PR but could not enable auto-merge: auto-merge is disabled for this repository — enable "Allow auto-merge" in the repository settings.

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Jul 28, 2026

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR and enabled auto-merge (configure)

@hyperpolymath
hyperpolymath merged commit 3ff719a into main Jul 28, 2026
21 checks passed
@hyperpolymath
hyperpolymath deleted the fix/check-loud-refusal branch July 28, 2026 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant