unlazy
Anti-laziness skill for AI agents. Core: the Depth Tree method, which splits a task N layers deep and gives every leaf the full time budget of the whole task, so effort multiplies with depth. Grounded in 2025-2026 research on model laziness, underthinking and premature completion.
unlazy
Completion discipline for substantial AI-agent work, backed by runnable gates.
Write the acceptance ledger first. Execute reviewed checks. Reverify returned work. Report only what the evidence supports.
Quick start | Gate contract | Orchestration | Security | Research
Version status
The current source targets 2.1.0. It is not identified here as a tagged GitHub release. Pin an exact commit when you need an immutable installation. See CHANGELOG.md for the unreleased change set.
Install
Use the skills CLI for supported agents:
npx skills add Leonxlnx/unlazy
Add -g for a user-level install or --all for every detected agent.
Manual locations:
Claude Code: ~/.claude/skills/unlazy
Codex CLI: ~/.codex/skills/unlazy
Clone the repository into the relevant directory. Invoke it as /unlazy where slash skills are supported, $unlazy in Codex, or by a natural-language trigger from the skill description.
The core is SKILL.md. The checker and optional hook require Node 16 or newer and use no third-party runtime packages.
Quick start
Ask for substantial work with an explicit trigger:
/unlazy tree 5 refactor the payment module and verify every migration path
For a solo task, copy templates/gates-leaf.md to GATES.md, replace every placeholder, and inspect it without executing commands:
node /scripts/gate-check.mjs --status GATES.md
--status is the only mode that is always non-executing. On a new oracle with no exact approval record, a normal run prints its resolved command, expectation, working directory, shell, and PATH without executing it:
node /scripts/gate-check.mjs GATES.md
Do not treat normal mode as a permanent dry run: once the exact oracle is approved, normal mode can execute it.
CHECK: lines are shell code. After reading every command and called script, approve and run the ledger:
node /scripts/gate-check.mjs --approve GATES.md
Re-run all runnable gates, including gates already marked complete:
node /scripts/gate-check.mjs --reverify GATES.md
Use --help for the complete current CLI.
The gate contract
# Gates: pricing behavior
- [ ] G1: pricing fixtures render the expected tiers
CHECK: node scripts/verify-pricing.mjs
EXPECT: pricing verification passed
EVIDENCE: pending
- [ ] G2: checkout integration succeeds from its package
CHECK: node scripts/verify-checkout.mjs
EXPECT: checkout verification passed
CWD: packages/checkout
EVIDENCE: pending
A runnable gate passes only when its process exits 0 and EXPECT: matches combined output. Evidence records the resolved shell, resolved working directory, exit status, a short PATH fingerprint, the match result, and a SHA-256/byte-count fingerprint of successful output. Raw successful output is neither echoed nor persisted. The pre-execution transcript shows the resolved PATH, capped for display. Old evidence is not re-execution; parent verification uses --reverify.
The parser rejects zero-gate ledgers, duplicate ids, incomplete runnable gates, invalid expectations, and abandonment with a missing reason or unknown gate id. It ignores fenced examples, preserves CRLF or LF when updating, and inserts a missing evidence line when needed. A valid abandonment is terminal handoff rather than success: the checker exits 1 with HANDOFF REQUIRED, and Stop allows exit while reporting qualified ids.
The checker can prove only the command oracle you declare. It cannot infer that an English title and arbitrary shell code mean the same thing. Good gates therefore:
같은 카테고리 다른 리소스
Next.js
React 기반 풀스택 프레임워크. App Router와 서버 컴포넌트(RSC)가 사실상 표준이며, SSR·SSG·ISR을 한 프로젝트 안에서 다룬다.
shadcn/ui
복사·붙여넣기 방식의 React 컴포넌트 모음. npm 의존성이 아닌 코드 소유권 모델이라 커스터마이징이 자유롭다.
Supabase
PostgreSQL 기반 BaaS. Auth · Realtime · Storage · Edge Functions 통합.
Anthropic MCP
Claude가 외부 도구/데이터에 접근하도록 해주는 프로토콜 표준. 생태계의 근간.