git-notes — Claude Code skill: commit metadata without rewriting
Attaches notes to commits without touching their SHA. Useful for marking reviews, test results or adding context after the fact.
npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a claude-codeWhat git-notes does
The skill covers how git notes hang metadata on a commit or any Git object while leaving the object itself alone. Notes live in their own ref and show up next to the commit message in git log and git show. The default ref is refs/notes/commits.
Inside you get a command reference plus worked patterns: mark a review, check status with git log --notes=reviews, push notes to a remote, merge two note refs with the union or cat_sort_uniq strategy. For separate concerns it advises namespaces via --ref, otherwise test notes and review notes pile into one place.
The catch: notes do not travel with a normal push. You send them yourself with git push origin refs/notes/reviews. And a rebase drops them unless you run git config notes.rewrite.rebase true first. If a note is missing from the log, the ref is probably unspecified — pass --notes=reviews or set notes.displayRef.
What it helps with
- mark a commit as reviewed without rewriting history
- attach a test run result to a commit
- add an explanation to an old commit after the fact
- keep review notes and test notes in separate refs
- preserve notes across rebase and cherry-pick
Example prompts for the agent
- Add a note to commit abc1234 in the reviews namespace: review passed, no comments
- Show notes from the reviews ref in git log for the last few commits
- Configure git so notes survive a rebase
How to install git-notes
1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a claude-code2Manually: put the files in place
~/.claude/skills/git-notes/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/git-notes/
1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a codex2Manually: put the files in place
.agents/skills/git-notes/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a cursor2Manually: put the files in place
.cursor/skills/git-notes/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install NeoLabHQ/context-engineering-kit git-notes2Manually: put the files in place
.github/skills/git-notes/SKILL.md1Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a gemini-cli2Platform CLI
gemini skills install https://github.com/NeoLabHQ/context-engineering-kit --path skills/git-notesManually: put the files in place
.devin/skills/git-notes/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about git-notes
How do I install git-notes in Claude?
Run npx skills add NeoLabHQ/context-engineering-kit --skill git-notes -a claude-code. The skill lands at ~/.claude/skills/git-notes/SKILL.md.
What does git-notes do?
It gives the agent a reference for git notes: adding, appending, copying and removing a note, splitting them into namespaces, and pushing them to a remote. Notes never change the SHA of the original commit.
Why don't my notes show up on the remote after a push?
Notes sit in a separate ref and are not pushed with branches. Send them explicitly: git push origin refs/notes/reviews.