PlugWiki

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

  1. Write gates before real work
  2. Pick the smallest fitting mode
  3. Build the Depth Tree
  4. Work each leaf in four passes
  5. Author gates that can fail honestly
  6. Audit the final report
  7. Install the optional Claude Code Stop hook carefully
  8. Spend attention where it compounds

Key facts

License
MIT
Installs on skills.sh
9,835 (Nov 2, 2026)
Last repo commit
Sep 3, 2026

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 first

  • Shows ledger status without running any check

    The README calls --status the only mode that never executes checks.

    Runs code · gate-check.mjs --status

  • Runs 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 --approve

  • Re-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 --reverify

  • Picks 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 modes

  • Implement, review as an expert, hunt defects, polish

    Repeats until a full pass finds nothing.

    Write · Four-pass leaf work

  • Lints a ledger for gates that cannot fail

    Advisory and non-executing, per the README.

    Runs code · gate-lint.mjs

  • Re-measures every claim before reporting

    Reports met, unmet and abandoned gate counts.

    Read · Final report audit

  • Installs 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

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-onlygate-check.mjs --status parses the ledger without executing any check, per the README.
Sign-in and keysSKILL.md and the README do not mention any account or API key. Approval records are stored under ~/.unlazy/approved by default.
Scopes
  • Runs CHECK: shell commands with your user permissions and inherited environment, after your approval

  • Writes GATES.md, .unlazy/ and approval records under ~/.unlazy/approved

  • Optional hook writes a Claude settings file

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

leonxlnx/unlazyskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 3
  1. unlazy README · github.com
  2. unlazy SKILL.md · github.com
  3. unlazy SECURITY.md · github.com

Updated Nov 2, 2026.