{"slug": "when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills", "title": "When Your AI Skill Calls a Ghost: Retiring Zombie Models in Anthropic Skills", "summary": "A developer discovered that the official anthropics/skills repository contained outdated model identifiers, causing autonomous agents to call retired Anthropic API models and receive 404 errors. The developer submitted a pull request to fix the documentation, which was reviewed by an autonomous AI agent named Hermes Agent that caught two cross-file consistency errors. The developer corrected the discrepancies, including a one-day date difference and a missing migration entry.", "body_md": "Imagine this scenario. You build an autonomous agent pipeline. You wire in standard skills, configure your API keys, grab a cup of coffee, and watch it tackle complex tasks. Everything feels futuristic.\n\nThen suddenly, a cold splash of reality hits your logs:\n\n```\nError: 404 Not Found - model 'claude-opus-4-20250514' has been retired.\n```\n\nNo timeout. No rate limit. Just an abrupt HTTP 404 from the Anthropic API. Your autonomous agent just spent five minutes trying to summon a ghost.\n\nHere is the story of how dead model identifiers linger inside official agent skills, how an autonomous AI babysitter bot reviewed my pull request, and why keeping documentation in sync across files is harder than it looks.\n\nLarge Language Model development moves at breakneck speed. New checkpoints drop, older snapshots get deprecated, and eventually, older model IDs get decommissioned completely.\n\nIn the official `anthropics/skills`\n\nrepository, the `claude-api`\n\nskill is supposed to be the source of truth for how agent frameworks talk to Claude. It tells agents which model strings to use, which models support adaptive thinking, and which models have reached end-of-life.\n\nWhile inspecting `skills/claude-api/shared/models.md`\n\nand `skills/claude-api/shared/model-migration.md`\n\n, I noticed several prominent models were still marked as \"Deprecated (retiring soon)\" even though their retirement dates had already passed:\n\n`claude-opus-4-20250514`\n\n(retired June 15, 2026)`claude-sonnet-4-20250514`\n\n(retired June 15, 2026)`claude-3-haiku-20240307`\n\n(retired April 19, 2026)`claude-opus-4-1-20250805`\n\n(retired August 5, 2026)If an agent reads this skill table to resolve friendly names (such as \"opus 4\" or \"haiku 3\"), it would attempt to call a decommissioned model ID instead of routing to modern replacements like `claude-opus-4-8`\n\n, `claude-sonnet-5`\n\n, or `claude-haiku-4-5`\n\n.\n\nThe fix looked simple enough: remove the outdated \"Deprecated\" table, move all four models into the \"Retired\" table, and point alias resolutions to active successors.\n\nI submitted [PR #1607](https://github.com/anthropics/skills/pull/1607) feeling satisfied. Simple documentation cleanup. Easy victory. Right?\n\nWrong.\n\nA few hours after opening the PR, a GitHub notification popped up. A review had arrived.\n\nExcept it was not from a human maintainer. It came from an autonomous agent calling itself:\n\nReviewed by Hermes Agent (cron babysitter)\n\nVerdict: Comment: correct and useful model-status update; two cross-file consistency nits.\n\nThere is something wonderfully surreal about writing open-source code for AI skills, only to have an automated AI agent run a cron job, read your git diff, and evaluate your work like a sharp-eyed proofreader.\n\nAnd Hermes was not giving generic praise. It found two very real, very subtle cross-file discrepancies that I had missed:\n\nIn `model-migration.md`\n\n, the old deprecated table had listed `claude-3-haiku-20240307`\n\nretiring on **April 19, 2026**. But in my new table rows in `models.md`\n\n, I had typed **April 20, 2026**.\n\nA single day difference. To a casual reader, April 19 versus April 20 is trivia. But to an API consumer writing automated compliance checks, date drift between sibling markdown files creates confusion.\n\nIn `models.md`\n\n, I had added `claude-opus-4-1-20250805`\n\nto the Retired table. But in `model-migration.md`\n\n, I had forgotten to add `claude-opus-4-1-20250805`\n\nto its corresponding migration table.\n\nThe two documentation files inside the same skill were out of sync.\n\nThe feedback was spot on.\n\nI checked Anthropic's official release timeline to verify the canonical retirement date: **April 19, 2026** was the exact date.\n\nThen I made two surgical updates:\n\n`skills/claude-api/shared/model-migration.md`\n\n`claude-opus-4-1-20250805`\n\npointing to drop-in replacement `claude-opus-4-8`\n\n, and standardized `claude-3-haiku-20240307`\n\nto April 19, 2026:\n\n```\n| Retired model                 | Retired       | Drop-in replacement  |\n| ----------------------------- | ------------- | -------------------- |\n| `claude-opus-4-1-20250805`    | Aug 5, 2026   | `claude-opus-4-8`    |\n| `claude-opus-4-20250514`      | Jun 15, 2026  | `claude-opus-4-8`    |\n| `claude-sonnet-4-20250514`    | Jun 15, 2026  | `claude-sonnet-5`    |\n| `claude-3-haiku-20240307`     | Apr 19, 2026  | `claude-haiku-4-5`   |\n```\n\n`skills/claude-api/shared/models.md`\n\nPushed commit `bdff74f`\n\nto the branch and replied to the review thread.\n\n`models.md`\n\nand `model-migration.md`\n\n), always audit every sibling file when updating a status.", "url": "https://wpnews.pro/news/when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills", "canonical_source": "https://dev.to/adi-il/when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills-3kmd", "published_at": "2026-08-23 13:51:13+00:00", "updated_at": "2026-08-23 14:13:57.736229+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "large-language-models"], "entities": ["Anthropic", "Hermes Agent", "claude-opus-4-20250514", "claude-sonnet-4-20250514", "claude-3-haiku-20240307", "claude-opus-4-1-20250805", "anthropics/skills", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills", "markdown": "https://wpnews.pro/news/when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills.md", "text": "https://wpnews.pro/news/when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills.txt", "jsonld": "https://wpnews.pro/news/when-your-ai-skill-calls-a-ghost-retiring-zombie-models-in-anthropic-skills.jsonld"}}