技能瘦身与效率优化
对已安装的 Skill 做「质量 + 效率 + token」三维优化。双引擎驱动:10 维 Rubric 评分迭代引擎(打分 → 诊断 → 多轮改进 → 独立重评)与结构瘦身引擎(6 维评估 → 拆分 → 零丢失校验)。
三条铁律(不可越线)
- 不删实质内容——省下的 token 必须来自"不读无关内容",绝不能来自"丢掉规范条款"。
- 不绑单一 runtime——措辞 runtime-neutral,路径用探测式(Gate 见
references/modules.md§4)。 - 不无备份就改——改前归档到
~/.workbuddy/skills/dist/<skill>_v<旧版本>.zip。
适用场景
用户说:优化技能 / 技能太耗 token / 加载太慢 / 精简 skill / 降低上下文占用 / 技能评分体检 / 技能排名;或某 Skill 被频繁调用但体积臃肿。
两种工作模式
| 模式 | 何时用 | 走什么 |
|---|---|---|
| Quick | 单技能快速体检、纯 token 瘦身 | references/slimming.md 七步;跳过 git 分支与完整安全审查 |
| Full | 多技能、要打分排名与迭代证据链 | references/workflow.md Phase 0~3 全流程 |
路由表(按需加载,不要预读)
| 文件 | 内容 | 何时读 |
|---|---|---|
references/rubric.md |
10 维评分锚点、权重、公式、档位 | 要打分 / 排名时 |
references/modules.md |
六模块定义、子分口径、Runtime 中立性 Gate | Phase 0.3 / Phase 2 Step 0 |
references/workflow.md |
Phase 0~3 全流程 + 产物文件规范(tsv / json) | Full 模式 |
references/slimming.md |
6 维评估 + 7 步瘦身(含 6↔10 维映射) | Quick 模式 / 纯瘦身 |
references/strategy-library.md |
P0→P3 策略库 + 反例黑名单 8 条 | Phase 2 提方案时 |
scripts/quantify.py |
逐文件 + 逐章节 token 统计 | 量化现状(第 1 步) |
scripts/verify_zero_loss.py |
零丢失校验(8 类标识串 + 汉字总数) | 改完必跑 |
scripts/check_links.py |
断链检查(带路径引用是否可达) | 拆分 / 搬迁后必跑 |
scripts/audit.py |
体检:frontmatter 膨胀(changelog 堆积)/ 单章节占比 / 章节级跨文件断链 | 接手陌生技能先跑;--all 扫全库 |
scripts/score.py |
确定性维度打分:按 rubric 锚点直出 32/100 权重子分,可写 diagnostics.tsv |
Phase 1 基线打分 / 要可复现分数时 |
加载纪律:只读命中的,不预读;同一文件不重复读;做 Quick 不要读 workflow.md,做 Full 必须读 rubric.md。assets/ 下的人工查阅件不读(如 assets/使用说明.md,已列入 .aiignore;其内容由本入口与 references/ 完整覆盖)——确需读取时先说明原因并取得同意。
10 维 Rubric 速查(细则见 references/rubric.md)
| # | 维度 | 权重 | 类型 |
|---|---|---|---|
| dim1 | Frontmatter 质量 | 7 | 确定性 |
| dim2 | 工作流清晰度 | 12 | LLM |
| dim3 | 失败模式编码 | 12 | LLM |
| dim4 | 检查点设计 | 6 | 确定性 |
| dim5 | 可执行具体性 | 17 | LLM(HASP 子分 3) |
| dim6 | 资源整合度 | 4 | LLM(SkillOps 子分 3) |
| dim7a | 结构合规 | 6 | 确定性 |
| dim7b | 语义质量 | 6 | LLM(Distill 子分 2) |
| dim8 | 实测表现 | 20 | LLM |
| dim9 | 反例与黑名单 | 6 | 混合 |
| dim10 | 安全与审查门控 | 4 | 公式 |
总分 = Σ(维度总分 × 权重) / 10,满分 100。≥85 且最低维 ≥7 → 跳过优化。
其中 dim1 / dim4 / dim6(前段) / dim7a / dim9(前段) / dim10(可分) / dim5 的 HASP 子分 / dim7b 的 Distill 子分
= 32 权重由 scripts/score.py 直出、可复现;其余 68 权重必须按锚点人评,脚本只给代理指标。
六模块(Phase 0.3 按序跑,见 references/modules.md)
SkillOps → EvoSkill → HASP → CASCADE → Distill → Sentinel
产出的确定性子分写入 diagnostics.tsv。EvoSkill 只打 [oscillation] 标注、不给分。
最小执行路径(TL;DR)
Quick:audit.py 体检 → quantify.py → 6 维评估 → 拆分 / 瘦身 → verify_zero_loss.py → 归档备份
Full :Phase 0 初始化 → 0.3 六模块检测 → 0.5 测试 Prompt 设计(🛑) → 1 基线评估
→ 1 基线评估:先 `score.py <dir> --tsv diagnostics.tsv` 拿确定性子分
→ 2 优化循环(每轮只做 1 方案、改动 ≤10%、spawn 子 agent 重评)
→ 2.5 探索性重写(按需)→ 3 汇总报告
检查点(必守)
- 🔴 CHECKPOINT:Phase 0.3 后展示子分摘要;Phase 1 后确认基线;Phase 2 每个技能改完展示改动摘要并等用户确认
- 🛑 STOP:Phase 0.5 测试 Prompt 集确认后;Phase 2.5 探索性重写前必须征得用户同意
失败与降级(三段式)
- 识别:脚本报错 / 目标技能目录不存在 / 过半维度无法判定
- 降级:脚本不可用 → 手工统计;完整评分不可行 → 退回 6 维轻量体检
- 记录:降级原因写入
results.tsv的note列,并在汇报中显式标注
常见坑
见 references/slimming.md 末节;提优化方案前先对照 references/strategy-library.md 的反例黑名单 8 条。