# Remove a compatibility layer once every user has moved

A compatibility layer kept for users who have all since moved, removed on evidence rather than hope.

Category: Tech debt and deprecations
Source: https://letsship.ai/use-cases/remove-a-compatibility-shim
Published: 2026-08-25

## Goal

Remove a compatibility shim after verifying every consumer has migrated.

## Acceptance criteria

- Every known consumer is verified as migrated
- Usage evidence for the shim path is attached
- The shim and its tests are removed together
- The verification method is stated

## What lands as proof

Usage evidence showing the shim path is cold, plus a per-consumer check.

## Prompt

Copy this to an agent to open the ticket:

```text
Create a Linear issue in my team and assign it to the SHIP agent.

Title: Remove the {shim} compatibility shim

Description: Remove a compatibility shim after verifying every consumer has migrated.

Acceptance criteria:
- Every known consumer is verified as migrated
- Usage evidence for the shim path is attached
- The shim and its tests are removed together
- The verification method is stated

Before you create the issue, find a shim in this repository added for a migration and replace {shim}. List its known consumers.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: remove a compatibility shim after verifying every consumer has migrated. Work that serves that outcome is in scope, and anything outside it is left for a separate ticket, so the pull request stays reviewable.

### How do I know the work is done?

The pull request carries the evidence, not only the diff. Here that means consumers verified in the description, the shim deleted, so a reviewer can confirm the result without reproducing the work locally.

### How much oversight does this need?

The run stops once the plan is written. Somebody reads the approach and approves it before any code exists, which is the cheapest moment to redirect the work.
