| name | github-workflow |
| description | GitHub workflow automation — branching, committing, pushing, pull requests, issues, and code review. Use when asked to commit, push, create PRs/branches/issues, or manage git workflow. |
GitHub Workflow
Automate the full GitHub development lifecycle: branches, commits, pushes, PRs, issues, and code review.
Quick Start
- User requests a git action (commit, PR, branch, push, issue)
- Check repo state:
git status, git branch, git log --oneline -5
- Execute the appropriate workflow below
- Confirm result to user
Workflows
1. Branching
git checkout main && git pull origin main
git checkout -b <type>/<name>
- Always branch from up-to-date
main
- Use conventional naming:
feature/add-jwt-testing, bugfix/fix-port-detection
2. Committing
git add <file1> <file2>
git commit -m "type(scope): description"
- Types:
feat, fix, docs, refactor, test, chore
- Message focuses on why, not what
- Never commit
.env, credentials, or secrets
- See reference/commit-conventions.md
3. Pushing
git push -u origin <branch-name>
git push
- Never force-push to
main/master without explicit user approval
- If push is rejected,
git pull --rebase first
4. Pull Requests
gh pr create --title "Short title < 70 chars" --body "$(cat <<'EOF'
## Summary
- What changed and why
## Test plan
- [ ] How to verify
Fixes #<issue-number>
EOF
)"
5. Issues
gh issue create --title "type: description" --body "$(cat <<'EOF'
## Problem
What needs to change
## Proposed solution
How to fix it
## Acceptance criteria
- [ ] Criteria 1
EOF
)"
6. Code Review
gh pr view <number>
gh pr diff <number>
gh pr checks <number>
gh pr review <number> --approve
gh pr review <number> --comment --body "feedback"
Reference
Critical Rules
- NEVER force-push to main/master without explicit user approval
- NEVER commit secrets,
.env files, or credentials
- NEVER use
git add -A without reviewing what's staged
- NEVER skip pre-commit hooks (
--no-verify) unless user explicitly asks
- NEVER amend published commits — create new commits instead
- ALWAYS use conventional commit format:
type(scope): description
- ALWAYS link PRs to issues
- ALWAYS check
git status before committing
- ALWAYS pull before pushing to avoid conflicts
- ALWAYS create branches from up-to-date main