Save, search, and manage personal notes and knowledge bases in Get笔记 on explicit request.
Coding
Luban Skill
Try it鲁班.Skill(luban Skill):工业级智能体技能优化器。当用户提及以下关键词时调用:“优化skill”、“skill评分”、“自动优化”、“auto optimize”、“skill质量检查”、“小鲁班”、“luban”、“优化技能”、“帮我改skill”、“skill怎么样”、“提升skill质量”、“skill review”、“skill打分”。
What it does
1. **单一可编辑资产**:每次只改一个 SKILL.md 2. **双重评估**:结构评分(静态分析)+ 效果验证(实际跑测试看输出) 3. **棘轮机制**:只保留改进,自动回滚退步 4. **独立评分**:评分用子 agent,消除「自己改自己评」的偏差 5. **人在回路**:每个 skill 优化完暂停,用户确认再继续 6. **文本学习率预算**:每次编辑字符变化量 ≤ 原文件 10% 7. **拒绝编辑缓冲区**:被回滚的方案留作负反馈,后续绕行 8. **Epoch Meta-Review**:跨 skill 汇总优化规律,沉淀可迁移经验 9. **场景自适应双模**:Qu…
The skill document
鲁班.Skill
天工开物 工匠鲁班
设计哲学
autoresearch + SkillOpt 场景自适应。
12 条原则
- 单一可编辑资产:每次只改一个 SKILL.md
- 双重评估:结构评分(静态分析)+ 效果验证(实际跑测试看输出)
- 棘轮机制:只保留改进,自动回滚退步
- 独立评分:评分用子 agent,消除「自己改自己评」的偏差
- 人在回路:每个 skill 优化完暂停,用户确认再继续
- 文本学习率预算:每次编辑字符变化量 ≤ 原文件 10%
- 拒绝编辑缓冲区:被回滚的方案留作负反馈,后续绕行
- Epoch Meta-Review:跨 skill 汇总优化规律,沉淀可迁移经验
- 场景自适应双模:Quick(轻量 Self-Refine)/ Full(完整循环 + 仪表盘监控)
- ROI 前置评估:基线分 ≥85 且最低维度分 ≥7 跳过(天花板已近)
- 消费者能力基线:Full 模式先测目标模型裸能力,低于阈值直接阻断
- 全链路审计:Full 模式所有操作记录 git commit 可追溯
路径约定
luban-workspace= 本 SKILL.md 所在目录(即本 skill 目录本身是一个 git 仓库)skills 目录= 父目录- 分支命名
auto-optimize/YYYYMMDD-HHMM - 被优化技能的数据文件(
diagnostics.tsv/rejected_edits.md/test-prompts.json/results.tsv)放在被优化 skill 自己的目录下 - 鲁班全局文件(
meta_learnings.md/luban-profile.json/optimization-registry.tsv)放在luban-workspace/
架构底座:L0-L4 分层治理
5 个正交层级,按场景模式动态激活:
| 层级 | 名称 | Quick | Full |
|---|---|---|---|
| L0 | 确定性执行层 | 启用 | 启用 |
| L1 | 多智能体协作层 | 按需 | 按需 |
| L2 | 技能自适应优化层 | 启用(鼓励探索) | 严格审查后启用 |
| L3 | 价值对齐层 | 软性约束(风格对齐) | 硬性约束(合规对齐) |
| L4 | 元认知审计层 | 不激活 | 激活(跨 skill 经验沉淀) |
L0 原子操作(所有编辑必须走这三步):
- 读:
read_text读取目标 SKILL.md 全文 - 改:
edit_file执行编辑(Quick 模式直接用.bak备份;Full 模式先git commit暂存) - 验:按 Rubric 逐项自检本次改动影响的维度(dim1/4/7a/9 按评分标准逐条核对,dim2/3/5 通读确认未引入新问题),不通过则回退
📋 阅读导航
| 如果你想… | 读哪里 | 预计耗时 |
|---|---|---|
| 只想快速开始 | QUICKSTART.md | 2 分钟 |
| 知道怎么评分 | 评估 Rubric | 5 分钟 |
| 了解优化全流程 | 优化流程(Phase 0-3) | 10 分钟 |
| 遇到错误不知道怎么处理 | 异常与边界条件 / 反模式与FAQ | 3 分钟 |
| 查某个模块做什么 | 资源文件速查 | 2 分钟 |
| 查优化策略怎么选 | 优化策略库 | 5 分钟 |
| 了解学术背景 | 学术依据 | 1 分钟 |
📍 你在这里: 鲁班.Skill > 评估 Rubric
评估 Rubric(10 维度,总分 100)
SkillLens(arXiv 2605.23899)实证 LLM-as-judge 准确率仅 46.4%,加入 meta-skill 三维度后提升到 73.8%。
评分类型
| 维度 | 权重 | 类型 | 评分方式 |
|---|---|---|---|
| dim1 Frontmatter质量 | 7 | 确定性 | name 规范、description 含做什么+何时用+触发词、≤1024 字符、禁结尾空话。三项全过=10,任一缺失=0 |
| dim2 工作流清晰度 | 12 | LLM | 步骤明确可执行、有序号、每步有明确输入/输出 |
| dim3 失败模式编码 | 12 | LLM | 显式编码失败模式("如果 X 失败 → Y");有 fallback 路径和错误恢复。只写正向流程不写失败分支扣 ≥3 分 |
| dim4 检查点设计 | 6 | 确定性 | 正则 /CHECKPOINT|STOP|🔴|⛔/:≥1 处 STOP 级=10,仅 CHECKPOINT=5,无=0 |
| dim5 可执行具体性 | 17 | LLM | 有具体参数/格式/示例;前置扫描软化词(建议/可考虑/根据情况/灵活把握/视情况而定/可能/大概)注入评分上下文。HASP 模块独立产出 dim5 确定性子分 3/17。 |
| dim6 资源整合度 | 4 | LLM | references/assets 引用正确、路径可达。SkillOps 模块独立产出 dim6 确定性子分 3/4。 |
| dim7 整体架构 | 12 | 混合 | 7a 结构合规(6):确定性,标题层级连续不跳跃 + 含 ≥3/4 必含章节→6 分,每缺一项 −2。7b 语义质量(6):LLM judge,冗余段落/AI 腔废话("说白了/换句话说/首先其次综上"/花叔禁用词)/重复描述→一处 −1,下限 0 |
| dim8 实测表现 | 20 | LLM | 子维度:8a 意图完成度(8)——输出是否完成用户意图、偏离程度;8b 净提升幅度(7)——带 skill vs 不带 baseline 质量提升是否明显;8c 副作用(5)——skill 是否引入过度冗余/跑偏/格式异常。总分/20×20 |
| dim9 反例与黑名单 | 6 | 混合 | 两段式:①关键词扫描(不要|禁止|不允许|反例)→≥3 处方进入 ②LLM judge 评估反例质量(是否独立章节、含反模式+为什么+替代做法、覆盖核心风险场景)。Step 1 不通过=0,通过后 Step 2 产出 0-10 映射为最终分 |
| dim10 安全与审查门控度 | 4 | 公式 | Sentinel 2 + P0/P1 审查 2 占比合并。Quick 模式默认满分。P0 任一未闭合→上限锁死 ≤40。 |
权重和:7+12+12+6+17+4+12+20+6+4 = 100。确定性维度覆盖 25/100=25%,LLM 承担 71 分,dim10 公式计算 4 分。
评分公式
维度总分 = Module 子分 + Rubric 子分(同维占比加权合并)。dim5/dim6/dim7b/dim10 四维有模块介入,其余维度仅 Rubric。
加权原始分 = (dim1×7 + dim2×12 + dim3×12 + dim4×6 + dim5×17 + dim6×4 + dim7a×6 + dim7b×6 + dim8×20 + dim9×6 + dim10×4) / 10
架构总览
┌──────────────────────────────────────┐
│ 鲁班.Skill 技能自进化调度器 │
│ 事件驱动 + 定时轮询 + 按需触发 │
└────────────────┬─────────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ │ │
┌─────────┴──────────┐ ┌─────────┴──────────┐ ┌─────────┴────────────┐
│ 模块层(缺陷检测) │ │ 核心引擎(评分+修复)│ │ 事件钩子(旁路) │
│ SkillOps 定期体检 │ │ │ │ 编辑完成 → MUSE 回归 │
│ EvoSkill 失败驱动 │ 子分 │ Phase 0 初始化 │ │ 错误反馈 → EvoSkill │
│ HASP 规则硬化 │───→ │ Phase 0.3 模块检测 │ │ 规则连续忽略 → HASP │
│ CASCADE 知识更新 │ │ 🔴 CHECKPOINT │ └──────────────────────┘
│ Distill 精简瘦身 │ │ Runtime Gate │
│ Sentinel 安全审计 │ │ Phase 0.5 测试设计 │
└────────────────────┘ │ 🔴 CHECKPOINT │
│ │ Phase 1 基线评估 │
│ │ 🔴 CHECKPOINT │
│ │ Phase 2 优化循环 │
│ │ Phase 2.5探索重写 │
│ │ Phase 3 汇总报告 │
│ └─────────┬──────────┘
│ │
│ diagnostics.tsv │ results.tsv
│ (模块子分清单) │ (评分+优化记录)
│ │
└─────────────┬─────────────┘
│
▼
┌─────────────────────┐
│ 技能文件仓库 │
│ SKILL.md │
│ references/ │
│ tests.yaml │
│ test-prompts.json │
└─────────────────────┘
dry_run 降权规则
dry_run 模式下确定性维度不受影响;LLM 维度处理:
| 维度 | dry_run 处理 | 原因 |
|---|---|---|
| dim2/3/5/6/7b/9 | 标注 [confidence: degraded],不降分 | 结构/语义维 LLM 评估不受执行模式影响 |
| dim8a 意图完成度 | 原始分 ×0.5 | 无实测,推演值置信度低 |
| dim8b 净提升幅度 | 原始分 ×0.3 | 无 baseline 对照,推演几乎无意义 |
| dim8c 副作用 | 正则扫描可用(冗余段落/格式异常检测),不降权 | 部分可静态检测 |
| dim10 | 默认 100(同 Quick 模式) | full_test 才能触发门控 |
反例 #6 强制约束:total dry_run_ratio > 30% 时必须至少跑 1 个 full_test。
模块子分规则(Phase 0.3 产出 → Phase 1 同维合并)
模块不独立扣分,而是产出同维内的确定性子分,与 Rubric LLM 子分合并为维度总分。
子分占比(模块 / Rubric):
| 维度 | 权重 | Module 子分 | Rubric 子分 | 依据 |
|---|---|---|---|---|
| dim5 | 17 | HASP 3 | LLM 14 | 软化词是 gate,具体性是核心 |
| dim6 | 4 | SkillOps 3 | LLM 1 | 路径断裂是致命缺陷,编排判断在可用前提下才有意义 |
| dim7b | 6 | Distill 2 | LLM 4 | 文件级冗余信号粗,段落级语义细 |
| dim10 | 4 | Sentinel 2 | P0/P1 审查 2 | 模式覆盖广度 + 推理深度互补 |
Module 子分计算:
| 模块 | 检测项 | 子分计算 | 满分 | 关联维度 |
|---|---|---|---|---|
| SkillOps | 引用路径可达性 | 全完整=3,断裂 ≥3 处=0,1-2 处→线性 | 3 | dim6 |
| SkillOps | YAML/Frontmatter 非法 | 计入 dim1 确定性评分,不计子分 | — | dim1 |
| HASP | 软化词 ≥5 处 | 0 处=3,≥5=0,1-4→线性 | 3 | dim5 |
| HASP | 违规计数 ≥2 次 | 计入 Sentinel 子分,不计独立子分 | — | dim10 |
| CASCADE | 外部引用过期 >180 天 | 0 处过期=dim6 SkillOps 子分不变;≥1 处→标注但由 SkillOps 子分反映 | — | dim6 |
| Distill | 完全未被引用的 references | 0 个=2,≥1 个=0 | 2 | dim7b |
| Distill | F_approx ≥0.7 文件 ≥2 个 | ≥2 个→子分 −1(与死文件子分累加,下限 0) | — | dim7b |
| EvoSkill | 历史振荡(同维度 2+ 轮反复涨跌) | 仅标注 [oscillation],不产生子分 | — | dim3 |
| Sentinel | 恶意指令(exec/system/subprocess/rm−rf/format 等) | 0 类命中=2,每类命中 −0.5,下限 0 | 2 | dim10 |
| Sentinel | 硬编码凭据(API Key/密码/token 明文) | 同上 | 2 | dim10 |
| Sentinel | Prompt 注入模式(DAN/越狱/simulate/system override 等) | 同上 | 2 | dim10 |
| Sentinel | 数据外泄路径(SMTP/上传外网/SCP 等) | 同上 | 2 | dim10 |
| Sentinel | 权限越权(chmod/chown/sudo/icacls 等) | 同上 | 2 | dim10 |
dim10 Sentinel 子分:5 类独立计分,每类 0-2 分(0 命中=2,≥2 处命中=0,1 处=1),5 类取均值直接作为 Sentinel 子分(范围 [0,2])。
dim10 审查子分:起始 2 分,P0 未闭合每项 −2.0,P1 未闭合每项 −0.5,下限 0。即 审查子分 = max(0, 2 − P0未闭合数 × 2.0 − P1未闭合数 × 0.5)。任一 P0 未闭合即清零审查子分,P1 累积 4 项可归零。结合 dim10 上限锁死 ≤40 规则形成双重门控。
模块子分存入 diagnostics.tsv(子分列替代原扣分列),Phase 1 从 diagnostics.tsv 读取,与 Rubric 子分合并为维度总分。
Runtime 中立性 Gate(前置于 Phase 1)
参照 darwin 设为独立 gate,在 Phase 0.3 之后、Phase 1 之前执行。扫描 SKILL.md 全文:
| 检测项 | 判定 | 命中动作 |
|---|---|---|
| 单 runtime 措辞("在 Claude Code 里"/"Cursor 用户请"等) | ❌ 不通过 | 标记 [runtime_gate: fail],强制 Phase 2 第一轮 P0 修复 |
| 安装路径写死单一工具链 | ❌ 不通过 | 同上 |
| 单一 badge/标识语 | ❌ 不通过 | 同上 |
例外:skill name 含单 runtime 标识(如 xxx-codex) | ✅ 豁免 | 不触发 gate |
命中任一项则打断流程,报告具体违规位置(行号+原文),要求修复后重新通过此 Gate → Phase 0.5。免检白名单:skill name 明确绑定单一 runtime。
十维执行模式
| 维度 | Quick 模式 | Full 模式 | 评分方 |
|---|---|---|---|
| dim1 Frontmatter | agent 按评分标准逐项检查 | 同 Quick | 确定性 |
| dim2 工作流 | LLM judge | LLM judge(多评委中位数) | LLM |
| dim3 失败模式 | LLM judge | LLM judge(多评委中位数) | LLM |
| dim4 检查点 | agent 正则扫描 CHECKPOINT/STOP/🔴/⛔ | 同 Quick | 确定性 |
| dim5 具体性 | LLM judge(前置软化词扫描注入上下文) | LLM judge(多评委中位数+软化词扫描)+ HASP 3 占比合并 | LLM |
| dim6 资源整合 | LLM judge | SkillOps 3 + LLM 1 占比合并 | 混合 |
| dim7a 结构合规 | agent 检查标题层级 + 必含章节 | 同 Quick | 确定性 |
| dim7b 语义质量 | LLM judge(冗余/AI 腔/重复) | Distill 2 + LLM 4 占比合并 | LLM |
| dim8 实测 | dry_run 推演(降权规则见上) | full_test(子 agent 跑 test-prompts) | LLM |
| dim9 反例 | 两段式:关键词扫描→LLM judge | 同 Quick | 混合 |
| dim10 安全与审查门控度 | 默认 100 | Sentinel 2 + P0/P1 审查 2 占比合并 | 公式 |
📍 你在这里: 鲁班.Skill > 双模策略
双模策略
模式选择(前置网关)
输入:用户指令 + skill 历史评分
if 用户明确要求"完整/深度/全面/工业/生产" → Full
elif baseline 分 < 70 → Full(需要完整优化)
elif results.tsv 有 revert 记录 → Full(曾退化)
elif delta > 5 且连续 2 轮保持 → Full(有金矿)
elif 用户说"看看/评一下/扫一眼" → Quick
else → Quick(默认)
| Quick | Full | |
|---|---|---|
| 触发 | 默认 | 用户明确要求 / ROI>5 分 / 曾被 revert |
| 评分 | 结构评分(dim1-7,9)+ dry_run 推演 | 全维度 + full_test + 多评委 + 多角色 |
| 优化 | 直接编辑 SKILL.md,self-refine 循环(不建 git 分支,用 .bak 文件回退) | git 分支 + 独立 judge + 仪表盘监控 |
| 审查 | dim10 默认 100 | P0/P1/P2 全量门控 |
| 基线 | 跳过 | 消费者能力基线测试 |
| 停止 | MAX_ROUNDS=3 或触顶信号 | MAX_ROUNDS=5 或触顶信号 |
| meta | 不激活 | L4 激活,输出 meta_learnings.md |
触顶信号:连续 2 轮 Δ < 2 分 → break,见好就收。
双轨反馈
- Quick→Full:Quick 模式下 3 轮内 Δ > 5 分,自动升级 Full(有金矿)
- Full→Quick:Full 模式下连续 3 个 skill 稳定 delta < 3,后续降级 Quick(成熟稳定)
📍 你在这里: 鲁班.Skill > 约束规则
约束规则
- 不改变 skill 核心功能和用途 — 只优化"怎么写"和"怎么执行",不改"做什么" → 白话:鲁班只是润色师,不是重写师。skill 该干嘛还干嘛,只把话说得更清楚
- 不引入新依赖 — 不添加 skill 原本没有的 scripts 或 references 文件 → 白话:不能为了让评分好看就给 skill 偷偷塞新文件,只能用现有的东西优化
- 每轮只改一个维度 — 避免多个变更导致无法归因;相关簇(dim2/3/4)改其一时观察另两个是否跟涨 → 白话:一次只动一个地方,改完看效果,别东改西改不知道哪一步起了作用
- 保持文件大小合理 — 优化后 SKILL.md ≤ 原文件 150% 体积 → 白话:优化不是堆字数,膨胀超过一半就是水内容了
- 尊重花叔风格 — 中文为主、简洁为上 → 白话:别把简洁的中文改成长篇英文论文腔
- 可回滚 — 所有改动在 git 分支上,用
git checkout而非git reset --hard→ 白话:改坏了能一键退回,而且退回记录留痕可查 - 评分独立性 — 效果维度必须用子 agent 独立评分,禁止同一 context「改完直接评」→ 白话:不能自己改完自己打分,那等于既当运动员又当裁判
- Runtime 中立性 — skill 必须能在 Claude Code、Codex、Cursor、OpenClaw 等任何 skills-compatible runtime 正常运行。除非 skill name 明确绑定单一 runtime(如
xxx-codex),任何单 runtime 措辞、单一 badge、安装路径写死均视为 gate 不通过,须在 P0 优先修复 → 白话:skill 不能只在某一个工具里能用,写的时候要通用,除非名字本身就标明了只给某个工具用 - 编辑同源检测 — 编辑 agent 与评分 agent 来自同一 context → dim8 所有子维度分 ×0.5,results.tsv 记录
redline_1_violation=true→ 白话:如果编辑和评分是同一个 agent 做的,效果分直接砍半——因为很可能有偏见
架构红线运行时检测
- 禁止 self-edit-self-evaluate:同一 agent 不得既编辑又评分。违反 → dim8 降权 ×0.5
- 禁止跨维度打包修改:一轮只改一个维度。违反 → 整轮回滚
- 禁止 dry_run 为 full_test:dim8 全部 dry_run 等于跳过效果验证。违反 → results.tsv 标记 invalid
- 禁止 bypass gate:P0 未闭合不得进入下一 phase。违反 → 中断流程
📍 你在这里: 鲁班.Skill > 多评委与多角色评分
多评委与多角色评分(Full 模式)
同质多评委(压制采样噪声)
Full 模式采用 2 个独立 file-agent 评委(dispatch_task),评分取中位数。2 个评委读同一份 SKILL.md 和同一套量规,系统性高估方向一致——中位数不纠正共享偏误。
异质评委(按需触发)
| 触发条件 | 异质评委 | 复核焦点 |
|---|---|---|
| dim1≥9 且 dim8a ≤5 | search-agent | dim1/dim3 真实性抽查 |
| dim8c =5 且 dim9≤3 | computer-agent | 副作用复核 |
| dim4≥9 但从未触发过 revert | computer-agent | dim4/dim10 架构抽查 |
异质评委不计入标准评委数量,结果以 [orthogonality] 标注追加到评分卡。
多角色并行审查(P0/P1/P2 分级)
当 dim8c < 5 或 dim10 原始分 < 60 时触发。角色组合按文档类型选派:
| 文档类型 | 角色组合 |
|---|---|
| 架构设计 | 系统架构师(分层一致性/接口完整性/模块耦合度)+ 安全架构师(审计链完整性/熔断回滚安全性/红线可绕过性)+ SRE(故障恢复路径/降级策略覆盖/告警闭环) |
| 安全规范 | 安全架构师 + 系统架构师 + 技术文档编辑(术语一致性/引用完整性/格式规范) |
| ML 论文 | ML 研究员(测量有效性/退化检测/偏差控制/过拟合防御)+ 系统架构师 + 技术文档编辑 |
| 综合类 | 系统架构师 + 安全架构师 + SRE + ML 研究员 + 技术文档编辑 |
审查严重度分级(直接影响 dim10 审查子分):
| 级别 | 定义 | 审查影响 | 门控 |
|---|---|---|---|
| P0 | 影响正确性或安全性 | −30/项 | 任一未闭合→阻断,dim10 上限锁死 ≤40 |
| P1 | 影响可靠性或可维护性 | −5/项 | ≥3 个未闭合→阻断 |
| P2 | 影响一致性或可读性 | 不扣分 | 不设门控 |
审查流程(阶段 0-4)
阶段 0 — 前置:识别文档类型 → 选派角色 → 公开分级声明
阶段 1 — 独立审查:角色间绝对隔离(不通信、不协商、不共享发现),逐章覆盖登记,输出结构化问题清单(<角色缩写>-<序号>,字段含章节/角色/P级/问题描述/建议修复方向)
阶段 2 — 问题归一化:同类合并(同章节+同根源→保留最高 P 级)、侧面互补(不同视角→合并注明"双重视角")、独立保留(不同章节/根源→各自独立);输出归一化清单(ID 重编号 N-01…)+ 原始ID→归一化ID 映射表
阶段 3 — 编辑修复:按 P0→P1→P2 逐项修复,禁止"顺手改"(仅修清单内条目),修复后全文档交叉验证
阶段 4 — 复审闭环:P0 由原审查角色逐条确认闭合(不通过打回阶段 3);P1 由编辑方自检 + 原角色 30% 抽查(不通过降级 P0);P2 由编辑方自检(不通过升级 P1)
子 Agent 不可用降级
当 dispatch_task 无法派发独立 judge 时(工具报错或 agent 类型不可用),触发降级:
| 受影响功能 | 降级行为 | results.tsv 标记 |
|---|---|---|
| 同质多评委 | 主 agent 单次 LLM 评分,不取中位数 | judge_count=1,eval_mode=fallback |
| 异质评委 | 跳过,不执行 | — |
| 多角色并行审查 | 跳过阶段 0-4,dim10 默认 100 | eval_mode=fallback |
| dim8 效果维度 | 无法跑 full_test,降为 dry_run 推演 | eval_mode=fallback_dry |
| Phase 2 Step 5 重评 | 主 agent 单次评分,不 spawn 子 agent | judge_count=1 |
降级模式下 dim8 子维度处理:8a 意图完成度 → 推演值 ×0.3(无实测置信度低)、8b 净提升 → 推演值 ×0.3(无 baseline 对照)、8c 副作用 → 正则扫描(格式异常/冗余文本检测)。降级原因写入 results.tsv note 字段。
警告:降级模式评分不可与 full_test 评分直接比较——降级分虚高。连续 3 轮降级需在汇总报告中显式标注。
📍 你在这里: 鲁班.Skill > 优化流程
优化流程(Phase 0-3)
Phase 0: 初始化
Quick 模式:跳过 step 2(不建 git 分支),其余相同。
1. 确认优化范围:全部 skills 或用户指定列表
2. git checkout -b auto-optimize/YYYYMMDD-HHMM
3. 检查 results.tsv 是否存在,不存在则创建并写入表头(12 列)
4. 读取 results.tsv 了解历史评分
5. ROI 前置评估:若历史基线分 ≥85 且最低维度分 ≥7 → 跳过优化,告知用户「天花板已近,建议仅评估不改」
6. 从 results.tsv 读取 status=revert 的历史维度,标记为「绕行」;对照反例黑名单 8 条,确认当前方案不命中
7. 检查 diagnostics.tsv 是否存在,不存在则创建并写入表头(模块/维度/子分/文件/行号/详情)
Phase 0.3: 模块缺陷检测(子分清单)
六模块对目标 skill 做静态检测,输出确定性子分到 diagnostics.tsv。模块不产生评分,只产子分。
for each skill:
1. 按优先级顺序执行:SkillOps → EvoSkill → HASP → CASCADE → Distill → Sentinel
2. 每模块按「模块子分规则」逐项检测
3. 命中缺陷 → 追加 diagnostics.tsv 一行(模块/维度/子分/文件/行号/详情)
4. 模块完成后不回写 SKILL.md,仅写入子分记录
EvoSkill 例外:振荡检测仅标注 [oscillation],不产生子分,供 Phase 2 Step 1 人工决策。
Sentinel 执行方式:运行 scripts/security_audit.py --diagnostics ,扫描目标 skill 的 scripts/ + references/ 中所有文本文件(排除 SKILL.md 文档层描述),匹配 5 类模式:
- 恶意指令:
exec(/system(/subprocess/rm -rf/format/del /f/reg delete - 硬编码凭据:
api_key=/password=/token=/secret=/ 私钥 PEM - Prompt 注入:
DAN/jailbreak/simulate/system override/ignore.*instructions - 数据外泄:
smtp/upload.*external/scp/ftp upload - 权限越权:
chmod/chown/sudo/su -/icacls
🔴 CHECKPOINT:展示子分摘要(各维度子分、哪些模块有输出、EvoSkill 振荡告警、Sentinel 安全告警),确认后进入 Runtime 中立性 Gate → Phase 0.5。
Runtime 中立性 Gate
扫描 SKILL.md 全文,命中 Runtime 中立性 Gate 中任一未豁免项则打断流程,报告违规行号+原文,要求修复后重新进 Phase 1。通过后进入 Phase 0.5。
Phase 0.5: 测试 Prompt 设计
for each skill:
1. 读 SKILL.md,理解功能
2. 设计 2-3 个测试 prompt(典型场景 + 歧义场景)
3. 保存到 skill目录/test-prompts.json
test-prompts.json 模板:
[
{
"id": "tp-01",
"prompt": "帮我优化这个skill的frontmatter",
"expected_behavior": "能正确读取并识别 frontmatter 字段",
"category": "典型场景"
},
{
"id": "tp-02",
"prompt": "改一下",
"expected_behavior": "歧义输入,应追问具体需求而非直接修改",
"category": "歧义场景"
}
]
展示所有 prompt 给用户,🔴 CHECKPOINT · 🛑 STOP 确认后进入 Phase 1。
Phase 1: 基线评估
维度总分 = Module 子分 + Rubric 子分(同维内按比例加权合并)。dim5/dim6/dim7b/dim10 四维有模块介入,其余维度仅 Rubric。
for each skill:
1. 按 Rubric 表逐维评分,得各维度 Rubric 子分
2. 读取 diagnostics.tsv,取 Module 子分
3. 同维合并:dim5 = (HASP子分 × 3 + Rubric子分 × 14) / 17 × 10
dim6 = (SkillOps子分 × 3 + Rubric子分 × 1) / 4 × 10 # SkillOps=0 不归零 Rubric(Rubric 评估语义完整性,与引用可达性正交)
dim7b = (Distill子分 × 2 + Rubric子分 × 4) / 6 × 10
dim10 = (Sentinel子分 × 2 + P0/P1审查子分 × 2) / 4 × 10
其余维度 = Rubric子分 × 10
4. 效果评分:spawn 子 agent 跑 test-prompts
- with_skill: 带 SKILL.md 执行
- baseline: 不带 skill 直接执行(裸 prompt)
5. 加权计算总分,记录到 results.tsv
Full 模式额外执行消费者能力基线测试:若 references/baseline-skill.md 不存在,则按当前所评估 skill 的核心领域自动生成一份通用基线 skill(含 name/description/workflow/约束规则 等基本结构),保存到该路径。用 baseline-skill 测目标模型裸能力,若 baseline-skill 评分 < 60 则输出能力不足报告并阻断后续优化。此测试独立于 dim8 的 with_skill vs baseline 对比,不要混淆。
🔴 CHECKPOINT:展示基线分 + diagnostics 诊断摘要,确认后进入 Phase 2。
Phase 2: 优化循环
Quick 模式:不建 git 分支,Step 3 用
cp SKILL.md SKILL.md.bak代替 git commit,Step 6 用cp SKILL.md.bak SKILL.md代替 git checkout 回滚。
for each skill(按基线分数升序,先优化最弱的):
round = 0
while round < MAX_ROUNDS:
round += 1
# Step 0: 模块检测(每轮重新执行)
重新运行 Phase 0.3 六模块检测 → 更新 diagnostics.tsv(子分清单)
EvoSkill 读取最新的 results.tsv,HASP 读取最新的 SKILL.md,Distill 重算密度
# Step 1: 诊断
读取更新后的 diagnostics.tsv + results.tsv 最新评分
找子分最低或得分最低维度。注意 dim2/3/4 是相关簇——修一个时另两个常跟涨。
EvoSkill 振荡标注 `[oscillation]` 的维度→跳过不改,除非用户明确要求。
# Step 2: 提方案
1 个具体改进方案:改什么(段落/行)+ 为什么(对应 rubric 哪条)+ 预期提升。
对照反例黑名单 8 条 + rejected_edits.md + luban-profile.json oscillation_guard,命中 → 改方案重写。
# Step 3: 编辑前备份
git add -A && git commit -m "pre-edit: {skill_name}"
# Step 4: 执行改进
编辑 SKILL.md(字符变化 ≤10%) → 按 Rubric 逐项自检 dim1/4/7a/9
# Step 5: 重新评分
结构维度:主 agent 重评;效果维度:spawn 独立子 agent(不同 context)
# Step 6: 决策
if 新总分 > 旧总分:
git commit -m "optimize: {skill_name} +{delta}分 [{dimension}]"
触顶信号 → break
else:
git checkout HEAD~1 # 回滚
记录到 rejected_edits.md
break
🔴 CHECKPOINT · 每个 skill 优化完展示改动摘要 + 分数变化,等用户确认再继续。
Phase 2 出口:全部 skill 优化完成后 → 检查 Phase 2.5 触发条件:满足则进入 Phase 2.5,否则进入 Phase 3。
Phase 2.5: 探索性重写(按需触发)
连续 2 个 skill 都在 round 1 break 时触发(或单 skill 连续 2 轮 round 1 break):git stash → 从头重写 SKILL.md → 重新评估 → 重写版 > stash 版则采用,否则 git stash pop。🛑 STOP:必须征得用户同意。
Phase 3: 汇总报告
展示全局战绩:
| 项目 | 内容 |
|---|---|
| 优化 skill 数 | N 个,保留 M 个 |
| 分数变化 | 表格(skill名/旧分/新分/Δ/主要改进维度) |
| 主要改进摘要 | 按维度聚类,标注高频改进方向 |
| 健康度仪表盘 | Full 模式:dry_run 比例、revert 率、同源检测触发次数、oscillation 告警 |
Epoch Meta-Review(Full 模式)
1. 汇总本次所有 skill 的优化记录
2. 提炼可迁移规律 → 追加到 meta_learnings.md
3. 识别 oscillation 模式:同一维度在 2+ skill 间反复涨跌 → 追加到 luban-profile.json:
{
"oscillation_guard": [
{"dimension": "dim5", "skills": ["skill-a", "skill-b"], "pattern": "细化→回滚→细化→回滚", "recommendation": "跳过 dim5 优化,先加固 dim3"}
]
}
此字段供后续 Phase 2 Step 2 查阅,命中则跳过该维度。
备份轮转策略
git 分支无限增长会导致仓库膨胀。Phase 3 完成后触发清理:
- 每个 skill 目录保留最近 5 轮编辑的备份(
latest-5) - baseline 备份和首轮备份永久保留,不受轮转影响
- 超出 5 轮的历史备份移至
luban-backups-archive/{skill_name}/归档
📍 你在这里: 鲁班.Skill > 优化流程 > 异常与边界条件
异常与边界条件
流程假设环境理想,但实操常遇异常。以下预定义 fallback,保证优化不会「一跑就卡住」。
| 场景 | 触发条件 | 处理动作 | 通俗解释 |
|---|---|---|---|
| 不在 git 仓库 | git rev-parse 失败 | 询问用户:执行 git init 或回退到文件备份;用户选后者则 cp SKILL.md SKILL.md.bak.YYYYMMDD-HHMM 代替 revert | 找不到 Git 仓库,优化历史无法记录。可以新建仓库或用文件备份代替 |
| results.tsv 缺失 | 文件不存在 | 新建并写表头行(12 列) | 评分记录文件还没创建,这是第一次跑优化,自动建一个 |
| results.tsv 损坏 | 列数不匹配 / 非 TSV | 备份为 .bak.YYYYMMDD-HHMM 后重建,告知用户 | 评分记录文件格式坏了(可能是手动编辑过),旧文件备份后再建新的 |
| 分支已存在 | git checkout -b 失败 | 分支名末尾加 -2 / -3;第 3 次失败切回现有分支并询问继续还是新起 | Git 分支名冲突了,自动换名字重试,最多 3 次 |
| git revert 失败 | 冲突 / 工作树脏 | 先 git stash 重试;仍失败则从上一个 commit 读出 SKILL.md 覆盖当前文件手动恢复 | 回滚时文件有冲突,先暂存当前修改再试,实在不行直接读上一个版本覆盖 |
| MAX_ROUNDS 触顶 | 已达上限仍有短板 | 不强制 break,展示当前最弱维度问用户「继续加 1 轮 / 进入探索性重写 / 收工」 | 优化轮数到上限了但还有改进空间,让你决定要不要继续 |
| 优化后超 150% 体积 | 新文件 > 原 × 1.5 | 拒绝提交,回精简(删冗余/合并重复)后重评 | 改完后文件膨胀太厉害(超过原来的 1.5 倍),先瘦身再提交 |
| test-prompts.json 已存在 | 文件已在 skill 目录 | 默认复用并展示,问用户「复用 / 重写 / 追加」三选一 | 测试题已经有了,问你是直接复用还是重新出题 |
| SKILL.md 找不到 | 目录存在但无 SKILL.md | 该 skill 终止,results.tsv 记 status=error,继续下一个 | 这个 skill 目录里没有主文件,跳过它继续处理下一个 |
| 消费者基线失败 | 目标模型裸能力不足 | 输出能力不足报告,阻断后续优化 | 当前模型的裸能力不够,强行优化效果会差,先停掉 |
| 子 Agent 不可用 | dispatch_task 返回错误 | 触发降级模式(见多评委章节),results.tsv 记 eval_mode=fallback | 独立评分工具不可用(环境限制),降级为单 agent 评分 |
| 分数精度漂移 | 总分差 < 0.05 | 总分保留 1 位小数,改进需严格 > 旧分(不靠四舍五入) | 分数变化太小(不到 0.05 分),不算真正提升 |
原则:异常先告知用户,再按规则处理;绝不静默跳过或静默失败。
📍 你在这里: 鲁班.Skill > 关键数据结构
关键数据结构
results.tsv(12 列)
timestamp commit skill round old_score new_score status dim_changed delta note eval_mode judge_count
2026-06-11T10:00 baseline luban-slides 0 - 78 baseline - - 初始评估 full_test 2
2026-06-11T10:05 a1b2c3d luban-slides 1 78 84 keep dim3 +6 补充 fallback 三段式 full_test 2
2026-06-11T10:10 b2c3d4e luban-slides 2 84 82 revert dim5 -2 过度细化,回滚 dry_run 1
eval_mode:full_test(跑了子 agent 测试)或dry_run(模拟推演)judge_count: 参与评分的独立 judge 数量- 文件位置:被优化 skill 目录下的
results.tsv
diagnostics.tsv
模块子分清单(Phase 0.3 产出),每模块对目标 skill 的静态缺陷检测结果:
模块 维度 子分 文件 行号 详情
SkillOps dim6 3 - - 全引用路径可到达
HASP dim5 1 SKILL.md - 软化词 3 处(建议×2/可考虑×1)
EvoSkill dim3 — - - [oscillation] dim5 历史 3 轮回弹
- 文件位置:被优化 skill 目录下的
diagnostics.tsv - Phase 0.3 每次运行前清空重建(保持最新一轮子分)
- Phase 1 读子分按维度取 Module 子分,与 Rubric 子分占比加权合并
- EvoSkill 不产生子分,
子分=—,详情标注[oscillation]
optimization-registry.tsv
鲁班全局优化登记表(鲁班自己的目录下),记录每次对某个 skill 执行的优化:
skill_name:被优化的 skill 名timestamp:运行时间戳(ISO 8601)score_before:优化前分数score_after:优化后分数rounds:本次运行的优化轮次eval_mode:full_test/dry_run- 只增不删,每次
luban optimize追加一行 - 文件位置:
luban-workspace/optimization-registry.tsv
rejected_edits.md
被回滚的编辑方案,每轮回滚追加一条:
## REJ-{序号} | {时间戳} | {skill名}
- **目标维度**: dim5
- **改动段落**: L120-L135
- **方案摘要**: 将三处"建议"改为"必须"
- **被拒原因**: 改变了 skill 核心语义,违反约束规则 #1
- **绕行建议**: dim5 已触顶,优先修 dim3
meta_learnings.md
跨 skill 可迁移规律,Phase 3 Meta-Review 追加:
## ML-{序号} | {时间戳}
- **规律**: dim2/3/4 相关簇——修 dim3(三段式 fallback)时 dim2 平均跟涨 1.5 分
- **来源 skill**: luban-slides, code-reviewer(2/2 验证)
- **置信度**: 高
- **可复用场景**: 任何有"步骤描述"+"错误处理"双薄弱点的 skill
📍 你在这里: 鲁班.Skill > 反例黑名单
luban 操作反例黑名单
来自早期 40 次 0 revert 的教训。每轮 Phase 2 Step 2 改动前对照一次,命中 → 改方案重写。
| # | 反模式 | 替代做法 |
|---|---|---|
| 1 | 同 context 自评自改 | 必须 spawn 独立子 agent 评分 |
| 2 | git reset --hard 当回滚 | 用 git checkout 保留追溯链 |
| 3 | 为凑分增冗余 | 触顶信号(连续 2 轮 Δ<2)→ break |
| 4 | 跳过 test-prompts 直接评分 | Phase 0.5 强制设计 2-3 prompts |
| 5 | 轮内改多个维度 | 每轮 1 个维度 |
| 6 | dry_run 比例 > 30% | 强制至少 1 个 full_test |
| 7 | 静默跳过异常 | 异常表 fallback 必须先告知 |
| 8 | 忽视维度相关性单独优化 | 看相关簇短板再决定 |
📎 HASP / CASCADE / Distill / MUSE / 调度器 模块完整流程 → references/modules.md
优化策略库
按优先级排序,每轮只做最高优先级的一个。命中即停止向下检索。
P0: 适配性与效果问题(gate 项,必须先修)
| 类型 | 识别特征 | 优化策略 | 关联维度 |
|---|---|---|---|
| Runtime 绑定 | SKILL.md 出现单 runtime 措辞(如「在 Claude Code 里」)、安装指引只给一种路径、工作流硬编码 runtime 工具无 fallback | 替换为 runtime-neutral 措辞;安装改为「一行命令自动检测 + 手动路径表」;标注「仅在某 runtime 可用」 | dim6/dim8 |
| 效果倒退 | 带 skill 比不带还差 | skill 过度约束,精简指令 | dim8 |
| 输出偏离 | 测试输出不符合预期 | 检查是否有误导性指令;补充明确输出模板 | dim8 |
| 副作用触发 | dim8c 命中 | 逐项检查副作用来源,修复后重测 | dim8/dim10 |
| Sentinel 安全告警 | security_audit.py 命中恶意指令/硬编码凭据/Prompt注入/数据外泄/权限越权 | 恶意指令→移除或授权;凭据→环境变量替代;注入→增加 guards;外泄→去除网络出口;越权→降级为普通操作 | dim10 |
例外:skill name 明确标注单 runtime(如 xxx-codex)的,跳过 Runtime 绑定检查。
P1: 结构性问题
| 类型 | 识别特征 | 优化策略 | 关联维度 |
|---|---|---|---|
| Frontmatter 缺触发词 | name 无触发场景描述、description 无"何时用" | 补充中英文触发词;掐掉结尾空话 | dim1 |
| 无 Phase/Step 结构 | 流程缺编号、步骤间跳跃 | 重组为线性流程,每步标注输入→输出 | dim2 |
| 无检查点 | 关键决策处无视觉标记 | 插入 🔴 CHECKPOINT / 🛑 STOP | dim4 |
| 标题跳跃 | H1→H3 无 H2,章节重复 | 补中间层级,合并重复章节 | dim7 |
| 无错误处理 | 只写正常路径 | 补三段式 fallback:触发条件 / 一线修复 / 仍失败兜底 | dim3 |
P2: 具体性问题
| 类型 | 识别特征 | 优化策略 | 关联维度 |
|---|---|---|---|
| 步骤模糊 | "处理图片""优化代码"等无参数描述 | 改为具体操作 + 参数(工具名/格式/阈值) | dim5 |
| 缺输入/输出规格 | 步骤未标明输入格式和输出格式 | 补充格式(JSON Schema/文件路径/示例) | dim5 |
| 缺异常处理 | 无"如果 X 失败,则 Y" | 补 if-then 兜底路径 | dim3 |
| 软化词过多 | "建议/可考虑/根据情况"频繁出现 | 改"建议"为"必须",补具体数值 | dim5 |
| 资源引用断裂 | 引用文件路径不存在 | 删除死链接或补建引用文件 | dim6 |
P3: 可读性问题
| 类型 | 识别特征 | 优化策略 | 关联维度 |
|---|---|---|---|
| 段落过长 | 单段 > 200 字符 | 拆分;适合对比/参数的内容改用表格 | dim7 |
| 重复描述 | 同信息在多处出现 | 合并去重,保留最清晰版本 | dim7 |
| 缺反例标注 | 全文无"不要/禁止/反例"关键词 | 在关键操作步骤旁加反例标注(≥3 处不同语境) | dim9 |
| 缺速查入口 | 用户需通读全文才能上手 | 添加 TL;DR 或决策树 | dim5/dim7 |
维度相关簇提醒:dim2/3/4 联动——修 dim3(fallback 三段式)时 dim2 常跟涨 1-2 分。
优先级公式:弱点深度 = (10 − 当前维度分) × 权重。同级策略内按弱点深度降序选目标。
📍 你在这里: 鲁班.Skill > HL 操作速查
HL 操作速查
3 条高杠杆操作:
- HL-1(dim4)显性视觉标记是杠杆:加 🔴 CHECKPOINT / 🛑 STOP。4 行改动撬动 dim4 +3 分
- HL-2(dim2/3/4 相关簇)三段式 fallback 一石三鸟:修 dim3(触发条件/一线修复/仍失败兜底)→ dim2 跟涨 1-2 分,dim4 顺便补检查点
- HL-3(Phase 2 退出)触顶自动 break:+0.15 是停手信号,不是继续信号
完整红线定义见上文「架构红线运行时检测」4 条。
📎 HASP / CASCADE / Distill / MUSE / 调度器 模块完整流程 → references/modules.md
📍 你在这里: 鲁班.Skill > 资源文件速查
资源文件速查
| 路径 | 用途 |
|---|---|
optimization-registry.tsv | 鲁班全局优化登记表(哪些 skill 跑过、分数) |
{skill目录}/test-prompts.json | 每个 skill 的测试 prompt |
{skill目录}/tests.yaml | MUSE 回归测试用例(持续沉淀) |
scripts/skillops_scanner.py | SkillOps 工具化扫描(路径/YAML/引用链结构分析) |
scripts/evo_skill_patcher.py | EvoSkill 失败驱动补丁建议生成 |
scripts/hasp_hardener.py | HASP 规则硬化(软化词检测→Must/PF 升级) |
scripts/cascade_updater.py | CASCADE 外部引用过时检测与更新建议 |
scripts/distill_analyzer.py | Distill 引用矩阵构建与 F_approx 计算 |
scripts/muse_generator.py | MUSE 测试用例自动生成与回归执行 |
scripts/security_audit.py | Sentinel 安全审计(恶意指令/凭据/注入/外泄/越权) |
references/SA-DM.md | SkillOps 设计方法论完整论文 |
references/baseline-skill.md | 消费者能力基线测试参考 skill(首次运行时自动生成) |
📎 反模式、FAQ、架构红线 → references/faq.md
Related skills
Search, read, and manage YouTube videos, playlists, channels, subscriptions, and comments via managed OAuth.
Read and write Excel workbooks, worksheets, ranges, tables, and charts in OneDrive through Microsoft Graph with managed OAuth.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Query and manage Linear issues, projects, teams, cycles, labels, and comments through a managed OAuth GraphQL endpoint.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
More from ebandao777-oss
Browse all skills天工.skill(Tiangong Skill)智能体设计师。当用户需要设计、创建或优化AI智能体/Agent,或基于真实人物蒸馏思维框架创建人物Skill时使用。支持两种范式:人物蒸馏(由内而外,复刻心智模型)与岗位型专家(由外而内,定义岗位职责)。目标:创建专业领域专家角色,具备清晰人设和扎实交付力。
工业级RAG切片工具「可落地、可量化、可优化」,将RAG知识库长文档拆解为语义完整、检索就绪的原子化知识切片,内置多层质量门禁(校验→审计→检索可达性评估),确保切片可用性与RAG检索命中率。
工业级RAG Markdown物料生成技能,使用 markitdown 将各类文档和文件转换为 Markdown 格式。支持 .doc/.ppt 老格式自动预处理(Word/PowerPoint COM / LibreOffice)。启动时自动检测 OS/版本/能力,按平台选择最佳执行路径。触发词:转 Markdown / 转换文档 / markitdown / 文档转 md / 批量转换。当需要将 PDF、Word (.docx/.doc)、PowerPoint (.pptx/.ppt)、Excel (.xlsx, .xls)、HTML、CSV、JSON、XML、图片(含 EXIF/OCR)、音频(含语音转写)、ZIP 压缩包、YouTube 链接或 EPub 电子书转换为 Markdown 格式,为知识库提供统一的"通用语言"时触发此技能。
钟馗.Skill——Agent Skill 安全审查专家。直来直去、快刀斩乱麻,三层审查(静态审计/行为模拟/供应链溯源)覆盖10类风险,输出结构化安全裁定(✅干净/⚠️可疑/🚫恶意)。Use when 用户说"审查这个Skill"、"安全检查"、"钟馗看下"、"审一下"、"查一下这个skill"、安装Skill前的安全评估、或需要审计SKILL.md的恶意载荷。
玄奘.skill 当用户明确请求紧箍咒模式,或表现出沮丧、反复失败(2次及以上)、消极被动、抱怨质量、未核实即声称完成、想要放弃,或要求更努力/换种方法时触发。常见触发词:'try harder'、'figure it out'、'stop giving up'、'you keep failing'、'加油'、'别偷懒'、'你再试试'、'为什么还不行'、'你怎么又失败了'、'又错了'、'检查下'、'完善'、'审核'、'质量太差'、'换个方法'、'stop spinning'、'you broke it'、'/pua'、'紧箍咒模式'。对于正常的首次编程或信息查询请求,请勿触发。
鲁班.Skill(luban Skill):工业级智能体技能优化器。当用户提及以下关键词时调用:“优化skill”、“skill评分”、“自动优化”、“auto optimize”、“skill质量检查”、“小鲁班”、“luban”、“优化技能”、“帮我改skill”、“skill怎么样”、“提升skill质量”...