atomic-commit

Splits working-tree changes into atomic git commits gated on type checks and secrets scans.

Updated Jul 26, 2026
One-click install
npx skills add https://github.com/PMN123/trapdoor --skill atomic-commit-pmn123
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: atomic-commit
Source: https://github.com/PMN123/trapdoor/tree/main/.agents/skills/atomic-commit
Command: npx skills add https://github.com/PMN123/trapdoor --skill atomic-commit-pmn123

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Unstructured git histories with large mixed-purpose commits break audit trails, cause merge conflicts between collaborators, and hide secrets or broken code in the repository. This Skill enforces one logical change per commit with verification gates before anything lands. ## Core Features & Use Cases - Atomicity enforcement: Applies three tests (single-line description, single revertable decision, repo still builds) to decide whether a diff must be split into multiple commits. - Safety gates: Runs a secrets scan for .env*, *.key, *.pem, and .jac/ files, plus jac check type validation on every staged .jac file before committing. - Ownership and audit rules: Enforces a two-person file-ownership boundary (engine vs. client files), a conventional commit message format, and hard prohibitions on rewriting pushed history. - Use Case: After an agent session leaves git status full of unrelated edits across engine, UI, and docs files, use this Skill to split them by concern with git add -p, verify each compiles, and land a clean sequence of small commits. ## Quick Start Review my current uncommitted changes and split them into atomic commits, running the build and secrets checks before each one.

Frequently Asked Questions about atomic-commit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I split a large git change into atomic commits?

Read the full diff first, then stage by concern using git add <path> or git add -p for hunk-level splits. Each commit should pass three tests: describable in one line without "and", revertable as exactly one decision, and leaving the repo in a building state.

What is an atomic commit in git?

An atomic commit contains exactly one logical change that either does one thing completely or becomes two commits. It keeps history revertable, simplifies code review, and prevents merge conflicts when multiple people or agent sessions work in parallel.

How do I avoid committing secrets or API keys to git?

Run a secrets gate before staging: confirm no .env*, *.key, *.pem, secrets.toml, or .jac/ files are included, and never use git add -A without reading git status first. Never use git add -f, since it bypasses the .gitignore rules that keep credentials out.

Can I amend or rebase commits that are already pushed?

No. This workflow prohibits --amend, rebase -i, reset --hard, and force-push on anything already pushed, because the commit timeline serves as an audit trail. Preserve timestamps and add corrective commits instead of rewriting history.

What should I do when my diff touches a teammate's files?

Stop and talk to the file owner rather than committing over their work. The ownership boundary assigns engine files (main.jac, walkers, node/edge types) to one person and client files (*.cl.jac, styling, ingester) to the other, and crossing it silently causes expensive conflicts.