# System map — semantic-release/semantic-release

> Canonical page: https://codevetter.com/unpack/semantic-release/system-map

# System map — semantic-release/semantic-release

Scanned commit e8c2436e5704a6d1fa5b4aa69238f50edbe586bf (2026-09-21). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The system is a one-shot release coordinator with CLI and programmatic entrypoints. Core modules own configuration, branch policy, Git state, and lifecycle sequencing; external plugins own package and hosting integrations. The published package contains executable JavaScript and TypeScript declarations, while Git tags and notes provide durable release state.
- package.json exposes bin/semantic-release.js as the semantic-release executable, index.js as the main module, and index.d.ts as its declarations; the package uses ESM. — [package.json#L5-L5](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L5-L5) [package.json#L18-L20](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L18-L20) [package.json#L108-L109](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L108-L109)
- The executable rejects unsupported Node versions and checks Git against minimum 2.7.1; package engines require ^22.14.0 or >=24.10.0. — [bin/semantic-release.js#L15-L38](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/bin/semantic-release.js#L15-L38) [package.json#L84-L86](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L84-L86)
- cli.js parses release options with yargs, dynamically imports index.js, and maps successful execution to exit code 0 and errors to 1. — [cli.js#L15-L41](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/cli.js#L15-L41) [cli.js#L43-L63](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/cli.js#L43-L63)
- index.js owns the run context and release sequence, with dedicated modules for configuration, verification, versions, commits, authentication, and branches. — [index.js#L8-L21](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L8-L21) [index.js#L259-L290](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L259-L290)
- getConfig searches for release configuration with cosmiconfig, reads package metadata upward, falls back to remote.origin.url, and constructs plugin pipelines. — [lib/get-config.js#L19-L26](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/get-config.js#L19-L26) [lib/get-config.js#L62-L98](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/get-config.js#L62-L98) [lib/git.js#L177-L183](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/git.js#L177-L183)
- Default integrations are commit-analyzer, release-notes-generator, npm, and github; they are dependencies loaded through the plugin system rather than implemented in the core. — [lib/get-config.js#L75-L80](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/get-config.js#L75-L80) [package.json#L29-L34](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L29-L34) [lib/plugins/utils.js#L50-L66](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/plugins/utils.js#L50-L66)
- Git release storage uses tags plus JSON notes under semantic-release-prefixed refs; current writes use a separate note ref for each tagged release, and reads include older note naming. — [lib/git.js#L324-L335](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/git.js#L324-L335) [lib/git.js#L371-L376](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/git.js#L371-L376) [lib/definitions/constants.js#L17-L17](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/constants.js#L17-L17)
- Development uses npm scripts for formatting, lockfile validation, engine compatibility, publish validation, and AVA suites; the release workflow runs npx semantic-release@25.0.1 on configured branch pushes. — [package.json#L148-L158](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L148-L158) [package.json#L170-L170](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/package.json#L170-L170) [.github/workflows/release.yml#L1-L35](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/.github/workflows/release.yml#L1-L35)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
