| name | Git Workflow |
| description | Git branch management, commits, pull requests, and IJACK Roadmap project board integration. Use when creating feature branches, committing code, creating pull requests, managing git workflows, or adding issues to the IJACK Roadmap project board. |
| allowed-tools | ["Bash","Read"] |
Git Workflow Skill
Purpose
Manage Git workflows including feature branches, commits, pull requests, and GitHub issue tracking with IJACK Roadmap project board integration.
When to Use This Skill
- Creating feature branches
- Committing code changes
- Creating pull requests
- Adding issues to project board
- Git workflow management
- Branch management
- Issue tracking
Critical: IJACK Roadmap Project Board
MANDATORY: All Issues Must Go to Project #12
IJACK Roadmap (Project #12) is the default and only project board for ALL issues:
- Features
- Bugs
- Epics
- User stories
- Service requests
- Ideas
Project URL: https://github.com/orgs/ijack-technologies/projects/12/views/
Add Issue to Project Board
gh project item-add 12 --owner ijack-technologies --url <ISSUE_URL>
gh project item-add 12 --owner ijack-technologies --url https://github.com/ijack-technologies/rcom/issues/976
gh project item-add 12 --owner ijack-technologies --url https://github.com/ijack-technologies/planning/issues/45
Feature Branch Workflow
Create New Feature Branch
cd /project
bash scripts/new-feature-branch.sh
Interactive prompts:
- Branch type (feature/bugfix/hotfix)
- Brief description
- Automatically creates formatted branch name
Manual Branch Creation
git checkout -b feature/user-authentication
git push -u origin feature/user-authentication
Branch Naming Convention
feature/<description> # New features
bugfix/<description> # Bug fixes
hotfix/<description> # Urgent production fixes
refactor/<description> # Code refactoring
docs/<description> # Documentation updates
Commit Workflow
Standard Commit Process
git status
git diff
git add <files>
git commit -m "feat: Add user authentication system
Implements JWT-based authentication with role-based access control.
Includes login, logout, and session management.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>"
Commit Message Format
<type>: <subject>
<body>
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Types:
feat: New feature
fix: Bug fix
refactor: Code refactoring
docs: Documentation
test: Tests
chore: Maintenance
perf: Performance improvements
Using Heredoc for Commits
git commit -m "$(cat <<'EOF'
feat: Add user authentication system
Implements JWT-based authentication with role-based access control.
Includes login, logout, and session management.
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
EOF
)"
Pre-Commit Checklist
Code Quality
cd /project
ruff check --fix .
ruff format .
cd /project/flask_app/app/inertia/react
bun run build
bun run lint
Testing
cd /project
bash scripts/run_all_tests_comprehensive.sh --coverage
Type Generation
cd /project/flask_app/app/inertia/react
bun run generate-types
Pull Request Creation
Using GitHub CLI
gh pr create --title "Add user authentication" --body "$(cat <<'EOF'
## Summary
- Implement JWT-based authentication
- Add role-based access control
- Create login/logout endpoints
## Test Plan
- [ ] Test user login flow
- [ ] Verify token generation
- [ ] Test role permissions
- [ ] Validate session management
🤖 Generated with Claude Code
EOF
)"
PR Workflow
git branch --show-current
git push
gh pr create --title "Feature: User Authentication" --body "..."
gh pr view --web
PR Best Practices
- Clear title: Describe what the PR does
- Summary section: Bullet points of changes
- Test plan: Checklist of testing steps
- Link issues: Reference related issues
- Screenshots: For UI changes
- Claude attribution: Include Claude Code footer
Issue Management
Get Current User and Available Labels
ALWAYS get the current authenticated user dynamically instead of hardcoding usernames:
CURRENT_USER=$(gh api user --jq '.login')
echo "Current user: $CURRENT_USER"
gh label list --limit 100
Available Labels in rcom Repository
Common labels you can use (run gh label list --limit 100 to see all):
Issue Types:
🐛 Bug - Something isn't working
enhancement - Enhancement to existing feature
📍 Feature - Deliverable functionality (1-4 sprints)
💡 Idea - New ideas/suggestions
🙋 Service Request - Adhoc work requests
🏌️ User Story - Specific user workflow (one sprint)
⛳ Epic - High-level objective (multiple releases)
Priority:
🔴 High Priority - Urgent/important
performance - Performance optimization
security - Security related
technical-debt - Refactoring needs
Tools/Components:
tools:work-orders - Work Order tasks
tools:inventory - Parts Management tasks
tools:build-and-price - Warehouse Operations
tools:service-dashboard - Service Dashboard
tools:sales-dashboard - Sales Dashboard
tools:inventory-dashboard - Inventory Dashboard
tools:health-dashboard - Health Dashboard
Infrastructure:
infrastructure:database - Database Management
infrastructure:servers - Security tasks
infrastructure:devops - DevOps tasks
documentation - Documentation update
Create Issue with Dynamic User
CURRENT_USER=$(gh api user --jq '.login')
gh issue create \
--title "Fix login timeout issue" \
--assignee "$CURRENT_USER" \
--label "🐛 Bug,🔴 High Priority" \
--body "Bug description here"
ISSUE_URL=$(gh issue list --limit 1 --json url --jq '.[0].url')
gh project item-add 12 --owner ijack-technologies --url "$ISSUE_URL"
Create Issue WITHOUT Assignee or Labels
If you're unsure about the username or labels, it's better to create without them:
gh issue create \
--title "Issue Title" \
--body "Issue description here"
gh project item-add 12 --owner ijack-technologies --url <ISSUE_URL>
You can always add assignees and labels later through the GitHub UI.
Available Issue Templates
Located in .github/ISSUE_TEMPLATE/:
- 🐛 Bug Reports
- 📍 Features
- 💡 Ideas
- 🙋 Service Requests
- 🏌️ User Stories
- ⛳ Epics
Standard Workflow for ALL Issues
CURRENT_USER=$(gh api user --jq '.login')
gh issue create --title "Issue Title" --body "..."
gh project item-add 12 --owner ijack-technologies --url <ISSUE_URL>
Common Git Operations
Update from Main
git checkout main
git pull origin main
git checkout feature/my-feature
git merge main
git checkout feature/my-feature
git rebase main
Stash Changes
git stash save "WIP: description"
git stash list
git stash apply
git stash pop
Amend Commit
git add <files>
git commit --amend
git commit --amend --no-edit
Reset Changes
git reset HEAD <file>
git checkout -- <file>
git reset --hard HEAD
Branch Management
List Branches
git branch
git branch -r
git branch -a
Delete Branch
git branch -d feature/completed
git branch -D feature/abandoned
git push origin --delete feature/completed
Rename Branch
git branch -m new-name
git branch -m old-name new-name
Git Configuration
Check Configuration
git config --list
git config user.name
git config user.email
View Remotes
git remote -v
Merge AWS Secrets
Merge Secrets Script
cd /project
bash scripts/merge-aws-secrets.sh
Purpose:
- Fetches secrets from AWS Secrets Manager
- Merges with local environment files
- Updates configuration safely
Git History and Logs
View Commit History
git log --oneline -10
git log
git log --graph --oneline --all
View Specific File History
git log --follow <file>
Diff Comparisons
git diff
git diff --staged
git diff main..feature/branch
Troubleshooting
Merge Conflicts
git status
git add <resolved-files>
git commit
Undo Last Commit (Not Pushed)
git reset --soft HEAD~1
git reset --hard HEAD~1
Recover Lost Commits
git reflog
git checkout <commit-hash>
git branch recovery <commit-hash>
Best Practices
- Commit often: Small, focused commits
- Write clear messages: Describe why, not what
- Test before commit: Run tests and linters
- Review changes: Use
git diff before committing
- Pull before push: Keep branch updated
- Use feature branches: Never commit directly to main
- Add issues to Project #12: ALWAYS add all issues to IJACK Roadmap
- Delete merged branches: Clean up after PR merge
- Protect main branch: Use PRs for all changes
- Document PRs: Include test plans and summaries
Integration
This skill automatically activates when:
- Creating feature branches
- Committing code changes
- Creating pull requests
- Managing git workflows
- Adding issues to project board
- Branch management tasks
- Issue tracking
- Git troubleshooting