# Adapt a pipeline to the current upstream shape

A pipeline pinned to an old upstream shape, adapted with a contract test against the live schema.

Category: Pipelines and warehouse
Source: https://letsship.ai/use-cases/adapt-a-pipeline-to-the-upstream-shape
Published: 2026-08-25

## Goal

Update a pipeline to the current upstream schema and add a contract test.

## Acceptance criteria

- The pipeline handles the current upstream shape
- A contract test asserts the expected upstream schema
- The test fails when upstream changes shape
- Removed upstream fields are handled explicitly rather than silently nulled

## What lands as proof

A contract test against the live upstream schema, so the next change is caught at the boundary.

## 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: Adapt the {pipeline} pipeline to the current upstream schema

Description: Update a pipeline to the current upstream schema and add a contract test.

Acceptance criteria:
- The pipeline handles the current upstream shape
- A contract test asserts the expected upstream schema
- The test fails when upstream changes shape
- Removed upstream fields are handled explicitly rather than silently nulled

Before you create the issue, compare a pipeline's expected schema in this repository against the live source and replace {pipeline}.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: update a pipeline to the current upstream schema and add a contract test. 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 contract test against the live upstream schema, 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.
