# Internal package inventory Public facades and their contracts are defined in Go declarations and GoDoc. The [runtime consumer guide](../consumers/runtime-version.md) covers application usage, and the [CLI contract](../cli.md) covers command behavior. Implemented internal packages: - `internal/runtimeinfo` holds the injected version value and selects the executable's main-module version when no injected value is present. - `internal/versioncontract` names the linker symbol and stable version form shared with the build and candidate operations. - `internal/apicheck` checks compiled exports with `go/types` and checks import direction. Run it with `go run ./internal/apicheck` from the repository root. - `internal/process` runs cancellable child commands with per-child environment overlays. - `internal/build` compiles explicit Go targets with shared version injection, verifies native version output, and returns generated file digests. - `internal/gitea` verifies hosted source tags, manages matching stable release pages, and inspects and uploads declared attachments through the Gitea REST API. - `internal/candidate` captures and validates one clean local candidate, checks its committed release note and local tag state, runs validation once, and rechecks mutable repository state. - `internal/git` resolves one effective push destination, applies it to a command-scoped remote, reads exact authoritative branch and tag refs, and creates and pushes exact annotated tag objects. - `internal/publish` coordinates local and remote guards around one validation run and reports the publication state reached by that invocation. - `cmd/releasekit/internal/cli` parses implemented commands, loads strict JSON profiles, adapts configured checks, and writes and validates private local build receipts. The executable controller uses the runtime facade and the command-owned CLI adapter. The adapter uses the process runner and imports neither public facade. The publication operation coordinates the candidate and Git packages. The internal Gitea client is documented in the [Gitea integration guide](../integrations/gitea.md); delivery orchestration will use it when that facade and CLI work lands.