#303 by GitHub stars

Leonxlnx/unlazy

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,

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

16671491f667 → 16671491f667

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 16671491f6679ad9378f52604d3bc2415b4120c7

4.3kGitHub stars
106stars in 7 days
1skill in this repository
0commits in 30 days

Heat

5.9
  • Star growth, last 7 daysAhead of 93% of tracked repositories
  • Star growth, last 24 hoursAhead of 85% of tracked repositories
  • Rank movement, last 7 daysAhead of 45% of tracked repositories
  • Commits, last 30 daysAhead of 0% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 9, 2026Nov 6, 20264,321

Individual skills in this repository

How it works

unlazy

When your agent uses it

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

What it loads into context

Frontmatter

104 tokens

Always available to the agent

SKILL.md

2,179 tokens

When the skill is activated

Reference documents

23,049 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  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

Scripts executed separately

  • package.json
  • scripts/dispatch-check.mjs
  • scripts/gate-check.mjs
  • scripts/gate-lint.mjs
  • scripts/install-hooks.mjs
  • scripts/lib/check-supervisor.mjs
  • scripts/lib/dispatch.mjs
  • scripts/lib/gates.mjs
  • scripts/lib/process-tree.mjs
  • scripts/lib/regex-worker.mjs
  • scripts/stop-hook.mjs
  • tests/contract-tests.mjs
  • tests/dispatch-tests.mjs
  • tests/hardening-tests.mjs
  • tests/lint-tests.mjs
  • tests/run-tests.mjs
  • tests/self-check.mjs
  • tests/stress-tests.mjs

Files

  • .github/workflows/test.ymlasset1,491 bytes
  • .gitignoreasset153 bytes
  • CHANGELOG.mddoc16,636 bytes
  • CONTRIBUTING.mddoc4,705 bytes
  • LICENSEasset1,065 bytes
  • README.mddoc17,238 bytes
  • SECURITY.mddoc12,742 bytes
  • SKILL.mdcore10,520 bytes
  • agents/openai.yamlasset250 bytes
  • package.jsonruns471 bytes
  • references/dispatch.mddoc5,901 bytes
  • references/gates.mddoc15,368 bytes
  • references/method.mddoc3,853 bytes
  • references/orchestration.mddoc7,324 bytes
  • references/parallel.mddoc6,596 bytes
  • references/token-economy.mddoc3,288 bytes
  • research/validation-protocol.mddoc4,442 bytes
  • scripts/dispatch-check.mjsruns6,250 bytes
  • scripts/gate-check.mjsruns39,966 bytes
  • scripts/gate-lint.mjsruns9,540 bytes
  • scripts/install-hooks.mjsruns8,639 bytes
  • scripts/lib/check-supervisor.mjsruns1,462 bytes
  • scripts/lib/dispatch.mjsruns13,299 bytes
  • scripts/lib/gates.mjsruns39,395 bytes
  • scripts/lib/process-tree.mjsruns5,994 bytes
  • scripts/lib/regex-worker.mjsruns282 bytes
  • scripts/stop-hook.mjsruns9,230 bytes
  • templates/PLAN.mddoc6,492 bytes
  • templates/gates-leaf.mddoc2,067 bytes
  • templates/gates-node.mddoc2,139 bytes
  • tests/contract-tests.mjsruns4,656 bytes
  • tests/dispatch-tests.mjsruns34,447 bytes
  • tests/hardening-tests.mjsruns69,156 bytes
  • tests/lint-tests.mjsruns14,435 bytes
  • tests/run-tests.mjsruns30,761 bytes
  • tests/self-check.mjsruns16,171 bytes
  • tests/stress-tests.mjsruns34,116 bytes
Read SKILL.md

# Unlazy

Make incomplete work visible and make completion testable. Prove outcomes against a ledger instead of relying on a confident done report.

## Write gates before real work

For solo work, create `GATES.md` from the local file `templates/gates-leaf.md` before implementing (orchestrated mode instead starts from `templates/PLAN.md` plus per-leaf `templates/gates-leaf.md` and per-branch `templates/gates-node.md` under `.unlazy/<scope>/`; see Build the Depth Tree below). State one observable outcome per gate. Give every runnable gate an indented `CHECK:` and `EXPECT:`; use a manual gate only when no command can decide the outcome.

