unlazy Skill for Claude Code: What It Does and How to Install It
Makes Claude write a checklist of runnable acceptance checks before a big task, then prove each one passes before it says it is done.
- Installs
- 9.8K
- on skills.sh
- Stars
- 4.2K
- on GitHub
- Updated
- Sep 2026
- last commit
Unlazy has Claude create a GATES.md file first, with one observable outcome per gate and a command that checks it. Claude works the task, runs the checks and reports only what the evidence supports. For big jobs it splits the work into a tree of smaller pieces, each with its own gates file.
It triggers on long or multi-part tasks, work that came back half-done, or phrases like /unlazy, "tree N" and "do not stop until it is done". It needs Node 16 or newer. The checks are shell commands that run with your user permissions, but a new command is shown to you and not run until you approve it. An optional Stop hook can block Claude from ending a session while gates are unmet.
Good for
- People handing Claude long, multi-part tasks that tend to come back half-done
- Teams splitting work across parallel agents with file ownership
- Reviewers who want evidence for a "done" report instead of a claim
Install unlazy
Claude Code
- 1
Copy this prompt.
Install the unlazy skill in Claude Code. Run this command: npx skills add Leonxlnx/unlazy Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js 16 or newer.
The README installs the whole repo as one skill: SKILL.md plus scripts/, references/ and templates/ in the same folder. It needs Node 16 or newer. The optional Stop hook is a separate step inside the skill and is not installed for you.
From the project README. Source.
What's in the skill
When it loads
Enforces completion discipline for substantial autonomous work by writing acceptance gates before execution, decomposing work with the Depth Tree, running approved checks, and re-verifying evidence before reporting. Use when an agent faces a long or multi-part task, work that has returned half-done, an exhaustive audit or build, parallel leaves or pipelines, or explicit triggers such as /unlazy, $unlazy, "tree N", "gates", and "do not stop until it is done".
Sections in SKILL.md
- Write gates before real work
- Pick the smallest fitting mode
- Build the Depth Tree
- Work each leaf in four passes
- Author gates that can fail honestly
- Audit the final report
- Install the optional Claude Code Stop hook carefully
- Spend attention where it compounds
Key facts
- Author
- leonxlnx (repo owner)
- License
- MIT
- Installs on skills.sh
- 9,835 (Nov 2, 2026)
- GitHub stars
- 4,241 (Nov 2, 2026)
- Last repo commit
- Sep 3, 2026
- Audits on skills.sh
- Gen Agent Trust Hub: pass, Socket: pass, Snyk: warn
What it includes
Creates GATES.md from templates/gates-leaf.md before real work
Each gate has one observable outcome plus a CHECK: command and an EXPECT: match.
Write ·
Write gates firstShows ledger status without running any check
The README calls --status the only mode that never executes checks.
Runs code ·
gate-check.mjs --statusRuns checks you have read and approved
Approvals are saved under ~/.unlazy/approved. CHECK: lines are shell code that runs with your permissions.
Runs code ·
gate-check.mjs --approveRe-runs every runnable gate, including ones marked done
Used by the parent to check work that a sub-agent reports as finished.
Runs code ·
gate-check.mjs --reverifyPicks the smallest fitting mode
Orchestrated mode builds a Depth Tree under .unlazy/<scope>/ with a PLAN and a gates file per leaf. Parallel mode adds leases and launch waves.
Write ·
Solo, orchestrated, parallel modesImplement, review as an expert, hunt defects, polish
Repeats until a full pass finds nothing.
Write ·
Four-pass leaf workLints a ledger for gates that cannot fail
Advisory and non-executing, per the README.
Runs code ·
gate-lint.mjsRe-measures every claim before reporting
Reports met, unmet and abandoned gate counts.
Read ·
Final report auditInstalls a Claude Code Stop hook with your consent
Blocks stopping while gates are unmet. Writes .claude/settings.local.json by default.
Runs code ·
install-hooks.mjs (optional)
From the official docs
Permissions
High risk
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
Gate checks are shell commands
SECURITY.md says CHECK: lines run through a shell with your permissions and can reach files, network, credentials and tools. Read every command and the scripts it calls before you approve, and use a disposable environment for untrusted repos. github.com
Approval can outlast a changed script
SECURITY.md says approval does not snapshot files a command calls. If a called script changes while the command text stays the same, the old approval still applies. Re-inspect after changes and run --reverify. github.com
The optional hook edits Claude settings
install-hooks.mjs writes .claude/settings.local.json by default, .claude/settings.json with --shared, or ~/.claude/settings.json with --global. It makes a .unlazy.bak copy of an existing file first. Install it only if you want that. github.com
Stop hook stores state in your project
The hook keeps progress state in .unlazy-hook-state.json. README says to keep that file and .unlazy/ untracked. github.com
Security advisories
No published security advisories as of Nov 2, 2026.
Technical details
| Turning on read-only | gate-check.mjs --status parses the ledger without executing any check, per the README. |
|---|---|
| Sign-in and keys | SKILL.md and the README do not mention any account or API key. Approval records are stored under ~/.unlazy/approved by default. |
| Scopes |
|
Questions
What does the unlazy skill do?
It makes Claude write acceptance gates before a large task, each with a command that checks the result. Claude then runs the checks and reports only what the evidence supports.
How do I install unlazy?
Use the install box at the top of this page. The README gives the skills CLI command and manual folders for Claude Code and Codex CLI. It needs Node 16 or newer.
Does it run commands on my machine?
Yes. Each gate's CHECK: line is shell code that runs with your user permissions and environment. SECURITY.md says a new command is printed and not run until you approve it. Read every command before you approve.
What is the Stop hook and do I have to install it?
The Stop hook is optional. SKILL.md says Claude should never install it without your consent. It blocks Claude from ending a session while gates are unmet, and releases after six blocks with no progress.
Does it work in the Claude app?
The README documents Claude Code and Codex CLI. The skill relies on Node scripts, so we do not offer a Claude app upload route.
When should I skip it?
For trivial edits and factual replies. SKILL.md says not to create gates for those, and to use the discipline when quiet incompleteness would cost more than the ledger.
Is it safe?
It runs Node scripts and your approved shell checks, and the optional hook edits a Claude settings file. Inspect each CHECK: command and any script it calls. SECURITY.md says the safety boundary is your review, not a sandbox, and advises a disposable environment for untrusted repos.
Information
updated Nov 2, 2026
- Repository
- leonxlnx/unlazy
Sources
Docs, issue trackers and discussions this page is built from.
Show all 3Hide
- unlazy README · github.com
- unlazy SKILL.md · github.com
- unlazy SECURITY.md · github.com