Every developer knows the ritual: finish coding, run git status, stare at a wall of changed files, craft a commit message, and hope you remembered everything. But what if your AI coding assistant could handle the entire commit workflow — safely, with full documentation?
seal-commit is an agent skill that wraps git commit with a safety net, smart file selection, auto-generated commit messages, and dual-format change review documents included in the same commit.
The Problem
When committing changes, you typically face three pain points:
-
Fear of losing work — one wrong
git resetorcheckoutand uncommitted changes are gone - Vague commit messages — "fix stuff" or "update files" tells future-you nothing
- No change documentation — PR descriptions, release notes, and code review context are written manually, often after the fact
What seal-commit Does
seal-commit is an AI agent skill (works with Claude Code and compatible agents) that transforms the commit workflow into a guided, documented process:
-
Stash-based safety snapshot — Before anything else, it creates a
git stash savewith a descriptive message (timestamp + file count + key filenames), then immediatelygit stash apply. Your work is always recoverable. - Numbered file selection — Lists all changed/untracked files with numbers. You just type "all", "1,3,5", or "cancel".
-
Diff analysis — Reads actual code changes (tracked via
git diff, untracked via file reading). -
Auto-generated change review docs — Produces both
human.html(rich visual with sidebar, cards, interactive checklists) andai.md(dense, structured markdown for LLM context). -
Auto-generated conventional commit message — Formats as
type(scope): subjectwith 3-5 detail bullets, no user input needed.
All in one commit — code changes and documentation together.
Safety First: The Restricted Command Allowlist
This is the core design decision. seal-commit only runs safe git commands:
| Allowed | Blocked (for safety) |
|---|---|
git stash save/apply |
git reset |
git status |
git checkout |
git diff |
git restore |
git branch --show-current |
git rebase |
git add |
git stash drop |
git commit |
git clean |
The stash safety net is never at risk because the skill never runs commands that could destroy it.
Dual-Format Change Review
Every commit generates two documents in .change-review/<branch>-<date>/:
human.html — Visual Review for People
A self-contained HTML file with:
- Fixed sidebar navigation with scroll tracking
- Hero header with linked references
- Color-coded module cards (blue, amber, emerald, violet)
- Before/After code comparison panels
- Interactive testing checklist with clickable checkmarks
- Responsive layout
ai.md — Structured Context for LLMs
A dense markdown file optimized for AI context injection:
- Factual, no filler
- Actual code snippets (before/after)
- All identifiers in backticks
- Empty sections omitted entirely
How It Works
/seal or /commit or "commit"
↓
Step 0: git stash save + apply ← safety net
↓
Step 1: git status --porcelain
→ Numbered file list
→ User selects files (only interaction)
↓
Step 2: git diff + Read tool
↓
Step 3: Generate .change-review/<branch>-<date>/
├── human.html
└── ai.md
↓
Step 4: git add + commit with conventional message
↓
Done
Installation
npx skills add conanttu/skills/seal-commit -g -y
Or manual:
git clone https://github.com/conanttu/skills.git
cd skills
ln -s $(pwd)/seal-commit ~/.claude/skills/seal-commit
No prerequisites — works with any git repository.
Usage
Just say "commit" or type /seal. The skill lists your changed files with numbers, you pick which ones, and it handles everything else.
📝 Changed files:
1. src/api/auth.ts (modified)
2. src/types/user.ts (modified)
3. src/utils/helpers.ts (new)
4. package.json (modified)
❓ Which files do you want to commit?
- Type "all" or "a" to commit all
- Type file numbers (e.g., "1,3,5")
- Type "cancel" to abort
Docs Only Mode
Generate change review without committing:
/seal doc
Conventional Commits
Commit messages are auto-generated:
feat(auth): add token refresh interceptor
- Add axios interceptor for automatic token refresh
- Handle 401 responses with retry queue
- Store refresh promise to prevent duplicate calls
- Add unit tests for retry logic
Key Design Decisions
- stash + apply (not pop) — keeps the stash intact if commit fails
- Docs before commit — review docs are included in the same commit
-
Restricted commands — no
reset,checkout, orrestore - Dual output — HTML for humans, Markdown for LLMs
vs Manual Workflow
| Manual | seal-commit | |
|---|---|---|
| Safety net | None | Automatic stash snapshot |
| File selection | Manual paths | Numbered list |
| Commit message | Write yourself | Auto-generated |
| Documentation | Write later (or never) | Auto-generated |
| LLM-friendly docs | Not available |
ai.md included |
Learn More
What's your commit workflow like? Share your thoughts below!
Top comments (0)