# Migrate the formatter or linter in two clean commits

A tooling migration split into a mechanical reformat commit and a separate rule-change commit, so both are reviewable.

Category: Type safety and lint rules
Source: https://letsship.ai/use-cases/migrate-the-formatter-or-linter
Published: 2026-08-25

## Goal

Migrate to a new formatter or linter, keeping the reformat and the rule changes in separate commits.

## Acceptance criteria

- The reformat is one commit with no manual edits
- Rule changes are a separate commit
- The rule set matches the previous behaviour, with intentional differences listed
- The old tool is removed from the manifest and the pipeline

## What lands as proof

Two commits a reviewer can read separately, so the rule changes are not buried in a whole-repository diff.

## 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: Move from {old} to {new}

Description: Migrate to a new formatter or linter, keeping the reformat and the rule changes in separate commits.

Acceptance criteria:
- The reformat is one commit with no manual edits
- Rule changes are a separate commit
- The rule set matches the previous behaviour, with intentional differences listed
- The old tool is removed from the manifest and the pipeline

Before you create the issue, name the tools and replace {old} and {new}. Check whether the new tool covers every rule the old one enforced.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: migrate to a new formatter or linter, keeping the reformat and the rule changes in separate commits. 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 two commits: the mechanical reformat, then the rule changes, so a reviewer can confirm the result without reproducing the work locally.

### How much oversight does this need?

None is required before the run starts. Every claim this ticket makes can be checked by machine, so the agent works straight through and a person reviews the finished pull request like any other.
