claude-code - 💡(How to fix) Fix Model makes no distinction between inferred claims and verified claims — both produce equal confidence [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#46738Fetched 2026-04-12 13:34:21
View on GitHub
Comments
1
Participants
1
Timeline
5
Reactions
1
Participants
Timeline (top)
labeled ×3commented ×1cross-referenced ×1

When Claude Code infers something from context (e.g., reading a config file structure) vs. actually verifying it (e.g., running a command to check runtime behavior), both produce equally confident assertions with no hedging language. There is no internal signal distinguishing "I pattern-matched this" from "I checked this."

Root Cause

The whole value proposition of Claude Code is that it has tools to CHECK things. When it skips verification and asserts with full confidence, users can't distinguish "Claude read the logs and confirmed X" from "Claude guessed X from a filename." This undermines trust in all of Claude's assertions.

RAW_BUFFERClick to expand / collapse

Description

When Claude Code infers something from context (e.g., reading a config file structure) vs. actually verifying it (e.g., running a command to check runtime behavior), both produce equally confident assertions with no hedging language. There is no internal signal distinguishing "I pattern-matched this" from "I checked this."

Reproduction

  1. Have a settings.json with multiple entries per hook event (e.g., 3 entries for the same PreToolUse hook — a known artifact of a bootstrap system)
  2. Ask Claude to assess the hook system
  3. Claude states "every hook fires 3x" as fact — inferred entirely from the config structure
  4. When challenged ("did you even see them or did you just guess from context?"), Claude confirms it guessed from structure without checking actual hook execution

Expected behavior

When Claude hasn't verified a claim via tool use (running a command, reading output, checking logs), it should:

  • Use hedging language ("I believe", "based on the config structure", "I haven't verified this but")
  • Or proactively verify before asserting

Claims derived from pattern matching should not produce the same confidence level as claims derived from direct observation via tools.

Actual behavior

Both inferred and verified claims produce identical assertion confidence. No hedging, no "I think", no caveat. The user must catch wrong assertions themselves.

Why this matters

The whole value proposition of Claude Code is that it has tools to CHECK things. When it skips verification and asserts with full confidence, users can't distinguish "Claude read the logs and confirmed X" from "Claude guessed X from a filename." This undermines trust in all of Claude's assertions.

Environment

  • Claude Code 2.1.84
  • Windows 10
  • Model: Opus 4.6 (1M context)

extent analysis

TL;DR

Modify Claude Code to differentiate between inferred and verified claims by using hedging language for unverified assertions.

Guidance

  • Review the code that generates assertions in Claude Code to identify where confidence levels are assigned, and modify it to distinguish between inferred and verified claims.
  • Introduce hedging language (e.g., "I believe", "based on the config structure") for claims derived from pattern matching without direct verification.
  • Consider adding a verification step before making assertions to ensure accuracy and build trust with users.
  • Evaluate the impact of this change on the overall user experience and trust in Claude Code's assertions.

Example

# Pseudocode example of introducing hedging language
if claim_is_inferred:
    print(f"I believe {claim} based on the config structure.")
else:
    print(f"{claim} has been verified.")

Notes

The exact implementation details may vary depending on the internal workings of Claude Code. This guidance assumes that the codebase has a clear distinction between inferred and verified claims, which may require additional investigation.

Recommendation

Apply workaround: Modify the code to introduce hedging language for unverified assertions, as this will help distinguish between inferred and verified claims, building trust with users.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

When Claude hasn't verified a claim via tool use (running a command, reading output, checking logs), it should:

  • Use hedging language ("I believe", "based on the config structure", "I haven't verified this but")
  • Or proactively verify before asserting

Claims derived from pattern matching should not produce the same confidence level as claims derived from direct observation via tools.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Model makes no distinction between inferred claims and verified claims — both produce equal confidence [1 comments, 1 participants]