Sign in
Explore
Skills · SkillEveryday codingGit & pull requestsReviewedRuns shell commands

commit-craft

Plans a reviewable series of commits from a mixed working tree, blocks staged secrets and .env files, and lints commit messages, using bundled Python scripts.

Kind
Skill
Works with
Claude Code
Languages
Python
Source
Claude Skills (Alireza Rezvani) @ e4a1dc369590
Path
engineering/commit-craft/skills/commit-craft/SKILL.md
Jobs
Git workflow, Guardrails
Topics
Git & pull requests

Credit

Made by
alirezarezvani
Original
github.com/alirezarezvani/claude-skills/blob/e4a1dc3695908dd5…
License
MIT

Listed by Skill Manifest; not made by us.

InstallInstall it from a plugin marketplace.
/plugin marketplace add alirezarezvani/claude-skills
Install factsScanned 2 Nov 2026
Adds
  • .claude/skills/commit-craft/ (the skill folder)
  • 9 file(s) the skill refers to
Runs scripts
Yes
  • scripts/commit_planner.py
  • scripts/secret_gate.py
  • scripts/message_linter.py
  • shell block in the text
Uses the network
None found
Needs secrets
None found
Source revision
e4a1dc369590
Licence
MIT
Last activity
31 Oct 2026
Review
Reviewed

Found by a static scan of the stored text; nothing is run. “None found” is not a guarantee, so read what you install before you run it.

  • Only the main file is read; other files in the folder are not scanned
# Commit Craft

> **Portability:** 3 stdlib Python scripts that call `git` read-only. No network.
> **The scripts never stage, commit or push.** You do, one group at a time, after the gate passes.

Agents leave large mixed diffs: a feature, a reformat, a dependency bump and a
stray `.env`, all in one tree. Committed as one blob, that diff cannot be
reviewed, reverted or bisected. This skill turns it into a series where each
commit is one logical change, builds on its own, holds no secrets and says why.

## Workflow

```bash
# 1 - Plan: which commits, in which order, staged how?
python scripts/commit_planner.py                 # working tree vs HEAD, untracked included
# 2 - For each group: stage exactly its files, then gate what is staged
git add -- <files of group N>                     # or git add -p for MIXED_FORMATTING files
python scripts/secret_gate.py                     # blocks before the commit exists
# 3 - Write the message, lint it, commit
python scripts/message_linter.py -m "<message>" --staged && git commit -m "<message>"
# 4 - Before push: the whole series, and proof every commit builds
python scripts/message_linter.py --range @{upstream}..HEAD
…