loot
每次会话都会掉落战利品。大部分战利品死在了聊天记录里。你的任务是:找到它们,全部记录下来,根据证据而不是热情来评判,只有在用户同意后,才交付那些真正值得发布的稀有物品。
loot的大部分价值在于 LOOT.md:一个记录用户所有发现的持续日志。发布是例外情况。
Loot 是会话中任何有价值的部分,不仅限于次要发现:
| 类型 | 是什么样子 | 常见形式 |
|---|---|---|
| 构建成果 | 会话所讨论的应用、工具或脚本 | 仓库 |
| 组件 | 一个能独立于该项目运行的片段(钩子、解析器、配置、提示词) | 仓库或Gist |
| 技术技巧 | 一个技巧、修复或方法(让X快4倍,让Y能在本地运行) | 文章 + Gist 或仓库 |
| 知识经验 | 用户给你的纠正和反馈,使输出变得更好 | 技能 |
| 故事 | 从问题到结果的路径,包括死胡同 | 文章 |
| 数据 | 基准测试、对比、测量结果 | 文章或仓库README |
一个会话通常包含多个项目。一个项目通常值得多种形式(仓库 + 文章 + 演示视频)。
模式
| 命令 | 功能 |
|---|---|
/loot | 扫描当前会话,显示表格,询问要发布什么 |
/loot "<主题>" | 仅查看某一件事(更省资源):"那个 ffmpeg 技巧" |
/loot 2, /loot all | 发布战利品2,或发布所有被评为稀有或更好的战利品,无需询问 |
/loot --list | 列出最近的过往会话供选择 |
/loot <session.jsonl> | 扫描一个过往会话(而非当前会话) |
/loot review | 重新评估 LOOT.md 中已存在的内容(见步骤6) |
1. 扫描
阅读整个对话及其涉及的文件。对于过往会话,或当当前会话的早期部分已被总结时,请改为阅读转录:
node <此技能所在文件夹>/scripts/transcript.mjs list # 列出最近的 Claude Code + Codex 会话
node <此技能所在文件夹>/scripts/transcript.mjs read <文件> # 获取压缩文本,已隐藏机密
当前会话的转录是 ~/.claude/projects/<项目>/ 中最新创建的文件。如果你无法阅读总结的部分,请在表格中说明:早期发现可能缺失。列出候选项目。对于每一项,写下它做什么以及它有效的证据(测试、基准测试、前后对比、用户的反应)。
当一项成果仅能在该用户的设置下运行且无法被通用化,当它主要是别人的代码,或者当它是用户的私密或客户项目时,请丢弃它。不要在表格中提及会话中的机密、凭据或个人数据。
2. 评级
评级是一个过滤器,它的工作是说“不”。你对自己刚刚帮助完成的成果判断力很差:你分不清什么对世界是新的,你倾向于迎合用户。所以稀有度来自证据,而且评判发生在远离对话的地方。
为每个候选收集证据:
- 查询关键词:一个陌生人在有这个问题时会输入到搜索引擎的词语
- 搜索:运行它(web、GitHub、npm/PyPI)并列出最接近的结果及其链接。搜索它做什么,而不是它的名字。没有搜索工具:标注"未检查"。
- 证据:会话中实际发生的测试、基准测试或前后对比,并注明位置(命令、文件、消息),或"无"。永远不要根据记忆重构证据:AI笔记会编造名称、数字和细节。
- 优势:它与最接近的结果相比有何不同,尽可能量化
在别处评级。 如果你可以启动一个子代理,只给它候选项目和它们的证据,绝不包含对话内容,并附带以下简要说明:"根据以下门槛对每个项目进行评级。首先论证每个项目为普通级,只有当其证据符合门槛时才提升。不确定时取更低评级。仅使用给定的证据;绝不要添加或假设任何内容。对于任何只差一个条件就能升到下一级的项目,指出能提升它的最廉价证据。"如果你不能启动子代理,请在评级前先写出每个项目为普通级的最强论据。
| 稀有度 | 需要满足所有条件 | 形式 |
|---|---|---|
| 普通 | 低于稀有任何条件 | LOOT.md 中的一行 |
| 稀有 | 有真实查询关键词;有引用搜索且未发现等价物,或有与最接近结果的量化优势;有工作证明 | Gist、短文章、或小型仓库或技能 |
| 史诗 | 稀有条件,加上与命名替代品的量化优势,且能从干净克隆运行 | 仓库或技能、文章、演示、发布草稿 |
硬性规则:
- "未检查"或"无证据"意味着普通级,无论感觉多好。
- 存在等价物且未量化优势:普通级。基于其他项目的README论证的优势不算量化。
- 平级向下取整。
- 接近升级的获得一个下一步。 一个只差一个条件就能升到下一级的项目被标记为
[普通, 近稀有]或[稀有, 近史诗],并附带一个next:行:能提升它的最廉价证据,以及大致所需时间。这将把"不"变成一个用户可以选择去做的待办事项。 - 预期几乎一切内容都是普通级。如果一个会话中有超过一个项目被评为普通级以上,请说明为什么这个会话是例外。
- 普通级不是失败。它是防止工作丢失的日志条目。
显示战利品表格,附带任何被评为普通级以上的证据,然后停止:
LOOT: 3 个战利品
1. [稀有, 近史诗] remotion-ae-transitions: Remotion中的After Effects风格过渡,完全本地化
查询关键词: "remotion after effects transitions"
搜索: @remotion/transitions (滑入、淡入、擦除), 一个付费模板包;没有做这些的
证据: 会话中渲染并通过了6个过渡效果
优势: 未量化,所以不是史诗 → Gist + 短文章
下一步: 使用@remotion/transitions渲染相同的3个镜头并比较;然后从干净克隆运行(约45分钟)
2. [普通] ffmpeg 两次编码技巧: 在ffmpeg wiki中已有文档 → LOOT.md
3. [普通] 自定义字体加载器: 仅在此项目中有用 → LOOT.md
发布哪个?(数字, "all", 或 "none")
最多显示7个战利品,最强的优先。所有其他内容在"提及"下占一行。
显示表格后,将其追加到项目根目录的 LOOT.md 中(如果缺少则创建),并注明日期。一个战利品只有在一个未来的会话没有它就会出错或重做实际工作时,才获得一个完整的条目。否则它只是一行"提及"条目。只有保持可读性,日志才有用。
3. 锻造
对于每个选中的项目,在当前仓库历史之外的新文件夹(默认为 ../<slug>,或用户指定的位置)中构建完成的作品。阅读 references/forge.md 了解每种形式的检查清单。简言之:
- 将其通用化。 移除项目名称、硬编码路径、客户细节和死代码。它必须能从干净克隆根据README中的步骤运行。运行它。
- 命名。 简短、易记、说明功能。检查名称是否可用:
gh search repos <name>、npm view <name>(退出码1表示可用)。 - 标语。 一行话,告诉一个陌生人它做什么以及为谁服务。
- Logo。 简单、一到两种颜色、在16px下可读、在浅色和深色背景下都有效。
- 社交预览图。 一张1280×640的卡片(Logo、名称、标语),这样分享链接时不会显示空白的GitHub卡片。
- README。 结果优先,然后是快速开始,然后是如何工作。
- 证据。 测试、基准测试或前后对比。绝不编造数字。
技能: 如果选中的形式是技能,请遵循与此技能一起发布的 skill-factory 技能(../skill-factory/SKILL.md),将项目的证据(查询关键词、搜索结果、证据、优势)作为初始规格交给它。跳过该项目的步骤3–5:skill-factory 会自己测试、审查和把关发布。
4. 检查(切勿跳过)
-
扫描每个将要发布的文件夹中的机密:
- 始终:
node <此技能所在文件夹>/scripts/scan.mjs <文件夹> - 另外,如果安装了
gitleaks:gitleaks dir <文件夹>,并且当文件夹有git历史时:gitleaks git <文件夹>。
修复每个发现,或在那一行用
loot:allow标记为误报并说明原因。手动检查每个warn行。绝不推送未被gitleaks扫描过的现有git历史;如果没有gitleaks,则从一个新的git init开始发布。 - 始终:
-
阅读每个将要发布的文件。查找个人数据、客户名称、内部主机名、私有仓库链接以及在其他许可证下的代码。
-
向用户展示一个清单:每个目标(仓库名称、公开或私有、博客草稿或已发布)、文件、标语。请求明确的是。一个"是"仅涵盖该清单,不多不少。
5. 发布
阅读 references/ship.md 了解命令和备用方案。优先使用你自己的工具;备用方案是交给用户一个可直接运行的命令或文件。
- 仓库:
gh repo create,描述,标签,推送。 - 文章:当已配置token时,在dev.to或Hashnode上创建草稿;否则创建一个Markdown文件。Medium:Markdown加上导入说明。
- 发布帖(Show HN、X、Reddit),仅限史诗级:在
launch/文件夹中创建草稿(已加入gitignore)。绝不发布。 - 以链接到所有已发布的内容以及任何留给用户的内容结束。
6. 回顾 (/loot review)
来自一个会话的评级只是猜测。证据需要随时间积累:
- 阅读
LOOT.md。将同一个被再次发现的条目分组(相同核心概念,即使措辞不同)。 - 当某些情况发生变化时重新评级:该条目出现在3个或更多会话中,它获得了证据(用户、基准测试、有人要求它),或者新的搜索再也找不到等价物。使用相同的证据规则和相同的外部评分者。
- 显示哪些条目发生了变化以及原因。在
LOOT.md中写入一个带日期的"回顾"部分;绝不重写旧条目。然后提议发布任何现在被评为稀有或更好的内容。
利用代理可用的工具
| 需求 | 最佳选择 | 始终有效的备用方案 |
|---|---|---|
| Logo / 封面图片 | 你自己的图像生成工具或图像MCP(如果有) | 手写SVG |
| 机密扫描 | gitleaks(也覆盖git历史) | 内置的 scripts/scan.mjs |
| 演示视频 | Remotion(Node) | 截图 + GIF |
| 截图 | 浏览器工具 | 请用户提供 |
| "存在吗?" | 网络搜索 | 标注"未检查"(上限为普通级) |
| 过往或已总结的会话 | scripts/transcript.mjs(Claude Code,Codex) | 请用户粘贴或导出对话 |
| 独立评分 | 一个从未看过对话的子代理 | 先写出每个条目为普通级的最强论据 |
| 发布仓库 | gh CLI | 打印命令 |
| 发布文章 | 已存在token的平台API | Markdown文件 |
规则
- 在用户对精确清单表示同意之前,任何内容不得公开。
- 绝不询问、键入或存储凭据。如果某个工具未登录,使用备用方案。
- 绝不发布机密、个人数据或客户端/雇主的作品。
- 尊重许可证:不要对你未编写的代码重新授权。
- 没有伪造的证据:没有虚假的基准测试、用户、引用或星数。
- 用用户在聊天中的语气写,而不是像新闻稿一样。