atomcommit is a local-first CLI that turns staged and unstaged git diffs into deterministic atomic commit plans.
Early V0.1 release candidate. The planner is useful for local git diffs, but it does not stage files, create commits, push branches, or infer product intent.
git clone https://github.com/rogerchappel/atomcommit.git
cd atomcommit
npm installAfter publication, install the CLI with npm:
npm install -g atomcommitFrom a checkout, generate an atomic commit plan for the current repository:
node src/index.js planAfter installing the package binary, use the shorter command:
atomcommit
atomcommit planUse JSON output for automation:
atomcommit plan --jsonPrint version or help without needing to be inside a git repository:
atomcommit --version
atomcommit --helpatomcommit shells out to read-only git diff commands:
git diff --name-statusgit diff --cached --name-statusgit diff --numstatgit diff --stat
It groups changes by repository area such as documentation, tests, source code, package metadata, and CI automation. It also flags review risks such as deletions, renames, lockfiles, large changes, binary files, and sensitive-looking paths.
The repository includes a deterministic mixed-change fixture:
bash fixtures/setup-mixed-changes.sh /tmp/atomcommit-fixture
cd /tmp/atomcommit-fixture
node /path/to/atomcommit/src/index.js plan --jsonThe fixture covers source edits, docs, tests, workflow changes, a rename, and a deletion.
npm test
npm run check
npm run smoke
npm run package:smoke
npm run release:check
bash scripts/validate.sh- The package is still a v0.1.0 project and its JSON shape may change before 1.0.
- Commit boundaries are structural suggestions. Humans still choose the final history.
- Sensitive-path flags are heuristics, not a secret scanner or compliance control.
- Git rename detection follows
git diff --name-status; unusual diff settings can affect rename reporting.
See CONTRIBUTING.md. Keep changes small, update the PRD or README when scope changes, and include the exact verification command in every pull request.
See SECURITY.md. Do not include secrets, private tokens, proprietary dependency data, or sensitive logs in public issues or examples.
MIT
Before publishing or tagging a release, run the local verification path that matches CI:
npm run release:checknpm run package:smoke
The release checklist in docs/release-readiness.md captures the package surface, CLI bins, and reviewer notes for future release PRs.