1.5 KiB
1.5 KiB
Commit Workflow
Execute via git-manager subagent.
Tool 1: Stage + Analyze
git add -A && \
echo "=== STAGED ===" && git diff --cached --stat && \
echo "=== SECURITY ===" && \
git diff --cached | grep -c -iE "(api[_-]?key|token|password|secret|credential)" | awk '{print "SECRETS:"$1}' && \
echo "=== GROUPS ===" && \
git diff --cached --name-only | awk -F'/' '{
if ($0 ~ /\.(md|txt)$/) print "docs:"$0
else if ($0 ~ /test|spec/) print "test:"$0
else if ($0 ~ /\.opencode/) print "config:"$0
else if ($0 ~ /package\.json|lock/) print "deps:"$0
else print "code:"$0
}'
If SECRETS > 0: STOP, show matches, block commit.
Tool 2: Split Decision
NOTE:
- Search for related issues on GitHub and add to body.
- Only use
feat,fix, orperfprefixes for files in.claudedirectory (do not usedocs).
From groups, decide:
A) Single commit: Same type/scope, FILES ≤ 3, LINES ≤ 50
B) Multi commit: Mixed types/scopes, group by:
- Group 1:
config:→chore(config): ... - Group 2:
deps:→chore(deps): ... - Group 3:
test:→test: ... - Group 4:
code:→feat|fix: ... - Group 5:
docs:→docs: ...
Tool 3: Commit
Single:
git commit -m "type(scope): description"
Multi (sequential):
git reset && git add file1 file2 && git commit -m "type(scope): desc"
Repeat for each group.
Tool 4: Push (if requested)
git push && echo "✓ pushed: yes" || echo "✓ pushed: no"
Only push if user explicitly requested ("push", "commit and push").