From compound-engineering-feat-python
Analyze changes, group into logical units, and create conventional commits with gitmoji. Use when committing code changes.
npx claudepluginhub weorbitant/compound-engineering-feat-python-plugin --plugin compound-engineering-feat-pythonThis skill is limited to using the following tools:
Analyze all uncommitted changes, group them into logical commit units, and create conventional
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Analyze all uncommitted changes, group them into logical commit units, and create conventional commits with gitmoji emojis โ balancing atomicity with density.
/commit
<type>(<scope>): <emoji> <description>
<optional body>
<emoji> <change description>
<emoji> <change description>
Breaking changes: feat(auth)!: ๐ฅ remove legacy token format
Use EXACTLY one emoji per subject line, determined by the commit type:
| Type | Emoji | When to use |
|---|---|---|
feat | โจ | New feature or functionality |
fix | ๐ | Bug fix |
fix | ๐๏ธ | Critical hotfix |
refactor | โป๏ธ | Code restructuring, no behavior change |
test | โ | Add or update tests |
docs | ๐ | Documentation changes |
style | ๐จ | Formatting, structure improvements |
perf | โก๏ธ | Performance improvement |
chore | ๐ง | Config, tooling, maintenance |
ci | ๐ท | CI/CD changes |
build | ๐ฆ๏ธ | Build system or dependencies |
revert | โช๏ธ | Revert a previous commit |
Body lines are NOT limited to the table above. Pick any emoji that best describes the change:
| Emoji | Meaning |
|---|---|
| ๐ฅ | Remove code or files |
| โ | Add a dependency |
| โ | Remove a dependency |
| โฌ๏ธ | Upgrade dependency |
| โฌ๏ธ | Downgrade dependency |
| ๐ | Pin dependency version |
| ๐ | Move or rename files |
| ๐ท๏ธ | Add or update types |
| ๐ก | Add comments |
| โฐ๏ธ | Remove dead code |
| ๐ฅ | Catch errors |
| ๐๏ธ | Database changes |
| ๐ | Add logs |
| ๐ | Remove logs |
| ๐ | Update .gitignore |
| ๐ฉน | Simple non-critical fix |
| ๐ | Business logic |
| ๐ฆบ | Validation code |
| ๐งฑ | Infrastructure |
| ๐๏ธ | Security fix |
| ๐ | Auth/permissions |
| ๐ฑ | Seed files |
| ๐จ | Development scripts |
| ๐จ | Fix linter warnings |
| ๐ | Fix CI build |
| ๐งช | Add a failing test |
| ๐ฉบ | Healthcheck |
| ๐คก | Mock things |
| ๐ฝ๏ธ | Update due to external API changes |
| ๐งต | Threading/concurrency |
| ๐ฅ | Breaking change |
| ๐ | Deploy |
| ๐ | UI and style |
| ๐ | Secrets |
| ๐ | Analytics/tracking |
| ๐ | Internationalization |
| โ๏ธ | Fix typos |
Any other emoji that clearly describes the change is also valid.
Follow these steps exactly in order. Do NOT skip steps.
Run these commands to understand the current state:
git status
git diff
git diff --cached
git log --oneline -5
Collect:
If there are no changes at all, report:
"No changes to commit." and stop.
Analyze all changes and group them using these rules (in priority order):
Edge cases:
Present the groups to the user:
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]
Wait for confirmation before proceeding.
Auto-detect the scope from file paths:
src/<app>/<module>/ โ scope is <module>.Infer the commit type from the nature of the changes:
featfixtestdocsrefactorchorecibuildperfstyleIf ambiguous, ask the user.
Compare against the last commit. Propose amending if ALL of these are true:
git log --oneline @{u}..HEAD shows it).If amending, tell the user:
"Last commit was
feat(auth): โจ add login endpointโ these changes extend it. Amend? [Y/n]"
When amending, update the body to include the new changes.
If any condition is not met, create a new commit.
Show the full commit message and file list:
feat(auth): โจ add login endpoint
โ
add login view with JWT token generation
๐ง configure auth URLs in router
๐งช add tests for login success and failure
Files:
- src/auth/views.py
- src/auth/urls.py
- tests/auth/test_login.py
Wait for the user to confirm, edit, or skip.
Stage only the files in this group:
git add <file1> <file2> ...
Commit (or amend) using a HEREDOC for the message:
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
)"
Or if amending:
git commit --amend -m "$(cat <<'EOF'
<updated message>
EOF
)"
If a pre-commit hook runs during git commit:
IMPORTANT: Never skip pre-commit hooks with --no-verify.
If there are more groups, go back to step 3 for the next group.
If all groups are committed, show a summary:
Done! Created 2 commits:
abc1234 feat(auth): โจ add login endpoint
def5678 chore: ๐ง update pre-commit config