mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-01-25 02:08:11 +00:00
feat(skills): add prowler-commit skill
- Create commit guidelines following conventional-commits - Register skill in AGENTS.md
This commit is contained in:
@@ -40,6 +40,7 @@ Use these skills for detailed patterns on-demand:
|
||||
| `prowler-provider` | Add new cloud providers | [SKILL.md](skills/prowler-provider/SKILL.md) |
|
||||
| `prowler-changelog` | Changelog entries (keepachangelog.com) | [SKILL.md](skills/prowler-changelog/SKILL.md) |
|
||||
| `prowler-ci` | CI checks and PR gates (GitHub Actions) | [SKILL.md](skills/prowler-ci/SKILL.md) |
|
||||
| `prowler-commit` | Professional commits (conventional-commits) | [SKILL.md](skills/prowler-commit/SKILL.md) |
|
||||
| `prowler-pr` | Pull request conventions | [SKILL.md](skills/prowler-pr/SKILL.md) |
|
||||
| `prowler-docs` | Documentation style guide | [SKILL.md](skills/prowler-docs/SKILL.md) |
|
||||
| `skill-creator` | Create new AI agent skills | [SKILL.md](skills/skill-creator/SKILL.md) |
|
||||
@@ -50,17 +51,21 @@ When performing these actions, ALWAYS invoke the corresponding skill FIRST:
|
||||
|
||||
| Action | Skill |
|
||||
|--------|-------|
|
||||
| -- | `prowler-commit` |
|
||||
| Add changelog entry for a PR or feature | `prowler-changelog` |
|
||||
| Adding DRF pagination or permissions | `django-drf` |
|
||||
| Adding new providers | `prowler-provider` |
|
||||
| Adding services to existing providers | `prowler-provider` |
|
||||
| After completing code changes | `prowler-commit` |
|
||||
| After creating/modifying a skill | `skill-sync` |
|
||||
| App Router / Server Actions | `nextjs-15` |
|
||||
| Building AI chat features | `ai-sdk-5` |
|
||||
| Committing changes | `prowler-commit` |
|
||||
| Create PR that requires changelog entry | `prowler-changelog` |
|
||||
| Create a PR with gh pr create | `prowler-pr` |
|
||||
| Creating ViewSets, serializers, or filters in api/ | `django-drf` |
|
||||
| Creating Zod schemas | `zod-4` |
|
||||
| Creating a git commit | `prowler-commit` |
|
||||
| Creating new checks | `prowler-sdk-check` |
|
||||
| Creating new skills | `skill-creator` |
|
||||
| Creating/modifying Prowler UI components | `prowler-ui` |
|
||||
|
||||
@@ -12,10 +12,14 @@ When performing these actions, ALWAYS invoke the corresponding skill FIRST:
|
||||
|
||||
| Action | Skill |
|
||||
|--------|-------|
|
||||
| -- | `prowler-commit` |
|
||||
| Add changelog entry for a PR or feature | `prowler-changelog` |
|
||||
| Adding DRF pagination or permissions | `django-drf` |
|
||||
| After completing code changes | `prowler-commit` |
|
||||
| Committing changes | `prowler-commit` |
|
||||
| Create PR that requires changelog entry | `prowler-changelog` |
|
||||
| Creating ViewSets, serializers, or filters in api/ | `django-drf` |
|
||||
| Creating a git commit | `prowler-commit` |
|
||||
| Creating/modifying models, views, serializers | `prowler-api` |
|
||||
| Implementing JSON:API endpoints | `django-drf` |
|
||||
| Review changelog format and conventions | `prowler-changelog` |
|
||||
|
||||
@@ -8,8 +8,12 @@ When performing these actions, ALWAYS invoke the corresponding skill FIRST:
|
||||
|
||||
| Action | Skill |
|
||||
|--------|-------|
|
||||
| -- | `prowler-commit` |
|
||||
| Add changelog entry for a PR or feature | `prowler-changelog` |
|
||||
| After completing code changes | `prowler-commit` |
|
||||
| Committing changes | `prowler-commit` |
|
||||
| Create PR that requires changelog entry | `prowler-changelog` |
|
||||
| Creating a git commit | `prowler-commit` |
|
||||
| Review changelog format and conventions | `prowler-changelog` |
|
||||
| Update CHANGELOG.md in any component | `prowler-changelog` |
|
||||
| Working on MCP server tools | `prowler-mcp` |
|
||||
|
||||
179
skills/prowler-commit/SKILL.md
Normal file
179
skills/prowler-commit/SKILL.md
Normal file
@@ -0,0 +1,179 @@
|
||||
---
|
||||
name: prowler-commit
|
||||
description: >
|
||||
Creates professional git commits following conventional-commits format.
|
||||
Trigger: When creating commits, after completing code changes, when user asks to commit.
|
||||
license: Apache-2.0
|
||||
metadata:
|
||||
author: prowler-cloud
|
||||
version: "1.0.0"
|
||||
scope: [root, api, ui, prowler, mcp_server]
|
||||
auto_invoke:
|
||||
- "Creating a git commit"
|
||||
- "Committing changes"
|
||||
- "After completing code changes"
|
||||
---
|
||||
|
||||
## 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
|
||||
|
||||
---
|
||||
|
||||
## Commit Format
|
||||
|
||||
```
|
||||
type(scope): concise description
|
||||
|
||||
- Key change 1
|
||||
- Key change 2
|
||||
- Key change 3
|
||||
```
|
||||
|
||||
### Types
|
||||
|
||||
| Type | Use When |
|
||||
|------|----------|
|
||||
| `feat` | New feature or functionality |
|
||||
| `fix` | Bug fix |
|
||||
| `docs` | Documentation only |
|
||||
| `chore` | Maintenance, dependencies, configs |
|
||||
| `refactor` | Code change without feature/fix |
|
||||
| `test` | Adding or updating tests |
|
||||
| `perf` | Performance improvement |
|
||||
| `style` | Formatting, no code change |
|
||||
|
||||
### Scopes
|
||||
|
||||
| Scope | When |
|
||||
|-------|------|
|
||||
| `api` | Changes in `api/` |
|
||||
| `ui` | Changes in `ui/` |
|
||||
| `sdk` | Changes in `prowler/` |
|
||||
| `mcp` | Changes in `mcp_server/` |
|
||||
| `skills` | Changes in `skills/` |
|
||||
| `ci` | Changes in `.github/` |
|
||||
| `docs` | Changes in `docs/` |
|
||||
| *omit* | Multiple 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**
|
||||
```bash
|
||||
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**
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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"
|
||||
```
|
||||
@@ -18,11 +18,15 @@ When performing these actions, ALWAYS invoke the corresponding skill FIRST:
|
||||
|
||||
| Action | Skill |
|
||||
|--------|-------|
|
||||
| -- | `prowler-commit` |
|
||||
| Add changelog entry for a PR or feature | `prowler-changelog` |
|
||||
| After completing code changes | `prowler-commit` |
|
||||
| App Router / Server Actions | `nextjs-15` |
|
||||
| Building AI chat features | `ai-sdk-5` |
|
||||
| Committing changes | `prowler-commit` |
|
||||
| Create PR that requires changelog entry | `prowler-changelog` |
|
||||
| Creating Zod schemas | `zod-4` |
|
||||
| Creating a git commit | `prowler-commit` |
|
||||
| Creating/modifying Prowler UI components | `prowler-ui` |
|
||||
| Review changelog format and conventions | `prowler-changelog` |
|
||||
| Update CHANGELOG.md in any component | `prowler-changelog` |
|
||||
|
||||
Reference in New Issue
Block a user