How this skill is triggered — by the user, by Claude, or both
Slash command
/sdlc:commitsonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a well-formatted conventional commit.
Create a well-formatted conventional commit.
Stage related files logically and create conventional commit messages following the format: type(scope): description
TYPE: $1 || "" # feat, fix, docs, style, refactor, test, chore SCOPE: $2 || "" # Component/area affected MESSAGE: $3 || "" # Commit message (auto-generated if blank)
echo "=== Analyzing Changes ==="
git status --short
echo ""
echo "=== Diff Summary ==="
git diff --stat
echo ""
echo "=== Staged Changes ==="
git diff --cached --stat
Review the changes to understand:
If TYPE not provided, analyze changes to suggest:
| Pattern | Suggested Type |
|---|---|
| New files/features | feat |
| Bug fixes, error handling | fix |
| Documentation only (.md, comments) | docs |
| Formatting, whitespace | style |
| Code restructure, no behavior change | refactor |
| Test files only | test |
| Dependencies, config, tooling | chore |
If SCOPE not provided, infer from file paths:
| Path Pattern | Suggested Scope |
|---|---|
cli/ | cli |
primitives/ | primitives |
docs/ | docs |
tests/ | tests |
*.rs | core |
*.py | python |
| Multiple distinct areas | omit scope |
If MESSAGE not provided:
Good examples:
feat(cli): add version bump commandfix(validators): handle empty metadata filesdocs: update ADR-019 with examplesBad examples:
fixed stuff (vague)Updated the validation logic to check for... (too long, wrong tense)# If nothing staged, selectively stage tracked file changes
if [ -z "$(git diff --cached --name-only)" ]; then
echo "=== Staging Changes ==="
# Use git add -u for tracked files, or explicitly add specific paths
git add -u
git status --short
fi
# Build commit message
if [ -n "${SCOPE}" ]; then
FULL_MESSAGE="${TYPE}(${SCOPE}): ${MESSAGE}"
else
FULL_MESSAGE="${TYPE}: ${MESSAGE}"
fi
echo ""
echo "=== Creating Commit ==="
echo "Message: ${FULL_MESSAGE}"
echo ""
git commit -m "${FULL_MESSAGE}"
echo ""
echo "=== Commit Created ==="
git log -1 --oneline
git log -1 --stat
## Commit Created
**Hash:** <short-hash>
**Type:** ${TYPE}
**Scope:** ${SCOPE}
**Message:** ${MESSAGE}
**Full commit:**
\`\`\`
${TYPE}(${SCOPE}): ${MESSAGE}
\`\`\`
**Files Changed:**
<file list with +/- stats>
**Next Steps:**
- Run `/devops/push` to push to remote
- Or continue making changes
| Type | When to Use | Example |
|---|---|---|
feat | New feature for users | feat(auth): add OAuth login |
fix | Bug fix for users | fix(api): handle null response |
docs | Documentation only | docs: add setup instructions |
style | Formatting, no code change | style: fix indentation |
refactor | Code change, no behavior change | refactor: extract helper function |
test | Adding/updating tests | test: add unit tests for parser |
chore | Maintenance, tooling | chore(deps): update dependencies |
/commit
Analyzes changes and suggests type, scope, and message.
/commit feat
Uses feat type, auto-detects scope and message.
/commit feat cli "add version bump command"
Creates: feat(cli): add version bump command
/commit docs "" "update README with examples"
Creates: docs: update README with examples
npx claudepluginhub agentparadise/agentic-primitives --plugin sdlcGenerates Conventional Commits messages for staged git changes and commits them. Follows v1.0.0 spec with types like feat, fix, refactor. Use for standardized commits or /commit invocation.
Executes git commits with conventional commit message analysis, intelligent staging, and message generation. Use when asked to commit changes or when /commit is invoked.
Blocks Edit/Write/Bash actions until Claude investigates importers, data schemas, and user instructions. Improves output quality by forcing concrete facts before edits.