---
title: "Generations"
description: "One reproducible attempt to produce one Target from one immutable Definition Revision."
url: https://typeship.dev/docs/projects/generations
markdown: https://typeship.dev/docs/projects/generations.md
section: "Get started"
---
> ## Documentation index
> Fetch the complete documentation index at https://typeship.dev/llms.txt (every page, one line each) or the full text at https://typeship.dev/llms-full.txt.
> Append .md to any docs URL, or send Accept: text/markdown, for the markdown twin of that page.

# Generations

One reproducible attempt to produce one Target from one immutable Definition Revision.

A **Generation** (`gen_*`) is one attempt to produce one Target. It records `target_id`, resolved generator, trigger, Definition Revision, status, files, warnings, limits, compatibility, delivery result, and the complete reproducibility envelope.

One Project action may create several Generations, one for each selected Target, but they remain independent. A failing MCP Generation does not hide a successful Go SDK Generation, and each destination receives only the files it owns.

Generations can be triggered manually, by a GitHub source change, by a scheduled URL refresh, or as an unmetered pull-request preview. Every successful linked Generation is reproducible from its `definition_revision_id`.

The Console presents Generations as a deployment-style timeline. Open one to browse its files, inspect warnings and coverage, copy identifiers, or download the exact artifact.

## Reproducibility

Generation provenance records:

* the generator edition and engine build;
* resolved configuration and its hash;
* the selected public-surface plan and its hash;
* the endpoint entitlement; and
* the package version.

The Definition Revision identifies the resolved OpenAPI or GraphQL graph. Together, these values explain what produced an artifact even after the Target configuration changes.

The generated package does not receive private source provenance. Destination repositories get only the public package and `.typeship/surface.json`, the narrow baseline needed to compare the next release.

## Releases

Feature pull requests do not change package versions. Unreleased Definition changes accumulate against the last surface merged in each destination.

The destination pull request owns the release decision. `Typeship – release readiness` verifies the bot-owned candidate head, cumulative API and package compatibility, and required version.

See [Regeneration](https://typeship.dev/docs/projects/regeneration) for the complete lifecycle and [Preview Generations](https://typeship.dev/docs/projects/preview-generations) for source review.

> **For AI agents:** `POST /projects/{project_id}/generations` returns one Generation per active Target. Each has one `target_id`, resolved `generator`, `definition_revision_id`, and `provenance` object. A Generation never represents a mixed Target list.

## Sitemap

[Every page of these docs](https://typeship.dev/llms.txt)
