<!-- title: 会记教训的Skill：三路线横评拆解 -->

# 会记教训的Skill：napkin、backpass、pro-workflow 三路线横评

## 概述

“同一个纠正对 Claude 说五十遍”是每个重度用户的共同痛点，而 Skills 生态给出的答案正在分裂成三条技术路线：**纯提示词路线**（napkin，584 星，整个仓库仅 6KB，靠一份永远生效的 SKILL.md 让 Agent 自己记笔记）、**外部审计路线**（backpass，611 星，把 AGENTS.md 当作可训练参数，读七个 Harness 的本地 transcript 做“梯度下降”）、**平台全家桶路线**（pro-workflow，2797 星，34 个 Skills + 37 个 Hook 脚本 + SQLite/FTS5 知识面）。本文逐段拆解前两者的核心文件，横评第三者，并回答一个设计问题：**让 Agent 记住教训，到底该靠提示词纪律、证据门禁，还是存储基建？**

## 一、为什么“记忆”成了 Skills 生态的新战场

通用效率四件套（审查、测试、重构、调试）的头部位置已被反复拆解过，而记忆类 Skill 解决的是它们的上游问题：**经验不跨会话留存**。pro-workflow 的 README 把这个痛点写得最直白："You correct Claude the same way 50 times. You explain conventions every new session. Context compacts, learnings, vanish, mistakes repeat."（同一个纠正你说五十遍，每个新会话都要重讲一遍约定，上下文一压缩，学到的东西蒸发，错误重演。）

三条路线对同一个问题给出了完全不同的答案，这也让它们成为观察 SKILL.md 设计边界的好样本：

```mermaid
mindmap
  root((Agent记忆三路线))
    纯提示词: napkin
      6KB 仓库
      永远生效 无触发器
      Agent自己写自己读
    外部审计: backpass
      读7种Harness的transcript
      证据门禁 两会话规则
      人工apply才落盘
    平台全家桶: pro-workflow
      SQLite + FTS5
      37个hooks 24个事件
      wiki知识面 自动研究循环
```

## 二、评测对比表

| Skill | 功能完整度 (25%) | 设计质量 (25%) | 实战效果 (20%) | 上手难度 (15%) | 社区活跃 (15%) | 加权总分 |
|-------|------|------|------|------|------|------|
| blader/napkin | ★★★ | ★★★★½ | ★★★★ | ★★★★★ | ★★★½ | **3.95** |
| rohitg00/pro-workflow | ★★★★★ | ★★★ | ★★★★ | ★★½ | ★★★★½ | **3.85** |
| kunchenguid/backpass | ★★★★ | ★★★★★ | ★★★ | ★★½ | ★★★½ | **3.75** |

> 参照系：obra/superpowers（方法论框架，已进官方插件市场）在此赛道只覆盖“流程记忆”不覆盖“错误记忆”；affaan-m/ECC 定位为 140+ Skills 的综合收藏集（GitHub API 本次返回其 star 数高达 24.5 万，与建仓仅一年半的事实严重不符，疑似刷量或统计异常，本文不采信该数字）。

## 三、深拆 napkin：6KB 的“永远生效”范本

**定位**。blader/napkin，2026-02-07 建仓，584 星 46 fork，最后一次代码推送停在 2026-02-21——它不是弃更，而是“完成态”：整个仓库只有一个 SKILL.md，给 Agent 一块名为 `.claude/napkin.md` 的每仓库草稿纸，记错误、记纠正、记有效模式。

**Frontmatter 设计**。这份 SKILL.md 最值得抄的是它的 `description` 写法：

> "Activates EVERY session, unconditionally. Read the napkin before doing anything. … **This skill is always active. Every session. No trigger required.**"

官方设计指南一向把 description 当“触发器”用（写给模型匹配场景用的），napkin 反其道行之：**主动声明自己是无触发器的常驻技能**。对“记忆”这个场景这是唯一正确的选择——教训必须在所有会话生效，不存在“需要时才想起”。另一个彩蛋是 frontmatter 里 `author: Codex`——这份 Claude 技能本身是作者用另一个 AI 写的，版本号已迭代到 5.0.0。

