
Claude Code 2.1.286: The verify Skill Before Commit
This episode explores Claude Code 2.1.286 and its new verify skill, which runs checks before commits so the agent catches its own mistakes. It also covers related polish like clearer permission prompts, safer transcript actions, background command handling, and a model fallback retry.
Show Notes
- Claude Code changelog - Claude Code Docs: https://code.claude.com/docs/en/changelog
Chapter 1
Claude Code Gets a Pre Commit Verify Skill
Lachlan Reed
This episode's brought to you by Jellypod AI, and we're diving straight in. Ever had an AI agent tell you "all tests pass" and then you find out it never actually ran them?
James Turner
Constantly. And that's the itch Claude Code 2.1.286 scratches. It dropped on September 30, 2026.
Lachlan Reed
Go on then.
James Turner
So, according to the changelog, when your project or user skills include one named verify, Claude is now told to run it right before committing. Except for docs only and tests only commits.
Lachlan Reed
Hang on. That's it? A skill with a particular name? That's the whole feature?
James Turner
That's the whole feature. And I think that's the clever part.
Lachlan Reed
Huh. Okay, but why's that better than me just writing "always test before you commit" in CLAUDE.md? I've done that. Mate, I've done that, um, a lot.
James Turner
Sure, and it works until it doesn't. Long session, lots of momentum, the context gets compacted, and that one line is, uh, it's just one sentence among thousands. I can't promise that's exactly what happens every time, but that's the failure mode people worry about. A named skill is a fixed hook the tool itself knows about, so it doesn't depend on the model remembering your note.
Lachlan Reed
Right. So what about a plain old git pre commit hook? That's been around forever.
James Turner
Hooks are great, but they're blind. The commit fails, and the agent sees an error after the fact. With verify, the way I read it, the check runs inside the loop. Claude sees the failure output in context, fixes the typo or the syntax error, runs it again, and only commits once it's clean.
Lachlan Reed
Ah, so it's less a bouncer at the door and more a mate checking your work before you leave the house.
James Turner
Yeah, that's better than my version.
Lachlan Reed
Okay, so what would setup look like? Walk me through it.
James Turner
You'd create a skill folder at .claude/skills/verify in your project. Or put it in ~/.claude/skills/verify if you want it across every project. Inside, you describe the pipeline. For a JavaScript project, that might be npm run typecheck, then lint, then npm test run in band so the tests don't fight each other. For Rust, cargo test quietly, then cargo clippy.
Lachlan Reed
And then you just, uh, test it. Something like "fix the auth route and commit."
James Turner
Exactly that kind of prompt. You should see Claude run verify before the commit. And if you ask it to touch only markdown, it should skip the run, because of that docs only exemption.
Lachlan Reed
Which makes sense. Nobody needs a type check for a typo in a README.
James Turner
Right.
Lachlan Reed
Now, I've got a worry. I once pushed a bad midnight update that nearly tanked a client's site, so I'm, I'm, I'm a bit twitchy about slow checks. What if verify takes forever?
James Turner
Then it's a problem. My take, and this is my opinion, not the changelog's: keep verify fast. If you've got an integration suite that takes ten minutes, don't put it in there. A turn can time out, and you'll be sitting there watching a spinner. Typecheck, lint, the quick tests. Leave the heavy stuff for CI.
Lachlan Reed
Fair. Fast and boring wins.
James Turner
Always. Oh, and the point release has a bunch of polish too. Permission prompts now show a count like "2 of 5" when several requests stack up.
Lachlan Reed
Oh, thank goodness. I hate not knowing how deep the pile is.
James Turner
There's also a safety one. If you're viewing a background agent's or teammate's transcript and type compact, clear, or rewind, it used to silently act on the main conversation. Now a dialog names the target and asks first.
Lachlan Reed
So you can't accidentally wipe the wrong session. That's, wow, that's a nasty one to have fixed.
James Turner
And in a subagent's view, control enter now moves its running command to the background, so your message gets read right away. Plus, if the API refuses the model your default resolves to, Claude Code retries once on the previous model of the same tier, instead of failing every single turn.
Lachlan Reed
So the big idea is just, name a skill verify, and the agent checks its own homework before it hands it in.
James Turner
That's it. One folder, one name, and the commit gets a gatekeeper that's actually in the room.