mcpField
B
bargainbadger-price-update

bargainbadger-price-update

github.com/gkwa生产力056 次安装1 天前更新
代码仓库

关于 bargainbadger-price-update

bargainbadger-price-update 是将一次商品搜索会话整理为产品 vault 笔记中带日期的价格区段的技能。它记录价格而不推荐购买对象,并要求依据 vault 中的规范处理数据。

主要功能

  1. 01读取 vault 规范与链接笔记
  2. 02核实搜索会话及商品范围
  3. 03筛选并统计抓取数据
  4. 04用代码计算衍生价格
  5. 05更新价格区段并提交笔记

适用场景

  1. 01为产品笔记添加当日价格区段
  2. 02记录多个商店的商品价格
  3. 03排除单杯咖啡胶囊并说明原因

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gkwa/volcanicviper --skill bargainbadger-price-update

安装后在 Claude Code 中输入/bargainbadger-price-update确认已加载。

附带文件tile.json

详细介绍

功能说明

一次抓取会在一个会话中采集所有商店里同一个产品词的结果。

此技能会将该会话的结果整理为产品库笔记中的带日期价格部分。

更新后的笔记就是交付成果。

即使请求的措辞是在询问最优惠的价格,任务也是记录价格,而不是选出赢家。

产品是一个参数,因此无论会话搜索的是什么产品,步骤都相同。

首先阅读规范

所有事实信息——数据库位置、架构、字段定义、采样查询、提取规则、计算方式和边缘情况——都存放在知识库中。

开始操作前,先阅读索引笔记:

/Users/mtm/Documents/Obsidian Vault/bargainbadger.md

然后阅读其 Contents 部分链接的所有笔记;如果其中某篇笔记将某个定义指向另一篇笔记,也要继续阅读该二级链接。

解析 wikilink 时,将知识库路径与链接文本拼接,并添加 .md 后缀。

此处有意不重复列出 Contents 清单,因为笔记会不断新增、拆分和重命名。

请以索引当前列出的内容为准,而不是以编写此技能时列出的内容为准。

此文件描述的是工作流,而不是参考资料。

它不陈述任何关于数据、数据库或架构的事实,也不得加入此类事实。

如果知识库缺少关于数据、架构或表的事实,请将其添加到知识库,而不是添加到此文件。

写作的版式是例外,应在此处定义。

成品部分在页面上的编排方式与杂货无关,因此,下方“部分布局”中的规则属于此文件自身,并不代表知识库规范有所缺漏。

触发条件

仅在收到将价格写入产品笔记的请求时运行此流程。

会触发此流程的请求:

  • “我刚刚搜索了青葱,你能根据今天的结果更新青葱 Markdown 文件,添加一个新的价格部分吗?”
  • “在韭葱笔记中添加一个价格部分”
  • “现在发酵黄油的最优惠价格是多少?”

不会触发此流程的请求:

  • 对数据库进行采样以制定架构,这属于规范编写工作
  • 添加变更日志条目
  • 任何最终不会在产品笔记中写入表格的事项

工作流

  1. 按上述要求阅读规范。
  2. 找出会话,并确认实际搜索的内容,然后再相信任何附加在会话上的标签。
  3. 在知识库中找到产品笔记,绝不要因此而新建笔记。
  4. 提取会话中的行并筛选出对应产品,报告采集、保留和舍弃的行数。
  5. 分批从这些行中提取架构定义的字段,并写入知识库之外的临时文件。
  6. 在代码中计算所有派生价格,绝不要手动计算。
  7. 按照下方“部分布局”的要求,将表格整理成价格部分,并插入到最新的现有价格部分上方,同时保留较早的部分不变;如果笔记中没有价格部分,则新建一个。
  8. 提交笔记,并删除临时文件。

除第 7 步中的部分布局来自此文件外,其余每一步的规则都来自规范。

这也包括表格本身——包含哪些列、每列的内容以及行的排序方式,均由规范定义,而非此文件定义。

如果规范未作说明,则参照笔记中最近的价格部分,并将这一选择报告为规范中的缺漏,而不是默默采用。

继承现有格式只是临时做法,直到规范对其作出定义。

章节布局

表格背后的推理值得记录下来,但绝不能让读者在看到表格之前先读它。

因此,价格章节应先放表格,再接一个子章节:

  • 表格紧接在带日期的标题下方,中间不插入任何内容。
  • ### notes,收录本章节的所有文字说明。

表格本身不需要标题,因为带日期的标题已经是它的标题。

这正是这种布局的全部意义:从笔记的目录跳转到带日期的标题时,读者会直接看到数字,而这通常正是他们最想看的;若有时需要了解推理过程,再往下一个标题就是。

不要在表格上方放摘要,无论多短都不行:想看数字的读者已经能直接看到,而想了解来龙去脉的读者会打开 ### notes。

### notes 应收录所有内容,开头写明运行 ID 和商店数量、本章节的范围,以及捕获、保留和剔除的行数;接着列出主要发现;然后说明表格的构建方式:如何将爬取词缩小到该产品、表格收录了哪些变体以及哪些被放到另一则笔记中、列名采用了哪些标准化词汇、逐行处理情况,以及哪些商品信息未生成行及其原因。

不要再细分这个子章节,因为已经决定跳过推理过程的读者,不会因内容被归入不同类别而得到任何好处。

用引导句和项目符号列表来组织和分组内容,将未生成行的商品信息放在最后,并为每一项添加链接。

如果某个产品需要多个表格,因为它按两种无法相互比较的维度销售,那么这些表格就不能都直接放在带日期的标题下方;因此,每个表格都要用一个 ### 标题注明其依据,例如 ### priced by weight 和 ### priced by volume,最后再接 ### notes。

知识库中的旧章节使用了各种其他子章节名称,不要沿用这些名称。

非目标

  • 决定架构问题;这类问题应记录在知识库笔记及其变更日志中。
  • 更新笔记 front matter 中的商店布尔字段。
  • 建议购买哪种产品,或从哪家商店购买。
  • 运行爬取;用户会在调用此技能前完成爬取。

排除单杯装咖啡胶囊

单杯装咖啡胶囊——Keurig、K-Cup、Nespresso 以及其他任何单杯胶囊——绝不能出现在价格章节中。

在缩小范围时就将它们剔除,不要在任何地方记录其价格。每杯喝完后都要丢弃单次使用的塑料胶囊,而咖啡袋则不需要丢弃,因此无论价格如何,这种形式都不在范围内。

这是关于用户会购买什么的长期偏好,不是架构规则。

如果一次爬取同时返回咖啡袋和胶囊,只将咖啡袋列入表格。在本章节的 ### notes 中记录:根据长期偏好排除了胶囊,并注明数量;如果某家商店只销售胶囊,导致其商品完全未出现在表格中,也要注明该商店。

架构变更

权威约定位于知识库笔记“bargainbadger change log.md”的简介中,枢纽笔记“bargainbadger.md”中有链接指向它。进行任何架构变更前,请先阅读该约定。

每项架构变更都要添加带日期的记录,注明促成变更的产品,引用捕获到的商品信息文本并说明其中哪些内容迫使我们做出变更,同时提供 productUrl。

这些证据必须与架构变更在同一次编辑中写入,绝不能事后补写。

绝不要包含数据库行 ID 或捕获时间戳。数据库会定期清空,因此 ID、站点和 capturedAt 都没有价值;只有引用的商品信息文本和 productUrl 能保留下来。

评论

支持 Markdown