From specialist-agent
Generates conventional git commit messages with automatic type/scope detection from file changes/diffs, runs pre-commit validation for secrets/debug code/large files, stages changes, and executes commit.
npx claudepluginhub herbertjulio/specialist-agent --plugin specialist-agentThis skill is limited to using the following tools:
Generate and execute conventional commits with automatic scope detection and pre-commit validation.
Generates conventional commit messages from git diffs by analyzing changes for type, scope, and subject. Validates messages against spec and executes git commits after confirmation.
Manages git commit workflows: checks status and diffs, stages changes selectively, generates and validates conventional commit messages, then executes commits.
Analyzes uncommitted git changes, excludes ephemeral files like node_modules or build/, groups by purpose into atomic conventional commits, validates code, and optionally pushes.
Share bugs, ideas, or general feedback.
Generate and execute conventional commits with automatic scope detection and pre-commit validation.
Override: $ARGUMENTS
git status --porcelain
git diff --stat
git diff --cached --stat
Determine:
Type detection from file patterns:
| Changed Files | Type |
|---|---|
src/components/*, src/pages/* | feat or fix |
tests/*, *.test.*, *.spec.* | test |
docs/*, *.md | docs |
.github/*, docker*, *.yml | ci or chore |
*.config.*, tsconfig*, package.json | chore |
| Rename/move only | refactor |
| Delete only | chore |
Scope detection from paths:
src/modules/auth/* -> scope: authsrc/components/Button/* -> scope: buttonsrc/services/* -> scope: servicesType from diff content:
featfixrefactorperfFormat: type(scope): description
Rules:
feat, fix, refactor, test, docs, chore, perf, ci, style)If $ARGUMENTS provided, use it as description override but still validate format.
# Check for secrets/sensitive files
git diff --cached --name-only | grep -E '\.(env|pem|key)$'
# Check for debug artifacts
git diff --cached | grep -E '(console\.log|debugger|TODO.*HACK)'
# Check for large files
git diff --cached --stat | awk '{print $NF}' | head -5
Warn if:
.env or credential files stagedconsole.log / debugger statements in diff# Stage if not staged
git add [relevant files]
# Commit
git commit -m "type(scope): description"
If commit message needs body:
git commit -m "type(scope): description" -m "body with more details"
──── /commit ────
Type: feat
Scope: auth
Message: feat(auth): add JWT refresh token rotation
Files: 4 changed (+120 / -15)
Warnings: none
✓ Committed: abc1234
──── /commit ────
⚠ WARNINGS:
- console.log found in src/service.ts:42
- .env.local is staged (contains secrets?)
Proceed anyway? Showing commit preview:
fix(api): handle timeout in payment service
Files: 2 changed (+8 / -3)
| Excuse | Reality |
|---|---|
| "I'll write a proper message later" | You won't. The context is fresh NOW. A bad commit message is permanent. |
| "It's just a small fix, message doesn't matter" | git log is the project's history book. Every entry matters. |
| "I'll squash before merging anyway" | Squash doesn't fix the habit. Good messages help during review too. |
| "Validation slows me down" | A leaked secret or committed console.log slows the whole team down. |