**正文四段式结构**，每段都在对抗一个具体的失效模式：

1. **Session Start: Read Your Notes** —— 对抗“从不回读”。开场第一件事读 napkin，且"Internalize what's there and apply it silently. Don't announce that you read it."（默默应用，不要宣告）。文件不存在则按模板创建：Corrections 表格（日期/来源/出了什么错/应该怎么做）+ 用户偏好 + 有效/无效模式 + 领域笔记。
2. **Continuous Updates** —— 对抗“只在会话头尾写”。明确列出六个写入时机，其中最锋利的一句是："**Your mistakes count the same as user corrections — maybe more**, because you're the one who knows what went wrong internally."（你自己犯的错和用户纠正同等重要——甚至更重要，因为内部哪里出错只有你自己知道。）
3. **What to Log** —— 对抗“记废话”。给出了正反例："Made an error" 是无用的；"Assumed the API returns a list but it returns a paginated object with `.items`" 才是可执行的。判据一句话：**任何会改变你下个会话行为的事，才配写进去。**
4. **Napkin Maintenance** —— 对抗无限膨胀。每 5-10 个会话或超过 150 行就合并冗余、把重复纠正升级为偏好、归档过时条目，硬上限 200 行。理由是一句格言："A 50-line napkin of hard-won rules beats a 500-line log of raw entries."（50 行血泪规则胜过 500 行流水账。）

**短板**。它是自我报告式的：Agent 忘了写、写了不实、或者 napkin 本身被上下文压缩挤掉，没有任何外部机制兜底。584 星的口碑建立在“零成本、立刻可用”上，而不是可靠性上。

## 四、深拆 backpass：把 AGENTS.md 当可训练参数

**定位**。kunchenguid/backpass，新星榜 611 星，npm 包 `backpass`，平台 macOS/Linux，仓库标语是本文题眼："Gradient descent for your agent memory."。此前横评曾把 backpass 列为“概念投赞成票、实现待验证”——读完其完整 README 可以确认：它不是隐喻玩梗，而是一条真实存在的五阶段流水线。

**ML 隐喻的严格对应**是它设计上最漂亮的部分：

| 机器学习概念 | backpass 里的对应物 |
|---|---|
| 权重 weights | AGENTS.md/CLAUDE.md + 项目技能 |
| 前向传播 | 一次 Agent 会话 |
| 损失信号 | 留在磁盘上的会话 transcript |
| 采样与算 loss | 蒸馏后逐条转写判定（默认每条一次廉价模型调用） |
| 梯度聚合 | 按指令折叠正/负证据 |
| 一次梯度步 | 至多 5 条编辑（学习率），合成阶段产出 |
| 人工 gate | `backpass apply` 是唯一有写权限的命令 |

**五阶段流水线**：

```mermaid
flowchart LR
    A[7种Harness的本地transcript] --> B["蒸馏：压缩96-99%"]
    B --> C["算loss：逐条判定+强制原文引用"]
    C --> D["聚合梯度：按指令折叠证据"]
    D --> E["梯度下降：ADD/REMOVE/REWRITE/EXTRACT→SKILL/MOVE"]
    E --> F{机械门禁}
    F -- 通过 --> G["backpass apply（唯一写入口）"]
    F -- 违规 --> E
    G --> H{人工Gate}
    H -- 接受 --> I["写入 AGENTS.md / 技能文件"]
    H -- 拒绝 --> J["rejections.json 记住拒绝"]
    I --> K["权重更新完成，进入下一次前向传播"]
```

**四条防幻觉机械门禁**（README 原话是"mechanical gates run, and they are not negotiable"）值得所有做 Agent 工具的人抄写：

