用途:把商品加入某家商店的购物清单。笔记库路径为 /Users/mtm/Documents/Obsidian Vault。判断标准是商品笔记 front matter 中该商店布尔值为 true(如 trader_joes: true);笔记后部的 ## [[Store]] 区域里的 - [x] shopping 行不是购物清单标记,不要改动。
主要能力与步骤:
- 定位商品笔记:按 resolve-recipe-ingredient-link 技能步骤 1 至 3,用用户表述的商品名替代链接文本;Tier 2 的区分词取自用户措辞(如 flat leaf、dried)。多个笔记匹配且用户未指明变体时,优先选择变体所链接的通用笔记及含历史 ✅ 购物行的笔记,如 parsley 解析为 parsley.md;用户指明变体时用变体笔记。
- 无匹配时新建笔记:按该技能 Tier 4 创建,文件名为用户所述商品名,全小写、词间空格;写入前确认没有仅大小写不同的同名笔记,否则小写写入会保留旧名、git add 无效。
- 设置商店键:把用户所指商店匹配笔记 front matter 中已有键;未指明商店时用 amazon_fresh(该店已关闭,作为未分配商店的兜底清单,不要询问)。键为商店笔记名的 snake_case,标点去掉,如 trader_joes、lam_s_seafood_asian_market、amazon_com。仅把该键由 false 改为 true,其他行不动。若已为 true,说明已在清单中,不做改动;若商店无匹配键,停止并询问用户,不得新增键。
- 提交:因后台进程也会提交,需按路径只提交该商品笔记:git commit --message "Add <product> to the <store> shopping list" -- "<product>.md";新建笔记先执行 git add "<product>.md"。
- 报告:说明改动的笔记和设置的键;若默认用 amazon_fresh,说明进入了 no-store 清单;若跳过了变体笔记而用通用笔记,用一行说明以便用户纠正。限制:需已有对应商店笔记,不能自行新增商店字段。