# Remove exports that nothing in the workspace imports

A public surface larger than anything that uses it, trimmed to what is actually imported.

Category: Dead code and stale content
Source: https://letsship.ai/use-cases/remove-unimported-exports
Published: 2026-08-25

## Goal

Remove exports that nothing in the workspace imports.

## Acceptance criteria

- Every removed export is confirmed unimported across the workspace
- The build passes
- Exports intended as public API are excluded and listed
- The count removed is stated

## What lands as proof

A workspace-wide import check plus a green build, with intentional public API explicitly excluded.

## 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 unused exports from {package}

Description: Remove exports that nothing in the workspace imports.

Acceptance criteria:
- Every removed export is confirmed unimported across the workspace
- The build passes
- Exports intended as public API are excluded and listed
- The count removed is stated

Before you create the issue, run an unused-export check over this repository and replace {package} with the one carrying the most.
```

## Questions

### What does the agent actually change?

The ticket is scoped to one outcome: remove exports that nothing in the workspace imports. 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 build green, the public surface shrinks by a listed count, 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.
