# Generated files

URL: /code/file-conventions/generated · Id: `page:code/file-conventions/generated`

> The generated folder holds files the platform renders, such as SDKs and OpenAPI, and refuses pushes to them.

The `generated/` folder holds files the platform renders from the definition: SDKs, OpenAPI documents and client types. Pushes to it are refused.

```text
generated/
├── openapi.json
└── sdk/
```

## Reference
Written by the platform on every merge. Commit it or ignore it; never edit it.

## Examples
### Minimal
```text
generated/openapi.json
```

### Leaseline
```text
generated/
├── openapi.json        every path of the Leaseline API
├── mcp.json            every MCP tool
└── sdk/index.d.ts      typed $.Lease and every inherited Noun
```

## Types in the editor
Two folders hold types. `npx startup-builder dev` writes `.sb/types/` on every save; the platform writes `generated/sdk/` on every merge.

| Path | Holds |
| --- | --- |
| `.sb/types/<Noun>.d.ts` | Each [Noun](/business/nouns/noun) the [Startup](/business/nouns/startup) declares, and each [Verb](/business/nouns/verb)'s input type, such as `LeaseRenewInput` |
| `.sb/types/index.d.ts` | Adds those Nouns to the `startup-builder` module, so `import { $ } from 'startup-builder'` sees `$.Lease`; references [`startup-builder/globals`](https://startupbuilder.dev/startup-builder/globals.d.ts) |
| `startup-builder/globals` | `on`, `every` and `$`, in scope in a [Workflow](/business/nouns/workflow) file or [Verb function](/code/file-conventions/verb-functions) with no import |

Include the folder in `tsconfig.json`:

```json title="tsconfig.json"
{ "include": ["**/*.ts", ".sb/types"] }
```

## What it builds
Nothing. The [SoftwareBuilder](/code/builders/software) writes it from `Change.merge`.

## Good to know
- `generated/` is always db-first: the definition leads, the files follow.