managing-git-workflow
Enforces branch naming conventions and PR templates to keep HASH projects organized.
Install
mkdir -p .claude/skills/managing-git-workflow && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4208" && unzip -o skill.zip -d .claude/skills/managing-git-workflow && rm skill.zipInstalls to .claude/skills/managing-git-workflow
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 workflow for HASH including branch naming, PR creation, and PR reviews. Use when creating branches, making commits, opening pull requests, or reviewing PRs.Key capabilities
- →Enforce branch naming conventions
- →Apply PR templates
- →Link code changes to Linear tickets
- →Facilitate PR reviews with full diffs
How it works
It mandates specific naming patterns for branches and PRs, requires linking to Linear issues, and enforces a review process that uses full diffs and template-based documentation.
Inputs & outputs
When to use managing-git-workflow
- →Creating a new feature branch
- →Opening a pull request for a ticket
- →Linking code commits to Linear tasks
About this skill
Managing Git Workflow
Standardize git workflow for HASH development, ensuring traceability between code changes and Linear issues.
Branch Naming
Format: <shortname>/h-XXXX-description
shortname: Developer identifier (first initial, nickname, etc.)h-XXXX: Linear ticket number (lowercase 'h')description: Brief kebab-case description
Examples:
t/h-4892-support-baseurl-and-version-filteralice/h-1234-add-user-authenticationbob/h-5678-fix-database-connection
Why this matters:
- Links code changes to Linear issues
- Enables progress tracking on tickets
- Maintains clear development history
Pull Request Creation
PR Title Format
Format: H-XXXX: Description
- Use uppercase 'H' in PR titles (unlike branch names)
- Keep description clear and concise
Examples:
H-4922: Add branch naming instructionsH-1234: Implement user authentication systemH-5678: Fix database connection timeout
PR Template
Use the template at .github/pull_request_template.md. Key sections:
- Purpose - High-level explanation of what and why
- Related links - Linear issues, discussions, context
- What does this change? - Specific implementation details
- Pre-merge checklist:
- Publishable library changes (npm/Cargo)
- Documentation requirements
- Turbo Graph impact
- Known issues - Intentional omissions or limitations
- Next steps - Planned follow-ups
- Tests - Automated test coverage
- How to test - Manual testing instructions
- Demo - Screenshots or videos
Merge Queue
hashintel/hash merges through a GitHub merge queue. This changes both how a PR is enqueued and how that can be verified.
auto_merge is not evidence
Enqueuing a PR ("Merge when ready") does not populate the PR's auto_merge field — it stays null even on a completely successful enqueue. Never verify an enqueue by reading auto_merge: it reads null in the success case and the failure case alike, so it carries no information.
Verified 2026-07-31 on PR #9127: a human's successful enqueue at 14:07:40Z produced no auto_merge_enabled event and no auto_merge value — indistinguishable from a "failed" one.
Verifying an enqueue
Use either:
- a recent
added_to_merge_queueevent inGET /repos/hashintel/hash/issues/<NUMBER>/timeline - fresh
merge_groupworkflow runs on agh-readonly-queue/<base>/pr-<NUMBER>-<sha>ref
Re-queuing after an ejection
Re-queuing works from agent sessions via the GitHub MCP enable_pr_auto_merge tool. Its response is success-shaped with an empty method and enabled at — that empty shape is the expected signature of the repo routing to the queue instead of creating an autoMergeRequest, not a failure. (Verified on #9127: added_to_merge_queue by claude[bot] at 14:29:23Z, merge_group CI restarted 23s later, merged unattended at 14:48:59Z with merged_by: claude[bot], no human action.)
What does not work:
- GraphQL
enablePullRequestAutoMergeviacurl— proxy-blocked in agent sessions ("only the pinned set of PR-review operations is served") - REST
PUT /repos/hashintel/hash/pulls/<NUMBER>/merge— rejected for queue-protected branches, and it would bypass the queue rather than enter it
Diagnosing an ejection
An ejection can be another PR's fault, or nobody's:
- The
gh-readonly-queue/...ref names every PR in the batch. If only yours is named, it was not batched with another. - Before treating an ejection as a defect in your diff, compare the failing step against the same step on the identical head in the PR-level run. A step that took 17 seconds there and timed out in the queue is infrastructure, not code. Do not push a "fix" for a flake.
The queue lints differently from the PR
The PR runs cargo clippy --all-features; the merge queue runs cargo hack --optional-deps --feature-powerset clippy, dispatched on GITHUB_EVENT_NAME in the .justfile. turbo.json also puts GITHUB_EVENT_NAME in the lint:clippy task's env, so the queue cannot replay the PR's cache. The queue can therefore legitimately surface feature-conditional problems the PR lint never ran — including the package-level warning: unused dependency gate that lint.yml greps for and fails on.
Before reporting a failure
Do not tell a human you were unable to do something without verifying that claim first, and re-check current state before asking them to do something you already attempted.
PR Review Process
Step 1: Gather Information
Run these commands to get full context:
# View PR metadata, description, and comments
gh pr view <PR_NUMBER> --comments
# View ALL changes (do not truncate)
gh pr diff <PR_NUMBER>
# View inline diff comments
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/hashintel/hash/pulls/<PR_NUMBER>/comments
Important: Always view the FULL diff. Do not pipe into head or use --name-only.
Step 2: Check Linear Issues
Look for H-XXXX references in the PR title/description, then fetch the issue:
# If Linear MCP is configured:
mcp__linear__get_issue --issueId "H-XXXX"
# Or use Linear web UI
Use the Linear issue requirements as baseline for the review.
Step 3: Provide Feedback
- Be precise about issue locations (file:line)
- Include suggestions for improvement
- Reference relevant code standards
- Distinguish blocking issues from suggestions
Quick Reference
| Action | Format |
|---|---|
| Branch name | <shortname>/h-XXXX-description |
| PR title | H-XXXX: Description |
| View PR | gh pr view <NUMBER> --comments |
| View diff | gh pr diff <NUMBER> |
| View comments | gh api /repos/hashintel/hash/pulls/<NUMBER>/comments |
When not to use it
- →When using truncated diffs for PR reviews
Limitations
- →Requires Linear ticket ID for branch and PR naming
- →Must use full diffs for reviews
How it compares
It enforces strict traceability between code and Linear tickets rather than allowing arbitrary git workflows.
Compared to similar skills
managing-git-workflow side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| managing-git-workflow (this skill) | 1 | 7mo | Review | Beginner |
| resolve-conflicts | 81 | 8mo | Review | Intermediate |
| dependency-upgrade | 26 | 5mo | Review | Intermediate |
| git-commits | 21 | 4mo | No flags | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by hashintel
View all by hashintel →You might also like
resolve-conflicts
antinomyhq
Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.
dependency-upgrade
wshobson
Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.
git-commits
bonny
Create well-structured git commits in logical chunks following best practices
git-advanced-workflows
wshobson
Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.
github-multi-repo
ruvnet
Multi-repository coordination, synchronization, and architecture management with AI swarm orchestration
git-workflow-enforcer
CrazyDubya
Ensures commits follow conventional commits, branch naming conventions, and PR templates. Use when creating commits, branches, or PRs, or when user mentions git workflow.