用途:为项目定义可机器校验的“完成的定义”,在提交、推送、发布等收尾动作前确定性判定工作是否真的做完。判定不靠模型,而是把门禁声明为 .skillgate/done.yaml 中的数据,通过运行命令、检查文件来评估,退出码即契约:check 失败退 1,gate 阻断命令退 2。
主要能力:内置审计命令可在无配置时对照默认规则报告风险;支持初始化配置、把门禁接入各智能体的钩子、CI、pre-commit;支持对未提交补丁在断网新克隆中验证;提供漂移检查以保持各智能体指令文件一致。门禁类型包括文件是否存在、文件是否匹配模式、禁止出现的模式、命令退出码、密钥与 CVE 扫描、证据文件、目录非空、指令同步、相对基线不新增或不减少匹配、不删除文件、依赖锁定、分阶段门禁等,并可用 when 条件控制是否跳过。
使用方式:无需安装即可运行 npx @reneza/skillgate <命令>。常用命令包括 audit、init、install、doctor、check、explain、verify-patch、verify-apply、drift、diff-instructions、canonical、sync、phase、scaffold。checks 支持 --json、--pin、--timeout、--command、--format github。
适用场景与限制:适合共享仓库、需要提交/推送/发布前强约束的团队与智能体工作流,CI 加分支保护是真正兜底的层;PreToolUse 钩子只是循环内快速反馈,pre-commit 可被 --no-verify 绕过。门禁只能看到机器可观测输出,对“先读文档”这类步骤需让智能体写证据文件再设门禁。某一 glob 无匹配默认使门禁失败,除非设 allowEmpty: true。补丁不能削弱评判它的门禁,修改完成定义的补丁不会自动应用。不应绕过失败门禁:不传 --no-verify、不禁用钩子、不改配置以消除失败,除非用户在该条消息中明确要求 --override。无法启动的门禁报告为阻断性 not-run,而非通过。完整规范见 https://github.com/renezander030/skillgate/blob/master/docs/spec-reference.md。