The Problem
AI agents routinely declare work complete when they have only skimmed the task. They underthink, stop at the first plausible answer, and skip verification. This repo addresses that failure mode directly: it turns "finish the job" from a prompt into a runnable contract with executable checks and recorded evidence.
What This Does
unlazy is a skill that enforces completion discipline through a "Depth Tree" method. A task is split N layers deep, and each leaf gets the full time budget of the whole task, so effort compounds with depth. The core is SKILL.md, which defines the workflow: write an acceptance ledger first, execute reviewed checks, reverify returned work, and report only what evidence supports.
The executable part is a Node-based gate checker in scripts/. gate-check.mjs reads a GATES.md ledger, parses CHECK: and EXPECT: lines, runs the commands, and records evidence. The references/ directory holds the detailed method, orchestration, and token-economy specs. Templates in templates/ provide starting ledgers for leaf and node tasks.
How It Is Wired
Entry point: scripts/gate-check.mjs. The CLI flow is: parse GATES.md -> validate the ledger -> resolve the command oracle -> execute or print the resolved command -> capture output and exit status -> compare against EXPECT: -> write evidence back into the ledger.
What a run does: It reads and writes GATES.md in the working directory. It shells out to whatever command the CHECK: line specifies. It does not touch a database or network. The blast radius is the shell command itself—if you approve a malicious CHECK:, the checker will run it. The --status mode is the only always non-executing path.
File map:
scripts/gate-check.mjs- CLI entry, orchestration, evidence recordingscripts/lib/gates.mjs- parser and validator for the ledger formatscripts/lib/regex-worker.mjs- regex helpers for parsingscripts/install-hooks.mjs/scripts/stop-hook.mjs- optional git hookstemplates/gates-leaf.md/templates/gates-node.md- ledger templatesreferences/gates.md- the gate contract specificationtests/- self-check, hardening, and stress testsagents/openai.yaml- agent configuration for OpenAI-compatible clients
The wiring has not been mapped for the Depth Tree orchestration itself—SKILL.md describes it, but the actual tree-splitting logic is not in this repo as executable code. The scripts enforce gates, not the tree decomposition.
How To Use It
Setup: Install via the skills CLI or clone manually.
npx skills add Leonxlnx/unlazy
For manual install, clone into ~/.claude/skills/unlazy or ~/.codex/skills/unlazy. Requires Node 16+, no third-party runtime packages.
Configuration: No environment variables. Copy templates/gates-leaf.md to GATES.md and replace placeholders.
Running it:
node <path>/scripts/gate-check.mjs --status GATES.md
node <path>/scripts/gate-check.mjs --approve GATES.md
node <path>/scripts/gate-check.mjs --reverify GATES.md
Real-World Use
A payment module refactor with migration paths. The agent writes a GATES.md with gates for each migration script, each with a CHECK: that runs the script and an EXPECT: that asserts success. The agent runs --status to preview, --approve to execute, and --reverify before reporting completion. Evidence in the ledger shows exactly what ran, with what PATH, and what it printed.
Code Health & Issues
- Low - missing lockfile -
package.jsonexists with no lockfile, so dependency resolution is non-reproducible. No third-party runtime deps, but the risk is real if dependencies are added. - Low - no CI for the skill itself -
.github/workflows/test.ymlexists but the test suite (tests/run-tests.mjs) is not wired into a documented CI badge or release pipeline.
Deep static analysis has not run for this repo yet. The structure supports the above observations only.
The Bottom Line
The gate contract is a practical, honest mechanism for forcing verification, and the evidence recording is well-designed. The Depth Tree method is described but not implemented as code—it lives in the skill description. Use this if you run agents on substantial tasks and need auditable completion criteria; skip it if your work is small enough that a checklist suffices.