[FEATURE] Add a supported way to disable the ReportFindings tool

Status Open
Reported on v2.1.197
Maintainer reply None cached
Activity 0 comments · opened Aug 21, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

/code-review reports findings through the ReportFindings tool, which renders them into a UI panel and instructs the model not to also print them as text. There is no user-facing way to opt out, and the rendered findings cannot be exported.

Review findings are not a terminal-only artifact for me. They almost always leave the machine:

pasted to other people for review handoff and discussion
handed from a read-only review agent to a separate implementing agent
posted into a GitHub comment — GitHub cannot render the widget
kept from local-branch reviews, where there is no PR to attach to
--comment and ultra --post cover the PR case. They do not cover the other three.

What makes the missing switch surprising is that the plain-markdown reporting path already exists and is already selected by a gate. From the 2.1.197 bundle:

let p = fvf(d, t);        // d = resolved effort level
let m = p ? Qvl : XQn;    // two different skill instruction bodies
function fvf(e, t) {
  if (e === "low") return false;
  if (t.options?.isSkillPreload) return false;
  if (!t.options?.tools?.some((n) => nc(n, UAe))) return false;  // UAe = "ReportFindings"
  if (tN.CLAUDE_CODE_REPORT_FINDINGS) return true;
  return it("tengu_report_findings_tool", false);
}

XQn is a markdown reporting body that never mentions ReportFindings. It is already written, already shipped, and already reachable — just not through anything a user can set:

CLAUDE_CODE_REPORT_FINDINGS is opt-IN only. It cannot disable the tool, and because "0" is truthy in JS, setting it to zero ENABLES the widget — a likely footgun for anyone who finds the variable name and assumes it is a toggle.
tengu_report_findings_tool is a server-side gate, not user-settable.
The skill body is compiled into the signed binary, so it cannot be edited or overridden locally.

Proposed Solution

A supported switch that selects the XQn body. Any one of:

A settings.json key, in the spirit of the existing disableArtifact / disableWorkflows:

{ "disableReportFindings": true }

A real off value for CLAUDE_CODE_REPORT_FINDINGS (and treating "0"/"false" as off rather than as truthy strings).

A /code-review --text flag, alongside the existing --fix and --comment.

Failing any of those, a copy-as-markdown affordance on the panel itself would address most of it.

Alternative Solutions

Two workarounds exist. Both have real costs.

/code-review low — trips the first condition in fvf, but low is explicitly the reduced-depth tier, so the price of exportable output is a worse review.

A custom main-thread agent whose tools: omits ReportFindings — trips the third condition and keeps full depth, but replaces the main-thread system prompt as a side effect and requires manually maintaining a tool allowlist that silently goes stale as new built-ins ship.

I also tried permissions.deny on ReportFindings, which is the obvious thing to reach for and actively makes things worse. The deny appears to block the call at permission time while leaving the tool in options.tools, so the third condition never trips. The model gets the Qvl body, calls ReportFindings, is denied, then regenerates the entire finding set as text — findings are generated twice, and the second pass is not guaranteed to reproduce the first. If deny is intended to be a supported way to turn this off, it would help for it to either work as expected or check the tool is denied before generating output for it.

Priority

High - Significant impact on productivity

Feature Category

Configuration and settings

Use Case Example

  1. I run /code-review high on a feature branch before opening a PR.
  2. The review surfaces several correctness findings, rendered into the panel.
  3. I want to hand those findings to a separate implementing agent, and paste two of them into a design discussion with a colleague.
  4. There is no way to get the text out. The model was instructed not to print it, so the panel is the only copy. Attempting to copy-paste the panel output results in a garbled copy-paste that requires manual effort to fix.

Additional Context

_No response_

View original on GitHub ↗