Skip to content

Purr Request: unlazy — Claude Code Did Better Without It

Read the Portuguese translation →

Author: The Gray Cat · Watch on YouTube

Video authored by the channel shown, not by IANIA; all rights belong to the creator. Transcript and summary generated automatically; the original-language content is preserved.

Original language: English

Original video: Purr Request: unlazy — Claude Code Did Better Without It · Channel: The Gray Cat · 09:14 · Watch on YouTube

Topics: AI agents, AI evaluation and benchmarks, Claude Code, AI developer tools

The host tests the unlazy skill on a small UI change in two Claude Code worktrees, comparing a run with unlazy to one without it while both use Ponytail Ultra. The vanilla run is faster, uses fewer tokens, and gets more of the requested behavior working; unlazy’s checklist checks can pass even when a keyboard action is broken. The host notes that unlazy made incomplete verification visible, but did not stop the agent from finishing with an unfinished UI check. They caution that tools built for earlier models may not help with newer ones, while acknowledging that unlazy’s optional Stop hook and Depth Tree were not tested and that larger tasks could produce different results.

  • The test compares identical UI-change prompts in two worktrees, one with unlazy installed and one without.
  • The requested changes included making files deletable and improving the app’s homepage layout.
  • The run without unlazy finished in about two minutes and delivered visible improvements.
  • The unlazy run took about 30 seconds longer and used more tokens; the host reports nearly a dollar in API-equivalent cost versus about 80 cents without it.
  • Both builds passed, but the unlazy checklist’s behavior check searched for words in the source rather than verifying the UI action.
  • A separate test found that selecting a script and pressing delete did not work in the unlazy implementation.
  • Unlazy recorded three passing gates and one unfinished UI gate, but did not prevent the run from stopping incomplete.
  • The host had not installed unlazy’s optional Stop hook or tried Depth Tree, and notes that this was only a small UI task.
  • The host advises checking whether tools help with current models instead of installing them automatically.
Start Chapter Summary
00:00 Introducing the unlazy test The host explains unlazy’s intended role and sets up a comparison against a vanilla Claude Code run.
01:02 Understanding and installing unlazy The host asks for a plain-language explanation, then installs the skill in one of two worktrees.
02:34 Giving both runs the same UI task The host asks Claude Code to improve the homepage and make added files deletable, using the same prompt in both worktrees.
04:06 Comparing the results The host reviews the implementations and an Astra assessment, which finds the no-unlazy run performed better with lower time and token use.
07:10 What the test says about unlazy The host explains how unlazy’s checks missed a broken keyboard action and reflects on the untested hook, larger tasks, and whether older tools suit newer models.

I tried unlazy on a small UI change and Claude Code did better without it. — 00:00

It stops AI coding agent from saying done before the work is actually done. — 01:32

unlazy produced three passing gates and one unfinished UI gate. — 06:40

So, unlazy wrote the checklist before touching the code, but then Claude approved it without asking me. — 08:11

I’m getting a bit reluctant to install these things without checking what they actually do for me. — 09:14

unlazy, Claude Code, Codex, Opus 5.5, Ponytail Ultra, Astra, RTK, Depth Tree

00:00 I tried unlazy on a small UI change and Claude Code did better without it. It used fewer tokens and built more of what I asked for. unlazy is a skill for Claude Code and Codex with about three and half thousand stars on GitHub. It’s supposed to stop the agent from leaving work unfinished. Before coding, the agent writes a checklist in GATES.md with a way to check each item. Then it’s supposed to keep working until those checks pass. I’m trying a new format called Purr Request,

00:30 where I grab a GitHub repo and give it a go. For this one, I followed the quick start and added slash unlazy to my request. I hadn’t read through all the docs. I gave Opus 5.5 the same prompt in two worktrees with unlazy installed in one. Both had Ponytail Ultra running too, so we’re testing what unlazy adds to that setup. I’ll show you the bug it missed and why its check passed anyway.

01:02 Okay, so this time we’re gonna be trying the unlazy skill. I think I’ve seen this skill for a while on some YouTube channels, but I haven’t really chance to try it. I’ve been trying to comprehend this documentation, but apparently it has been written with Opus 5, and Opus 5 isn’t the best model to write documentation, it’s like full of gates. Can you explain me what this skill does in plain human language?

01:32 Okay, still a wall of text, but maybe just a little bit smaller wall of text. unlazy is a set of instructions plus a small checker script. It stops AI coding agent from saying done before the work is actually done. Yeah, sounds the exactly right thing to have. I mean, it probably doesn’t really align with the existing SDD workflow, but if you just prompt stuff, it seems to be always better to run this prompt with unlazy.

02:03 But again, we need to find out if that’s really true and how much time it takes compared to the vanilla run. So, I guess what I’m gonna do now is to install this thing, and in Orca, I actually created two new worktrees. I’m gonna paste this command and install this thingy. Alright, the default seems to be fine, so I guess I can just run

