Agent skill
git-workflow
Enforce branch-based workflow with draft PRs for emoji_gen. Use when starting new work, creating branches, or opening pull requests. Mentions of "new feature", "bug fix", "start work", "create PR", or "pull request" should trigger this Skill.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/productivity/git-workflow-francisfuzz-emoji-gen
SKILL.md
Git Workflow for emoji_gen
This Skill enforces the branch-based workflow with draft PRs required for all non-trivial changes.
Core Principle
ALWAYS use feature branches and draft PRs for any non-trivial work.
Complete Workflow
1. Start New Work
Before making any changes:
# Ensure you're on main and up-to-date
git checkout main
git pull origin main
# Create feature branch with conventional naming
git checkout -b <type>/<descriptive-name>
2. Branch Naming Convention
Use Conventional Commits prefixes:
| Prefix | Use For | Example |
|---|---|---|
feat/ |
New features | feat/add-emoji-categories |
fix/ |
Bug fixes | fix/negative-count-validation |
docs/ |
Documentation | docs/update-readme-install |
build/ |
Build/CI changes | build/add-msrv-check |
test/ |
Test additions | test/add-pool-size-validation |
refactor/ |
Code refactoring | refactor/extract-selection-logic |
perf/ |
Performance | perf/optimize-emoji-lookup |
chore/ |
Maintenance | chore/update-dependencies |
Examples:
git checkout -b feat/add-emoji-filtering
git checkout -b fix/unicode-encoding-bug
git checkout -b docs/docker-workflow
git checkout -b build/ci-coverage-reporting
3. Make Changes and Commit
Work on your changes, committing as you go:
# Stage your changes
git add <files>
# Create commit following Conventional Commits
# (Use the conventional-commits Skill for proper formatting)
git commit -m "..."
# Push commits to remote
git push
4. Create Draft Pull Request
After first commit:
# Push branch to remote
git push -u origin <branch-name>
# Create draft PR
gh pr create --draft --title "<type>: descriptive title" --body "$(cat <<'EOF'
## Summary
[Brief description of changes and motivation]
## Changes
- [Bullet point list of key changes]
- [Another change]
## Test Plan
- [ ] [Testing step 1]
- [ ] [Testing step 2]
- [ ] Run `./docker-dev.sh test`
- [ ] Run `./docker-dev.sh clippy`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
Shortcut for auto-generated title/body:
gh pr create --draft --fill
See pr-template.md for the full PR description template.
5. Continue Working
Push additional commits to the branch:
# Make more changes
git add .
git commit -m "..."
git push
The PR automatically updates with each push.
6. Mark PR as Ready
When work is complete and CI passes:
gh pr ready
7. Merge After Review
After CI passes and review is complete:
# Via GitHub CLI
gh pr merge --squash
# Or use GitHub web UI
gh pr view --web
When to Use This Workflow
ALWAYS use feature branches and draft PRs for:
- ✅ New features
- ✅ Bug fixes
- ✅ Refactoring
- ✅ Documentation updates
- ✅ CI/CD changes
- ✅ Any non-trivial changes
Direct commits to main are ONLY acceptable for:
- ❌ Emergency hotfixes (use with extreme caution)
- ❌ Version bumps for releases
PR Best Practices
Title Format
Follow Conventional Commits format:
feat: add emoji category filtering
fix: correct negative count validation
docs: update installation instructions
build(ci): add MSRV verification workflow
Description Structure
See pr-template.md, but include:
- Summary: What changed and why
- Changes: Bulleted list of key changes
- Test Plan: How to verify the changes work
- Breaking Changes: If applicable
- Related Issues: Link any related issues
Before Marking Ready
Checklist:
- All commits follow Conventional Commits format
- Tests pass:
./docker-dev.sh test - Linting passes:
./docker-dev.sh clippy - Documentation updated if needed
- PR description is complete
- CI checks are passing
Common Commands
# View PR status
gh pr status
# View PR in browser
gh pr view --web
# Check current branch
git branch --show-current
# See what would be in PR
git log main..HEAD
# See diff vs main
git diff main...HEAD
Workflow Example
# 1. Start new feature
git checkout main
git pull origin main
git checkout -b feat/add-emoji-categories
# 2. Make changes
# ... edit files ...
git add src/lib.rs
git commit -m "feat: add emoji category support"
# 3. Push and create draft PR
git push -u origin feat/add-emoji-categories
gh pr create --draft --title "feat: add emoji category filtering" \
--body "Implements emoji categorization and filtering by category"
# 4. Continue working
# ... make more changes ...
git add .
git commit -m "feat: add category tests"
git push
# 5. When ready
gh pr ready
# 6. After CI and review
gh pr merge --squash
Error Prevention
DO NOT:
- Start work without creating a branch
- Commit directly to main
- Create PRs that aren't marked as draft initially
- Push without running tests locally first
- Skip the PR process for non-trivial changes
DO:
- Always start from updated main
- Use descriptive branch names
- Create draft PRs early in the process
- Keep PRs focused on a single change
- Ensure CI passes before marking ready
Didn't find tool you were looking for?