---
title: Project generator API
description: Generated public TypeScript reference for create-relkit.
search:
  exclude: true
sidebar:
  icon: braces
---

{/* Generated by apps/docs/scripts/generate.ts. Do not edit. */}

For configuration and examples, read [automation](/docs/modules/cli/automation).

## Public imports

- `create-relkit` — 113 exports
- `create-relkit/cli` — 1 exports
- `create-relkit/launcher` — 1 exports
- `create-relkit/catalog-resolution` — 2 exports

## All exported APIs

Names link to their complete contracts. Re-exports share their original contract; legacy exports keep their separate identity. Examples link to the API's inline sample, a maintained repository usage, or the shared module walkthrough.

| API                                                                                            | Kind  | Import from                                         | Example                                                                                                                                    |
| ---------------------------------------------------------------------------------------------- | ----- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| [ADD_FAILURE_CODES](/docs/api/create-relkit#add_failure_codes)                                 | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/dependency-patches-asset.cases.ts#L67)         |
| [ADD_KINDS](/docs/api/create-relkit#add_kinds)                                                 | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [AddFailureCode](/docs/api/create-relkit#addfailurecode-type-alias)                            | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [AddKind](/docs/api/create-relkit#addkind-type-alias)                                          | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [AddRequest](/docs/api/create-relkit#addrequest-type-alias)                                    | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [AddRequestBase](/docs/api/create-relkit#addrequestbase-interface)                             | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [AddResult](/docs/api/create-relkit#addresult-interface)                                       | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [AddScaffoldError](/docs/api/create-relkit#addscaffolderror-class)                             | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/native-transaction.fixture.ts#L99)             |
| [assertCreateCapability](/docs/api/create-relkit#assertcreatecapability)                       | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/create-capabilities.test.ts#L22)                 |
| [CatalogManifest](/docs/api/create-relkit#catalogmanifest-type-alias)                          | Type  | `create-relkit`, `create-relkit/catalog-resolution` | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ChoicePromptOptions](/docs/api/create-relkit#choicepromptoptions-interface)                   | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CREATE_CAPABILITY_TABLE](/docs/api/create-relkit#create_capability_table)                     | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/create-capabilities.test.ts#L12)                 |
| [CREATE_CLOUDS](/docs/api/create-relkit#create_clouds)                                         | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CREATE_DEPLOYMENTS](/docs/api/create-relkit#create_deployments)                               | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CREATE_JOBS](/docs/api/create-relkit#create_jobs)                                             | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CREATE_OPTION_DEFAULTS](/docs/api/create-relkit#create_option_defaults)                       | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/fixtures/inspector/generated-app.ts#L18)                                |
| [CREATE_TEMPLATES](/docs/api/create-relkit#create_templates)                                   | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/option-matrix.test.ts#L21)                                    |
| [CreateCapabilityEvidence](/docs/api/create-relkit#createcapabilityevidence-interface)         | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateCapabilityIdentity](/docs/api/create-relkit#createcapabilityidentity-interface)         | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateCapabilityTuple](/docs/api/create-relkit#createcapabilitytuple-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [createClackPromptDriver](/docs/api/create-relkit#createclackpromptdriver)                     | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateCloud](/docs/api/create-relkit#createcloud-type-alias)                                  | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateDeployment](/docs/api/create-relkit#createdeployment-type-alias)                        | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [createGenerateNextSteps](/docs/api/create-relkit#creategeneratenextsteps)                     | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/generation-output.effect.test.ts#L12)            |
| [CreateJobs](/docs/api/create-relkit#createjobs-type-alias)                                    | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateOptions](/docs/api/create-relkit#createoptions-interface)                               | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/option-matrix-fixture.ts#L25)                                 |
| [CreateOptionsContext](/docs/api/create-relkit#createoptionscontext-interface)                 | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateOptionsError](/docs/api/create-relkit#createoptionserror-class)                         | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateScaffoldPlan](/docs/api/create-relkit#createscaffoldplan-interface)                     | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateTemplate](/docs/api/create-relkit#createtemplate-type-alias)                            | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateValidationContext](/docs/api/create-relkit#createvalidationcontext-interface)           | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [CreateValidationError](/docs/api/create-relkit#createvalidationerror-class)                   | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [currentCreateCapabilityIdentity](/docs/api/create-relkit#currentcreatecapabilityidentity)     | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/create-capabilities.test.ts#L23)                 |
| [DatabaseDialect](/docs/api/create-relkit#databasedialect-type-alias)                          | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [DependencySection](/docs/api/create-relkit#dependencysection-type-alias)                      | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [domainError](/docs/api/create-relkit#domainerror)                                             | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [domainTry](/docs/api/create-relkit#domaintry)                                                 | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/observation.effect.test.ts#L83)                  |
| [errorMessage](/docs/api/create-relkit#errormessage)                                           | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [formatCreatePlan](/docs/api/create-relkit#formatcreateplan)                                   | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [formatGenerateResult](/docs/api/create-relkit#formatgenerateresult)                           | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/generation-output.effect.test.ts#L14)            |
| [GenerateCommandResult](/docs/api/create-relkit#generatecommandresult-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GenerateCommandRunner](/docs/api/create-relkit#generatecommandrunner-type-alias)              | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GenerateFailurePoint](/docs/api/create-relkit#generatefailurepoint-type-alias)                | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/failure-cleanup.test.ts#L14)                                  |
| [GenerateNextSteps](/docs/api/create-relkit#generatenextsteps-interface)                       | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [generateProject](/docs/api/create-relkit#generateproject)                                     | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/dependency-patch-generation.test.ts#L20)         |
| [GenerateProjectContext](/docs/api/create-relkit#generateprojectcontext-interface)             | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/failure-cleanup.test.ts#L101)                                 |
| [generateProjectEffect](/docs/api/create-relkit#generateprojecteffect)                         | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L45)            |
| [GenerateProjectError](/docs/api/create-relkit#generateprojecterror-class)                     | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/failure-cleanup.test.ts#L29)                                  |
| [GenerateProjectResult](/docs/api/create-relkit#generateprojectresult-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorCleanupFailure](/docs/api/create-relkit#generatorcleanupfailure-interface)           | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [generatorCleanupFailures](/docs/api/create-relkit#generatorcleanupfailures)                   | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/transaction-lifecycle.effect.test.ts#L69)      |
| [GeneratorCommandResult](/docs/api/create-relkit#generatorcommandresult-interface)             | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorCommandRunner](/docs/api/create-relkit#generatorcommandrunner-type-alias)            | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorDirectoryEntry](/docs/api/create-relkit#generatordirectoryentry-interface)           | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorDomainError](/docs/api/create-relkit#generatordomainerror-class)                     | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorEntryKind](/docs/api/create-relkit#generatorentrykind-type-alias)                    | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorFileMetadata](/docs/api/create-relkit#generatorfilemetadata-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorFileSystem](/docs/api/create-relkit#generatorfilesystem-class)                       | Value | `create-relkit`                                     | [API example](/docs/api/create-relkit#generatorfilesystem-class)                                                                           |
| [generatorFileSystemLive](/docs/api/create-relkit#generatorfilesystemlive)                     | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L67)            |
| [GeneratorFileSystemService](/docs/api/create-relkit#generatorfilesystemservice-interface)     | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-services-directories.fixture.ts#L14) |
| [GeneratorIoError](/docs/api/create-relkit#generatorioerror-class)                             | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-services.fixture.ts#L51)             |
| [GeneratorPaths](/docs/api/create-relkit#generatorpaths-class)                                 | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/contributor/workspace.fixture.ts#L74)                      |
| [generatorPathsLive](/docs/api/create-relkit#generatorpathslive)                               | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L69)            |
| [GeneratorPathsService](/docs/api/create-relkit#generatorpathsservice-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorProcess](/docs/api/create-relkit#generatorprocess-class)                             | Value | `create-relkit`                                     | [API example](/docs/api/create-relkit#generatorprocess-class)                                                                              |
| [GeneratorProcessError](/docs/api/create-relkit#generatorprocesserror-class)                   | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/transaction-lifecycle.effect.test.ts#L99)      |
| [generatorProcessLayer](/docs/api/create-relkit#generatorprocesslayer)                         | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [generatorProcessLive](/docs/api/create-relkit#generatorprocesslive)                           | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L68)            |
| [GeneratorProcessService](/docs/api/create-relkit#generatorprocessservice-interface)           | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [GeneratorPrompt](/docs/api/create-relkit#generatorprompt-class)                               | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L48)            |
| [GeneratorPromptError](/docs/api/create-relkit#generatorprompterror-class)                     | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [generatorPromptLayer](/docs/api/create-relkit#generatorpromptlayer)                           | Value | `create-relkit`                                     | [API example](/docs/api/create-relkit#generatorpromptlayer)                                                                                |
| [GeneratorPromptService](/docs/api/create-relkit#generatorpromptservice-interface)             | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [hasErrno](/docs/api/create-relkit#haserrno)                                                   | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [isValidPackageName](/docs/api/create-relkit#isvalidpackagename)                               | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/option-matrix-destinations.test.ts#L32)                       |
| [launchBun](/docs/api/create-relkit#launchbun)                                                 | Value | `create-relkit/launcher`                            | [Module example](/docs/modules/cli/automation)                                                                                             |
| [main](/docs/api/create-relkit#main)                                                           | Value | `create-relkit/cli`                                 | [Module example](/docs/modules/cli/automation)                                                                                             |
| [normalizeCreateOptions](/docs/api/create-relkit#normalizecreateoptions)                       | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/apps/docs/examples/public-api/tooling.ts#L9)                                  |
| [planCreate](/docs/api/create-relkit#plancreate)                                               | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/apps/docs/examples/public-api/tooling.ts#L16)                                 |
| [planCreateEffect](/docs/api/create-relkit#plancreateeffect)                                   | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ProjectGeneration](/docs/api/create-relkit#projectgeneration-class)                           | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [projectGenerationLive](/docs/api/create-relkit#projectgenerationlive)                         | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L66)            |
| [PromptDriver](/docs/api/create-relkit#promptdriver-interface)                                 | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/invocation/interaction.test.ts#L14)                        |
| [PromptOption](/docs/api/create-relkit#promptoption-interface)                                 | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [publicFailure](/docs/api/create-relkit#publicfailure)                                         | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/planning.effect.test.ts#L129)                  |
| [recordCleanupFailure](/docs/api/create-relkit#recordcleanupfailure)                           | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/observation.effect.test.ts#L94)                  |
| [resolveCatalogVersion](/docs/api/create-relkit#resolvecatalogversion)                         | Value | `create-relkit`, `create-relkit/catalog-resolution` | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ResolveCreateContext](/docs/api/create-relkit#resolvecreatecontext-interface)                 | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [resolveCreateDestination](/docs/api/create-relkit#resolvecreatedestination)                   | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [resolveCreateDestinationEffect](/docs/api/create-relkit#resolvecreatedestinationeffect)       | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [resolveCreateOptions](/docs/api/create-relkit#resolvecreateoptions)                           | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [resolveCreateOptionsDetails](/docs/api/create-relkit#resolvecreateoptionsdetails)             | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/tests/generator/add-resolver.creation.cases.ts#L32)                           |
| [resolveCreateOptionsDetailsEffect](/docs/api/create-relkit#resolvecreateoptionsdetailseffect) | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ResolvedCreateOptions](/docs/api/create-relkit#resolvedcreateoptions-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [resolveTemplateRoot](/docs/api/create-relkit#resolvetemplateroot)                             | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [resolveTemplateRootEffect](/docs/api/create-relkit#resolvetemplaterooteffect)                 | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [RouteMethod](/docs/api/create-relkit#routemethod-type-alias)                                  | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [SCAFFOLD_DEPENDENCIES](/docs/api/create-relkit#scaffold_dependencies)                         | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/dependency-patches-selection.cases.ts#L67)     |
| [scaffoldDependency](/docs/api/create-relkit#scaffolddependency-1)                             | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ScaffoldDependency](/docs/api/create-relkit#scaffolddependency-interface)                     | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ScaffoldDependencyName](/docs/api/create-relkit#scaffolddependencyname-type-alias)            | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/dependency-patches.fixture.ts#L38)             |
| [scaffoldErrors](/docs/api/create-relkit#scaffolderrors)                                       | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ScaffoldFileOperation](/docs/api/create-relkit#scaffoldfileoperation-interface)               | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ScaffoldPlan](/docs/api/create-relkit#scaffoldplan-interface)                                 | Type  | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/cli/tests/scaffolding/generator-environment.probe.ts#L27)            |
| [ScaffoldVerification](/docs/api/create-relkit#scaffoldverification-type-alias)                | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ScaffoldWarning](/docs/api/create-relkit#scaffoldwarning-interface)                           | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ServiceInclude](/docs/api/create-relkit#serviceinclude-type-alias)                            | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [supported](/docs/api/create-relkit#supported)                                                 | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [supportedCreateTemplates](/docs/api/create-relkit#supportedcreatetemplates)                   | Value | `create-relkit`                                     | [Source example](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/tests/create-capabilities.test.ts#L24)                 |
| [TextPromptOptions](/docs/api/create-relkit#textpromptoptions-interface)                       | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [transferCleanupFailures](/docs/api/create-relkit#transfercleanupfailures)                     | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [validateCreateOptions](/docs/api/create-relkit#validatecreateoptions)                         | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [validateCreateOptionsEffect](/docs/api/create-relkit#validatecreateoptionseffect)             | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [ValidatedCreateOptions](/docs/api/create-relkit#validatedcreateoptions-interface)             | Type  | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |
| [validatePackageName](/docs/api/create-relkit#validatepackagename)                             | Value | `create-relkit`                                     | [Module example](/docs/modules/cli/automation)                                                                                             |

## `add-transaction-files.ts`

Snapshots, writes and restores transaction-owned files and lock artifacts using the creator filesystem service; rollback preserves original bytes and modes.

### FileSnapshot

**Signature**

```ts
declare const FileSnapshot: FileSnapshot;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L13)

### applyFileOperations

**Signature**

```ts
declare const applyFileOperations: (
  root: string,
  operations: readonly ScaffoldFileOperation[],
  createdDirectories: Set<string>,
) => Promise<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L150)

### applyFileOperationsEffect

Applies planned files in order; each temporary atomic-write asset has its own scope.

**Signature**

```ts
declare const applyFileOperationsEffect: (
  root: string,
  operations: ReadonlyArray<ScaffoldFileOperation>,
  createdDirectories: Set<string>,
) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L92)

### operationPath

Resolves one relative operation while rejecting broad and escaping paths.

**Signature**

```ts
declare const operationPath: (root: string, path: string) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L20)

### restoreFiles

**Signature**

```ts
declare const restoreFiles: (
  snapshots: readonly FileSnapshot[],
  createdDirectories: ReadonlySet<string>,
) => Promise<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L151)

### restoreFilesEffect

Restores all touched files even when one restoration fails, then removes only owned empty directories.

**Signature**

```ts
declare const restoreFilesEffect: (
  snapshots: ReadonlyArray<FileSnapshot>,
  createdDirectories: ReadonlySet<string>,
) => Effect.Effect<undefined, GeneratorIoError, GeneratorFileSystem>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L114)

### snapshotFiles

**Signature**

```ts
declare const snapshotFiles: (
  root: string,
  operations: readonly ScaffoldFileOperation[],
  includeLock: boolean,
) => Promise<readonly FileSnapshot[]>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L148)

### snapshotFilesEffect

Snapshots bytes and modes, including both Bun lock formats when installation is required.

**Signature**

```ts
declare const snapshotFilesEffect: (
  root: string,
  operations: ReadonlyArray<ScaffoldFileOperation>,
  includeLock: boolean,
) => Effect.Effect<
  Array<
    | { path: string; content?: never; mode?: never }
    | { path: string; content: Uint8Array<ArrayBufferLike>; mode: number }
  >,
  GeneratorDomainError | GeneratorIoError,
  GeneratorFileSystem
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L37)

### validateOperationActions

**Signature**

```ts
declare const validateOperationActions: (
  root: string,
  operations: readonly ScaffoldFileOperation[],
) => Promise<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L149)

### validateOperationActionsEffect

Validates every destination before any transaction write, retaining deterministic error order.

**Signature**

```ts
declare const validateOperationActionsEffect: (
  root: string,
  operations: ReadonlyArray<ScaffoldFileOperation>,
) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-transaction-files.ts#L65)

## `add-types.ts`

Supported artifact kinds accepted by relkit add.

### ADD_FAILURE_CODES

Stable public diagnostic codes for scaffold failure categories.

**Signature**

```ts
declare const ADD_FAILURE_CODES: Readonly<{
  readonly usage: "RELKIT_ADD_USAGE";
  readonly invalidProject: "RELKIT_ADD_INVALID_PROJECT";
  readonly collision: "RELKIT_ADD_COLLISION";
  readonly unsupportedSourceShape: "RELKIT_ADD_UNSUPPORTED_SOURCE_SHAPE";
  readonly installation: "RELKIT_ADD_INSTALLATION_FAILED";
  readonly validation: "RELKIT_ADD_VALIDATION_FAILED";
  readonly cancellation: "RELKIT_ADD_CANCELLED";
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L165)

### ADD_KINDS

Supported artifact kinds accepted by relkit add.

**Signature**

```ts
declare const ADD_KINDS: readonly [
  "service",
  "function",
  "error",
  "event",
  "event-function",
  "task",
  "job",
  "cache",
  "bucket",
  "tool",
  "prompt",
  "agent",
  "constants",
  "route",
  "middleware",
  "transform",
  "database",
  "auth",
  "inspector",
];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L2)

### AddFailureCode (type alias)

Stable public diagnostic category of AddScaffoldError.

**Signature**

```ts
type AddFailureCode = (typeof ADD_FAILURE_CODES)[keyof typeof ADD_FAILURE_CODES];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L175)

### AddKind (type alias)

Supported relkit add artifact discriminant.

**Signature**

```ts
type AddKind = (typeof ADD_KINDS)[number];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L24)

### AddRequest (type alias)

Validated discriminated union of supported artifact scaffold requests.

**Signature**

```ts
type AddRequest =
  | NamedRequest<"service", { full: boolean; include: readonly ServiceInclude[] }>
  | NamedRequest<"function", { internal: boolean }>
  | NamedRequest<"error">
  | NamedRequest<"event", { internal: boolean; profile?: string }>
  | NamedRequest<
      "event-function",
      { event: string; delivery: "transient" | "durable"; profile?: string }
    >
  | NamedRequest<"task", { version: string; execution: "durable" | "retryable" }>
  | NamedRequest<"job", { target: string; profile?: string }>
  | NamedRequest<
      "cache",
      {
        profile?: string;
        provider?: "redis" | "cloudflare-kv";
        source?: "docker" | "connected" | "aws";
      }
    >
  | NamedRequest<
      "bucket",
      {
        profile?: string;
        provider?: "s3" | "cloudflare-r2";
        source?: "docker" | "connected" | "aws";
      }
    >
  | NamedRequest<
      "tool",
      {
        target: string;
        createFunction?: boolean;
        sideEffect: "none" | "read" | "write" | "external";
        approval: "never" | "on-write" | "always";
      }
    >
  | NamedRequest<"prompt", { text: readonly string[] }>
  | NamedRequest<
      "agent",
      {
        model?: string;
        tools: readonly string[];
        prompt?: string;
        instructions?: string;
      }
    >
  | NamedRequest<"constants">
  | (AddRequestBase & {
      readonly kind: "route";
      readonly path: string;
      readonly mode: "route" | "service-route";
      readonly maps: Readonly<Partial<Record<RouteMethod, string>>>;
    })
  | NamedRequest<"middleware", { path: string }>
  | NamedRequest<"transform">
  | (AddRequestBase & {
      readonly kind: "database";
      readonly orm: "drizzle";
      readonly dialect: DatabaseDialect;
      readonly authSchema?: boolean;
    })
  | (AddRequestBase & {
      readonly kind: "auth";
      readonly adapter: "better-auth";
      readonly databaseDialect: DatabaseDialect;
      readonly basePath: string;
    })
  /** Enables the development bridge and installs the project-local inspector UI. */
  | (AddRequestBase & { readonly kind: "inspector" });
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L50)

### AddRequestBase (interface)

Project, installation and optional service selection shared by all add requests.

**Signature**

```ts
export interface AddRequestBase {
  readonly projectRoot: string;
  readonly service?: string;
  readonly createService?: string;
  readonly install: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L35)

### AddResult (interface)

Completed add transaction's files, packages, warnings, verification and next steps.

**Signature**

```ts
export interface AddResult {
  readonly ok: true;
  readonly command: "add";
  readonly kind: AddKind;
  readonly projectRoot: string;
  readonly createdFiles: readonly string[];
  readonly updatedFiles: readonly string[];
  readonly installedPackages: readonly string[];
  readonly warnings: readonly ScaffoldWarning[];
  readonly verification: ScaffoldVerification;
  readonly nextSteps: readonly string[];
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L152)

### AddScaffoldError (class)

Public scaffold failure retaining its stable code, name and category-specific exit status.

**Signature**

```ts
declare class AddScaffoldError { constructor(
    readonly code: AddFailureCode,
    message: string,
  ) }
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L177)

### exitCode (property)

**Signature**

```ts
readonly exitCode: 1 | 2 | 130
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L178)

### DatabaseDialect (type alias)

Supported database dialect for Drizzle and authentication scaffolds.

**Signature**

```ts
type DatabaseDialect = "sqlite" | "postgresql" | "mysql";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L33)

### RouteMethod (type alias)

Supported HTTP method used by generated route mappings.

**Signature**

```ts
type RouteMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L31)

### ScaffoldFileOperation (interface)

One ordered project-relative create/update operation with complete content and optional mode.

**Signature**

```ts
export interface ScaffoldFileOperation {
  readonly path: string;
  readonly action: "create" | "update";
  readonly content: string;
  readonly mode?: number;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L125)

### ScaffoldPlan (interface)

Complete conflict-checked request, ordered writes, concrete dependencies and follow-up details.

**Signature**

```ts
export interface ScaffoldPlan {
  readonly request: AddRequest;
  readonly projectRoot: string;
  readonly operations: readonly ScaffoldFileOperation[];
  readonly dependencies: Readonly<Record<string, string>>;
  readonly artifacts: readonly Readonly<{
    kind: string;
    path: string;
    id: string;
    binding: string;
  }>[];
  readonly profiles: readonly Readonly<{ capability: string; name: string }>[];
  readonly warnings: readonly ScaffoldWarning[];
  readonly nextSteps: readonly string[];
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L132)

### ScaffoldVerification (type alias)

Public result of the requested post-mutation project check.

**Signature**

```ts
type ScaffoldVerification =
  | { readonly status: "passed"; readonly command: string }
  | { readonly status: "skipped"; readonly reason: string; readonly command: string };
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L148)

### ScaffoldWarning (interface)

Stable warning category and user-facing message retained in plans and results.

**Signature**

```ts
export interface ScaffoldWarning {
  readonly code: string;
  readonly message: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L120)

### ServiceInclude (type alias)

Artifact kinds that can be included in a generic service scaffold.

**Signature**

```ts
type ServiceInclude = Exclude<
  AddKind,
  "service" | "database" | "auth" | "inspector" | "middleware" | "transform"
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/add-types.ts#L26)

## `build-catalog.ts`

### buildCatalogDependency

Reads a concrete dependency version materialized into this package at build time.

**Signature**

```ts
declare const buildCatalogDependency: (name: string) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/build-catalog.ts#L10)

### buildCatalogPatch

Validates the patch descriptor against its centrally materialized dependency version.

**Signature**

```ts
declare const buildCatalogPatch: (name: string) => DependencyPatchDescriptor;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/build-catalog.ts#L34)

### buildCatalogProvider

Reads a selected provider's own version independently of the application API version.

**Signature**

```ts
declare const buildCatalogProvider: (name: string) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/build-catalog.ts#L15)

## `catalog-resolution.ts`

### CatalogManifest

**Signature**

```ts
declare const CatalogManifest: CatalogManifest;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/catalog-resolution.ts#L2)

### resolveCatalogVersion

Resolves one dependency against its owning default or named Bun catalog.

**Throws**

When the reference, catalog, or catalog entry is missing or recursive.

**Signature**

```ts
declare const resolveCatalogVersion: (
  manifest: CatalogManifest,
  name: string,
  spec: unknown,
) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/catalog-resolution.ts#L25)

## `catalog-resolution.types.ts`

JSON package metadata accepted by the shared strict catalog resolver.

### CatalogManifest (type alias)

JSON package metadata accepted by the shared strict catalog resolver.

**Signature**

```ts
type CatalogManifest = Record<string, unknown>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/catalog-resolution.types.ts#L2)

## `cli.ts`

Builds the creator command presentation and signal scope around pure project creation, returning JSON or terminal results after owned work settles.

### main

Runs the executable presentation boundary with invocation-owned signal listeners.

**Signature**

```ts
declare const main: (args: readonly string[]) => Promise<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/cli.ts#L23)

## `create-capabilities.ts`

Packaged creation support is an allow-list backed by exact packed readiness evidence.
Candidate literals remain parseable so explicit unsupported requests can return
a precise pre-staging diagnostic instead of masquerading as syntax errors.

### CREATE_CAPABILITY_TABLE

**Signature**

```ts
declare const CREATE_CAPABILITY_TABLE: Readonly<{
  version: 1;
  entries: ReadonlyArray<CreateCapabilityEvidence>;
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L43)

### CreateCapabilityEvidence

**Signature**

```ts
declare const CreateCapabilityEvidence: CreateCapabilityEvidence;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L20)

### CreateCapabilityIdentity

**Signature**

```ts
declare const CreateCapabilityIdentity: CreateCapabilityIdentity;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L19)

### CreateCapabilityTuple

**Signature**

```ts
declare const CreateCapabilityTuple: CreateCapabilityTuple;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L18)

### assertCreateCapability

Rejects missing or stale tuples before destination planning or installation.

**Signature**

```ts
declare const assertCreateCapability: (
  options: Pick<CreateOptions, "template" | "cloud" | "deploy" | "jobs" | "examples">,
  identity?: CreateCapabilityIdentity,
) => void;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L70)

### currentCreateCapabilityIdentity

Reads the executing SDK's release and pinned dependency catalog without acquiring application clients.

**Signature**

```ts
declare const currentCreateCapabilityIdentity: () => CreateCapabilityIdentity;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L52)

### supported

Checks every field of a complete tuple and its exact tool identity.

**Signature**

```ts
declare const supported: (
  options: Pick<CreateOptions, "template" | "cloud" | "deploy" | "jobs" | "examples">,
  identity?: CreateCapabilityIdentity,
) => boolean;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L101)

### supportedCreateTemplates

Filters interactive template choices through the same evidence allow-list.

**Signature**

```ts
declare const supportedCreateTemplates: (
  options: PartialCreateCapability,
  identity?: CreateCapabilityIdentity,
) => readonly CreateTemplate[];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.ts#L86)

## `create-capabilities.types.ts`

Describes exact creation tuples and their recorded package, tool and template evidence identities.

### CreateCapabilityEvidence (interface)

Offered tuple backed by complete fresh and restart measurements for its template bytes.

**Signature**

```ts
export interface CreateCapabilityEvidence extends CreateCapabilityTuple {
  /** Exact tool and package catalog identity measured by the recorded certification host. */
  readonly identity: CreateCapabilityIdentity;
  /** SHA-256 over ordered template paths and their complete bytes. */
  readonly templateDigest: string;
  /** Repository-relative complete 20-attempt fresh report. */
  readonly freshEvidence: string;
  /** Repository-relative complete 20-attempt restart report. */
  readonly restartEvidence: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.types.ts#L36)

### CreateCapabilityIdentity (interface)

Every field must match the running packaged tool before a tuple is offered.

**Signature**

```ts
export interface CreateCapabilityIdentity {
  /** Exact first-party release version. */
  readonly release: string;
  /** Pinned native Bun version. */
  readonly bun: string;
  /** Exact TypeScript package version. */
  readonly typescript: string;
  /** SHA-256 of the complete tool dependency catalog. */
  readonly packageCatalogDigest: string;
  /** Exact source template directory identity. */
  readonly template: string;
  /** Prepared-input snapshot protocol version. */
  readonly snapshotProtocol: number;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.types.ts#L20)

### CreateCapabilityTuple (interface)

Complete public creation combination; absence of jobs preserves the native no-jobs option.

**Signature**

```ts
export interface CreateCapabilityTuple {
  /** Authored starter selected by the public CLI. */
  readonly template: CreateOptions["template"];
  /** Explicit cloud ownership selection. */
  readonly cloud: CreateOptions["cloud"];
  /** Explicit deployment engine selection. */
  readonly deploy: CreateOptions["deploy"];
  /** Optional durable-job integration selection. */
  readonly jobs?: CreateOptions["jobs"];
  /** Whether the starter's example sources are retained. */
  readonly examples: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.types.ts#L6)

### PartialCreateCapability (type alias)

Unresolved interactive choices used only to filter certified complete tuples.

**Signature**

```ts
type PartialCreateCapability = Readonly<{
  /** Optional starter choice. */
  template?: string;
  /** Optional cloud choice. */
  cloud?: string;
  /** Optional deployment choice. */
  deploy?: string;
  /** Optional job choice; undefined retains the native prompt semantics. */
  jobs?: string | undefined;
  /** Optional example choice. */
  examples?: boolean;
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-capabilities.types.ts#L48)

## `create-preview.ts`

Builds a no-install creation preview from maintained template bytes and metadata without importing or evaluating authored template configuration.

### CreateScaffoldPlan

**Signature**

```ts
declare const CreateScaffoldPlan: CreateScaffoldPlan;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-preview.ts#L14)

### formatCreatePlan

Formats an immutable preview as the existing human-readable terminal output.

**Signature**

```ts
declare const formatCreatePlan: (plan: CreateScaffoldPlan) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-preview.ts#L88)

### planCreate

Preserves the existing preview Promise API.

**Signature**

```ts
declare const planCreate: (
  options: CreateOptions,
  context?: Pick<GenerateProjectContext, "cwd" | "templateRoot">,
) => Promise<CreateScaffoldPlan>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-preview.ts#L76)

### planCreateEffect

Previews explicit creation flags without mutating project or staging paths.

**Signature**

```ts
declare const planCreateEffect: (
  options: CreateOptions,
  context?: Pick<GenerateProjectContext, "cwd" | "templateRoot"> | undefined,
) => Effect.Effect<
  Readonly<{
    destination: string;
    files: ReadonlyArray<string>;
    dependencies: Readonly<{ [k: string]: string }>;
    profiles: ReadonlyArray<never>;
    warnings: ReadonlyArray<never>;
  }>,
  GeneratorDomainError | GeneratorIoError,
  GeneratorFileSystem | GeneratorPaths
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-preview.ts#L25)

## `create-preview.types.ts`

Existing read-only creation preview result.

### CreateScaffoldPlan (interface)

Existing read-only creation preview result.

**Signature**

```ts
export interface CreateScaffoldPlan {
  readonly destination: string;
  readonly files: readonly string[];
  readonly dependencies: Readonly<Record<string, string>>;
  readonly profiles: readonly string[];
  readonly warnings: readonly string[];
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-preview.types.ts#L2)

## `create-resolver.ts`

Resolves creation options and certified template choices through the prompt service while preserving headless defaults and explicit user arguments.

### ResolveCreateContext

**Signature**

```ts
declare const ResolveCreateContext: ResolveCreateContext;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.ts#L13)

### ResolvedCreateOptions

**Signature**

```ts
declare const ResolvedCreateOptions: ResolvedCreateOptions;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.ts#L13)

### resolveCreateOptions

Preserves normalized creation's Promise compatibility API.

**Signature**

```ts
declare const resolveCreateOptions: (
  args: readonly string[],
  context?: ResolveCreateContext,
) => Promise<CreateOptions>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.ts#L105)

### resolveCreateOptionsDetails

Preserves detailed creation resolution with the shared interactive choices.

**Signature**

```ts
declare const resolveCreateOptionsDetails: (
  args: readonly string[],
  context?: ResolveCreateContext,
) => Promise<ResolvedCreateOptions>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.ts#L118)

### resolveCreateOptionsDetailsEffect

Resolves explicit flags and prompts for missing name, template, jobs and destination choices.

**Signature**

```ts
declare const resolveCreateOptionsDetailsEffect: (
  args: ReadonlyArray<string>,
  context?: ResolveCreateContext | undefined,
) => Effect.Effect<
  { options: CreateOptions; prompted: boolean },
  GeneratorDomainError | GeneratorPromptError,
  GeneratorPrompt
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.ts#L27)

## `create-resolver.types.ts`

### ResolveCreateContext (interface)

Existing create-resolution settings; noninteractive input never needs prompt authority.

**Signature**

```ts
export interface ResolveCreateContext {
  readonly json?: boolean;
  readonly interactive?: boolean;
  readonly promptDriver?: PromptDriver;
  readonly signal?: AbortSignal;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.types.ts#L5)

### ResolvedCreateOptions (interface)

Existing resolver result; prompted records whether any creation choice was requested.

**Signature**

```ts
export interface ResolvedCreateOptions {
  readonly options: CreateOptions;
  readonly prompted: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/create-resolver.types.ts#L13)

## `dependency-patch-installation.ts`

### dependencyPatchNeedsInstall

Preserves the patch-installation Promise compatibility API.

**Signature**

```ts
declare const dependencyPatchNeedsInstall: (plan: ScaffoldPlan) => Promise<boolean>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patch-installation.ts#L50)

### dependencyPatchNeedsInstallEffect

Detects patch-only installation requirements before a transaction mutates the project.

**Signature**

```ts
declare const dependencyPatchNeedsInstallEffect: (
  plan: ScaffoldPlan,
) => Effect.Effect<boolean, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patch-installation.ts#L15)

## `dependency-patches.ts`

Loads and plans the canonical selected Drizzle repair, validating conflicts before delivery and preserving its release pin and exact patch bytes.

### planDependencyPatch

Preserves patch planning's Promise API and collision constructors.

**Signature**

```ts
declare const planDependencyPatch: (
  projectRoot: string,
  source: string,
  patch: DependencyPatch,
) => Promise<DependencyPatchPlan>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patches.ts#L139)

### planDependencyPatchEffect

Plans byte-identical repair ownership without mutating project assets.

**Signature**

```ts
declare const planDependencyPatchEffect: (
  projectRoot: string,
  source: string,
  patch: DependencyPatch,
) => Effect.Effect<
  { operation?: { path: string; action: "create"; content: string }; content: string },
  GeneratorDomainError | GeneratorIoError,
  GeneratorFileSystem
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patches.ts#L50)

### prepareProjectDependencyPatch

Preserves staging repair delivery's Promise API.

**Signature**

```ts
declare const prepareProjectDependencyPatch: (projectRoot: string) => Promise<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patches.ts#L152)

### prepareProjectDependencyPatchEffect

Delivers repair assets before the first installation inside a generation-owned stage.

**Signature**

```ts
declare const prepareProjectDependencyPatchEffect: (
  projectRoot: string,
) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patches.ts#L99)

### readDrizzlePatch

Preserves the verified repair Promise API.

**Signature**

```ts
declare const readDrizzlePatch: () => Promise<DependencyPatch>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patches.ts#L128)

### readDrizzlePatchEffect

Loads verified Drizzle declaration repairs from source or the owning packed release.

**Signature**

```ts
declare const readDrizzlePatchEffect: () => Effect.Effect<
  Readonly<{
    path: `patches/${string}.patch`;
    content: string;
    version: string;
    key: string;
    asset: string;
    hash: string;
  }>,
  GeneratorDomainError | GeneratorIoError,
  GeneratorFileSystem
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/dependency-patches.ts#L25)

## `generate-output.ts`

Renders local onboarding from the generated project's actual installation state.
Pure command construction exposes finite preparation after skipped installation;
schema guards recognize presentation values without promoting arbitrary output
into the generated-result contract. Formatting performs no runtime acquisition.

### GenerateNextSteps

**Signature**

```ts
declare const GenerateNextSteps: GenerateNextSteps;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-output.ts#L107)

### createGenerateNextSteps

Builds local commands and endpoints for a generated project.

**Signature**

```ts
declare const createGenerateNextSteps: (
  options: Pick<CreateOptions, "examples" | "install">,
  destination: string,
  cwd?: string,
) => GenerateNextSteps;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-output.ts#L28)

### formatGenerateResult

Formats a recognizable generation result for terminal display.

**Signature**

```ts
declare const formatGenerateResult: <T>(value: T) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-output.ts#L65)

## `generate-output.types.ts`

Local commands and endpoints displayed after successful project creation.

### GenerateNextSteps (interface)

Local commands and endpoints displayed after successful project creation.

**Signature**

```ts
export interface GenerateNextSteps {
  readonly commands: Readonly<{
    readonly cd: string;
    readonly install?: "bun install";
    /** Finite validation/preparation required after a skipped dependency installation. */
    readonly prepare?: "bunx --no-install relkit dev --prepare";
    readonly dev: "bun run dev";
    readonly test: "bun run test";
    readonly check: "bun run check";
    readonly build: "bun run build";
  }>;
  readonly endpoints: Readonly<{
    /** A served backend URL: the example route, or the API reference without examples. */
    readonly backend:
      "http://localhost:3000/hello?name=RelKit" | "http://localhost:3000/_relkit/v1/api-reference";
    readonly inspector: "http://localhost:3210";
    readonly openapi: "http://localhost:3000/_relkit/v1/openapi.json";
    /** Present when the generated application selects the Scalar reference UI (the template default). */
    readonly apiReference?: "http://localhost:3000/_relkit/v1/api-reference";
    readonly route?: "GET http://localhost:3000/hello?name=RelKit";
  }>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-output.types.ts#L4)

## `generate-process.ts`

Runs creation installation and verification commands through the selected process service, retaining local executable resolution and cleanup boundaries.

### generationError

Maps a boundary failure to the public generation error contract.

**Signature**

```ts
declare const generationError: (
  error: unknown,
  fallback: string,
  cleanup?: StageCleanupResult,
) => GenerateProjectError;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L24)

### injectGenerateFailure

Runs deterministic failure injection for generation regression tests.

**Signature**

```ts
declare const injectGenerateFailure: (
  context: GenerateProjectContext,
  point: GenerateFailurePoint,
) => void;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L65)

### resolveRelkitExecutable

**Signature**

```ts
declare const resolveRelkitExecutable: (
  context: GenerateProjectContext,
  root: string,
) => Promise<string>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L153)

### resolveRelkitExecutableEffect

**Signature**

```ts
declare const resolveRelkitExecutableEffect: (
  context: Pick<GenerateProjectContext, "relkitExecutable" | "commandRunner">,
  root: string,
) => Effect.Effect<string, GeneratorDomainError, GeneratorFileSystem>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L152)

### runProjectCommand

**Signature**

```ts
declare const runProjectCommand: (
  command: readonly string[],
  cwd: string,
  signal?: AbortSignal,
) => Promise<GenerateCommandResult>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L154)

### runProjectStep

Preserves generation step's public Promise adapter.

**Signature**

```ts
declare const runProjectStep: (
  context: GenerateProjectContext,
  command: readonly string[],
  cwd: string,
  step: string,
  point: GenerateFailurePoint,
) => Promise<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L125)

### runProjectStepEffect

Executes one generation step through scoped process authority.

**Signature**

```ts
declare const runProjectStepEffect: (
  context: GenerateProjectContext,
  command: ReadonlyArray<string>,
  cwd: string,
  step: string,
  point: GenerateFailurePoint,
) => Effect.Effect<undefined, GeneratorDomainError | GeneratorProcessError, GeneratorProcess>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L88)

### throwIfAborted

Throws the caller's existing cancellation reason before any new work is started.

**Signature**

```ts
declare const throwIfAborted: (signal: AbortSignal | undefined) => void;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-process.ts#L145)

## `generate-types.ts`

### GenerateCommandResult (interface)

Native process exit status and captured standard output/error.

**Signature**

```ts
export interface GenerateCommandResult {
  readonly exitCode: number;
  readonly stdout?: string;
  readonly stderr?: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L9)

### GenerateCommandRunner (type alias)

Existing Promise process adapter receiving literal arguments, cwd and optional cancellation.

**Signature**

```ts
type GenerateCommandRunner = (
  command: readonly string[],
  cwd: string,
  signal?: AbortSignal,
) => Promise<GenerateCommandResult>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L18)

### GenerateFailurePoint (type alias)

Named generation stages available for deterministic failure injection.

**Signature**

```ts
type GenerateFailurePoint =
  "copy" | "substitute" | "install" | "git" | "doctor" | "check" | "rename";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L27)

### GenerateProjectContext (interface)

Caller-owned templates, process/prompt adapters, cancellation and progress settings.

**Signature**

```ts
export interface GenerateProjectContext {
  readonly cwd?: string;
  readonly templateRoot?: string;
  readonly commandRunner?: GenerateCommandRunner;
  readonly bunExecutable?: string;
  readonly gitExecutable?: string;
  readonly relkitExecutable?: string;
  readonly signal?: AbortSignal;
  /**
   * Reports the current step through the caller's progress sink.
   * @param message - User-facing progress text for the current step.
   * @returns Completion after the sink receives one progress message.
   */
  readonly onProgress?: (message: string) => void;
  /**
   * Injects a failure at a named stage for deterministic generation tests.
   * @param point - Fixed deterministic generation failure-injection point.
   * @returns Completion after the hook runs; a thrown failure aborts that stage.
   */
  readonly failAt?: (point: GenerateFailurePoint) => void;
  readonly interactive?: boolean;
  readonly promptDriver?: PromptDriver;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L33)

### GenerateProjectError (class)

Public generation failure carrying its diagnostic code, exit status and optional staging path.

**Signature**

```ts
declare class GenerateProjectError { constructor(
    readonly code: string,
    message: string,
    temporaryPath?: string,
    exitCode: 1 | 2 | 130 | 143 = defaultExitCode(code),
  ) }
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L79)

### exitCode (property)

**Signature**

```ts
readonly exitCode: 1 | 2 | 130 | 143
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L80)

### temporaryPath (property)

**Signature**

```ts
readonly temporaryPath: string | undefined
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L81)

### GenerateProjectResult (interface)

Published project's options, destination, files, warnings and local next steps.

**Signature**

```ts
export interface GenerateProjectResult {
  readonly ok: true;
  readonly command: "create";
  readonly name: string;
  readonly template: CreateOptions["template"];
  readonly cloud: CreateOptions["cloud"];
  readonly deploy: CreateOptions["deploy"];
  readonly destination: string;
  readonly files: readonly string[];
  readonly installed: boolean;
  readonly gitInitialized: boolean;
  readonly additions: readonly AddResult[];
  readonly warnings: readonly ScaffoldWarning[];
  readonly nextSteps: GenerateNextSteps;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate-types.ts#L60)

## `generate.ts`

### ProjectGeneration (class)

Owns one complete creation workflow, including consent and atomic publication.

**Signature**

```ts
declare class ProjectGeneration
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate.ts#L34)

### generateProject

Preserves the public Promise API, flags, errors and generated result shape.

**Signature**

```ts
declare const generateProject: (
  options: CreateOptions,
  context?: GenerateProjectContext,
) => Promise<GenerateProjectResult>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate.ts#L87)

### generateProjectEffect

Generates a project through explicitly acquired creation authority.

**Signature**

```ts
declare const generateProjectEffect: (
  options: CreateOptions,
  context?: GenerateProjectContext | undefined,
) => Effect.Effect<
  GenerateProjectResult,
  GeneratorDomainError | GeneratorIoError | GeneratorPromptError | GeneratorProcessError,
  ProjectGeneration
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate.ts#L74)

### projectGenerationLive

Generation captures explicit filesystem, path, process and prompt authority at acquisition.

**Signature**

```ts
declare const projectGenerationLive: Layer.Layer<
  ProjectGeneration,
  never,
  GeneratorFileSystem | GeneratorPaths | GeneratorPrompt | GeneratorProcess
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generate.ts#L43)

## `generator-cleanup.ts`

### GeneratorCleanupFailure

**Signature**

```ts
declare const GeneratorCleanupFailure: GeneratorCleanupFailure;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-cleanup.ts#L4)

### generatorCleanupFailures

Reads secondary cleanup evidence without changing error identity or enumerable JSON contracts.

**Signature**

```ts
declare const generatorCleanupFailures: (value: unknown) => readonly GeneratorCleanupFailure[];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-cleanup.ts#L14)

### recordCleanupFailure

Attaches bounded release evidence to the original scoped exit's public owner.

**Signature**

```ts
declare const recordCleanupFailure: (
  exit: Exit.Exit<unknown, unknown>,
  operation: GeneratorCleanupFailure["operation"],
  cause: unknown,
  ownerOverride?: unknown,
) => Effect.Effect<void>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-cleanup.ts#L27)

### transferCleanupFailures

Retains release diagnostics when an existing compatibility contract translates a native failure.

**Signature**

```ts
declare const transferCleanupFailures: <A extends object>(original: unknown, translated: A) => A;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-cleanup.ts#L63)

## `generator-cleanup.types.ts`

Secondary resource-release evidence, separated from the authoritative public failure.

### GeneratorCleanupFailure (interface)

Secondary resource-release evidence, separated from the authoritative public failure.

**Signature**

```ts
export interface GeneratorCleanupFailure {
  readonly operation: "temporary-file" | "rollback" | "marker" | "stage" | "process";
  readonly cause: unknown;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-cleanup.types.ts#L2)

## `generator-errors.ts`

### GeneratorDomainError (class)

An expected legacy domain failure carried through a typed Effect workflow.

**Signature**

```ts
declare class GeneratorDomainError
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L26)

### GeneratorIoError (class)

A failed native filesystem operation, retaining its original diagnostic.

**Signature**

```ts
declare class GeneratorIoError
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L7)

### GeneratorProcessError (class)

A failed child-process adapter operation. Command arguments are never telemetry labels.

**Signature**

```ts
declare class GeneratorProcessError
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L14)

### GeneratorPromptError (class)

A failed or cancelled prompt adapter operation.

**Signature**

```ts
declare class GeneratorPromptError
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L20)

### domainError

Carries an expected public error through internal domain composition.

**Signature**

```ts
declare const domainError: (cause: unknown) => GeneratorDomainError;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L59)

### domainTry

Executes a pure validation boundary without converting downstream defects or interruption.

**Signature**

```ts
declare const domainTry: <A>(evaluate: () => A) => Effect.Effect<A, GeneratorDomainError>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L37)

### errorMessage

Formats diagnostic text without assuming an Error instance.

**Signature**

```ts
declare const errorMessage: (cause: unknown) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L82)

### hasErrno

Tests an adapter rejection's native errno without an unchecked assertion.

**Signature**

```ts
declare const hasErrno: (cause: unknown, code: string) => boolean;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L92)

### publicFailure

Restores the original rejection at a public Promise or synchronous adapter.

**Signature**

```ts
declare const publicFailure: (error: unknown) => unknown;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L68)

### scaffoldErrors

Translates only existing synchronous scaffold validators into the typed channel.

**Signature**

```ts
declare const scaffoldErrors: <A, E, R>(
  effect: Effect.Effect<A, E, R>,
) => Effect.Effect<A, E | GeneratorDomainError, R>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-errors.ts#L105)

## `generator-filesystem.ts`

Provides injectable filesystem operations used by creation and transaction workflows, preserving native I/O failures and atomic file ownership.

### GeneratorFileSystem (class)

Native filesystem authority supplied through live or deterministic test Layers.

**Example**

```ts
import { Effect } from "effect";
import { GeneratorFileSystem, generatorFileSystemLive } from "create-relkit";
const inspect = GeneratorFileSystem.use((fs) => fs.metadata("./package.json"));
const supplied = inspect.pipe(Effect.provide(generatorFileSystemLive));
```

**Signature**

```ts
declare class GeneratorFileSystem
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-filesystem.ts#L25)

### generatorFileSystemLive

Live Node/Bun adapter. Mutating calls settle before scoped transaction cleanup can run.

**Signature**

```ts
declare const generatorFileSystemLive: Layer.Layer<GeneratorFileSystem, never, never>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-filesystem.ts#L34)

## `generator-filesystem.types.ts`

### GeneratorDirectoryEntry (interface)

A directory entry read without following symlinks.

**Signature**

```ts
export interface GeneratorDirectoryEntry {
  readonly name: string;
  readonly kind: GeneratorEntryKind;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-filesystem.types.ts#L14)

### GeneratorEntryKind (type alias)

Native entry classification without following symlinks.

**Signature**

```ts
type GeneratorEntryKind = "file" | "directory" | "symlink" | "other";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-filesystem.types.ts#L5)

### GeneratorFileMetadata (interface)

Filesystem metadata needed for safe mutation and mode restoration.

**Signature**

```ts
export interface GeneratorFileMetadata {
  readonly kind: GeneratorEntryKind;
  readonly mode: number;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-filesystem.types.ts#L8)

### GeneratorFileSystemService (interface)

Explicit native filesystem authority for generator workflows.

**Signature**

```ts
export interface GeneratorFileSystemService {
  /**
   * Reads UTF-8 file contents with interruptible native read authority.
   * @param path - Path inside the current project or owned resource.
   * @returns File contents, or a typed native read failure.
   */
  readonly readText: (path: string) => Effect.Effect<string, GeneratorIoError>;
  /**
   * Reads original file bytes for exact rollback snapshots.
   * @param path - Path inside the current project or owned resource.
   * @returns File bytes, or a typed native read failure.
   */
  readonly readBytes: (path: string) => Effect.Effect<Uint8Array, GeneratorIoError>;
  /**
   * Checks native accessibility without granting file mutation.
   * @param path - Path inside the current project or owned resource.
   * @returns Completion when the destination is accessible.
   */
  readonly access: (path: string) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Reads kind and permissions without dereferencing symlinks.
   * @param path - Path inside the current project or owned resource.
   * @returns Entry kind and mode, undefined when absent; symlinks are not followed.
   */
  readonly metadata: (
    path: string,
  ) => Effect.Effect<GeneratorFileMetadata | undefined, GeneratorIoError>;
  /**
   * Reads directory entries for deterministic declaration traversal.
   * @param path - Path inside the current project or owned resource.
   * @returns Directory entries without following symlinks.
   */
  readonly entries: (
    path: string,
  ) => Effect.Effect<readonly GeneratorDirectoryEntry[], GeneratorIoError>;
  /**
   * Writes complete content and waits for physical native settlement.
   * @param path - Path inside the current project or owned resource.
   * @param content - Complete bytes or text planned for the destination.
   * @param options - Explicit options retaining existing defaults.
   * @returns Completion after native bytes physically settle, before rollback can run.
   */
  readonly write: (
    path: string,
    content: string | Uint8Array,
    options?: { readonly mode?: number; readonly flag?: "wx" },
  ) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Creates owned directories and waits for physical native settlement.
   * @param path - Path inside the current project or owned resource.
   * @param options - Explicit options retaining existing defaults.
   * @returns Completion after native directory creation physically settles.
   */
  readonly mkdir: (
    path: string,
    options?: { readonly recursive?: boolean; readonly mode?: number },
  ) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Acquires a unique staging directory from its literal prefix.
   * @param prefix - Literal sibling-stage prefix owned by this invocation.
   * @returns The owned staging path after creation settles.
   */
  readonly temporaryDirectory: (prefix: string) => Effect.Effect<string, GeneratorIoError>;
  /**
   * Atomically moves an owned native path and waits for settlement.
   * @param from - Owned source path.
   * @param to - Validated destination path.
   * @returns Completion after the atomic native handoff settles.
   */
  readonly rename: (from: string, to: string) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Removes an owned native path with explicit recursive and force policy.
   * @param path - Path inside the current project or owned resource.
   * @param options - Explicit options retaining existing defaults.
   * @returns Completion after owned path removal settles.
   */
  readonly remove: (
    path: string,
    options?: { readonly recursive?: boolean; readonly force?: boolean },
  ) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Removes an owned directory only when it is empty.
   * @param path - Path inside the current project or owned resource.
   * @returns Completion after removing an owned empty directory.
   */
  readonly removeDirectory: (path: string) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Restores or sets native permission bits after content settlement.
   * @param path - Path inside the current project or owned resource.
   * @param mode - Optional restored or generated permission mode.
   * @returns Completion after native permission restoration settles.
   */
  readonly chmod: (path: string, mode: number) => Effect.Effect<void, GeneratorIoError>;
  /**
   * Enumerates sorted source paths with a declaration-owned glob pattern.
   * @param root - Absolute project or owned resource root.
   * @param pattern - Declaration-owned glob or ignore pattern.
   * @returns Sorted source-relative paths matching the declaration pattern.
   */
  readonly glob: (
    root: string,
    pattern: string,
  ) => Effect.Effect<readonly string[], GeneratorIoError>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-filesystem.types.ts#L20)

## `generator-paths.ts`

### GeneratorPaths (class)

Read-only path authority; synchronous compatibility does not grant filesystem mutation.

**Signature**

```ts
declare class GeneratorPaths
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-paths.ts#L9)

### generatorPathsLive

Native read-only path adapter used by both Effect workflows and synchronous public validators.

**Signature**

```ts
declare const generatorPathsLive: Layer.Layer<GeneratorPaths, never, never>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-paths.ts#L17)

## `generator-paths.types.ts`

### GeneratorPathsService (interface)

Read-only native path authority that preserves existing synchronous validation APIs.

**Signature**

```ts
export interface GeneratorPathsService {
  /**
   * Reads kind and permissions without dereferencing symlinks.
   * @param path - Path inside the current project or owned resource.
   * @returns Entry kind and mode, undefined when absent; symlinks are not followed.
   */
  readonly metadata: (
    path: string,
  ) => Effect.Effect<GeneratorFileMetadata | undefined, GeneratorIoError>;
  /**
   * Reads directory entries for deterministic declaration traversal.
   * @param path - Path inside the current project or owned resource.
   * @returns Directory entries without following symlinks.
   */
  readonly entries: (path: string) => Effect.Effect<readonly string[], GeneratorIoError>;
  /**
   * Canonicalizes an existing path for safe destination validation.
   * @param path - Path inside the current project or owned resource.
   * @returns Canonical existing path, or a typed native failure.
   */
  readonly realpath: (path: string) => Effect.Effect<string, GeneratorIoError>;
  /**
   * Reads the composition root's native current directory.
   * @returns Current native working directory.
   */
  readonly cwd: () => Effect.Effect<string>;
  /**
   * Reads the user's native home directory for destination safety.
   * @returns Native user home directory.
   */
  readonly home: () => Effect.Effect<string>;
  /**
   * Reads the native temporary root for destination safety.
   * @returns Native temporary directory root.
   */
  readonly temporaryRoot: () => Effect.Effect<string>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-paths.types.ts#L6)

## `generator-process.ts`

Provides the scoped native process adapter for creator workflows, joining exit and output drains before release or transactional rollback.

### GeneratorProcess (class)

Child-process authority, replaceable at the same Layer boundary in tests.

**Example**

```ts
import { Effect } from "effect";
import { GeneratorProcess, generatorProcessLive } from "create-relkit";
const locate = GeneratorProcess.use((process) => process.which("bun"));
const supplied = locate.pipe(Effect.provide(generatorProcessLive));
```

**Signature**

```ts
declare class GeneratorProcess
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-process.ts#L19)

### generatorProcessLayer

Constructs a live process adapter or adapts an existing injected command runner.

**Signature**

```ts
declare const generatorProcessLayer: (
  runner?: GeneratorCommandRunner,
) => Layer.Layer<GeneratorProcess>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-process.ts#L31)

### generatorProcessLive

Live scoped Bun child-process implementation.

**Signature**

```ts
declare const generatorProcessLive: Layer.Layer<GeneratorProcess, never, never>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-process.ts#L24)

## `generator-process.types.ts`

### GeneratorCommandResult (interface)

Captured process result, matching both existing command-runner compatibility contracts.

**Signature**

```ts
export interface GeneratorCommandResult {
  readonly exitCode: number;
  readonly stdout?: string;
  readonly stderr?: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-process.types.ts#L5)

### GeneratorCommandRunner (type alias)

Existing external runner adapter; its signal is aborted when the owning fiber is interrupted.

**Signature**

```ts
type GeneratorCommandRunner = (
  command: readonly string[],
  cwd: string,
  signal?: AbortSignal,
) => Promise<GeneratorCommandResult>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-process.types.ts#L32)

### GeneratorProcessService (interface)

Explicit process-spawning authority. Each invocation owns its child through completion.

**Signature**

```ts
export interface GeneratorProcessService {
  /**
   * Owns one command, output drains and child settlement through scope release.
   * @param command - Literal executable and argument vector.
   * @param cwd - Working directory for the operation.
   * @returns Captured output and exit status after child settlement and scoped cleanup.
   */
  readonly run: (
    command: readonly string[],
    cwd: string,
  ) => Effect.Effect<GeneratorCommandResult, GeneratorProcessError>;
  /**
   * Locates an executable through the native process adapter.
   * @param executable - Executable name resolved through the native search path.
   * @returns Executable path, or null when unavailable.
   */
  readonly which: (executable: string) => Effect.Effect<string | null, GeneratorProcessError>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-process.types.ts#L12)

## `generator-prompt.ts`

Provides the prompt service adapter used by creation and CLI scaffolding while preserving cancellation and the selected prompt driver's values.

### GeneratorPrompt (class)

Prompt authority; interactive workflows cannot run without an explicit live or test adapter.

**Signature**

```ts
declare class GeneratorPrompt
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-prompt.ts#L10)

### generatorPromptLayer

Adapts the existing public prompt driver to typed, interruptible operations.

**Example**

```ts
import { Effect } from "effect";
import { GeneratorPrompt, generatorPromptLayer, createClackPromptDriver } from "create-relkit";
const confirmed = GeneratorPrompt.use((prompt) => prompt.confirm({ message: "Continue?" }));
const run = confirmed.pipe(Effect.provide(generatorPromptLayer(createClackPromptDriver())));
```

**Signature**

```ts
declare const generatorPromptLayer: (driver: PromptDriver) => Layer.Layer<GeneratorPrompt>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-prompt.ts#L26)

## `generator-prompt.types.ts`

### GeneratorPromptService (interface)

Explicit interactive input authority, shared by Clack and deterministic test drivers.

**Signature**

```ts
export interface GeneratorPromptService {
  /**
   * Asks for text through the explicit, cancellation-aware native driver.
   * @param options - Explicit options retaining existing defaults.
   * @returns Decoded text; prompt interruption propagates to the native driver.
   */
  readonly text: (options: TextPromptOptions) => Effect.Effect<string, GeneratorPromptError>;
  /**
   * Asks for one declared option and decodes the native answer.
   * @typeParam Value - Union of declared prompt option values.
   * @param options - Question, declared choices and optional initial selection.
   * @returns One decoded declared option; invalid native answers fail.
   */
  readonly select: <Value extends string>(
    options: ChoicePromptOptions<Value>,
  ) => Effect.Effect<Value, GeneratorPromptError>;
  /**
   * Asks for declared options and decodes their ordered native answers.
   * @typeParam Value - Union of declared prompt option values.
   * @param options - Question, declared choices and optional required-selection policy.
   * @returns Decoded declared options in driver order.
   */
  readonly multiselect: <Value extends string>(
    options: ChoicePromptOptions<Value> & { readonly required?: boolean },
  ) => Effect.Effect<readonly Value[], GeneratorPromptError>;
  /**
   * Asks for boolean consent and decodes the native answer.
   * @param options - Explicit options retaining existing defaults.
   * @returns Decoded consent; cancellation retains its original rejection.
   */
  readonly confirm: (options: {
    readonly message: string;
    readonly initialValue?: boolean;
  }) => Effect.Effect<boolean, GeneratorPromptError>;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-prompt.types.ts#L6)

## `generator-runtime.ts`

### runGeneratorPromise

Runs a public Promise compatibility edge without changing rejection identity.

**Signature**

```ts
declare const runGeneratorPromise: <A, E>(
  effect: Effect.Effect<A, E, GeneratorFileSystem | GeneratorProcess | GeneratorPaths>,
  signal?: AbortSignal,
) => Promise<A>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-runtime.ts#L23)

### runGeneratorSync

Runs a pure synchronous compatibility edge in the shared owner.

**Signature**

```ts
declare const runGeneratorSync: <A, E>(effect: Effect.Effect<A, E, GeneratorPaths>) => A;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/generator-runtime.ts#L41)

## `index.ts`

Publishes pure project creation, normalized options and portable template metadata; existing-project AST discovery and add execution belong to the CLI.

### "./add-types.js" (namespace export)

Re-exports all named exports from the "./add-types.js" module.

**Signature**

```ts
export * from "./add-types.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L5)

### "./create-capabilities.js" (namespace export)

Re-exports all named exports from the "./create-capabilities.js" module.

**Signature**

```ts
export * from "./create-capabilities.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L4)

### "./create-preview.js" (namespace export)

Re-exports all named exports from the "./create-preview.js" module.

**Signature**

```ts
export * from "./create-preview.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L11)

### "./create-resolver.js" (namespace export)

Re-exports all named exports from the "./create-resolver.js" module.

**Signature**

```ts
export * from "./create-resolver.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L10)

### "./generate-output.js" (namespace export)

Re-exports all named exports from the "./generate-output.js" module.

**Signature**

```ts
export * from "./generate-output.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L16)

### "./generate-types.js" (namespace export)

Re-exports all named exports from the "./generate-types.js" module.

**Signature**

```ts
export * from "./generate-types.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L15)

### "./generate.js" (namespace export)

Re-exports all named exports from the "./generate.js" module.

**Signature**

```ts
export * from "./generate.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L14)

### "./generator-cleanup.js" (namespace export)

Re-exports all named exports from the "./generator-cleanup.js" module.

**Signature**

```ts
export * from "./generator-cleanup.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L26)

### "./generator-errors.js" (namespace export)

Re-exports all named exports from the "./generator-errors.js" module.

**Signature**

```ts
export * from "./generator-errors.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L27)

### "./generator-filesystem.js" (namespace export)

Re-exports all named exports from the "./generator-filesystem.js" module.

**Signature**

```ts
export * from "./generator-filesystem.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L18)

### "./generator-filesystem.types.js" (namespace export)

Re-exports all named exports from the "./generator-filesystem.types.js" module.

**Signature**

```ts
export * from "./generator-filesystem.types.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L19)

### "./generator-paths.js" (namespace export)

Re-exports all named exports from the "./generator-paths.js" module.

**Signature**

```ts
export * from "./generator-paths.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L22)

### "./generator-paths.types.js" (namespace export)

Re-exports all named exports from the "./generator-paths.types.js" module.

**Signature**

```ts
export * from "./generator-paths.types.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L23)

### "./generator-process.js" (namespace export)

Re-exports all named exports from the "./generator-process.js" module.

**Signature**

```ts
export * from "./generator-process.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L20)

### "./generator-process.types.js" (namespace export)

Re-exports all named exports from the "./generator-process.types.js" module.

**Signature**

```ts
export * from "./generator-process.types.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L21)

### "./generator-prompt.js" (namespace export)

Re-exports all named exports from the "./generator-prompt.js" module.

**Signature**

```ts
export * from "./generator-prompt.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L24)

### "./generator-prompt.types.js" (namespace export)

Re-exports all named exports from the "./generator-prompt.types.js" module.

**Signature**

```ts
export * from "./generator-prompt.types.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L25)

### "./options.js" (namespace export)

Re-exports all named exports from the "./options.js" module.

**Signature**

```ts
export * from "./options.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L3)

### "./prompt-driver.js" (namespace export)

Re-exports all named exports from the "./prompt-driver.js" module.

**Signature**

```ts
export * from "./prompt-driver.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L9)

### "./scaffold-catalog.js" (namespace export)

Re-exports all named exports from the "./scaffold-catalog.js" module.

**Signature**

```ts
export * from "./scaffold-catalog.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L6)

### "./template-root.js" (namespace export)

Re-exports all named exports from the "./template-root.js" module.

**Signature**

```ts
export * from "./template-root.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L12)

### "./validate.js" (namespace export)

Re-exports all named exports from the "./validate.js" module.

**Signature**

```ts
export * from "./validate.js";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L13)

### CatalogManifest

**Signature**

```ts
declare const CatalogManifest: CatalogManifest;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L8)

### resolveCatalogVersion

**Signature**

```ts
declare const resolveCatalogVersion: (
  manifest: CatalogManifest,
  name: string,
  spec: unknown,
) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/index.ts#L7)

## `launcher.ts`

Owns one Bun child until exit, forwarding terminal cancellation before releasing listeners.

### launchBun

Executes a literal entrypoint under Bun and joins its actual completion.

**Signature**

```ts
declare const launchBun: (entry: string, args: readonly string[], cwd?: string) => Promise<number>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/launcher.ts#L12)

## `options.ts`

Validates and normalizes pure creation options before selecting templates, destinations and optional installation or Git initialization.

### CREATE_CLOUDS

Supported cloud selections; none is the default.

**Signature**

```ts
declare const CREATE_CLOUDS: readonly ["aws", "none"];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L9)

### CREATE_DEPLOYMENTS

Supported deployment selections; none is the default.

**Signature**

```ts
declare const CREATE_DEPLOYMENTS: readonly ["pulumi", "none"];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L13)

### CREATE_JOBS

Supported explicit local job-provider selections.

**Signature**

```ts
declare const CREATE_JOBS: readonly ["inngest-docker", "effect-mq-docker", "trigger-docker"];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L17)

### CREATE_OPTION_DEFAULTS

Minimal local defaults applied before explicit create flags are parsed.

**Signature**

```ts
declare const CREATE_OPTION_DEFAULTS: Readonly<{
  template: CreateTemplate;
  cloud: CreateCloud;
  deploy: CreateDeployment;
  jobs: CreateJobs | undefined;
  install: boolean;
  git: boolean;
  examples: boolean;
  forceEmptyDirectory: boolean;
  json: boolean;
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L21)

### CREATE_TEMPLATES

Templates supported by explicit --template selection.

**Signature**

```ts
declare const CREATE_TEMPLATES: readonly ["minimal", "api", "agent", "fullstack"];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L5)

### CreateCloud (type alias)

Supported cloud choice for project generation.

**Signature**

```ts
type CreateCloud = (typeof CREATE_CLOUDS)[number];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L11)

### CreateDeployment (type alias)

Supported deployment choice for project generation.

**Signature**

```ts
type CreateDeployment = (typeof CREATE_DEPLOYMENTS)[number];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L15)

### CreateJobs (type alias)

Supported local job provider selected by an explicit creation flag.

**Signature**

```ts
type CreateJobs = (typeof CREATE_JOBS)[number];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L19)

### CreateOptions (interface)

Normalized creation flags preserving omitted directory and job-provider fields.

**Signature**

```ts
export interface CreateOptions {
  readonly name: string;
  readonly template: CreateTemplate;
  readonly cloud: CreateCloud;
  readonly deploy: CreateDeployment;
  readonly jobs?: CreateJobs;
  readonly install: boolean;
  readonly git: boolean;
  readonly examples: boolean;
  readonly directory?: string;
  readonly forceEmptyDirectory: boolean;
  readonly json: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L33)

### CreateOptionsContext (interface)

Additional JSON output policy used while parsing creation flags.

**Signature**

```ts
export interface CreateOptionsContext {
  readonly json?: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L47)

### CreateOptionsError (class)

Public creation-flag usage failure with the stable RELKIT_CREATE_USAGE code.

**Signature**

```ts
declare class CreateOptionsError {
  constructor(message: string);
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L51)

### code (property)

Stable usage code reported by CreateOptionsError.

**Signature**

```ts
readonly code: "RELKIT_CREATE_USAGE"
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L55)

### CreateTemplate (type alias)

Supported template selected by an explicit creation flag.

**Signature**

```ts
type CreateTemplate = (typeof CREATE_TEMPLATES)[number];
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L7)

### normalizeCreateOptions

Parses non-interactive create flags and applies the cloud-free defaults.

**Signature**

```ts
declare const normalizeCreateOptions: (
  args: readonly string[],
  context?: CreateOptionsContext,
) => CreateOptions;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/options.ts#L72)

## `project-manifest.schemas.ts`

### JsonObject

JSON object boundary, retaining unrelated package and workspace fields.

**Signature**

```ts
declare const JsonObject: Schema.$Record<Schema.String, Schema.Unknown>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/project-manifest.schemas.ts#L4)

### ProjectManifest

Validated string-valued package fields owned by scaffold planning.

**Signature**

```ts
declare const ProjectManifest: Schema.StructWithRest<
  Schema.Struct<{
    readonly dependencies: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
    readonly devDependencies: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
    readonly scripts: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
    readonly patchedDependencies: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
  }>,
  readonly [Schema.$Record<Schema.String, Schema.Unknown>]
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/project-manifest.schemas.ts#L17)

### ScaffoldManifestSchema

Owned manifest fields; unrelated metadata keeps its authored order and shape.

**Signature**

```ts
declare const ScaffoldManifestSchema: Schema.StructWithRest<
  Schema.Struct<{
    readonly dependencies: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
    readonly devDependencies: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
    readonly scripts: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
  }>,
  readonly [Schema.$Record<Schema.String, Schema.Unknown>]
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/project-manifest.schemas.ts#L7)

### TemplateManifest

Required starter fields used by deployment customization.

**Signature**

```ts
declare const TemplateManifest: Schema.StructWithRest<
  Schema.Struct<{
    readonly dependencies: Schema.$Record<Schema.String, Schema.String>;
    readonly scripts: Schema.$Record<Schema.String, Schema.String>;
  }>,
  readonly [Schema.$Record<Schema.String, Schema.Unknown>]
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/project-manifest.schemas.ts#L28)

## `prompt-driver.ts`

Defines the prompt driver's text, choice and cancellation contract shared by creator workflows and CLI scaffolding adapters.

### ChoicePromptOptions

**Signature**

```ts
declare const ChoicePromptOptions: ChoicePromptOptions<Value>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.ts#L6)

### PromptDriver

**Signature**

```ts
declare const PromptDriver: PromptDriver;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.ts#L7)

### PromptOption

**Signature**

```ts
declare const PromptOption: PromptOption<Value>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.ts#L8)

### TextPromptOptions

**Signature**

```ts
declare const TextPromptOptions: TextPromptOptions;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.ts#L9)

### createClackPromptDriver

Creates the public Clack adapter, forwarding fiber-owned cancellation to native prompts.

**Signature**

```ts
declare const createClackPromptDriver: (cancellationCode?: string) => PromptDriver;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.ts#L17)

## `prompt-driver.types.ts`

One declared prompt choice with a label and optional explanatory hint.

### ChoicePromptOptions (interface)

Question and finite choices accepted by a prompt adapter.

**Signature**

```ts
export interface ChoicePromptOptions<Value extends string> {
  readonly message: string;
  readonly options: readonly PromptOption<Value>[];
  readonly initialValue?: Value;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.types.ts#L30)

### PromptDriver (interface)

Clack-compatible native questions and progress output, with optional caller cancellation.

**Signature**

```ts
export interface PromptDriver {
  /**
   * Asks for text through the explicit, cancellation-aware native driver.
   * @param options - Explicit options retaining existing defaults.
   * @param signal - Optional caller cancellation signal.
   * @returns Decoded text; prompt interruption propagates to the native driver.
   */
  readonly text: (options: TextPromptOptions, signal?: AbortSignal) => Promise<string>;
  /**
   * Asks the native driver for one declared choice.
   * @typeParam Value - Union of declared native choice values.
   * @param options - Question, declared choices and optional initial selection.
   * @param signal - Optional caller cancellation signal.
   * @returns A Promise for the native choice; cancellation rejects with the configured public code.
   */
  readonly select: <Value extends string>(
    options: ChoicePromptOptions<Value>,
    signal?: AbortSignal,
  ) => Promise<Value>;
  /**
   * Asks the native driver for declared choices in selection order.
   * @typeParam Value - Union of declared native choice values.
   * @param options - Question, declared choices and optional required-selection policy.
   * @param signal - Optional caller cancellation signal.
   * @returns A Promise for selected native choices; cancellation rejects with the configured public code.
   */
  readonly multiselect: <Value extends string>(
    options: ChoicePromptOptions<Value> & { readonly required?: boolean },
    signal?: AbortSignal,
  ) => Promise<readonly Value[]>;
  /**
   * Asks for boolean consent and decodes the native answer.
   * @param options - Explicit options retaining existing defaults.
   * @param signal - Optional caller cancellation signal.
   * @returns Decoded consent; cancellation retains its original rejection.
   */
  readonly confirm: (
    options: {
      readonly message: string;
      readonly initialValue?: boolean;
    },
    signal?: AbortSignal,
  ) => Promise<boolean>;
  /**
   * Presents an existing explanatory note through the terminal adapter.
   * @param message - Existing user-facing diagnostic.
   * @param title - Title displayed by the native progress/prompt sink.
   * @returns Completion after the existing contract has been applied.
   */
  readonly note: (message: string, title?: string) => void;
  /**
   * Presents the existing flow introduction through the terminal adapter.
   * @param title - Title displayed by the native progress/prompt sink.
   * @returns Completion after the existing contract has been applied.
   */
  readonly intro: (title: string) => void;
  /**
   * Presents the existing flow completion through the terminal adapter.
   * @param message - Existing user-facing diagnostic.
   * @returns Completion after the existing contract has been applied.
   */
  readonly outro: (message: string) => void;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.types.ts#L39)

### PromptOption (interface)

One declared prompt choice with a label and optional explanatory hint.

**Signature**

```ts
export interface PromptOption<Value extends string = string> {
  readonly value: Value;
  readonly label: string;
  readonly hint?: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.types.ts#L5)

### TextPromptOptions (interface)

Text question with optional initial input and native validation callback.

**Signature**

```ts
export interface TextPromptOptions {
  readonly message: string;
  readonly placeholder?: string;
  readonly initialValue?: string;
  /**
   * Returns a user-facing validation message for unacceptable native text input.
   * @param value - Current native text input, possibly undefined.
   * @returns A rejection message/Error, or undefined when the text is acceptable.
   */
  readonly validate?: (value: string | undefined) => string | Error | undefined;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/prompt-driver.types.ts#L14)

## `scaffold-catalog.ts`

Declares portable feature dependency metadata and selected SDK owners used by creation and add manifest producers.

### DependencySection

**Signature**

```ts
declare const DependencySection: DependencySection;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.ts#L6)

### SCAFFOLD_DEPENDENCIES

Versions copied into generated projects from each package's own release metadata.

**Signature**

```ts
declare const SCAFFOLD_DEPENDENCIES: Readonly<{
  "@cloudflare/workers-types": { version: string; section: "devDependencies" };
  "@relkit/aws": { version: string; section: "dependencies" };
  "@relkit/better-auth": { version: string; section: "dependencies" };
  "@relkit/cloudflare": { version: string; section: "dependencies" };
  "@relkit/docker": { version: string; section: "dependencies" };
  "@relkit/effect-mq": { version: string; section: "dependencies" };
  "@relkit/inspector": { version: string; section: "devDependencies" };
  "@relkit/inngest": { version: string; section: "dependencies" };
  "@relkit/drizzle": { version: string; section: "dependencies" };
  "@relkit/local": { version: string; section: "dependencies" };
  "@relkit/langchain": { version: string; section: "dependencies" };
  "@relkit/pulumi": { version: string; section: "dependencies" };
  "@relkit/redis": { version: string; section: "dependencies" };
  "@relkit/s3": { version: string; section: "dependencies" };
  "@relkit/trigger": { version: string; section: "dependencies" };
  "better-auth": { version: string; section: "dependencies" };
  "drizzle-kit": { version: string; section: "devDependencies" };
  "drizzle-orm": { version: string; section: "dependencies" };
  langchain: { version: string; section: "dependencies" };
  "@langchain/core": { version: string; section: "dependencies" };
  "@langchain/langgraph": { version: string; section: "dependencies" };
  langsmith: { version: string; section: "dependencies" };
}>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.ts#L12)

### ScaffoldDependency

**Signature**

```ts
declare const ScaffoldDependency: ScaffoldDependency;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.ts#L7)

### ScaffoldDependencyName

**Signature**

```ts
declare const ScaffoldDependencyName:
  | "drizzle-orm"
  | "@cloudflare/workers-types"
  | "@relkit/aws"
  | "@relkit/better-auth"
  | "@relkit/cloudflare"
  | "@relkit/docker"
  | "@relkit/effect-mq"
  | "@relkit/inspector"
  | "@relkit/inngest"
  | "@relkit/drizzle"
  | "@relkit/local"
  | "@relkit/langchain"
  | "@relkit/pulumi"
  | "@relkit/redis"
  | "@relkit/s3"
  | "@relkit/trigger"
  | "better-auth"
  | "drizzle-kit"
  | "langchain"
  | "@langchain/core"
  | "@langchain/langgraph"
  | "langsmith";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.ts#L8)

### scaffoldDependency

Selects one supported dependency from the release's portable scaffold catalog.

**Signature**

```ts
declare const scaffoldDependency: (name: ScaffoldDependencyName) => ScaffoldDependency;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.ts#L66)

## `scaffold-catalog.types.ts`

### DependencySection (type alias)

Manifest section in which a scaffold introduces a supported dependency.

**Signature**

```ts
type DependencySection = "dependencies" | "devDependencies";
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.types.ts#L4)

### ScaffoldDependency (interface)

Concrete release-supported version and owning project manifest section.

**Signature**

```ts
export interface ScaffoldDependency {
  readonly version: string;
  readonly section: DependencySection;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.types.ts#L7)

### ScaffoldDependencyName (type alias)

Intentional scaffold dependency names, retaining their literal keyed catalog contract.

**Signature**

```ts
type ScaffoldDependencyName = keyof typeof SCAFFOLD_DEPENDENCIES;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/scaffold-catalog.types.ts#L13)

## `template-root.ts`

### resolveTemplateRoot

Preserves synchronous template-root resolution without a hidden filesystem dependency.

**Signature**

```ts
declare const resolveTemplateRoot: (
  context: Pick<GenerateProjectContext, "cwd" | "templateRoot">,
) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/template-root.ts#L32)

### resolveTemplateRootEffect

Finds explicit, packed or source-owned templates through read-only path authority.

**Signature**

```ts
declare const resolveTemplateRootEffect: (
  context: Pick<GenerateProjectContext, "cwd" | "templateRoot">,
) => Effect.Effect<string, GeneratorIoError, GeneratorPaths>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/template-root.ts#L14)

## `validate-errors.ts`

Stable public creation-validation constructor, independent of native I/O adapters.

### CreateValidationError (class)

Stable public creation-validation constructor, independent of native I/O adapters.

**Signature**

```ts
declare class CreateValidationError { constructor(
    readonly code: string,
    message: string,
  ) }
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-errors.ts#L2)

## `validate-paths.ts`

### canonicalizeMissingPathEffect

Canonicalizes missing child segments only after proving the existing parent is a directory.

**Signature**

```ts
declare const canonicalizeMissingPathEffect: (
  path: string,
) => Effect.Effect<string, GeneratorDomainError, GeneratorPaths>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-paths.ts#L52)

### existingDirectoryEffect

Resolves an existing real directory without permitting symlink indirection.

**Signature**

```ts
declare const existingDirectoryEffect: (
  path: string,
  label: string,
) => Effect.Effect<string, GeneratorDomainError, GeneratorPaths>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-paths.ts#L96)

### failure

Constructs a typed failure retaining the exact public validation code and message.

**Signature**

```ts
declare const failure: (
  code: string,
  message: string,
) => Effect.Effect<never, GeneratorDomainError, never>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-paths.ts#L140)

### inspectDestinationEffect

Inspects only an absent or real directory destination without following symlinks.

**Signature**

```ts
declare const inspectDestinationEffect: (
  path: string,
) => Effect.Effect<DestinationState, GeneratorDomainError, GeneratorPaths>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-paths.ts#L19)

### invalid

Carries existing validation failures in the internal typed channel.

**Signature**

```ts
declare const invalid: (message: string) => GeneratorDomainError;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-paths.ts#L130)

### isAncestorOrSame

Checks a canonical path relationship using no I/O.

**Signature**

```ts
declare const isAncestorOrSame: (parent: string, child: string) => boolean;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate-paths.ts#L120)

## `validate.ts`

### CreateValidationContext

**Signature**

```ts
declare const CreateValidationContext: CreateValidationContext;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L17)

### CreateValidationError

**Signature**

```ts
declare const CreateValidationError: typeof CreateValidationError;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L21)

### ValidatedCreateOptions

**Signature**

```ts
declare const ValidatedCreateOptions: ValidatedCreateOptions;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L17)

### isValidPackageName

Checks unscoped or scoped npm names without filesystem or Effect authority.

**Signature**

```ts
declare const isValidPackageName: (value: unknown) => value is string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L43)

### resolveCreateDestination

Preserves synchronous safe-destination resolution and its stable public errors.

**Signature**

```ts
declare const resolveCreateDestination: (
  options: Pick<CreateOptions, "name" | "directory">,
  context?: CreateValidationContext,
) => string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L155)

### resolveCreateDestinationEffect

Resolves a safe creation destination through explicit read-only path authority.

**Signature**

```ts
declare const resolveCreateDestinationEffect: (
  options: Pick<CreateOptions, "directory" | "name">,
  context?: CreateValidationContext | undefined,
) => Effect.Effect<string, GeneratorDomainError, GeneratorPaths>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L71)

### validateCreateOptions

Preserves synchronous destination validation and its existing immutable result.

**Signature**

```ts
declare const validateCreateOptions: (
  options: CreateOptions,
  context?: CreateValidationContext,
) => ValidatedCreateOptions;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L168)

### validateCreateOptionsEffect

Validates destination state using the same path service as the existing synchronous API.

**Signature**

```ts
declare const validateCreateOptionsEffect: (
  options: CreateOptions,
  context?: CreateValidationContext | undefined,
) => Effect.Effect<
  Readonly<{
    destination: string;
    destinationExists: boolean;
    destinationEmpty: boolean;
    name: string;
    template: CreateTemplate;
    cloud: CreateCloud;
    deploy: CreateDeployment;
    jobs?: CreateJobs;
    install: boolean;
    git: boolean;
    examples: boolean;
    directory?: string;
    forceEmptyDirectory: boolean;
    json: boolean;
  }>,
  GeneratorDomainError,
  GeneratorPaths
>;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L117)

### validatePackageName

Asserts the existing package-name contract using its unchanged public constructor.

**Signature**

```ts
declare const validatePackageName: (value: unknown) => asserts value is string;
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.ts#L57)

## `validate.types.ts`

### CreateValidationContext (interface)

Existing read-only creation-validation context.

**Signature**

```ts
export interface CreateValidationContext {
  readonly cwd?: string;
  readonly homeDirectory?: string;
  readonly temporaryDirectory?: string;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.types.ts#L4)

### DestinationState (interface)

Destination facts obtained before any generation mutation.

**Signature**

```ts
export interface DestinationState {
  readonly exists: boolean;
  readonly empty: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.types.ts#L18)

### ValidatedCreateOptions (interface)

Existing validated creation result with inspected destination state.

**Signature**

```ts
export interface ValidatedCreateOptions extends CreateOptions {
  readonly destination: string;
  readonly destinationExists: boolean;
  readonly destinationEmpty: boolean;
}
```

[Source](https://github.com/rel-kit/relkit/blob/main/packages/create-relkit/src/validate.types.ts#L11)
