github-operations
Provides best practices and operational guidance for Git branching, pull requests, and GitHub workflow automation.
Install
mkdir -p .claude/skills/github-operations-harmitx7 && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17701" && unzip -o skill.zip -d .claude/skills/github-operations-harmitx7 && rm skill.zipInstalls to .claude/skills/github-operations-harmitx7
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Git and GitHub workflow mastery. Branching strategies (Git Flow, trunk-based), commit message conventions, interactive rebase, merge conflict resolution, pull request best practices, GitHub Actions, branch protection rules, monorepo strategies, and git hooks. Use when working with Git, GitHub Actions, or any version control operations.Key capabilities
- →Implement Trunk-Based Development or Git Flow branching strategies
- →Apply Conventional Commits for commit messages
- →Follow Pull Request best practices
- →Perform interactive rebase to clean commit history
- →Resolve Git merge conflicts
- →Configure Git hooks using Husky and lint-staged
How it works
It provides guidelines, rules, and command examples for various Git and GitHub operations, including branching, commit messages, pull requests, and conflict resolution.
Inputs & outputs
When to use github-operations
- →Setting up branching strategies
- →Resolving merge conflicts
- →Configuring GitHub Actions
- →Following commit message conventions
About this skill
GitHub Operations — Git & CI/CD Workflow Mastery
Branching Strategy
Trunk-Based Development (Recommended)
main ────●────●────●────●────●────●────●──→
\ / \ / \ /
\/ \/ \/
feat/auth fix/typo feat/dashboard
Rules:
- main is always deployable
- Feature branches live < 2 days
- Merge via squash PR
- Deploy on every merge to main
- Use feature flags for incomplete features
Git Flow (For Released Software)
main ────●──────────────●──────────●──→
\ / \ /
develop ──●───●──●──●──●───●──●──●──●──→
\ / \ / \ /
\/ \ / \/
feature release hotfix
Use when:
- Versioned releases (mobile apps, libraries, SDKs)
- Multiple environments (staging, production)
- Long-lived feature development
Commit Messages
Conventional Commits
type(scope): description
Body (optional): WHY this change was made, not WHAT
Closes #123
Types:
feat: New feature
fix: Bug fix
docs: Documentation only
style: Formatting, whitespace (not CSS)
refactor: Code change that neither fixes nor adds
perf: Performance improvement
test: Adding or updating tests
chore: Build process, dependencies
ci: CI/CD changes
Examples:
✅ feat(auth): add OAuth2 Google login
✅ fix(cart): prevent negative quantities
✅ docs(api): add pagination examples to README
✅ refactor(users): extract validation to separate module
✅ perf(search): add database index for full-text queries
✅ chore(deps): upgrade React to v19
❌ BAD:
❌ "fixed stuff"
❌ "wip"
❌ "updates"
❌ "asdf"
❌ "final fix (for real this time)"
Breaking Changes
feat(api)!: rename /users endpoint to /accounts
BREAKING CHANGE: The /api/v1/users endpoint has been renamed to
/api/v1/accounts. All clients must update their API calls.
Migration:
- Replace all /api/v1/users → /api/v1/accounts
- Update API documentation
Pull Request Best Practices
## PR Template
### What
Brief description of what this PR does.
### Why
Why is this change needed? Link to issue/ticket.
### How
Technical approach. What was the design decision?
### Testing
- [ ] Unit tests added/updated
- [ ] Manual testing completed
- [ ] E2E tests passing
### Screenshots (if UI change)
| Before | After |
| -------------- | ------------- |
|  |  |
### Checklist
- [ ] Self-reviewed the diff
- [ ] No console.log/debugger statements
- [ ] Types are correct (no `any`)
- [ ] Error cases handled
- [ ] Documentation updated (if needed)
PR Rules:
1. < 400 lines changed (split larger PRs)
2. One logical change per PR
3. Write a clear title (not "fix things")
4. Link the issue/ticket
5. Self-review before requesting reviews
6. Respond to reviews within 24h
7. Squash merge to main (clean history)
Common Git Operations
Interactive Rebase
# Clean up messy commits before merge
git rebase -i HEAD~3
# In the editor:
pick abc1234 feat(auth): add login endpoint
squash def5678 fix typo in login
squash ghi9012 add missing test
# Result: One clean commit instead of three
# ❌ HALLUCINATION TRAP: Never rebase commits that are already pushed/shared
# Rebasing rewrites history → force push needed → breaks others' branches
# Only rebase LOCAL, unpushed commits
Merge Conflict Resolution
# Step 1: Update your branch
git fetch origin
git rebase origin/main
# Step 2: When conflicts appear
# Open conflicted files, look for:
<<<<<<< HEAD
your changes
=======
their changes
main
# Step 3: Resolve, stage, continue
git add resolved-file.ts
git rebase --continue
# If things go wrong:
git rebase --abort # undo everything, back to before rebase
Stash
# Save work without committing
git stash push -m "WIP: auth feature"
# List stashes
git stash list
# Apply and remove
git stash pop
# Apply without removing
git stash apply stash@{0}
Undo Mistakes
# Undo last commit (keep changes staged)
git reset --soft HEAD~1
# Undo last commit (keep changes unstaged)
git reset HEAD~1
# Undo last commit (discard changes) ⚠️ DESTRUCTIVE
git reset --hard HEAD~1
# Undo a specific commit (creates a new commit)
git revert abc1234
# Recover deleted branch
git reflog # find the commit
git checkout -b recovered abc1234
Branch Protection Rules
# Recommended rules for main branch:
Required:
- Require pull request before merging
- Require at least 1 approval
- Dismiss stale reviews on new push
- Require status checks to pass (CI)
- Require branches to be up to date
- Require signed commits (optional, enterprise)
Recommended:
- Restrict who can push (no direct push to main)
- Require linear history (squash merge)
- Auto-delete head branches after merge
Git Hooks (Husky + lint-staged)
// package.json
{
"scripts": {
"prepare": "husky"
},
"lint-staged": {
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
"*.{json,md,yml}": ["prettier --write"]
}
}
# .husky/pre-commit
npx lint-staged
# .husky/commit-msg
npx commitlint --edit $1
// commitlint.config.js
export default {
extends: ["@commitlint/config-conventional"],
};
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
- Over-engineering: Proposing complex abstractions or distributed systems when a simpler approach suffices.
- Hallucinated Libraries/Methods: Using non-existent methods or packages. Always
// VERIFYor checkpackage.json/requirements.txt. - Skipping Edge Cases: Writing the "happy path" and ignoring error handling, timeouts, or data validation.
- Context Amnesia: Forgetting the user's constraints and offering generic advice instead of tailored solutions.
- Silent Degradation: Catching and suppressing errors without logging or re-raising.
Slash command: /review or /tribunal-full
Active reviewers: logic-reviewer · security-auditor
❌ Forbidden AI Tropes
- Blind Assumptions: Never make an assumption without documenting it clearly with
// VERIFY: [reason]. - Silent Degradation: Catching and suppressing errors without logging or handling.
- Context Amnesia: Forgetting the user's constraints and offering generic advice instead of tailored solutions.
Review these questions before confirming output:
✅ Did I rely ONLY on real, verified tools and methods?
✅ Is this solution appropriately scoped to the user's constraints?
✅ Did I handle potential failure modes and edge cases?
✅ Have I avoided generic boilerplate that doesn't add value?
🛑 Verification-Before-Completion (VBC) Protocol
CRITICAL: You must follow a strict "evidence-based closeout" state machine.
- ❌ Forbidden: Declaring a task complete because the output "looks correct."
- ✅ Required: You are explicitly forbidden from finalizing any task without providing concrete evidence (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
Pre-Flight Checklist
- Have I reviewed the user's specific constraints and requests?
- Have I checked the environment for relevant existing implementations?
VBC Protocol (Verification-Before-Completion)
You MUST verify existing code signatures and variables before attempting to modify or call them. No hallucination is permitted.
🤖 LLM-Specific Traps
AI coding assistants often fall into specific bad habits when dealing with this domain. These are strictly forbidden:
- Over-engineering: Proposing complex abstractions or distributed systems when a simpler approach suffices.
- Hallucinated Libraries/Methods: Using non-existent methods or packages. Always
// VERIFYor checkpackage.json/requirements.txt. - Skipping Edge Cases: Writing the "happy path" and ignoring error handling, timeouts, or data validation.
- Context Amnesia: Forgetting the user's constraints and offering generic advice instead of tailored solutions.
- Silent Degradation: Catching and suppressing errors without logging or re-raising.
🏛️ Tribunal Integration (Anti-Hallucination)
Slash command: /review or /tribunal-full
Active reviewers: logic-reviewer · security-auditor
❌ Forbidden AI Tropes
- Blind Assumptions: Never make an assumption without documenting it clearly with
// VERIFY: [reason]. - Silent Degradation: Catching and suppressing errors without logging or handling.
- Context Amnesia: Forgetting the user's constraints and offering generic advice instead of tailored solutions.
✅ Pre-Flight Self-Audit
Review these questions before confirming output:
✅ Did I rely ONLY on real, verified tools and methods?
✅ Is this solution appropriately scoped to the user's constraints?
✅ Did I handle potential failure modes and edge cases?
✅ Have I avoided generic boilerplate that doesn't add value?
🛑 Verification-Before-Completion (VBC) Protocol
CRITICAL: You must follow a strict "evidence-based closeout" state machine.
- ❌ Forbidden: Declaring a task complete because the output "looks correct."
- ✅ Required: You are explicitly forbidden from finalizing any task without providing concrete evidence (terminal output, passing tests, compile success, or equivalent proof) that your output works as intended.
When not to use it
- →Rebasing commits that are already pushed or shared
Limitations
- →Never rebase commits that are already pushed/shared
How it compares
This skill offers structured guidance and specific examples for Git and GitHub workflows, standardizing practices beyond basic Git commands.
Compared to similar skills
github-operations side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| github-operations (this skill) | 0 | 1mo | Review | Intermediate |
| github-workflow-automation | 11 | 2mo | Review | Advanced |
| testing-workflow | 16 | 9mo | Review | Intermediate |
| github-actions-templates | 7 | 3mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by Harmitx7
View all by Harmitx7 →You might also like
github-workflow-automation
ruvnet
Advanced GitHub Actions workflow automation with AI swarm coordination, intelligent CI/CD pipelines, and comprehensive repository management
testing-workflow
amo-tech-ai
Comprehensive testing workflow for E2E, integration, and unit tests. Use when testing applications layer-by-layer, validating user journeys, or running test suites.
github-actions-templates
wshobson
Create production-ready GitHub Actions workflows for automated testing, building, and deploying applications. Use when setting up CI/CD with GitHub Actions, automating development workflows, or creating reusable workflow templates.
glab
NikiforovAll
Expert guidance for using the GitLab CLI (glab) to manage GitLab issues, merge requests, CI/CD pipelines, repositories, and other GitLab operations from the command line. Use this skill when the user needs to interact with GitLab resources or perform GitLab workflows.
create-pr
n8n-io
Creates GitHub pull requests with properly formatted titles that pass the check-pr-title CI validation. Use when creating PRs, submitting changes for review, or when the user says /pr or asks to create a pull request.
gh-fix-ci
openai
Use when a user asks to debug or fix failing GitHub PR checks that run in GitHub Actions; use `gh` to inspect checks and logs, summarize failure context, draft a fix plan, and implement only after explicit approval. Treat external providers (for example Buildkite) as out of scope and report only the details URL.