Unlazy 完成纪律
用深度拆解、验收账本和可执行门禁约束 AI 代理过早交付。
最小权限方面,CI仅授予只读内容权限、依赖操作固定到提交,审批记录也必须位于仓库之外;但门禁命令仍以用户权限继承文件系统、环境变量、凭据和网络访问,因此未获满分。用户确认机制完善:新命令默认只展示解析后的命令、工作目录、shell和PATH,只有精确绑定的既有审批或显式--approve才会执行,安装钩子也要求主动调用。数据流和外部影响说明充分,明确列出命令输出、账本、审批、钩子状态、设置文件及绝对路径的写入和暴露面。敏感数据处理提供避免输出秘密、审阅日志和使用隔离环境的指导,但没有自动净化环境、秘密检测或真正的沙箱。运行时无第三方包,CI操作按提交固定,依赖安全处理充分。安装器支持卸载、原子写入和设置备份,但任意CHECK命令造成的外部副作用没有通用回滚能力。研究来源、许可证作者和贡献历史路径清楚;发布者身份仍未经企业注册表验证,但这本身不构成扣分。
README、SECURITY、package元数据和CI配置对Node版本、零运行时依赖、审批边界、shell继承及测试命令的描述相互一致。依赖可用性有Node 16以上要求、三操作系统和多个Node版本的CI矩阵以及外部工具缺失警告,但实际门禁仍可依赖用户环境中的任意shell工具,故非满分。资料描述了拒绝空账本、重复ID、无效期望、超时及锁冲突等失败情形,并强调失败关闭;不过未提供脚本源码或实际错误输出,无法确认错误信息是否始终具体、可操作。
文档覆盖单人任务、分层代理、并行叶节点、父级复核、Claude Code和Codex等场景,并针对普通使用者和编排者给出不同入口。能力边界说明非常明确:审批不是沙箱、租约不是写隔离、门禁只证明声明的命令预言机、更多推理不保证更好结果。触发方式、tree深度示例、作用域和各CLI模式均清楚区分。环境适配包括Unix与Windows shell差异、PATH解析、Node 16以上、三大操作系统CI、工作目录和可覆盖shell;现有材料足以支持满分静态评价。
仓库地图、快速开始、安全边界、门禁契约、并行编排和研究依据组织清晰,安装方式、手动路径、调用语法及运行要求完整。unlazy、2.1.0、命令选项和文件布局命名一致。示例丰富,但没有真正的FAQ或系统化故障排查问答,因此examples_and_faq扣一分。已知限制披露非常充分,MIT许可证正文完整。版本状态诚实说明2.1.0尚未形成标记发布并指向CHANGELOG,但提示中未提供CHANGELOG内容,无法核验变更历史完整性。贡献和漏洞报告路径存在,但发布者未经验证,也没有明确维护团队、响应承诺或稳定的私人安全联系方式,因此维护责任仅属薄弱呈现。
接受账本、明确CHECK/EXPECT/CWD、可复核证据和父级重跑机制能产出直接可审阅、可交接的工作结果,输出可用性较强。相较纯提示词,精确审批、失败关闭、租约协调和复核层级具有明确增量价值;但仓库主动承认缺少早期内部比较的原始材料,也没有可复现证据证明产品本身带来固定提升,所以marginal_value不满分。文档说明了深度、并行、顺序默认、最多64个作业及验证成本等权衡,但没有量化时间、令牌和人工审阅成本相对收益,cost_benefit为适中。
行为声明对应具体命令、文件、状态、证据字段、CI矩阵和研究条目,且研究来源给出日期并区分不同统计口径,追踪性很强。多项独立研究共同支持欠思考、过早终止和过度思考等问题,但它们只佐证动机,不直接验证unlazy的实际效果;内部历史比较又缺少原始产物,因此交叉佐证扣一分。事实与推断分离表现突出:文档明确表示研究不证明固定改进、旧结果不是基准保证、审批不等于语义正确、旧证据不等于重新执行。
- CHECK行是具有当前用户权限的任意shell代码;审批不是沙箱,运行继承的账本前必须逐项审阅命令、脚本、工作目录、shell和PATH。
- 命令可读取凭据、访问网络并修改仓库内外的数据;对于不可信来源,应使用操作系统、容器或虚拟机级隔离。
- 账本证据可能写入私有路径或敏感输出;提交或分享GATES.md、状态日志和Claude设置前应人工检查。
- 精确审批不会固定命令所调用脚本或可执行文件的内容;这些依赖发生变化后,即使命令文本未变也应重新审阅。
- 2.1.0在材料中属于未标记发布;需要可重复安装时应固定给定提交,而不要依赖浮动仓库状态。
- 现有研究主要支持问题动机,并不证明Depth Tree或unlazy能够带来稳定、量化的质量提升。
这个 Agent 能做什么,适合哪些场景?
Unlazy 是一套面向复杂 AI 代理任务的技能与命令行检查工具,核心方法是将工作逐层拆分,并先建立可验证的验收账本。核心说明位于 SKILL.md,配套内容包括规划与门禁模板、方法和编排文档、Node.js 检查器、Claude Code Stop hook 安装器以及回归测试。使用者通过 Markdown 格式的 GATES.md 声明结果、CHECK 命令、EXPECT 输出、工作目录和证据,gate-check.mjs 再执行或复验这些门禁。多代理流程可在 .unlazy/<scope>/ 下维护计划、叶节点和分支账本,并通过状态、路径所有权与租约协调滚动派发。它部署在本地代理技能目录,已明确支持 Claude Code 和 Codex CLI;检查命令继承启动进程的文件系统、环境变量、凭据和网络权限。项目采用 MIT 许可证,当前源码目标版本为 2.1.0,但未被说明为已标记的 GitHub Release。
工作流从编写验收账本开始:用户在 GATES.md 中为每个门禁填写 CHECK、EXPECT、可选 CWD 和 EVIDENCE。node <path-to-skill>/scripts/gate-check.mjs --status GATES.md 只解析并展示状态;普通模式会在尚无精确批准记录时显示解析后的命令、预期、工作目录、shell 和 PATH,但不执行。审阅所有命令及其调用脚本后,用户以 --approve 批准并运行;门禁只有在进程退出码为 0 且合并输出匹配 EXPECT 时才通过,工具随后记录 shell、工作目录、退出状态、PATH 指纹和关键输出。--reverify 会重新执行所有可运行门禁,而不是信任旧证据。对于并行任务,驱动者在 .unlazy/<scope>/ 中定义接口、依赖、约定和 OWNS 路径,再用 --claim 获取叶节点租约并按 READY、IN-FLIGHT、VERIFIED 等状态滚动派发;--jobs <N> 可选择并发执行独立检查。可选 Claude Code Stop hook 只在门禁未满足时阻止停止,不会自行执行检查。
- 负责大型代码重构的工程师,希望先列出迁移路径、测试和验收条件,再允许代理宣布完成。
- 使用 Claude Code 或 Codex CLI 的个人开发者,需要让长任务以可复验的命令证据收尾。
- 组织多个代理并行修改仓库的技术负责人,需要通过作用域、OWNS 路径和租约减少协作冲突。
- 维护 CI 或回归测试的团队,希望把退出码与明确成功标记同时作为通过条件。
- 审查第三方代理产出的开发者,需要重新运行所有门禁,而不是接受已有完成标记或陈旧证据。
这个 Agent 有哪些优点和局限?
- 通过退出码为 0 与 EXPECT 输出同时满足的失败关闭规则,避免仅凭命令成功退出就误判完成。
- 批准记录绑定账本绝对路径、门禁、命令、预期、CWD、shell、限制、平台和完整 PATH;修改任何绑定输入后都需重新批准。
- 提供
--reverify,可重新运行已完成门禁,明确区分旧证据与当前验证。 - 支持作用域账本、叶节点状态、路径所有权和租约,适合有依赖关系的滚动并行编排。
- 检查器与可选 hook 支持 Node.js 16,且无第三方运行时依赖。
- 批准不是沙箱;CHECK 命令拥有启动环境中的文件系统、环境变量、凭据和网络权限,因此继承账本必须人工审查。
- 工具只能证明用户声明的命令预言机,无法判断英文验收目标与任意 shell 命令是否真正等价。
- shell 和 PATH 差异会影响复验,尤其在 Windows 的 Git Bash 与 PowerShell 之间可能缺少相同工具。
- 租约只协调合作进程,不提供写入隔离;冲突输出仍可能需要独立 worktree 和缓存目录。
- README 明确表示研究只支持其针对的失败模式,并未证明 Unlazy 可带来固定改进;早期内部对比也缺少可复现原始数据。
- 当前 2.1.0 被描述为未发布源码状态,而非已标记的 GitHub Release;需要不可变安装时必须固定具体提交。
如何安装或部署这个 Agent?
需要 Node.js 16 或更高版本;检查器和可选 hook 不需要第三方运行时包。支持的代理可运行 npx skills add Leonxlnx/unlazy,添加 -g 可进行用户级安装,添加 --all 可安装到所有检测到的代理。手动安装时,将仓库克隆到 Claude Code 的 ~/.claude/skills/unlazy 或 Codex CLI 的 ~/.codex/skills/unlazy。源码未说明需要 API 密钥或其他凭据;通过 npx 或 Git 克隆获取仓库时需要相应的网络访问。
如何使用这个 Agent?
在支持 slash skill 的环境中使用 /unlazy tree 5 refactor the payment module and verify every migration path,在 Codex 中则可使用 $unlazy 或技能描述对应的自然语言触发。单人任务可先复制 templates/gates-leaf.md 为 GATES.md 并替换全部占位符,然后运行 node <path-to-skill>/scripts/gate-check.mjs --status GATES.md 检查账本但不执行命令。审阅每一条 CHECK 及其调用脚本后,运行 node <path-to-skill>/scripts/gate-check.mjs --approve GATES.md 批准并执行。需要确认所有结果仍然有效时,运行 node <path-to-skill>/scripts/gate-check.mjs --reverify GATES.md。仓库自身的完整测试命令是 npm test。
常见问题
使用 Unlazy 需要付费服务或 API 密钥吗?
运行门禁是否安全?
普通模式会不会直接执行新命令?
--status。