DEV Community

Conan
Conan

Posted on

seal-commit: The Git Commit Skill That Generates Change Review Docs Automatically

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:

  1. Fear of losing work — one wrong git reset or checkout and uncommitted changes are gone
  2. Vague commit messages — "fix stuff" or "update files" tells future-you nothing
  3. 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:

  1. Stash-based safety snapshot — Before anything else, it creates a git stash save with a descriptive message (timestamp + file count + key filenames), then immediately git stash apply. Your work is always recoverable.
  2. Numbered file selection — Lists all changed/untracked files with numbers. You just type "all", "1,3,5", or "cancel".
  3. Diff analysis — Reads actual code changes (tracked via git diff, untracked via file reading).
  4. Auto-generated change review docs — Produces both human.html (rich visual with sidebar, cards, interactive checklists) and ai.md (dense, structured markdown for LLM context).
  5. Auto-generated conventional commit message — Formats as type(scope): subject with 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
Enter fullscreen mode Exit fullscreen mode

Installation

npx skills add conanttu/skills/seal-commit -g -y
Enter fullscreen mode Exit fullscreen mode

Or manual:

git clone https://github.com/conanttu/skills.git
cd skills
ln -s $(pwd)/seal-commit ~/.claude/skills/seal-commit
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Docs Only Mode

Generate change review without committing:

/seal doc
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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, or restore
  • 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)