init
This commit is contained in:
58
.opencode/skills/git/references/workflow-commit.md
Normal file
58
.opencode/skills/git/references/workflow-commit.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Commit Workflow
|
||||
|
||||
Execute via `git-manager` subagent.
|
||||
|
||||
## Tool 1: Stage + Analyze
|
||||
```bash
|
||||
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`, or `perf` prefixes for files in `.claude` directory (do not use `docs`).
|
||||
|
||||
**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:**
|
||||
```bash
|
||||
git commit -m "type(scope): description"
|
||||
```
|
||||
|
||||
**Multi (sequential):**
|
||||
```bash
|
||||
git reset && git add file1 file2 && git commit -m "type(scope): desc"
|
||||
```
|
||||
Repeat for each group.
|
||||
|
||||
## Tool 4: Push (if requested)
|
||||
```bash
|
||||
git push && echo "✓ pushed: yes" || echo "✓ pushed: no"
|
||||
```
|
||||
|
||||
**Only push if user explicitly requested** ("push", "commit and push").
|
||||
Reference in New Issue
Block a user