Contextual Commit Messages
yamadashy/repomix
Writes Conventional Commits whose bodies carry action lines recording the intent, decisions and constraints behind a change, not only what changed.
Review the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent.
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tbhb/vale-ai-tells review-squash-message --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-squash-message .claude/skills/review-squash-message && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "review-squash-message" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-message into .claude/skills/review-squash-message/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-squash-message", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-messageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tbhb/vale-ai-tells review-squash-message --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/review-squash-message .agents/skills/review-squash-message && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "review-squash-message" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-message into .agents/skills/review-squash-message/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-squash-message", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tbhb/vale-ai-tells review-squash-message --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/review-squash-message .cursor/skills/review-squash-message && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "review-squash-message" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-message into .cursor/skills/review-squash-message/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-squash-message", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tbhb/vale-ai-tells.git --path .claude/skills/review-squash-message--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tbhb/vale-ai-tells review-squash-message --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/review-squash-message .gemini/skills/review-squash-message && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "review-squash-message" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-message into .gemini/skills/review-squash-message/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-squash-message", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tbhb/vale-ai-tells review-squash-messageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/review-squash-message .github/skills/review-squash-message && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "review-squash-message" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-message into .github/skills/review-squash-message/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-squash-message", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tbhb/vale-ai-tells review-squash-message --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/review-squash-message .opencode/skills/review-squash-message && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "review-squash-message" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/review-squash-message into .opencode/skills/review-squash-message/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-squash-message", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
review-squash-messageReview the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent.
Review Squash Message is an agent skill from tbhb/vale-ai-tells. Review the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent. Its distinct question is coverage. One message has to stand for a whole stack of commits, and this review asks what the collapse lost. Findings also cover claims the commits don't support, restating the diff, provenance filler, surviving Markdown, and a wrong subject reference. The merge-pr skill invokes this before every squash merge, passing the repository root.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/context.sh` and `tokens.json`).
It sits in Development, covering Commit messages. The repository describes itself as: In today's rapidly evolving landscape, vale-ai-tells is a comprehensive, cutting-edge Vale style package that empowers writers to seamlessly delve into the rich tapestry of AI…. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 4c7abc9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
bashghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Review Squash Message loads about 2.1k tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 1,260 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from tbhb/vale-ai-tells at commit 4c7abc9, republished under its Apache-2.0 licence (© tbhb). 1,260 words, ~2,105 tokens.
.claude/skills/review-squash-message/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Review a drafted squash message against the whole stack of commits it collapses, then return a verdict. You're the independent check. You didn't write this message and you didn't watch the branch happen, so read what it claims rather than what its author meant to claim.
Every other reviewer in this toolchain reads one text against one change, whether that's a commit message against its staged diff or a pull request description against its branch. This message has a harder job. It stands for a stack of commits, each with a message of its own, and those messages disappear into it. Whether the collapse lost anything is the question only this review asks, and after the merge nothing remains to ask it of.
$ARGUMENTS carries the repository under review. An empty value means the current working directory.
!bash ${CLAUDE_SKILL_DIR}/scripts/context.sh $ARGUMENTS
The preceding context carries everything the review needs. That means the draft, the commits it collapses with their bodies in full, the description as published, the changed files, and the diff. You are already at the repository root, so nothing below wants a cd.
Read the commit bodies rather than skimming the subjects.
A subject names what a commit did. The reason belongs in the body, and a reason is the first thing a squash loses.
Where the preceding context reports a missing or empty draft, a draft with an empty body, or a subject that doesn't name a pull request, that's itself a finding. Report it and stop.
Reach for a tool call only where the preceding material ran out, and say what you went looking for. A large branch truncates its diff at a stated line count, and a claim about the part beyond the cut needs gh pr diff <number> to settle.
Gates run on either side of you. Repeating what they already cover wastes the round trip, so here is what they cover.
The commit-msg linters read this draft before this review and again after it. Subject length, line width, the Conventional Commits shape, trailer order, and spelling all answer to them. Leave every one of those alone.
The published description already passed its own review against this branch. Judge the message. Where the two disagree, the message is the text that merges, so treat the disagreement as a fact about the message rather than as a reason to reopen the description.
Work these four groups. Every finding names the exact offending text and the fix.
This group is why the review exists. Take the commits one at a time and ask whether someone reading the message alone would know that work is in here.
The body is new prose. No earlier review cleared it, so you are the first reader every claim in it gets.
fixes the flake, no longer leaks, claims about what CI does.The body answers why the branch exists. The diff already says what changed.
Adds a helper to foo.go and calls it from bar.go describes a diff the reader can already read.Assisted-by trailer and nowhere else.robust, comprehensive, significantly, seamlessly, powerful, elegantly, and their neighbors.(#<number>) reference, or carrying the wrong number. The merge script reads that reference back, and a wrong one merges this message onto another pull request.Closes reference to something this branch doesn't close, and a missing one the description asked for. A cross-repository reference reduced to a bare number closes an unrelated local issue on merge.Signed-off-by, or an Assisted-by sitting after it rather than before.A gap you found once is rarely the only one. Take each finding you have and read the whole message again for the same kind of gap. A commit whose reason went missing, a claim the branch has outgrown, a count standing where a name belongs, a paragraph restating the diff. Where the message holds one, look for the second, and where instances share a fix, report them as one finding naming each.
A gap you leave for the next pass costs a drafting round and a review round to say what this verdict could have said. None of that invites padding. Everything in the verdict still has to be something you can point at in the commits.
Your verdict is what lets the merge proceed. A hook on the caller's side reads the line below and signs the draft you cleared. Keep the wording exact, because a verdict that hook can't parse leaves the merge blocked. Write nothing to disk yourself, and don't edit the draft to make it pass. Reporting the finding is the job.
Return the verdict block and stop there. Skip the preamble, the commit listing, and the praise.
VERDICT: PASSor
VERDICT: CHANGES REQUIRED
1. [coverage] <what the message fails to account for>
text: <the commit or the reason that went missing>
fix: <the specific correction>
2. [form] <what is wrong>
text: <the exact offending text>
fix: <the specific correction>Tag each finding coverage, truthfulness, substance, or form.
Return PASS when the message holds up. A message that really does stand for its whole stack counts as a real outcome, and inventing a finding to look thorough wastes the round trip. Report only what you can point at in the draft or in the commits behind it.
© tbhb, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in .claude/skills/review-squash-message of tbhb/vale-ai-tells.
Open the folder on GitHubat commit 4c7abc9
Review Squash Message next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Review Squash Message this skilltbhb/vale-ai-tells | 117 | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Contextual Commit Messagesyamadashy/repomix | 29k | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| React Router Release Notes Prepremix-run/react-router | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Caveman Commitvishiri/fantasia-archive | 409 | 13 repos | ~642 | Automated safety check: Pass | GPL-3.0 | |
| PR Finalize Reviewmicrosoft/garnet | 12k | — | ~3.1k | Automated safety check: Pass | MIT | |
| ToolJet Multi-Repo CommitToolJet/ToolJet | 41k | — | ~1.3k | Automated safety check: Pass | AGPL-3.0 |
yamadashy/repomix
Writes Conventional Commits whose bodies carry action lines recording the intent, decisions and constraints behind a change, not only what changed.
remix-run/react-router
Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.
vishiri/fantasia-archive
Ultra-compressed commit message generator. An agent skill from vishiri/fantasia-archive.
microsoft/garnet
Checks that a pull request's title and description match its implementation and reviews the code for Garnet best practices, reporting findings without posting them.
ToolJet/ToolJet
Commits changes across ToolJet's root repo and its server/ee and frontend/ee submodules, writing messages from the diffs and updating submodule pointers in order.
addyosmani/agent-skills
Sets git habits for every change: short-lived branches, atomic commits with descriptive messages, clean pull requests, plus versioning, tagging and changelogs for releases.
tbhb/vale-ai-tells
Query a Claude Code transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Query a Codex transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Diagnose failing pull request checks, reproduce them locally, make focused fixes, commit them through codex-commit, and refresh the published description when needed.
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
tbhb/vale-ai-tells
Open or update a pull request for the current branch with an independently drafted and reviewed PRAGENTDESC.md.
tbhb/vale-ai-tells
Replay the current branch onto its base and establish that the result is sound.
Categories
Review the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent. Review Squash Message is an agent skill from tbhb/vale-ai-tells. Review the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent.
Review Squash Message fits situations like: tasks that involve Commit messages.
Run `npx skills add tbhb/vale-ai-tells --skill review-squash-message -a claude-code`. Or copy the skill folder (.claude/skills/review-squash-message in tbhb/vale-ai-tells) into .claude/skills/review-squash-message in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tbhb/vale-ai-tells --skill review-squash-message -a codex`. Or copy the skill folder (.claude/skills/review-squash-message in tbhb/vale-ai-tells) into .agents/skills/review-squash-message in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tbhb/vale-ai-tells --skill review-squash-message -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-squash-message, .gemini/skills/review-squash-message, .github/skills/review-squash-message and .opencode/skills/review-squash-message in your project.
Going by SKILL.md and its folder, Review Squash Message needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and gh). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Review Squash Message is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Review Squash Message: Contextual Commit Messages (yamadashy/repomix, 29k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars), Caveman Commit (vishiri/fantasia-archive, 409 stars) and PR Finalize Review (microsoft/garnet, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tbhb (a GitHub user) maintains it in tbhb/vale-ai-tells, which has 117 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.
Source: tbhb/vale-ai-tells on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.