# Configuration ReleaseKit reads a JSON profile from `/releasekit.json` by default. The repository directory defaults to the current directory. A relative profile path is resolved from that repository directory; an absolute path is used as-is. The current profile fields are: | Field | Required | Behavior | | --- | --- | --- | | `product` | Yes | Product name used by release operations. | | `remote` | No | Selected Git remote; defaults to `origin`. | | `checks` | No | Ordered child commands, each with an argument vector and optional environment map. | | `build` | No | Optional main package, binary name, and selected `GOOS/GOARCH` target strings. | | `delivery` | No | Optional Gitea `base_url`, `owner`, `repository`, and `token_env` settings for tagged-source delivery. | Each check requires a nonempty `args` array whose first element names the executable. Arguments are passed directly to the child process; ReleaseKit does not parse a shell command string. Select a shell explicitly when a check needs shell syntax. Each `env` map overlays the current environment for that child. The overlay does not modify the ReleaseKit process environment. Unknown fields are rejected so a setting cannot be silently ignored. The `build` object contains `main_package`, `binary_name`, and `targets`. A selected target requires the package and binary name; each target is written as one `GOOS/GOARCH` pair. An omitted or empty target list means no binary work. The `delivery` object contains `base_url`, `owner`, `repository`, and optional `token_env`. Its values are required when running `deliver`, but credentials are not required for `check`, `publish`, or `build`. `token_env` names the environment variable containing the Gitea token; it defaults to `RELEASEKIT_GITEA_TOKEN`. The CLI reads this variable only for `deliver` and passes its value explicitly to the library operation. The `check` and `publish` commands use `product`, `remote`, and `checks`, and build selected targets after the single validation callback. If `checks` is omitted or empty, it runs `go test -mod=readonly -count=1 ./...` with Go module and toolchain network access disabled. If checks are configured, they replace that default and run in order. The `build` command uses the selected build settings and writes binaries to `dist` unless `--output` selects another path. The `deliver` command uses the delivery destination and token, then either builds selected tagged-source targets into temporary storage or loads verified assets from the directory selected by `--assets`. An absent build object or an empty target set selects page-only delivery. ReleaseKit's source-only profile is [releasekit.json](../releasekit.json). See the [source-only profile](../examples/releasekit.json) and [binary profile](../examples/releasekit-binary.json). The [CLI contract](cli.md) lists the currently available command.