Git workflow for HASH including branch naming, PR creation, and PR reviews. Use when creating branches, making commits, opening pull requests, or reviewing PRs.
68
84%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Standardize git workflow for HASH development, ensuring traceability between code changes and Linear issues.
Format: <shortname>/h-XXXX-description
shortname: Developer identifier (first initial, nickname, etc.)h-XXXX: Linear ticket number (lowercase 'h')description: Brief kebab-case descriptionExamples:
t/h-4892-support-baseurl-and-version-filteralice/h-1234-add-user-authenticationbob/h-5678-fix-database-connectionWhy this matters:
Format: H-XXXX: Description
Examples:
H-4922: Add branch naming instructionsH-1234: Implement user authentication systemH-5678: Fix database connection timeoutUse the template at .github/pull_request_template.md. Key sections:
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 evidenceEnqueuing 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.
Use either:
added_to_merge_queue event in GET /repos/hashintel/hash/issues/<NUMBER>/timelinemerge_group workflow runs on a gh-readonly-queue/<base>/pr-<NUMBER>-<sha> refRe-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:
enablePullRequestAutoMerge via curl — proxy-blocked in agent sessions ("only the pinned set of PR-review operations is served")PUT /repos/hashintel/hash/pulls/<NUMBER>/merge — rejected for queue-protected branches, and it would bypass the queue rather than enter itAn ejection can be another PR's fault, or nobody's:
gh-readonly-queue/... ref names every PR in the batch. If only yours is named, it was not batched with another.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.
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.
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>/commentsImportant: Always view the FULL diff. Do not pipe into head or use --name-only.
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 UIUse the Linear issue requirements as baseline for the review.
| 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 |
0144f9c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.