- **每条断言必须携带逐字引用**，无引用的证据直接丢弃——README 称这是"the single most important defence against a model confabulating influence"（对抗模型虚构影响力的最重要防线）；
- **新指令需要至少两个独立会话的证据**（`minGapEvidence: 2`），一次糟糕的会话永远改不动权重；
- **负证据分类决定命运**：`harm`（遵守了指令反而造成损害）支持删除指令，`non-compliance`（Agent 无视了指令）只支持强化——“被跳过的规则需要强化，而不是删除”；
- **token 预算是硬约束**：常驻面（记忆文件 + 所有技能的 description 行）默认 5000 token（约 20KB，按 bytes/4 估算），超预算时合成进入零和模式——每条新增必须点名由哪条删除或抽取来“买单”。

**Skills as overflow 是它对 SKILL.md 生态的最大理论贡献**。README 有一张 2×2 矩阵：一条知识若在 ≥20% 的会话里有用（或安全攸关）→ 放记忆文件；触发条件写得进一行 description → 抽成技能；触发条件检测不了 → 删除候选。关键洞察是：**技能的 description 是常驻成本，正文是触发后才付费的免费部分**。README 给出的账目示例：一条 640 token、只在 4% 会话有用的流程，抽成技能后变成"−611 tok always-loaded, +35 tok description"。这等于把“什么时候该写成 Skill”从品味问题变成了可计算的预算问题。

**工程细节同样扎实**：本地优先，直接读 claude/codex/pi/opencode/grok/cursor CLI/hermes 七种 Harness 的 transcript 存储，不上传；蒸馏阶段把 1MB 会话压到几千 token（96-99% 压缩率），密钥先行脱敏；超过 100 条 transcript 按半衰期 14 天做新近加权抽样，抽样种子取自转写本身的持久标识、可复现；被拒绝的编辑会被记住，除非出现实质性新证据，否则不再重复提议——没有 DEFER 按钮，“因为拒绝本身就是记忆”。

**短板**。依赖链重：需要 Node ≥ 22.5，且所有模型调用经由 `acpx` 走你已登录的 Harness（自带两级模型阶梯：廉价模型做分析、强模型做合成，如 `claude-sonnet-5` 分析、`claude-opus-5` 合成），没有 API key 兜底——环境不全会直接报错。transcript 格式未文档化、随时可能变，README 自己承认"causal attribution is genuinely hard"。

## 五、横评 pro-workflow：SQLite 全家桶路线

**定位**。rohitg00/pro-workflow，2026-02-01 建仓，2797 星 276 fork，8 月中仍在推送，v3.3。它不满足于“记住错误”，而是把整个会话生命周期铺在一个 SQLite 存储上：**34 个 Skills、8 个 Agents、22 个斜杠命令、横跨 24 个事件的 37 个 Hook 脚本**。

三条支柱：**自纠错记忆**（每条纠正经 `/learn-rule` 变成规则，FTS5 全文索引，SessionStart 时自动加载）；**知识面**（v3.3 新增：`/wiki init` 建持久研究 wiki，`UserPromptSubmit` 钩子在提示词命中索引话题时自动注入前 3 条命中）；**质量门禁**（LLM 驱动的密钥扫描钩子、压缩感知的状态保存、成本追踪）。

它的 README 自带与 superpowers（14 Skills）、ECC（140+）、gstack、GSD 的对比表，其差异化卖点不在 Skills 数量而在**自动化程度**：纠正捕获靠 `Stop` 事件钩子解析 `[LEARN]` 块，不靠 Agent 自觉；知识注入靠 `UserPromptSubmit` 钩子，不靠模型检索。代价是复杂度外溢：README 承认部分市场分发的包缺构建步骤（`/doctor` 报 `KB: missing` 需手动 `npm install && npm run build`），跨 Agent 分发走 SkillKit 还需 `--force` 绕过其安全扫描器对标准 Node 模式的误报（issue skillkit#129）。它甚至留了全局急停：`touch ~/.pro-workflow/STOP` 停掉一切自动研究循环——一个需要急停开关的 Skill 体系，本身就是复杂度的供词。