Throughout this file, `<skill-dir>` is the directory containing this `SKILL.md` and `<scope>` is a pipeline id under `.unlazy/`.

Treat `CHECK:` as code. Before executing an inherited ledger, parse it without running anything and read every command and called script:

```text
node <skill-dir>/scripts/gate-check.mjs --status GATES.md
View the complete source on GitHub

Skills included

  • unlazy

Repository facts

License
MIT
Created
Aug 9, 2026
Last pushed
Sep 3, 2026
Forks
339
Open issues
1
Project activity
Slowing

Rank over the last 12 weeks

Now #303 · best #271 · down 22 in 30 days

  1. #296 on Oct 31
  2. #297 on Nov 1
  3. #299 on Nov 2
  4. #300 on Nov 3
  5. #302 on Nov 4
  6. #303 since Nov 5
74 earlier periods
  1. #890 on Aug 9
  2. #914 on Aug 10
  3. #919 on Aug 11
  4. #916 on Aug 12
  5. #924 on Aug 13
  6. #862 on Aug 15
  7. #873 on Aug 16
  8. #881 on Aug 17
  9. #897 on Aug 18
  10. #888 on Aug 19
  11. #833 on Aug 20
  12. #733 on Aug 21
  13. #526 on Aug 22
  14. #408 on Aug 23
  15. #369 on Aug 24
  16. #354 on Aug 25
  17. #339 on Aug 26
  18. #333 on Aug 27
  19. #326 on Aug 28
  20. #319 on Aug 29
  21. #310 on Aug 30
  22. #312 from Aug 31 to Sep 1
  23. #309 on Sep 2
  24. #311 on Sep 3
  25. #301 on Sep 4
  26. #296 on Sep 5
  27. #295 on Sep 6
  28. #302 on Sep 7
  29. #301 on Sep 8
  30. #300 on Sep 9
  31. #297 on Sep 10
  32. #295 on Sep 11
  33. #297 on Sep 12
  34. #288 on Sep 13
  35. #290 from Sep 14 to Sep 15
  36. #286 on Sep 16
  37. #283 on Sep 17
  38. #285 on Sep 18
  39. #280 on Sep 19
  40. #286 on Sep 20
  41. #285 on Sep 21
  42. #288 on Sep 22
  43. #287 on Sep 23
  44. #283 on Sep 24
  45. #276 on Sep 25
  46. #271 on Sep 26
  47. #276 on Sep 27
  48. #279 on Sep 28
  49. #280 on Sep 29
  50. #277 on Sep 30
  51. #278 on Oct 1
  52. #282 on Oct 2
  53. #275 on Oct 3
  54. #271 on Oct 4
  55. #278 on Oct 5
  56. #280 on Oct 6
  57. #281 from Oct 7 to Oct 8
  58. #285 on Oct 9
  59. #281 from Oct 10 to Oct 11
  60. #286 from Oct 12 to Oct 13
  61. #285 on Oct 14
  62. #284 on Oct 15
  63. #281 on Oct 16
  64. #283 from Oct 17 to Oct 18
  65. #284 on Oct 19
  66. #283 on Oct 20
  67. #288 on Oct 21
  68. #286 on Oct 22
  69. #284 on Oct 23
  70. #285 on Oct 24
  71. #287 on Oct 25
  72. #294 on Oct 28
  73. #296 on Oct 29
  74. #297 on Oct 30

Before you install

Local scripts

Automated signals, not a guarantee

Checked Nov 2, 2026

Show all 62 signals by file

CHANGELOG.md

  • Network accessline 79
    - [#2](https://github.com/Leonxlnx/unlazy/pull/2): re-verification, parser diagnostics, CRLF preservation, evidence insertion, fenced-example handling, and validation ideas
  • Network accessline 80
    - [#3](https://github.com/Leonxlnx/unlazy/pull/3): the explicit-file positional fix
  • Network accessline 81
    - [#5](https://github.com/Leonxlnx/unlazy/pull/5): rolling dispatch and bounded `--jobs`
  • Network accessline 82
    - [#8](https://github.com/Leonxlnx/unlazy/pull/8): stable hook identification and moved-install repair
  • Network accessline 83
    - [#9](https://github.com/Leonxlnx/unlazy/pull/9): explicit approval for executable checks
  • Network accessline 84
    - [#10](https://github.com/Leonxlnx/unlazy/pull/10): scoped pipelines, shared parsing, ownership leases, session routing, and the first regression suite
  • Network accessline 85
    - [#14](https://github.com/Leonxlnx/unlazy/pull/14): the COLM 2026 test-time-scaling source
  • Network accessline 86
    - [#15](https://github.com/Leonxlnx/unlazy/pull/15): negative controls, supplied-number measurement, and manual-gate review guidance; the single-run risk observation is intentionally not generalized
  • Network accessline 87
    - [#17](https://github.com/Leonxlnx/unlazy/pull/17): the read-only gate-quality linter, JSON output, strict mode, documentation, and regression harness by Daz Alderson
  • Network accessline 88
    - [#18](https://github.com/Leonxlnx/unlazy/pull/18): atomic native dispatch waves, launch adapters, durable state, Stop integration, documentation, and tests by hangloose50
  • Network accessline 89
    - [#20](https://github.com/Leonxlnx/unlazy/pull/20): the Windows process-tree timeout diagnosis and `taskkill /t` direction by Praveen Bishnoi
  • Network accessline 90
    - [#24](https://github.com/Leonxlnx/unlazy/pull/24): fail-closed diagnosis of an indented `ABANDON:` by Daz Alderson
  • Network accessline 91
    - [#25](https://github.com/Leonxlnx/unlazy/pull/25): semantic Stop-hook progress hashing by Daz Alderson
  • Network accessline 92
    - [#26](https://github.com/Leonxlnx/unlazy/pull/26): shared-parser warning for ambiguous path-shaped EXPECT regexes by Daz Alderson
  • Network accessline 93
    - [#29](https://github.com/Leonxlnx/unlazy/pull/29): leaf-versus-branch gate placement, visible PLAN dispatch metadata, and host-neutral skill wording by mafiaboyhacker
  • Network accessline 94
    - [#21](https://github.com/Leonxlnx/unlazy/issues/21) and [#23](https://github.com/Leonxlnx/unlazy/issues/23): abandonment-promotion and contract-omission reports and reproducers by theislampill
  • Network accessline 95
    - [#30](https://github.com/Leonxlnx/unlazy/issues/30): affected-Windows descriptor/path `st_dev` mismatch report and reproduction
  • Network accessline 96
    - [#31](https://github.com/Leonxlnx/unlazy/issues/31): automatic-evidence definition drift report and false-green reproduction

README.md

  • Network accessline 19
    Use the [skills CLI](https://github.com/vercel-labs/skills) for supported agents:
  • Network accessline 212
    - Detailed multi-part prompts still see partial compliance and premature truncation in tested models ([Quantifying Laziness](https://arxiv.org/abs/2512.20662)).
  • Network accessline 213
    - Reasoning can stop exploration too early or continue beyond useful compute, depending on task and model ([Thoughts Are All Over the Place](https://arxiv.org/abs/2501.18585), [When More Thinking Hurts](https://arxiv.org/abs/2604.10739), [O
  • Network accessline 214
    - SlopCodeBench reports that no tested agent fully solved a problem end to end and that the best agent passed `14.8%` of checkpoints. Checkpoint success is not task completion ([SlopCodeBench](https://arxiv.org/abs/2603.24755)).
  • Network accessline 215
    - s1's budget forcing lengthens reasoning by appending `Wait` multiple times when the model tries to stop; it is not a claim that one token always improves work ([s1](https://arxiv.org/abs/2501.19393)).
  • Network accessline 216
    - METR's Time Horizon 1.1 reports a `196.5` day overall P50 doubling-time fit and `130.8` days for the post-2023 fit. The shorter figure must not be described as the all-years estimate ([METR Time Horizon 1.1](https://metr.org/blog/2026-1-2
  • Network accessline 217
    - Closed-book knowledge-intensive tasks can hallucinate more with additional test-time compute, and compute-only post-processing cannot add ground-truth information that was not present ([Test-Time Scaling in Reasoning Models Is Not Effecti
  • Network accessline 225
    - 2026-08-06: [Test-Time Scaling in Reasoning Models Is Not Effective for Knowledge-Intensive Tasks Yet](https://arxiv.org/abs/2509.06861), v3, COLM 2026
  • Network accessline 226
    - 2026-07-10: [Measuring AI Ability to Complete Long Software Tasks](https://arxiv.org/abs/2503.14499), v4, NeurIPS 2025
  • Network accessline 227
    - 2026-05-07: [SlopCodeBench: Benchmarking How Coding Agents Degrade Over Long-Horizon Iterative Tasks](https://arxiv.org/abs/2603.24755), v2
  • Network accessline 228
    - 2026-04-13: ["Should I Give Up Now?" Investigating LLM Pitfalls in Software Engineering](https://arxiv.org/abs/2411.09916), v3
  • Network accessline 229
    - 2026-04-12: [When More Thinking Hurts: Overthinking in LLM Test-Time Compute Scaling](https://arxiv.org/abs/2604.10739)
  • Network accessline 230
    - 2026-01-29: [METR Time Horizon 1.1](https://metr.org/blog/2026-1-29-time-horizon-1-1/)
  • Network accessline 231
    - 2025-12-19: [Quantifying Laziness, Decoding Suboptimality, and Context Degradation in Large Language Models](https://arxiv.org/abs/2512.20662)
  • Network accessline 232
    - 2025-10-04: [OptimalThinkingBench: Evaluating Over and Underthinking in LLMs](https://arxiv.org/abs/2508.13141), v2
  • Network accessline 233
    - 2025-10-03: [Context Anxiety: How AI Agents Panic About Their Perceived Context Windows](https://inkeep.com/blog/context-anxiety)
  • Network accessline 234
    - 2025-03-01: [s1: Simple test-time scaling](https://arxiv.org/abs/2501.19393), v3
  • Network accessline 235
    - 2025-02-18: [Thoughts Are All Over the Place: On the Underthinking of o1-Like LLMs](https://arxiv.org/abs/2501.18585), v2
  • Network accessline 236
    - Undated page: [Unified diffs make GPT-4 Turbo 3X less lazy](https://aider.chat/docs/unified-diffs.html)

package.json

  • Executable scriptline 1
    Executable file

references/dispatch.md

  • Network accessline 50
    [Current Codex releases support parallel subagents](https://developers.openai.com/codex/agent-configuration/subagents). Use the native subagent tools available in the host. When the tools are named `spawn_agent` and `wait_agent`, follow thi
  • Network accessline 62
    [Claude Code background subagents run concurrently](https://code.claude.com/docs/en/sub-agents#run-subagents-in-foreground-or-background). Launch every leaf as a background `Agent` task, record every returned task or agent id, and seal befo
  • Network accessline 64
    For a large regular fan-out, prefer a [Dynamic Workflow](https://code.claude.com/docs/en/workflows). Its `pipeline()` primitive runs agent work across a list under the runtime's concurrency limit. The workflow must still preserve the same s

references/gates.md

  • Network accessline 31
    The fenced example above is documentation. Lines inside fenced code blocks are ignored by the parser. Fence boundaries follow [CommonMark's fenced-code rules](https://spec.commonmark.org/0.30/#fenced-code-blocks): the closing marker uses th
  • Network accessline 92
    - [Node.js child process documentation](https://nodejs.org/api/child_process.html#child_processexeccommand-options-callback)
  • Network accessline 93
    - [Microsoft `path` documentation](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/path)

scripts/dispatch-check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/gate-check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/gate-lint.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/install-hooks.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/lib/check-supervisor.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

scripts/lib/dispatch.mjs

  • Executable scriptline 1
    Executable file

scripts/lib/gates.mjs

  • Executable scriptline 1
    Executable file

scripts/lib/process-tree.mjs

  • Executable scriptline 1
    Executable file

scripts/lib/regex-worker.mjs

  • Executable scriptline 1
    Executable file

scripts/stop-hook.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/contract-tests.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/dispatch-tests.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/hardening-tests.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/lint-tests.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/run-tests.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/self-check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

tests/stress-tests.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Dangerous shell operationline 415
    // Node 16's recursive rm rejects a directory symlink with EISDIR on some

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Signal confidence: 62 facts

and 12 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

Leonxlnx/unlazy: #303 on hotskills, 4.3k stars

[![Leonxlnx/unlazy on hotskills](https://hotskills.dev/badge/leonxlnx-unlazy.svg)](https://hotskills.dev/skill/leonxlnx-unlazy/)