Muninn Skill Leveler — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Muninn Skill Leveler (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center">
一个给 Claude Code 的 Skill 做体检和升级的 Skill —— 依据你的真实使用记录,不靠拍脑袋。
这是什么 · 真实例子 · 怎么工作 · 你会得到什么 · 安装 · 和同类的区别
「想得再好,不如记得真。」
</div>
Muninn demo:扫描历史会话 → 输出 Skill 等级卡
<sub>真实运行回放:扫描本地历史会话 → 输出一张 Skill 等级卡。演示用合成数据(已脱敏),录制脚本 assets/demo.tape 与数据一起入库,vhs assets/demo.tape 可随时重录。</sub>
Muninn 是一个 Claude Code / Agent Skill,但它的工作对象是你写的其他 Skill。
你大概攒了一些自己的 Skill。问题是:它们实际用起来到底好不好,没人说得清—— 哪几次该触发却没触发、哪几次输出被你当场改掉、哪个功能优化着优化着就悄悄没了。 这些只发生在一次次真实对话里,过后谁也不记得。
Muninn 读你本地的历史对话记录(只读),把这些痕迹挖出来:给每个 Skill 定级、 指出最该修的地方、帮你修好,并把每个真实问题变成一道回归测试——同一个坑不踩第二次。
名字取自北欧神话里奥丁的记忆渡鸦 Muninn:每天飞遍世界,黄昏带回真实发生过的事。 文档里偶尔出现的"放飞 / 符文石 / 萨迦"只是这套命名的延续,每个都会用大白话解释,不用记。
有人写了个「AI 安全周报」Skill:自动检索新闻、生成飞书卡片发出去。优化过一轮之后, 他发现周报里的新闻配图不见了——可代码里配图功能明明还在,所有测试也全绿。
真相是:生成那一期时跳过了"抠图"这步,5 条新闻的配图全留空了; 而 Skill 自带的校验脚本恰好允许"没图就留空",于是 18 项检查全 PASS,没有一道拦得住。
Muninn 是这样接住的:
| 谁在判 | 对同一份周报的结论 |
|---|---|
| Skill 自带的校验脚本 | ✅ PASS(留空是允许的) |
| Muninn 的能力核对 | 🔴 FAIL:上一期 3/5 条带图,这期 0/5,功能在产物里消失了 |
于是 Muninn 判定这是一次"假升级",冻结它的等级,直到把配图补回来(最终补到 4/5) 才解冻、晋级。
测试全绿 ≠ 改好了。 这就是 Muninn 和"跑一遍测试就完事"的根本区别。 完整经过见 examples/weekly-report-capability-catch.md。
误触发、输出被当场改、每次用都要手动补的同一句话。每条都带出处坐标。
用户为什么要装它、有没有独特之处和一句话钩子;再上网找同类(GitHub / ClawHub / skills.sh 等)看它在生态里站哪、该往哪进化。对着一个不该存在的 Skill 精修,是白练。
专门防止优化时把某个好功能悄悄删掉(就是上面那个配图例子)。
该级标准达标 + 回归测试全绿 + 能力清单一项没少 + 改前改后产物对比没变差。 任何一道不过就回退(每轮都留了能一键还原的检查点,改错了不慌)。
拿不准就问你,不瞎改。 有客观标准的事(触发对不对、测试过没过、功能在不在)Muninn 自己判;主观或看你业务的事(定位、命名、要不要砍某个功能、这问题对你的用户成不成立) 一律带选项抛给你选,绝不替你猜。
跑完不是一句"改好了",而是几样看得见、留得住的东西——除了等级卡,其余都是本地 markdown,每个 Skill 一套,下次接着用:
| 产物 | 是什么 |
|---|---|
| 等级卡 | 一张可截图的成绩单:当前等级、攒了多少证据、几道测试全绿、最弱一环、下一步练什么(就是上面 demo 里那张) |
| 成长档案 | 这个 Skill 的完整履历:升级史、栽过的跟头、每轮改动的可还原检查点、下次先查什么 |
| 回归测试集 | 每次真实失败凝成的测试用例,只增不减;想公开时可随你的 Skill 仓库一起入库 |
| 能力清单 | "它现在能干什么"的逐项核对表,每项带"怎么确认还活着"——防止下次优化把好功能删了 |
| 定位卡 | 验前提的结论、同类对标表(带链接)、一句话新定位——告诉你它该往哪进化 |
| 等级 | 名号 | 大白话标准 |
|---|---|---|
| Lv1 | 雏鸦 | 装得上、触发过、核心流程完整跑通过一次 |
| Lv2 | 离巢 | 触发可靠:8 条模拟话术全判对,实战里没有该触发没触发 / 误触发 |
| Lv3 | 历战 | 失败有准备:已知的出错场景都有应对,危险操作有禁区 |
| Lv4 | 英灵 | 有回归测试傍身:≥5 道源自真实失败的测试用例,全绿 |
| Lv5 | 神使 | 能发布:陌生人能装上、看懂、三分钟跑出第一个结果 |
升级靠考试、不靠文笔。多数自用 Skill 练到 Lv3-Lv4 就是最优解—— Muninn 不会劝你给一个自用工具硬补发布材料。
npx skills add uaandesign/muninn-skill-leveler装完,对 Claude Code 说:
用 muninn 盘点一下我的 skill 库,告诉我哪个最值得先练或者直接点名一个:「用 muninn 给我的 xxx skill 定个级」。
其它会触发它的说法:
| 维度 | 常见做法 | Muninn |
|---|---|---|
| 凭什么判断好坏 | 读代码、当场跑几个测试 | 先挖你的真实使用历史:你实际怎么用、它实际怎么挂 |
| 该不该练 | 拿到就改 | 先验前提 + 找同类:不该存在的 Skill 直接劝退,省得白练 |
| 改进形态 | 改一次、出一份报告,结束 | 持续练级:成长档案常驻,下次接着练 |
| 测试集 | 临时想几个 case | 失败变测试:每次真实翻车永久变成一道回归测试 |
| 防退化 | 测试绿了就算改好 | 能力清单 + 产物对比:没失败过的好功能也受保护,删了 / 变差就回退 |
| 拿不准时 | 自己猜着改 | 主观/业务判断抛给你选,带"建议 + 备选 + 为什么",不替你拍板 |
| 改错了 | 难复原 | 检查点:每轮改动一个可一键还原的存档 |
| 质量方向 | 只会变好 | 会掉级:功能丢了、测试红了都会冻结降级,逆水行舟 |
| 范围 | 一次盯一个 | 顺带全库盘点:用得多 × 等级低 = 优先练 |
~/.claude/muninn/);任何要公开的东西(测试用例、截图、提交)都先脱敏。
skills/muninn/
├── SKILL.md # 主流程:挖历史 → 验前提·定位 → 盘能力 → 定级 → 练级 → 存档
├── references/
│ ├── level-rubric.md # 五级标准、升级四道闸、降级规则
│ ├── evidence-guide.md # 怎么从对话里认出五类证据、怎么脱敏
│ ├── positioning-guide.md # 值不值得练:验前提、找同类、定位置
│ ├── capability-guide.md # 能力清单:怎么盘、怎么核,守住没失败过的好功能
│ └── saga-template.md # 成长档案模板
├── tools/
│ ├── mine-sessions.sh # 扫描历史对话,初筛某个 skill 的使用痕迹(只读)
│ ├── capability-manifest.sh # 扫出"它现在能干什么"的清单初稿(只读)
│ └── scan-skills.sh # 全库盘点与培养优先级
└── examples/
└── weekly-report-capability-catch.md # 真实案例:上面那个配图消失的完整经过<div align="center">
鸦衔之记,落石为证。🪶
</div>
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.