# Run the official upgrade script, then fix what it missed

The official upgrade script applied in one commit, then the cases it cannot handle fixed by hand in another.

Category: Dependency and runtime upgrades
Source: https://letsship.ai/use-cases/run-the-vendor-codemod
Published: 2026-08-25

## Goal

Apply the vendor's codemod, then fix by hand every case it could not transform.

## Acceptance criteria

- The codemod runs in its own commit with no manual edits mixed in
- Cases the codemod skipped are fixed in a following commit
- The suite passes after both commits
- Anything the codemod changed incorrectly is called out in the description

## What lands as proof

Two commits a reviewer can read separately: the mechanical transform, then the judgement calls.

## 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: Apply the {vendor} codemod and finish what it missed

Description: Apply the vendor's codemod, then fix by hand every case it could not transform.

Acceptance criteria:
- The codemod runs in its own commit with no manual edits mixed in
- Cases the codemod skipped are fixed in a following commit
- The suite passes after both commits
- Anything the codemod changed incorrectly is called out in the description

Before you create the issue, check whether the framework or library being upgraded here ships a codemod, and replace {vendor} with it. If there is no codemod, say so and drop that acceptance criterion.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: apply the vendor's codemod, then fix by hand every case it could not transform. 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 codemod commit kept separate from the manual commit, 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.
