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 identifier
prompt — full instructions executed at run time
description — 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
prompt and description
- Step 3: "Choose a
taskName" — this parameter does not exist; should be taskId
- The real
description field (short one-line UI label, 10–20 words) is never mentioned
Steps to Reproduce
- In Cowork mode (or any Claude surface that exposes the
schedule skill and scheduled-tasks MCP), ask Claude to schedule a recurring task.
- Claude loads the
schedule skill, drafts a prompt, picks a taskName, and calls create_scheduled_task.
- The call fails with a schema validation error: missing required
taskId and description, unknown taskName.
- 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'
Summary
The built-in
scheduleskill (creatorType: anthropic) instructs Claude to send ataskNameparameter and treatsdescriptionas a heading/label referring to the prompt body. The actualcreate_scheduled_taskMCP tool requirestaskId,prompt, anddescription(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 toSKILL.mdrevert on next sync (verified).Tool Schema Ground Truth
create_scheduled_taskrequired params:taskId— kebab-case identifierprompt— full instructions executed at run timedescription— short one-line UI label shown in the scheduled-tasks listScheduling:
cronExpressionORfireAt(mutually exclusive, optional for ad-hoc)Current SKILL.md — The Mismatch
promptanddescriptiontaskName" — this parameter does not exist; should betaskIddescriptionfield (short one-line UI label, 10–20 words) is never mentionedSteps to Reproduce
scheduleskill andscheduled-tasksMCP), ask Claude to schedule a recurring task.scheduleskill, drafts a prompt, picks ataskName, and callscreate_scheduled_task.taskIdanddescription, unknowntaskName.Expected: first call succeeds.
Actual: 2–3 failed calls per first-time use, every session, every user.
Proposed Fix (Text-Level Diff)
taskName— descriptive name in kebab-casetaskId— descriptive identifier in kebab-case. This is passed as thetaskIdparameter.Final structure:
taskIdFinally, call the
create_scheduled_tasktool.Impact
Affects every user invoking the
scheduleskill. Not setup-specific. Wastes 2–3 tool-call round-trips and produces visible error noise on first use.n'