Agent skill

Review Squash Message

by tbhb in tbhb/vale-ai-tells

Review the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent.

Apache-2.0Auto-check passedDevelopment

Install Review Squash Message

skills CLI
$ npx skills add tbhb/vale-ai-tells --skill review-squash-message -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tbhb/vale-ai-tells review-squash-message --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
review-squash-message
GitHub stars
117
Token cost
~2.1k tokens
SKILL.md length
1,260 words
Files
3 (incl. scripts)
Skills in repo
27
Repo updated
First seen
Licence
Apache-2.0

At a glance

Review the squash commit message drafted in SQUASHAGENTMSG against every commit it collapses, as an independent agent.

  • Tasks that involve Commit messages
  • SKILL.md covers The repository, Context, What's already settled and What to check, plus 2 more sections
  • Runs Shell scripts from its folder; calls bash and gh

What it does

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.

When your agent uses it

  • Tasks that involve Commit messages

Example prompts

  • “/review-squash-message”

Requirements

  • A Bash shell

What it can do on your machine

Read from SKILL.md and the folder at commit 4c7abc9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~127
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check passed

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.

SKILL.md

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.

Download SKILL.mdSave it as .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.
name
review-squash-message
description
Review the squash commit message drafted in SQUASH_AGENTMSG 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.
license
Apache-2.0
context
fork
agent
Explore
background
false

Review a squash commit message

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.

The repository

$ARGUMENTS carries the repository under review. An empty value means the current working directory.

Context

!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.

What's already settled

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.

What to check

Work these four groups. Every finding names the exact offending text and the fix.

Coverage

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.

  • Flag a commit whose reason the message drops. Not its diff, its reason, meaning the constraint, or the problem its body named. That sentence goes with the commit at the merge, and nothing else records it.
  • Flag a message that describes one commit as though it were the branch. The last commit and the largest commit are the usual substitutes for the rest.
  • Flag a message that covers the early commits and stops. A branch that grew after someone published its description is the common case, and the message inherits the gap.
  • Flag two commits giving different reasons where the message keeps only one. Either it covers both, or it says which one subsumes the other.
  • Not every commit owes the message a sentence. A correction folded back in, or a formatting pass, landed as part of the work rather than as work of its own, and its absence is correct.
  • Flag the reverse failure as well. A body that walks the stack commit by commit turns eight commits into eight paragraphs, where the branch deserves one account of what it did.
Truthfulness

The body is new prose. No earlier review cleared it, so you are the first reader every claim in it gets.

  • Flag any claim the commits and the diff don't support. A message naming a file, a flag, a behavior, or a guarantee absent from the branch is wrong, whatever else it gets right.
  • Flag counts of any kind: files, lines, tests, commits, percentages. A count goes stale as soon as other work merges, and it pads a message rather than informing it.
  • Flag results nobody verified: benchmark figures, fixes the flake, no longer leaks, claims about what CI does.
  • Flag a claim the message inherited from the description that the branch has since outgrown. Commits pushed after publication are where this comes from.
Show full SKILL.md (499 more words)Show less
Substance

The body answers why the branch exists. The diff already says what changed.

  • Flag body text that restates the diff. Adds a helper to foo.go and calls it from bar.go describes a diff the reader can already read.
  • Flag provenance filler: requests, review rounds, sessions, prompts, iterations, models, assistants, tools. Attribution belongs in the Assisted-by trailer and nowhere else.
  • Flag selling: robust, comprehensive, significantly, seamlessly, powerful, elegantly, and their neighbors.
  • Flag a body that repeats the subject in longer words.
  • Verification notes belonged to the pull request, and their absence here is correct rather than a finding.
  • Risk belongs here only where it names a rollback the reader wouldn't guess. Flag a risk sentence that says the change could be wrong and stops.
Form
  • Plain text throughout, with no fenced code blocks, headings, markdown emphasis, links, or tables. Backticks around a literal identifier are fine.
  • Flag a body reading as a run of section titles from the description rather than as prose.
  • Flag a subject missing its (#<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.
  • Flag a 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.
  • Flag a missing Signed-off-by, or an Assisted-by sitting after it rather than before.

Sweep before you write the verdict

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.

What to return

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.

text
VERDICT: PASS

or

text
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

Files

SKILL.md and 2 other files (scripts) in .claude/skills/review-squash-message of tbhb/vale-ai-tells.

  • SKILL.md
  • scripts/context.sh
  • tokens.json

Open the folder on GitHubat commit 4c7abc9

Compare with similar skills

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.

Review Squash Message compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Squash Message this skilltbhb/vale-ai-tells117—~2.1kAutomated safety check: PassApache-2.0
Contextual Commit Messagesyamadashy/repomix29k1 repos~2.7kAutomated safety check: PassMIT
React Router Release Notes Prepremix-run/react-router57k—~1.1kAutomated safety check: PassMIT
Caveman Commitvishiri/fantasia-archive40913 repos~642Automated safety check: PassGPL-3.0
PR Finalize Reviewmicrosoft/garnet12k—~3.1kAutomated safety check: PassMIT
ToolJet Multi-Repo CommitToolJet/ToolJet41k—~1.3kAutomated safety check: PassAGPL-3.0

Similar skills

  • Writes Conventional Commits whose bodies carry action lines recording the intent, decisions and constraints behind a change, not only what changed.

    29k GitHub starsUsed in 1 repo~2.7k tokens
    DevelopmentAuto-check passed
  • React Router Release Notes Prep

    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.

    57k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Caveman Commit

    vishiri/fantasia-archive

    Ultra-compressed commit message generator. An agent skill from vishiri/fantasia-archive.

    409 GitHub starsUsed in 13 repos~642 tokens
    DevelopmentAuto-check passed
  • PR Finalize Review

    microsoft/garnet

    Official

    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.

    12k GitHub stars~3.1k tokensUpdated today
    DevelopmentAuto-check passed
  • 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.

    41k GitHub stars~1.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Git Workflow and Versioning

    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.

    104k GitHub starsUsed in 2 repos~3.5k tokens
    DevelopmentAuto-check: notes

More from tbhb/vale-ai-tells

All 27 skills in this repo
  • Analyze Session

    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.

    117 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Codex Analyze Session

    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.

    117 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Codex Fix PR

    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.

    117 GitHub stars~575 tokensUpdated today
    Auto-check passed
  • Codex Merge PR

    tbhb/vale-ai-tells

    Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.

    117 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Codex PR

    tbhb/vale-ai-tells

    Open or update a pull request for the current branch with an independently drafted and reviewed PRAGENTDESC.md.

    117 GitHub stars~846 tokensUpdated today
    Auto-check passed
  • Codex Rebase

    tbhb/vale-ai-tells

    Replay the current branch onto its base and establish that the result is sound.

    117 GitHub stars~2k tokensUpdated today
    Auto-check passed

Categories

Questions about Review Squash Message

What does Review Squash Message do?

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.

When should I use Review Squash Message?

Review Squash Message fits situations like: tasks that involve Commit messages.

How do I install Review Squash Message in Claude Code?

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.

How do I install Review Squash Message in Codex?

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.

Can I use Review Squash Message in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Review Squash Message need to run?

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.

Does Review Squash Message access the network?

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.

Is Review Squash Message safe to install?

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.

What licence does Review Squash Message use?

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.

How many tokens does Review Squash Message use?

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.

What are the alternatives to Review Squash Message?

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.

Who maintains Review Squash Message?

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.