## 六、三路线对比与排行榜

| 维度排名 | 第一 | 第二 | 第三 |
|---|---|---|---|
| 设计质量 | backpass（证据门禁+预算模型） | napkin（约束密度极高） | pro-workflow（钩子工程） |
| 开箱即用 | napkin（复制一个文件） | pro-workflow（一条插件命令） | backpass（Node+acpx 前置） |
| 长期可靠性 | backpass（外部审计、人工 gate） | pro-workflow（存储层兜底） | napkin（无兜底） |
| 对 SKILL.md 作者的参考价值 | napkin（逐段可抄） | backpass（预算理论） | pro-workflow（钩子清单） |

三者的关系不是替代而是**分层**：napkin 是提示词层的最小闭环，适合个人与轻项目；backpass 是审计层，适合想让“经验沉淀”脱离 Agent 自觉的团队；pro-workflow 是平台层，适合愿意用基建复杂度换取全自动的单人高产流水线。一个务实的组合是 napkin 起步 → 纠正量大到记不过来时引入 backpass 做季度性“权重整理” → 多项目重度用户再上 pro-workflow。

## 七、安装与使用

```bash
# napkin —— 复制即用（个人技能目录）
mkdir -p ~/.claude/skills/napkin
curl -o ~/.claude/skills/napkin/SKILL.md \
  https://raw.githubusercontent.com/blader/napkin/main/SKILL.md

# backpass —— 需 Node>=22.5 且 PATH 里有 acpx
npm install -g backpass    # 或 npx backpass 免安装
cd your-repo
backpass init              # 写 .backpassrc.json
backpass                   # 分析，永不写入
backpass apply             # 审阅每条编辑，接受/拒绝

# pro-workflow —— Claude Code 插件市场
/plugin marketplace add rohitg00/pro-workflow
/plugin install pro-workflow@pro-workflow
/doctor                    # 首次冒烟测试
# 跨 Agent（Cursor/Codex 等 32+，经 SkillKit）
npx skillkit install rohitg00/pro-workflow --agent cursor --force
```

## 八、给 SKILL.md 作者的三条启示

1. **description 有两套合法写法**：要么当触发器写（"Skill description field is a trigger, not a summary — write it for the model"，pro-workflow README 引 Thariq Shihipar 语），要么像 napkin 一样显式声明“我永远生效、无触发器”——最糟的是写成给人看的摘要。
2. **给记忆类内容设预算**。napkin 的 200 行硬上限和 backpass 的 5000 token 常驻预算指向同一条规律：每一条常驻规则都是未来所有会话的税，没有删除机制的累积必然稀释指令遵循。
3. **高价值约束要配机械门禁**。backpass 证明“强制逐字引用 + 双会话证据 + 唯一写入口”可以把模型幻觉挡在结构层，而不靠提示词恳求——这正是 SKILL.md（提示词层）与工具脚本（结构层）分工的教科书案例。

## 参考来源

1. [backpass README (raw)](https://raw.githubusercontent.com/kunchenguid/backpass/main/README.md) — 五阶段流水线、证据门禁、token 预算与安装命令的原始出处
2. [napkin SKILL.md (raw)](https://raw.githubusercontent.com/blader/napkin/main/SKILL.md) — 逐段拆解所引用的全部原文片段
3. [pro-workflow README (raw)](https://raw.githubusercontent.com/rohitg00/pro-workflow/main/README.md) — 三支柱架构、34 Skills 清单、安装路径与竞品对比表
4. [GitHub Repos Search API（agent memory + claude skill）](https://github.com/rohitg00/pro-workflow) — 三者的建仓时间、star/fork 数、推送时间等元数据（ECC 数据异常亦出于此）
5. [kunchenguid/backpass 仓库主页](https://github.com/kunchenguid/backpass) — 611 星数与"gradient descent"定位描述的交叉验证

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