02:34 Claude Code again and have unlazy here. Okay, cool. So, what I actually want to try to do if I run The Gray Cut here, I don’t really like the way this UI looks like. I’d like to improve the homepage in this app. I don’t like that I cannot delete files once I add them. The only way to delete a file is actually to restart the app and drag them over.

03:05 I want them to be deletable. When I select them and hit delete, they should just disappear. And maybe there should be like an X button on the right. And overall, I think the layout is not very friendly and welcoming, so if you can come up with something that makes it more usable, that would be much, much better. So, yeah. This prompt. And in this tab, I want to give it exactly the same prompt. Oh, yeah.

03:36 By the way, I’m using Ponytail here, so it shouldn’t affect much, I think. Just mostly code styles and verbosity, but I’m not gonna remove it, right? I guess I’m gonna just babysit it here, answer any questions to unblock its progress. I’m not gonna use any plan mode or any other framework, I’ll just see how it goes. Checking what’s going on here, it seems the unlazy thing, the unlazy worktree,

04:06 it went straight to writing the code. Same here. But, oh, we’ve got something. I did it. It builds. The without. It’s done in two minutes. So, what’s new on the home screen? Deleting files work now. Click a file, then press delete. It goes away. Yeah, that’s actually just a little better. Yeah, that’s definitely better.

04:36 I pretty much like it, and it took two minutes without planning. It’s Opus 5.5, by the way. I haven’t really worked with this model, but, like, two minutes, and it made such visible improvements. Delete. This works. And this tiny thing works. Yeah, that’s exactly what I wanted it to build. And this thing also is done. I made the home screen change. The build passes. I did not click

05:06 through myself. Oh, this is actually a little bit worse. I like the run button here. I guess the idea is basically the same. The icon is orange here, and the icon alignment is a little bit broken. Other than that, it seems to work. Like, this works, this works, this deletes. I guess now I need to run a dedicated Astra instance and check the implementation quality and the output.

05:37 So, I have Astra high here. Go ahead. So, yeah. Let me take a break here. Okay, cool. So, Astra was clicking around and eventually came up with the verdict. And according to this verdict, surprisingly, unlazy-without wins this trial. And looking at the table, with unlazy it took 30 seconds more to execute. A little bit more tokens. 19%.

06:09 These are nerdy stuff. Cache reads. More cache reads. More everything. Yeah, obviously, it was running more because it has more of everything, including the API equivalent cost. We almost spent a dollar with unlazy, but only 80 cents without unlazy. Yeah, looking at this, I think it actually complained about something. So, both: build passes, selecting take and pressing delete works.

06:40 Without: selecting a script and pressing delete also works. The take X removal works. Oh, I didn’t actually think about testing the script removal. Maybe I need to use this Astra for testing stuff in the future. It finds some unexpected things. unlazy produced three passing gates and one unfinished UI gate. Oh, we are producing gates again. Astra, shame on you.

07:10 It made incomplete verification visible, but did not prevent the run from stopping incomplete. Both implementations also leave saved project references unchanged when removing files after a failed or cancelled run. So, reopening restores those files. Interesting. It’s not about Ponytail, it’s about the new model and constantly evolving harness. And these tools seem to be built for previous versions of Claude Code,

07:40 such as Opus 5, my favorite, and below. And now this new thing came out and it doesn’t work anymore. So, you always have to keep in mind that there’s always the rule that less is more. So, maybe now less tools is actually more. It depends, it definitely depends. But there’s a big chance that the old tools don’t work within new models. So, don’t hurry and install everything. Just like RTK, right?

08:11 Now, the vanilla runs turned out to be better than RTK. Here it’s the same thing. So, yeah, pretty much surprising, but it’s getting consistent, so to speak. So, unlazy wrote the checklist before touching the code, but then Claude approved it without asking me. I was supposed to approve those checks. And the check for the requested behavior just searched for words in the source. It passed, but Astra found that selecting the script and pressing delete didn’t work. The UI

08:42 check was still unfinished, and Claude did say it hadn’t tested the app. I hadn’t installed the optional Stop hook, which is supposed to stop it from finishing with checks still open. I also didn’t try Depth Tree, which splits bigger tasks into smaller pieces. This was a small UI change. Maybe I’d get more out of it on a bigger task and with the hook installed. I don’t know yet. But again, in this run, adding unlazy to Ponytail cost more and left that keyboard action broken.

09:14 Last video, RTK used also more tokens than Claude Code without it. I’m getting a bit reluctant to install these things without checking what they actually do for me. I’ll try another trending GitHub repo for the next Purr Request. If you’re building something you’d like me to try, drop a link in the comments or in our Discord. The Discord link is in the description, and if this was useful, hit like. My cat doesn’t need unlazy, by the way. She’s been meowing at me the whole time, and I’d quite like her to go back to sleep.