← ClaudeAtlas

deprecation-programlisted

Run a deprecation from usage telemetry through a hard sunset date, with migration tooling and staged comms, so a system retires without stranding its callers. Use when you own an API, endpoint, library, or service that must be turned off while other teams still depend on it.
Amey-Thakur/AI-SKILLS · ★ 4 · AI & Automation · score 77
Install: claude install-skill Amey-Thakur/AI-SKILLS
# Deprecation program A deprecation announcement changes nobody's behavior. Teams migrate the week their code breaks, not the week you ask, so a "deprecated" label with no telemetry, no tooling, and no off switch becomes a maintenance tax you pay indefinitely. Run it as a program with a burndown and a real end date, not a wiki page and good intentions. ## Method 1. **Instrument the surface before you say a word.** Add per-caller telemetry: which team, service, and code path hits it, and at what rate. Tagged access logs or OpenTelemetry spans beat an aggregate counter, because "2M calls a day" names nobody to email. You cannot deprecate a caller you cannot identify. 2. **Publish a notice carrying a hard date and the replacement.** State the exact date the system stops answering, the migration target, and the reason. Emit the warning at the call site too: a `Sunset` response header (RFC 8594), a `@Deprecated` annotation, a startup log line. A notice with no date is a wish. 3. **Ship the migration, not just the docs.** Write the codemod (jscodeshift, OpenRewrite, a scripted sed pass), the shim, or the adapter that does the mechanical rewrite. Every hour of toil left on a caller multiplies by the caller count; a codemod serving three teams has already paid for itself. 4. **Close the front door the day you announce.** Block new adopters at once: a lint rule, a denied build dependency, a registration flag that refuses fresh integrations. A "depre