PR

Automates the creation of conventional-commits compliant git messages.

Install

mkdir -p .claude/skills/prowler-commit && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7386" && unzip -o skill.zip -d .claude/skills/prowler-commit && rm skill.zip

Installs to .claude/skills/prowler-commit

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Creates professional git commits following conventional-commits format. Trigger: When creating commits, after completing code changes, when user asks to commit.
160 chars · catalog description✓ has a “when” trigger
Beginner

Key capabilities

  • Forces conventional-commit syntax compliance
  • Categorizes changes by predefined scope and type
  • Validates commit titles against character limits
  • Prevents destructive git commands (force push)

How it works

It uses a structured rule set to prompt for mandatory conventional-commit components, verifying each piece against a schema before committing.

Inputs & outputs

You give it
Code changes and commit intent
You get back
Formatted commit string

When to use prowler-commit

  • Create a commit for a new feature
  • Log a bug fix commit
  • Generate documentation-only updates

About this skill

Critical Rules

  • ALWAYS use conventional-commits format: type(scope): description
  • ALWAYS keep the first line under 72 characters
  • ALWAYS ask for user confirmation before committing
  • NEVER be overly specific (avoid counts like "6 subsections", "3 files")
  • NEVER include implementation details in the title
  • NEVER use -n flag unless user explicitly requests it
  • NEVER use git push --force or git push -f (destructive, rewrites history)
  • NEVER proactively offer to commit - wait for user to explicitly request it

Commit Format

type(scope): concise description

- Key change 1
- Key change 2
- Key change 3

Types

TypeUse When
featNew feature or functionality
fixBug fix
docsDocumentation only
choreMaintenance, dependencies, configs
refactorCode change without feature/fix
testAdding or updating tests
perfPerformance improvement
styleFormatting, no code change

Scopes

ScopeWhen
apiChanges in api/
uiChanges in ui/
sdkChanges in prowler/
mcpChanges in mcp_server/
skillsChanges in skills/
ciChanges in .github/
docsChanges in docs/
omitMultiple scopes or root-level

Good vs Bad Examples

Title Line

# GOOD - Concise and clear
feat(api): add provider connection retry logic
fix(ui): resolve dashboard loading state
chore(skills): add Celery documentation
docs: update installation guide

# BAD - Too specific or verbose
feat(api): add provider connection retry logic with exponential backoff and jitter (3 retries max)
chore(skills): add comprehensive Celery documentation covering 8 topics
fix(ui): fix the bug in dashboard component on line 45

Body (Bullet Points)

# GOOD - High-level changes
- Add retry mechanism for failed connections
- Document task composition patterns
- Expand configuration reference

# BAD - Too detailed
- Add retry with max_retries=3, backoff=True, jitter=True
- Add 6 subsections covering chain, group, chord
- Update lines 45-67 in dashboard.tsx

Workflow

  1. Analyze changes

    git status
    git diff --stat HEAD
    git log -3 --oneline  # Check recent commit style
    
  2. Draft commit message

    • Choose appropriate type and scope
    • Write concise title (< 72 chars)
    • Add 2-5 bullet points for significant changes
  3. Present to user for confirmation

    • Show files to be committed
    • Show proposed message
    • Wait for explicit confirmation
  4. Execute commit

    git add <files>
    git commit -m "$(cat <<'EOF'
    type(scope): description
    
    - Change 1
    - Change 2
    EOF
    )"
    

Decision Tree

Single file changed?
├─ Yes → May omit body, title only
└─ No → Include body with key changes

Multiple scopes affected?
├─ Yes → Omit scope: `feat: description`
└─ No → Include scope: `feat(api): description`

Fixing a bug?
├─ User-facing → fix(scope): description
└─ Internal/dev → chore(scope): fix description

Adding documentation?
├─ Code docs (docstrings) → Part of feat/fix
└─ Standalone docs → docs: or docs(scope):

Commands

# Check current state
git status
git diff --stat HEAD

# Standard commit
git add <files>
git commit -m "type(scope): description"

# Multi-line commit
git commit -m "$(cat <<'EOF'
type(scope): description

- Change 1
- Change 2
EOF
)"

# Amend last commit (same message)
git commit --amend --no-edit

# Amend with new message
git commit --amend -m "new message"

When not to use it

  • When emergency commits necessitate bypassing strict standards
  • Non-git version control environments

Prerequisites

Git initialized in the current project

Limitations

  • Requires strict adherence to predefined scopes
  • Cannot automatically infer intent without user input

How it compares

It prevents the entry of 'bad' commit messages by validating content before it is written to the repository history.

Compared to similar skills

prowler-commit side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
prowler-commit (this skill)12moReviewBeginner
run-nx-generator53moReviewIntermediate
git-commit116moReviewBeginner
morph-search97moReviewBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry