Skip to content

chore(claude): allow scheduling and notification tools without prompting - #344

Merged
laurigates merged 1 commit into
mainfrom
chore/allow-scheduling-notification-tools
Jul 28, 2026
Merged

chore(claude): allow scheduling and notification tools without prompting#344
laurigates merged 1 commit into
mainfrom
chore/allow-scheduling-notification-tools

Conversation

@laurigates

Copy link
Copy Markdown
Owner

What

Adds six bare tool-name entries to permissions.allow in both the global chezmoi overlay and this repo's committed project settings:

CronCreate · CronDelete · CronList · PushNotification · RemoteTrigger · ScheduleWakeup

Why

Under defaultMode: "auto", CronCreate, RemoteTrigger, and ScheduleWakeup are members of the CLI's always-classify tool set. That set is checked before the "would this be allowed in acceptEdits mode?" fast path, so the fast path never runs for them and every call goes to the auto-mode classifier — producing a constant stream of approve/deny prompts for routine PR-CI check-in machinery (arm a cron, arm a claude.ai routine, ping when it finishes). Unattended workflows stall on them.

A whole-tool allow rule resolves before the classifier, and none of these tools declares ignoresWholeToolAllowRule, so the bare-name entries clear the prompts cleanly. None of the six executes shell, edits files, or reaches the network beyond the claude.ai routines API.

Two scopes on purpose

File Covers
exact_dot_claude/modify_settings.json local + Remote Control sessions
.claude/settings.json Claude Code web/remote, which has no access to ~/.claude

Per rules/claude-plugins-freshness.md, the committed project settings are the only path that reaches web sessions. Other repos used from web need the same six entries added to their own .claude/settings.json.

Not included

Monitor — it runs arbitrary shell, so it does not belong in the same "benign and contained" bucket.

Verification

  • chezmoi diff ~/.claude/settings.json showed only the intended addition (no runtime drift clobbered), applied, then re-diffed clean.
  • jq confirms the six entries are live in ~/.claude/settings.json.
  • pre-commit passed (check json, gitleaks, conventional commit).

🤖 Generated with Claude Code

https://claude.ai/code/session_017AF6S4A2q5ha5Yhk8duyMp

Auto mode routes CronCreate and RemoteTrigger through the classifier
unconditionally — both are members of the always-classify tool set, so the
"would this be allowed in acceptEdits mode?" fast path is skipped and every
call surfaces a prompt. ScheduleWakeup is in the same set. The result was a
steady stream of approve/deny prompts for the routine CI-check-in machinery
(arm a cron, arm a routine, ping when done), which blocks unattended
workflows from progressing.

A whole-tool allow rule resolves before the classifier runs, and neither tool
declares ignoresWholeToolAllowRule, so bare tool-name entries clear the
prompts without weakening anything else: none of these six execute shell,
edit files, or touch the network beyond the claude.ai routines API.

Added to both scopes deliberately:
- exact_dot_claude/modify_settings.json — local and Remote Control sessions
- .claude/settings.json — Claude Code web/remote, which cannot read ~/.claude

Monitor is intentionally left out: it runs arbitrary shell, so it does not
belong in the same "benign and contained" bucket.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017AF6S4A2q5ha5Yhk8duyMp
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Broken Links Detected

Summary

Status Count
🔍 Total 170
✅ Successful 160
⏳ Timeouts 0
🔀 Redirected 0
👻 Excluded 9
❓ Unknown 0
🚫 Errors 1

Errors per input

Errors in exact_dot_claude/docs/prds/daily-catchup.PRD.md


Please fix the broken links before merging.

@laurigates
laurigates merged commit 64fe8eb into main Jul 28, 2026
7 of 8 checks passed
@laurigates
laurigates deleted the chore/allow-scheduling-notification-tools branch July 28, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant