[FEATURE] /insights misclassifies intentional hook guardrails and iterative skill development as friction
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
/insights analyzes session data without considering user configuration (~/.claude/hooks/, skills, settings.json), which causes it to systematically misclassify intentional behavior as friction. This makes the friction analysis unreliable for users with non-trivial configurations.
Two specific patterns:
1. Hook-blocked commands counted as friction
I have PreToolUse hooks that block direct access to Jira, git writes, and certain cloud CLI operations (e.g. jira-guard.sh, git-guard.sh, gcloud-guard.sh). These are intentional safety guardrails — they fire, Claude adjusts, and work continues without my intervention.
/insights counts every hook-triggered error as friction requiring user intervention. This is especially misleading in elevated permission setting sessions, where hitting a hook is the expected safety net, not a failure.
2. Iterative skill runs misread as interrupted sessions
When developing/refining custom skills my workflow is: run skill → observe output → end session → tweak skill definition → re-run. This is a normal iterative development loop and I do it .... a lot.
/insights interprets this as "user interrupted Claude making unsolicited edits" and flags it as a top friction source. The report specifically called out "Claude making unsolicited edits to [files I told it to edit]" multiple times as friction — but those edits were desired behavior that I was iterating on.
Impact
The friction section — arguably the most actionable part of the report — becomes noise. Of the 49 "wrong approach" instances and 37 "buggy code" instances flagged in my report, a meaningful portion are false positives from these two patterns. The suggestions derived from them ("add guardrails to prevent edits") are the opposite of what I want.
Proposed Solution
- Incorporate
~/.claude/config context: if a hook exists that blocks a command pattern, errors matching that pattern shouldn't count as friction - Distinguish between errors requiring user intervention vs. errors Claude self-recovered from
- Consider
--dangerously-skip-permissionscontext — hook blocks in those sessions (and that are only enabled during those sessions) are working as designed - Short sessions followed by immediate re-runs of the same skill could be recognized as iterative development rather than interrupted work
Prior art
This was raised in #22967 (now closed) which suggested /insights should read ~/.claude/ config to avoid false positives. Filing fresh per the close comment's direction.
Alternative Solutions
- Alternatively, allow users to pass context or exclusions to
/insights(e.g.,/insights --exclude-hooksor a config file)
Priority
Low - Nice to have
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
Honestly, the CC session where I was getting feedback on whether or not to file this issue was funny enough to include as a case-in-point:
/pbcopy Read 1 file (ctrl+o to expand) ⏺ The hook caught "gcloud" in the text content. Let me route around that. ⏺ The irony — my pbcopy got blocked by your gcloud hook because "gcloud" appears in the issue text. Let me work around it. ⎿ Interrupted · What should Claude do instead? ❯ hahahahahahahahahahhaha, hilarious. Sorry, didn't mean to interrupt you. But while I have you, here's the list of ways to file it, any thoughts on which one?[[Image]](file:///[blah blah blah]/1.png) ⎿ [Image] ⏺ Feature Request — this is squarely "suggest a new feature or enhancement." The tool works, it just doesn't account for your use case. That's not a bug (it's not broken), not a model behavior issue (Claude the model isn't doing anything wrong), and not a docs issue. Now let me get that clipboard sorted. I'll write to a temp file to dodge your hook. ⏺ Write([/tmp/insights-issue.md](file:///tmp/insights-issue.md)) ⎿ Wrote 33 lines to ../../../../tmp/insights-issue.md 1 ## Problem 2 3/insightsanalyzes session data without considering user configuration (~/.claude/hooks/, skills,settings.json), which causes it to systematically misclassify intentional behavior as friction. This makes the friction analysis unrel iable for users with non-trivial configurations. 4 5 Two specific patterns: 6 7 ### 1. Hook-blocked commands counted as friction 8 9 I have PreToolUse hooks that block direct access to Jira, git writes, and certain cloud CLI operations (e.g.jira-guar d.sh,git-guard.sh,gcloud-project-guard.sh). These are intentional safety guardrails — they fire, Claude adjusts, and work continues without my intervention. … +23 lines (ctrl+o to expand) ⏺ Bash(pbcopy < /tmp/insights-issue.md) ⎿ (No output) ⏺ Copied to clipboard. And yes — the fact that the draft itself triggered the exact hook behavior it's describing is chef's kiss supporting evidence. Might be worth mentioning that in the issue.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