agentsclimarketplace

Commit

Skill weorbitant/compound-engineering-feat-python-plugin/skills/commit

Analyze changes, group into logical units, and create conventional commits with gitmoji. Use when committing code changes.From its SKILL.md

Install
npx -y skills add weorbitant/compound-engineering-feat-python-plugin --skill commit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.1 KB, as published. Nobody here has run it

Commit Skill

Analyze all uncommitted changes, group them into logical commit units, and create conventional commits with gitmoji β€” balancing atomicity with density.

Usage

/commit

Commit Format

<type>(<scope>): <emoji> <description>

<optional body>
<emoji> <change description>
<emoji> <change description>

Breaking change: feat(auth)!: πŸ’₯ remove legacy token format

Full emoji table (subject + body): references/emoji-table.md.

Body policy

  • Single file or self-explanatory change β†’ subject line only, no body.
  • Multi-file or non-obvious change β†’ bullet list, each line prefixed with an emoji.

Procedure

Step 1 β€” Scan

git status
git diff
git diff --cached
git log --oneline -5

If no changes, report "No changes to commit." and stop.

Step 2 β€” Group into logical units

Priority rules:

  1. Same feature β€” view + URL + serializer + tests = one commit.
  2. Same concern β€” pure config together; pure tests together; migrations with models.
  3. File proximity β€” same directory/module likely related.
  4. Import analysis β€” A imports from B and both changed β†’ probably together.

Edge cases: single file β†’ one group, no prompt. All related β†’ one commit. Can't decide β†’ ask user.

Present groups and wait for confirmation:

Group 1 β†’ feat(auth): ✨ add login endpoint
  - src/auth/views.py (new)
  - src/auth/urls.py (modified)
  - tests/auth/test_login.py (new)

Group 2 β†’ chore: πŸ”§ update pre-commit config
  - .pre-commit-config.yaml (modified)

Commit group 1 first? [Y/n/edit]

Step 3 β€” Scope per group

Auto-detect:

  • src/<app>/<module>/ β†’ scope <module>
  • Multiple dirs with common parent β†’ use parent
  • Unrelated dirs β†’ ask user
  • Root-level config files β†’ no scope

Step 4 β€” Type per group

  • New business logic β†’ feat
  • Bug fix β†’ fix
  • Only tests β†’ test
  • Only docs β†’ docs
  • Restructuring β†’ refactor
  • Config/tooling β†’ chore
  • CI/CD β†’ ci
  • Dependencies β†’ build
  • Performance β†’ perf
  • Formatting only β†’ style

Ambiguous β†’ ask.

Step 5 β€” Amend check

Propose --amend only if ALL:

  • Last commit has same type and scope
  • Last commit NOT pushed (git log --oneline @{u}..HEAD shows it)
  • Changes extend the same logical unit

Ask: "Last commit was feat(auth): ✨ add login endpoint β€” these changes extend it. Amend? [Y/n]"

When amending, update the body to include new changes.

Step 6 β€” Preview

Show full message + file list. Wait for confirm/edit/skip.

Step 7 β€” Stage and commit

git add <file1> <file2> ...

git commit -m "$(cat <<'EOF'
feat(auth): ✨ add login endpoint

βœ… add login view with JWT token generation
πŸ”§ configure auth URLs in router
πŸ§ͺ add tests for login success and failure
EOF
)"

Amend variant uses git commit --amend -m "$(cat <<'EOF' ... EOF)".

Step 8 β€” Pre-commit hooks

If the hook fails:

  1. Read output, identify failure
  2. Auto-stage any auto-fixes (formatting, imports)
  3. Create a new commit with the same message β€” NOT amend (original commit didn't happen)
  4. If it fails again, show errors and ask user

NEVER skip hooks with --no-verify.

Step 9 β€” Next group or finish

More groups β†’ back to Step 3. All done β†’ summary:

Done! Created 2 commits:
  abc1234 feat(auth): ✨ add login endpoint
  def5678 chore: πŸ”§ update pre-commit config

What this skill does NOT do

  • Push to remote
  • Create branches
  • Run tests

Balance Principle

  • One commit per logical unit β€” not per file, not per keystroke.
  • A "logical unit" is something you'd revert as a whole.
  • Different verbs ("add X" and "fix Y") β†’ separate commits.
  • Described together ("add login with tests and config") β†’ one commit.
  • Prefer fewer meaningful commits over many tiny ones.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.