mcpField
P
prowler-commit

prowler-commit

github.com/prowler-cloudDevelopment15.1k70 installsUpdated today
Repository

About prowler-commit

prowler-commit is a skill for contributors preparing commits in the Prowler repository. It defines Conventional Commits formatting, scope selection, message drafting, and a confirmation step before committing, along with restrictions on destructive Git operations.

Key features

  1. 01Conventional Commits formatting
  2. 02Commit type and scope guidance
  3. 03Concise title and body rules
  4. 04Review changes before drafting
  5. 05Confirmation before committing
  6. 06Restrictions on force-push and commit flags

Use cases

  1. 01Draft a commit message for API, UI, SDK, or CI changes
  2. 02Choose a commit type and scope for repository edits
  3. 03Prepare a commit and request confirmation before execution

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/prowler-cloud/prowler --skill prowler-commit

After installing, type/prowler-commitin Claude Code to confirm it loaded.

Details

From the project README

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"

Comments

Markdown supported