Install
openclaw skills install @muippt/mu-skill-creatorSkill创建与质量门控,含55项10层审计模型。触发词:创建skill、skill创建、skill审计、质量审计。不适用:skill发布、生态体检(用mu-skill-auditor)
openclaw skills install @muippt/mu-skill-creatorIRON LAW:1改完 Skill 必须完成全面审计(55项10层逐项确认;skill-audit.sh 仅是其中的脚本核验步骤),任何脚本绿灯、目测或专项复核均不得替代全面审计;2description 只给 Agent 读(触发器),intro 只给人看(Skill 市场简介),两者不可混用;3安全扫描未通过禁止交付,人员/组织/薪酬/职级信息禁止进任何 Skill 文件;4IRON LAW 必须是该 Skill 的业务专属约束,禁止只写行数/凭据等通用套话;5行数以效果为第一原则,≤300行是预算上限不是拆分目标——禁止为了让数字好看而拆分,只有"拆分后仍能一次执行不降级"才可以拆,拆完必须验证拆分后指令仍可被完整执行,做不到就保留超行数也不拆(L1-5行数项优先级低于L2-1逻辑闭环/L10-1可验证性)。
Skill 质量劣化有三个系统性失效模式,所有规则都针对它们:
三条共同根因:缺少工程脚手架,不是 Agent 能力不足。每条规则都应可追溯到「哪次事故催生了它」。
| Skill | 职责 | 何时用它 |
|---|---|---|
| mu-skill-auditor | 诊断:六模块体检 + 降本决策 | skill体检/预算/僵尸/description超胖 |
| mu-skill-creator | 创作:新建/优化 Skill 内容 | 要写新 Skill 或改 SKILL.md 正文 |
| mu-skill-shrimp | 发布:Skill 市场上架/安装/卸载 | 要发布、安装、更新 Skill |
| mu-skill-hunter | 搜索:外部 GitHub/ClawHub 发现 | 要找外部没安装过的 Skill |
| mu-self-tuning | 策略:整体 token 降本 + 工作区养护 | 要制定降本计划/全局评分 |
三决策解释了「为什么用这个架构」,每条对抗至少一个失效模式:
| 层级 | 内容 | 预算 | 加载时机 |
|---|---|---|---|
| L1 | 触发词 + 使用/跳过条件 | ~100词 | 始终 |
| L2 | 工作流、原则、速查表 | ≤300行 | 激活时 |
| L3 | 详细文档、schema、示例 | 不限 | 按需read |
L1:唯一触发机制,倾向"宁多触发别漏"(漏触发=Skill不存在,误触发可纠正) L2:≤300行(官方建议500,取300留余量),引用仅一级(WHY:超注意力预算→指令被挤出)。⚠️行数是预算上限不是拆分目标,拆分用对刀:效果不减才可拆——需多一次read才能执行=拆分即质量降级。禁止为了单纯让行数好看而拆分;判断标准不是"数字降下来了没",而是"拆完之后 Agent 能不能一次把该做的事做完不降级",做不到就宁可保留超行数(见IRON LAW 5) L3:每主题一文件,超100行加索引
阶段门控 > 线性流程——每个阶段有独立入口/出口条件,未满足不可跳过。WHY:对抗规则遗忘(失效1),门控是结构约束不是"建议"。
全面审计 > 目测或单项核验——55项10层逐项确认,脚本核验与内容核验共同构成一次不可拆分的全面审计。WHY:目测会遗漏,脚本可重复但覆盖有限;任何单一检查都不能验证跨章节语义和执行质量。对抗规则遗忘+规则冲突(失效1+2)。
分正向(怎么做好)和防御(怎么防坏)两个视角,适用于所有 Skill。每条原则下方标注对应的 AP 反模式。
## 已知局限段,每条含三要素(能力边界≤30字→触发条件≤20字→降级路径),同类合并标注[P/D/E],按重要性降序排列,条目上限3条。判据:能通过改设计消除的≠硬伤(那是设计取舍或待办),只有无论怎么改设计都无法消除的才是硬伤。重要性三维评价:①不可逆性(撞到后能否挽回:不可逆>可逆需成本>完全可逆) ②发生概率(每次必撞>特定条件>极端边缘) ③影响范围(核心安全门控>子路径流程>非关键质量)。入选Top3须在不可逆性或影响范围至少一个为高且发生概率≥中;可逆+低频→下沉到工作流预检步骤(WHY:局限≠免责清单,3条逼作者只留真正绕不过去的硬伤 | 对应:AP-37 | 根因:mu-github-publisher 21条6756字→实际硬伤仅3条)适用于所有含循环/迭代/Cron的 Skill。
| 信号 | 规则 |
|---|---|
| 单次迭代0新产出 | stale_count+1 |
| stale_count≥2 | 换结构约束(不是调参数) |
| stale_count≥4 | 上报人类 |
| 单阶段超过15轮或30分钟 | 强制换方向 |
| Cron连续2次失败 | 自动降级(如切备用API) |
| Cron连续4次失败 | 停止+上报人类 |
"换结构不是调参数":当任务在同一框架内反复停滞,决定性收益来自修正环境/结构约束本身,不是在现有框架里更用力调参。
自动触发:新建Skill→完整流程(阶段1→8) | 修改核心流程、规则库、引用架构或安全边界→全面审计(55项10层) | 发布前→全面审计+安全扫描 禁止:改完未完成全面审计就提交 | 把脚本绿灯、目测或专项复核说成审计完成 | 用系统自带版
/app/skills/skill-creator/替代本Skill
入口:收到Skill创建/优化需求
操作:
出口:有明确输入输出示例清单≥3条
入口:阶段1完成,且非纯工具封装 操作:黄金案例3+/失败案例5+/有效-无效对比≥1组 出口:有案例清单,或"工具封装型,已跳过"
如需内部 API 认证,参见组织内部规范
入口:Skill 需调用组织内部服务()
操作:确认client_id→选接入方式→硬规则:token禁明文落盘|Cookie禁硬编码client_id|frontmatter禁放凭据|audience≤5
出口:认证方案确定+通过合规检查,或标注"无需内部API,已跳过"
入口:阶段 1(含1.5/1.6)完成
操作:
出口:文件树清单已确认,架构模式已选定
入口:阶段 2 完成
操作:
格式:"做什么功能。触发词:词1、词2、词3。不适用:场景描述(用哪个替代)。"
入口:阶段 3 完成
操作:
## 子Agent最小执行规范(≤30行):必读文件+硬Gate+格式约束+禁止行为[P/D/E] 能力边界(≤30字)→触发条件(≤20字)→降级路径(替代方案/人工复核什么/上报人类)。按重要性降序排列,上限3条。同类合并不拆场景(如多个平台CLI限制→1条)。判据:能改设计消除的≠硬伤→不收入;无论怎么改都绕不过去的→才收入。重要性三维评价:①不可逆性(不可逆>可逆需成本>完全可逆) ②发生概率(每次必撞>特定条件>极端边缘) ③影响范围(核心安全门控>子路径流程>非关键质量)。入选Top3须在不可逆性或影响范围至少一个为高且发生概率≥中;可逆+低频→下沉到工作流预检。只说"做不到"不附降级路径=AP-37
当前版本 vX.X,完整历史见 references/CHANGELOG.md)。版本历史是溯源信息,不参与任何生成/路由/决策,占行数=纯浪费注意力预算(WHY:mu-visual-card曾用35行版本历史占615行中的5.7%,迁移后省至1行)出口:wc -l SKILL.md≤300,有Checklist(IRON LAW按需)
frontmatter字段:name(必填,小写+数字+连字符,与目录名一致) | description(必填,≤1024字符,含触发词+不适用+pushy) | compatibility(可选) | metadata(可选)
入口:阶段 4 完成
操作:每主题一文件 | 引用仅一跳(禁A→B→C)(WHY:多跳=token膨胀+遗忘指令) | 底部建索引
出口:所有引用文件存在,SKILL.md有索引
入口:阶段 5 完成
操作:逐条审查指令,确认可yes/no判断。❌"写高质量代码"→✅"lint通过无error"
ICE: required,scripts/须有closure_check.*或等价质量门且审计运行退出0(审计仅做静态检查:脚本存在性+shebang;执行验证由用户手动运行该脚本)。定性/知识引导类豁免,默认不适用无需标记出口:无主观指令,全部可yes/no判断
入口:阶段 6 完成
操作(详见references/quality-gates.md):写2-3个prompt→evals/evals.json,spawn两组(cleanup=delete,最多4并发),accuracy≥85%。⚠️定性类Skill(写作/面评/引导)豁免量化,改用人工审查(WHY:强行量化=造假断言)
出口:evals.json存在且accuracy≥85%;或标注"已跳过"/"定性类,人工审查"
入口:阶段 6.5 完成(或跳过)
操作(详见references/quality-gates.md):扫禁止词(analyzer/helper/tools/assistant/单独skill/短动词/≤2字) | 中英文触发词5+种 | 测试10+10触发/不触发,accuracy≥85% | 调试:问Agent「什么时候用这个Skill?」——回答不准=description需优化
出口:无禁止词,中英文覆盖,accuracy≥85%
入口:阶段7完成+负责人明确授权交付
⚠️ Confirmation Gate:交付前必须获得负责人明确的"可以交付"指令
交付四步:1.安全扫描(人员/凭证/内网/平台密钥)→ 2.frontmatter校验→ 3.打包+说明→ 4.移交专用发布工具(本 Skill 止步于交付门,不执行任何 push/上架动作,发布由外部工具完成)
出口:交付包就绪且通过校验,发布动作由外部发布工具接管
禁止进任何Skill文件:人才标准/组织信息/角色指南/职级定义/人员信息(姓名/工号/账号ID)/高敏数据 受限系统黑名单(禁止调用API):公司内部 HR/绩效/OKR/招聘等受限系统(域名运行时按环境配置,禁止硬编码进 Skill) 用户态数据隔离:本地已安装列表/用户偏好/快照/推荐历史等个性化文件禁止随Skill发布,必须
.skillignore排除+SKILL.md声明"首次使用自动生成"(根因:发布者数据污染下载用户行为) 正确做法:Skill只写"运行时现读"指令(文档链接/ID),内容不进Skill。违反=敏感信息泄露+发布拦截
完整说明+修复示例见references/quality-gates.md。每条标注根因事故和对应的设计原则。
| # | 反模式 | 修复 | 根因事故 | 对应原则 |
|---|---|---|---|---|
| 1 | >250行 | 效果优先判断能否拆(拆完仍可一次执行不降级才拆);做不到就不硬拆 | 猎手418行Agent忽略后半段 | §3决策1 |
| 2 | description写宣传语 | description=仅触发条件 | description写"高效便捷"无法触发 | §4正向4 |
| 3 | 阶段无编号/出口 | 加编号+完成定义 | 子Agent跳步无法判进度 | §3决策2 |
| 4 | 多跳引用A→B→C | 仅一跳 | 面评虾3层嵌套Agent遗忘 | §3决策1 |
| 5 | 无完成门控 | 加验证步骤 | audit跑完不确认就交付 | §4正向2 |
| 6 | 不可验证指令 | 改yes/no可判断 | "高质量面评"Agent自认合格 | §4正向4 |
| 7 | 无Confirmation Gate | 改动前加用户确认 | 6/22未等确认自作主张发布 | §4防御6 |
| 8 | 无Pre-Delivery Checklist | 输出前加打勾清单 | 发布后才发现漏安全扫描 | §4防御7 |
| 9 | IRON LAW是套话 | 改专属约束;无风险则删 | 多个Skill写"shebang+行数"被忽略 | §1失效3 |
| 10 | 无AP列表 | 加禁止行为清单 | 新Skill反复犯同类错误 | §4防御5 |
| 11 | 无子Agent执行规范 | 加≤30行最小规范 | 子Agent跳步/自创格式 | §4防御6 |
| 12 | 循环无终止条件 | 加max/超时退出 | 6/17串行CLI无上限超时 | §4防御7+8 |
| 13 | 无数据量限制 | 加limit/截断/分页 | 小雷达91条串行查询超时 | §3决策1 |
| 14 | 冗余重复提示 | 同一指令只写一处 | SKILL.md+references两处写同一规则 | §1失效2 |
| 15 | 大文件无截断 | 加字数/行数上限 | read大文件context溢出 | §3决策1 |
| 16 | SKILL.md留intro | intro由平台CLI单独管理 | 修改SKILL.md的intro线上没同步 | §1失效2 |
| 17 | Shell无shebang/set-euo | 加shebang+安全开关 | 脚本静默失败Agent以为成功 | §4防御7 |
| 18 | 重复造轮子 | bundle到scripts/复用 | 多Skill各自SSO换票改一处漏一处 | §1失效2 |
| 19 | 规则只有MUST没WHY | 附WHY解释意图 | Agent死记禁止令遇边界选错 | §4防御5 |
| 20 | IRON LAW照搬通用模板 | 必须含业务专属约束 | IRON LAW5条套话Agent全忽略 | §1失效3 |
| 21 | frontmatter含真实内部账号 | 删除metadata块 | 公开Skill暴露发布者账号 | §6安全 |
| 22 | _meta.json含凭据未排除 | .skillignore排除 | 打包含真实平台密钥 | §6安全 |
| 23 | eval/exec执行用户输入 | 用AST白名单替代eval/exec | 多个Skill代码评审 | §1失效1 |
| 24 | 异常捕获过宽 | 捕获具体异常类型;re-raise或log | 多个Skill代码评审 | §1失效1 |
| 25 | 调试残留 | 删除pdb/breakpoint/if False | 多个Skill代码评审 | §1失效1 |
| 26 | 废弃API调用 | 替换为文档推荐新API | 多个Skill代码评审 | §1失效1 |
| 27 | API契约不一致 | 校验调用方与定义方签名匹配 | 多个Skill代码评审 | §1失效1 |
| 28 | import与requirements不匹配 | 同步requirements.txt | 多个Skill代码评审 | §1失效1 |
| 29 | 可选依赖无fallback | try/except ImportError+降级方案 | 多个Skill代码评审 | §1失效1 |
| 30 | 路径操作字符串替换 | 用os.path.splitext处理路径 | 多个Skill代码评审 | §1失效1 |
| 31 | 资源遍历无上限 | 加max/分页/采样上限 | 多个Skill代码评审 | §1失效1 |
| 32 | .gitignore缺失 | 创建.gitignore排除产物 | 多个Skill代码评审 | §1失效1 |
| 33 | SKILL.md留版本历史 | 只留1行版本号+CHANGELOG链接 | mu-visual-card版本历史35行 | §3决策1 |
| 34 | Gotchas堆积膨胀 | 分层处置:删/上浮/下沉 | mu-redskill-intro踩坑段占66% | §3决策1 |
| 35 | 事故仅记录未闭环(ICE-5) | 修复落进工作流/脚本/checklist | 事故复发因仅记录未工程化 | §4防御10 |
| 36 | 附件文档职责重叠 | 合并唯一权威,其余标DEPRECATED | templates/与references/重叠 | §1失效2 |
| 37 | 已知局限膨胀/无降级路径 | 三要素+P/D/E+≤3条+三维重要性 | 21条局限仅3条为真硬伤 | §4防御9 |
| 38 | AP描述膨胀(段落代替索引) | 表格每条一行,完整描述留references | AP清单自身用大段描述 | §3决策1 |
失效模式→AP: 遗忘→3/5/8/17/25 | 冲突→4/14/16/18/27/36 | 膨胀→1/9/13/15/20/31/33/34/37/38 | 跨模式→6/7/10/11/12/19/23/24/26/28/29/30/32 | 闭环缺失→35
全面审计是唯一的审计结论,必须逐项确认全部 55 项。bash scripts/skill-audit.sh <skill-name> 只执行其中可脚本核验的项目并提供证据,不产生“审计通过”的独立结论;脚本输出绿灯只能作为全面审计的一部分。支持环境变量 SKILL_BASE 指定 Skills 根目录(默认从脚本位置自动探测)。完整说明见 references/quality-gates.md。
| 层 | 审计目标 | 项数 | 脚本核验项 | 覆盖范围 |
|---|---|---|---|---|
| L1 | 文档结构 | 8 | 5 | frontmatter/desc/name/行数/refs索引/版本历史/Gotchas膨胀 |
| L2 | 架构一致性 | 5 | 2 | 逻辑闭环/阶段编号/跨章节/交互/版本号 |
| L3 | 代码质量 | 8 | 6 | API契约/eval/异常/调试残留/废弃API/shebang/硬编码/退化(scripts/+assets/可执行文件) |
| L4 | 跨文件一致性 | 5 | 1 | 模板双源/信息冗余/共享模式/数值一致性/附件职责唯一 |
| L5 | 文档↔代码对齐 | 3 | 2 | 参数表一致/功能路由完整/参考实现正确性 |
| L6 | 依赖完整性 | 3 | 2 | import↔requirements/技术栈/fallback |
| L7 | 文件卫生 | 6 | 5 | 僵尸/断链/孤儿/用户态/.gitignore/平台产物 |
| L8 | 安全合规 | 4 | 3 | 安全扫描/SSO/内部账号/凭据 |
| L9 | 健壮性&降级 | 7 | 1 | 降级链/确认门/子Agent/数据量/大文件/路径/遍历 |
| L10 | 内容质量 | 6 | 2 | 可验证性/AP清零+ICE闭环/文案/已知局限(三要素+P/D/E+≤3条+重要性降序)/停滞/边缘输入 |
| 合计 | 55 | 29 |
全面审计逐项清单(🔍=需附脚本核验证据,👤=需附审计判断与证据;两类项目共同构成一次全面审计,不构成彼此独立的审计等级)
L1文档结构: 🔍L1-1 IRON LAW(frontmatter后,业务专属,≤6条——超6条逐条审核是否铁律级,非铁律下沉到工作流/Gotchas) | 🔍L1-2 desc(单行无emoji+触发词+不适用) | 🔍L1-3 intro(三段式≠desc,tags≥6) | 🔍L1-4 name(小写+连字符=目录名) | 🔍L1-5 行数≤300(脚本只报数字,超标不等于判红——需先按IRON LAW 5评估能否拆分而不降效果,做不到就标注"已评估-保留超行数"视为通过) | 👤L1-6 refs索引完整 | 🔍L1-7 版本历史不入SKILL.md(只留1行版本号+CHANGELOG链接,AP-33) | 🔍L1-8 Gotchas未膨胀(踩坑段条目≤10且占全文≤40%,超标按分层处置删除/上浮/下沉到troubleshooting.md,AP-34;同L1-5为信息告警不直接判红)
L2架构一致性: 👤L2-1 逻辑冲突(新旧矛盾/因果闭环/约束可满足性:对同一度量的所有数值约束取数学交集,验证交集非空——如面积上限≤X%和下限≥Y%是否X≥Y;不同约束作用于有交集的集合时组合效果是否可行) | 🔍L2-2 阶段编号+入口/出口+可验证 | 👤L2-3 跨章节(原则↔AP↔事故) | 👤L2-4 交互一致(多模式无矛盾) | 👤L2-5 版本号匹配
L3代码质量(scripts/+assets/可执行文件): 🔍L3-1 API契约(签名↔调用) | 🔍L3-2 无eval/exec | 🔍L3-3 异常宽度(无bare except) | 🔍L3-4 无调试残留 | 🔍L3-5 无废弃API | 🔍L3-6 shebang+set-euo | 👤L3-7 硬编码已参数化 | 👤L3-8 功能退化
L4跨文件一致性: 👤L4-1 模板双源(不双存) | 👤L4-2 信息冗余(清单未被覆盖) | 👤L4-3 共享模式一致(utils用法) | 🔍L4-4 数值一致性(同一语义量的所有引用点——含同文件不同章节——尺寸/字号/坐标/色值/百分比统一;版本迭代后旧章节数值未同步=此项不通过) | 👤L4-5 附件职责唯一(同一主题不得在templates/和references/同时存在功能等价文件——有则合并或标DEPRECATED;references/内多文件定义同一规则的不同版本=此项不通过,AP-36)
L5文档↔代码(scripts/+test-output参考实现): 🔍L5-1 参数表一致(SKILL↔CLI) | 🔍L5-2 功能路由完整(均有实现) | 👤L5-3 参考实现正确性(示例代码/模板/SVG语法正确且与文档对齐)
L6依赖完整性(scripts/): 🔍L6-1 import↔requirements匹配 | 👤L6-2 技术栈表一致 | 🔍L6-3 可选依赖有fallback
L7文件卫生: 🔍L7-1 僵尸文件(refs有引用) | 🔍L7-2 断链(引用均存在) | 👤L7-3 路径孤儿(改名同步) | 👤L7-4 用户态未混入 | 🔍L7-5 .gitignore(scripts/时) | 🔍L7-6 无平台产物
L8安全合规: 🔍L8-1 安全扫描(平台密钥/内部账号/高敏数据/受限系统) | 👤L8-2 SSO方案 | 🔍L8-3 frontmatter无内部账号(AP-21) | 🔍L8-4 _meta.json已排除(AP-22)
L9健壮性&降级: 👤L9-1 降级链(外部依赖有处理) | 👤L9-2 改动类→Confirm Gate | 👤L9-3 流水线→子Agent规范 | 👤L9-4 数据量限制(AP-13) | 👤L9-5 大文件截断(AP-15) | 🔍L9-6 路径安全(splitext) | 🔍L9-7 遍历上限
L10内容质量: 👤L10-1 可验证性(yes/no) | 🔍L10-2 AP清零(无AP-1~38)+ICE闭环(标ICE: required时须有closure_check.*或等价质量门;静态检查存在性+shebang,执行验证由用户手动运行) | 👤L10-3 文案(无错别字) | 👤L10-4 已知局限(每条含三要素:能力边界→触发条件→降级路径;P/D/E分类标注;同类合并;≤3条;重要性降序;非硬伤不收入;AP-37) | 👤L10-5 停滞检测(stale_count) | 👤L10-6 边缘输入覆盖(极短/极长/空输入/非预期语言等边界条件是否有处理指引或在已知局限中声明)
| 文件 | 说明 |
|---|---|
| quality-gates.md | AP-1~38完整说明+10层审计模型+Eval+触发词优化 |
| collaboration-guide.md | 推荐联动(mu-dev-workflow) |
| evals.json | Eval测试用例示范 |