-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Bug: schedule skill's SKILL.md is out of sync with createscheduledtask tool schema #169
Description
Summary
The built-in schedule skill (creatorType: anthropic) instructs Claude to send a taskName parameter and treats description as a heading/label referring to the prompt body. The actual create_scheduled_task MCP tool requires taskId, prompt, and description (a short one-line UI label) — none of which match what the skill describes.
Every first-time invocation burns 2–3 failed tool calls on schema validation errors until Claude reads the error messages and guesses the correct field names.
Evidence This Is an Anthropic-Shipped Skill
Local skills-plugin manifest entry:
{
"skillId": "schedule",
"name": "schedule",
"description": "Create a scheduled task that can be run on demand or automatically on an interval.",
"creatorType": "anthropic",
"updatedAt": null,
"enabled": true
}creatorType: anthropic = shipped by Anthropic. Local edits to SKILL.md revert on next sync (verified).
Tool Schema Ground Truth
create_scheduled_task required params:
taskId— kebab-case identifierprompt— full instructions executed at run timedescription— short one-line UI label shown in the scheduled-tasks list
Scheduling: cronExpression OR fireAt (mutually exclusive, optional for ad-hoc)
Current SKILL.md — The Mismatch
- Step 2 heading: "Draft a prompt" — says "Include in the description" and "Write the description in second-person imperative" — conflates
promptanddescription - Step 3: "Choose a
taskName" — this parameter does not exist; should betaskId - The real
descriptionfield (short one-line UI label, 10–20 words) is never mentioned
Steps to Reproduce
- In Cowork mode (or any Claude surface that exposes the
scheduleskill andscheduled-tasksMCP), ask Claude to schedule a recurring task. - Claude loads the
scheduleskill, drafts a prompt, picks ataskName, and callscreate_scheduled_task. - The call fails with a schema validation error: missing required
taskIdanddescription, unknowntaskName. - Claude retries 1–2 more times, reading errors, before producing a valid call.
Expected: first call succeeds.
Actual: 2–3 failed calls per first-time use, every session, every user.
Proposed Fix (Text-Level Diff)
| # | Current | Fixed |
|---|---|---|
| 2 (heading) | Draft a prompt | Draft the prompt |
| 2 | Include in the description | Include in the prompt |
| 2 | Write the description in second-person imperative | Write the prompt in second-person imperative |
| 3 (new) | (missing) | Write a short description — a one-line UI label (10–20 words) shown in the scheduled-tasks list, NOT the full prompt. Example: "Ping me at 4 pm for console inventory, then draft LeBonCoin listings." |
| 3 (old) | Choose a taskName — descriptive name in kebab-case |
Choose a taskId — descriptive identifier in kebab-case. This is passed as the taskId parameter. |
| 4 | Determine scheduling | Determine scheduling (renumbered to 5) |
Final structure:
- Analyze the session
- Draft the prompt
- Write a short description
- Choose a
taskId - Determine scheduling
Finally, call the create_scheduled_task tool.
Impact
Affects every user invoking the schedule skill. Not setup-specific. Wastes 2–3 tool-call round-trips and produces visible error noise on first use.n'