Six meta commands still spend the daily hook reminder, silencing the next filtered command for 24h
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 81.1k
- Forks
- 5.1k
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 35
Description
Summary
hook_check::maybe_warn() does not only print the daily reminder — it touches the once-a-day marker (.hook_warn_last). So any command that triggers it spends the day's reminder, whether or not that command was a sensible place to show it.
#1422 fixed this for init and verify, and gain was already exempt. Six meta commands still burn it:
config, trust, hook-audit, discover, session, cc-economics
None of them print hook status of their own, and none go through the hook pipeline. The user runs one of them, gets a reminder they cannot act on in context, and the next command that should have been hooked stays silent for 24 hours.
Reproduction
Isolated HOME with a .claude directory and no hook registered:
$ rtk config # prints [rtk] /!\ No hook installed …, marker now burned
$ rtk ls # silent for the next 24h — the command that should have been hooked
Contrast with the commands #1422 fixed, where the reminder survives to the run that can act on it:
$ rtk verify --filter X # quiet, marker intact
$ rtk ls # [rtk] /!\ No hook installed …
Suggested direction
The exclusion is currently a hand-maintained matches! in run_cli, sitting next to is_operational_command, which already encodes the meta-vs-operational split as an explicit allowlist. Deciding the reminder from that same classification — rather than a second list that has to be remembered — would close the class instead of the next instance.
Worth noting two open PRs are each adding one more member to that list by hand: #3582 (Hook) and #3614 (Hook, Rewrite).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in run_cli, where the hook reminder exclusion and is_operational_command classification are defined. Reproduce the isolated-HOME config-then-ls sequence, then inspect how the six listed meta commands and the operational allowlist affect the once-a-day marker. Done means those meta commands no longer consume the marker, while a subsequent hooked command can still display the reminder.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 74/100