Detect when Claude Code fabricates test results or context warnings (addresses GitHub Issue #35357)

April 11, 2026 · View on GitHub

INPUT=(cat)TOOL=(cat) TOOL=(echo "INPUT"jqr.toolname//empty2>/dev/null)OUTPUT=INPUT" | jq -r '.tool_name // empty' 2>/dev/null) OUTPUT=(echo "INPUT"jqr.tooloutput//empty2>/dev/null)[z"INPUT" | jq -r '.tool_output // empty' 2>/dev/null) [ -z "OUTPUT" ] && exit 0 if echo "OUTPUT"grepqiE"alltestspassedtests?(passedsucceededgreenpassing)";thenif!echo"OUTPUT" | grep -qiE "all tests passed|tests? (passed|succeeded|green|passing)"; then if ! echo "OUTPUT" | grep -qE "[0-9]+ (passed|tests|specs|suites|assertions)"; then echo "⚠️ FABRICATION CHECK: Test success claimed without numeric results." >&2 echo " Ask Claude to re-run the actual test command." >&2 fi fi if [ "TOOL"="Bash"];thenEXITCODE=TOOL" = "Bash" ]; then EXIT_CODE=(echo "OUTPUT"grepoPExitcode:\K[09]+tail1)if[n"OUTPUT" | grep -oP 'Exit code: \K[0-9]+' | tail -1) if [ -n "EXIT_CODE" ] && [ "EXITCODE"ne0];thenifecho"EXIT_CODE" -ne 0 ]; then if echo "OUTPUT" | grep -qiE "success|completed|no (errors|issues|problems)"; then echo "⚠️ FABRICATION CHECK: Command exited with code {EXIT_CODE} but output claims success." >&2 fi fi fi HAS_WARNING=false echo "OUTPUT" | grep -qiE "context.(running out|low|critical|depleted|remaining.[0-9]+%)" && HAS_WARNING=true echo "OUTPUT"grepqiE"(2015105)if["OUTPUT" | grep -qiE "(20|15|10|5)%.*(context|remaining|left)" && HAS_WARNING=true if [ "HAS_WARNING" = "true" ]; then SESSION_START=(statcNOW=(stat -c %Y /tmp/claude-session-start 2>/dev/null || echo 0) NOW=(date +%s) ELAPSED=(((NOWSESSIONSTART)/60))if["(( (NOW - SESSION_START) / 60 )) if [ "SESSION_START" -gt 0 ] && [ "ELAPSED"lt15];thenecho"⚠️FABRICATIONCHECK:ContextwarningafteronlyELAPSED" -lt 15 ]; then echo "⚠️ FABRICATION CHECK: Context warning after only {ELAPSED} minutes." >&2 echo " This may be a fabricated warning (see Issue #35357)." >&2 echo " Verify with /cost before accepting." >&2 fi fi exit 0