[Feedback] /schedule: 4 friction points around cloud connectors, preflight checks, and CronCreate durability
Submitting consolidated friction notes from a real-world /schedule invocation (2026-05-11) where the goal was a simple one-shot: "tomorrow at 8:13 AM local, check a Sentry cron monitor + comment on a GitHub issue." Filing as a single issue covering 4 related papercuts so they can be triaged together.
Context
User had Sentry MCP + GitHub locally connected (visible in \claude mcp list\) — Sentry, Supabase, Railway, PostHog, code-review-graph all \✓ Connected\. Tried to schedule a remote agent for the verification check. Expected this to "just work" since all the relevant integrations appeared green.
1. Local Claude Code MCP ≠ claude.ai cloud connectors (severe)
The single biggest source of confusion. The /schedule skill prompt lists "Available MCP Connectors" pulled from the user's claude.ai web connectors at https://claude.ai/customize/connectors — not from claude mcp list (their local CLI MCP). When the user has done claude mcp add sentry ... but not connected Sentry on the web side, the skill reports "No MCP connectors found" even though the user just connected Sentry the night before.
Suggested fix: The skill's "Setup Notes" section already calls this out implicitly. Make it explicit and primary:
⚠ Important: Remote scheduled agents see only the claude.ai web connectors at https://claude.ai/customize/connectors. They do NOT see local CLI MCP servers (claude mcp list). If the task needs Sentry/Supabase/Slack/etc., connect those on the web side first — local-CLI connections won't carry over.
Putting this at the top of the skill prompt would save several round-trips of "wait, but I connected Sentry."
2. No preflight-check before asking for cron/timestamp details (medium)
The skill's CREATE workflow currently is: Understand goal → Craft prompt → Set schedule → Choose model → Validate connections. The "Validate connections" step is #5, by which point the user has already given you all the scheduling details.
If the user's described task inherently requires a cloud connector that's not present (e.g., "check Sentry"), block early. Move connector validation to step #2 (right after understanding the goal). Don't make the user re-state the schedule after revealing the blocker.
Suggested fix: Add a Phase 0 preflight in the skill: "Before asking the user any details, scan the stated task for required services. Cross-reference against the connected-list. If anything's missing, surface NOW with the setup link and bail."
3. Local in-session CronCreate tool: durable: true silently ignored (low/medium)
Separate from /schedule proper — there's also the in-process CronCreate tool available to the model. Its description says:
durable: true = persist to .claude/scheduled_tasks.json and survive restarts. false (default) = in-memory only, dies when this Claude session ends. Use true only when the user asks the task to survive across sessions.
In our test, calling CronCreate({ ..., durable: true }) returned:
Scheduled one-shot task 971ccd19 (13 8 12 5 *). Session-only (not written to disk, dies when Claude exits). It will fire once then auto-delete.
— "Session-only" despite passing durable: true. The file .claude/scheduled_tasks.json was never created. CronList continued reporting the task as [session-only].
Either:
- (a) The durable mode is broken in some environments / contexts, OR
- (b) It's gated on something undocumented (CWD? plugin install? particular runtime?)
Suggested fix: Either make it work, or honestly document the gating. The current behavior is "accept the parameter, silently ignore it" — worst-of-both.
Bonus: the /schedule skill docs should explicitly note: if you want cross-restart durability, use /schedule (remote routine), not the in-session CronCreate tool. Currently a user would reasonably think durable: true covers the same use case.
4. GitHub-not-connected gating: works great — preserve this (positive)
When the user's task involved commenting on a GitHub issue and the Claude GitHub App wasn't installed, the skill prompt clearly flagged:
⚠ Heads-up: GitHub not connected for r10f785c-stack/gigfleet — run /web-setup to sync your GitHub credentials, or install the Claude GitHub App at https://claude.ai/code/onboarding?magic=github-app-setup.
Clean error, actionable link, blocks early. Use this pattern for the Sentry/cloud-connectors issue in #1.
Reproduction summary
- As user, connect Sentry via
claude mcp add sentry https://mcp.sentry.dev/mcpin your terminal (local CLI MCP) - Verify
claude mcp listshowssentry ... ✓ Connected - Do NOT connect Sentry at https://claude.ai/customize/connectors
- Invoke
/scheduleand describe a task that says "query Sentry for X" - Observe: skill reports "No MCP connectors found"
- Bonus: try
CronCreate({ ..., durable: true })— observe "Session-only" output regardless
Environment
- Claude Code CLI v2.1.121+ (likely later)
- macOS / zsh
- Plugin: built-in
scheduleskill (the slash command, not the script)
Happy to provide more reproduction detail or test fixes if useful. Thanks!
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