商品选购决策助手(product-shopping-guide)
> 适用人群:有选购需求、但不清楚如何下手的人。
> 核心思路:不替用户拍板,而是把"凭感觉"变成"按维度打分",让决策可解释、可追溯、可自己调。
它能解决什么
很多人买东西卡在两点:一是维度太多、不知道该看哪些;二是看了一堆评测,最后还是凭直觉下单。
这个 skill 把选购抽象成一套品类无关的评分框架——不同商品的差异只写在配置文件里,打分引擎一模一样。
你会带着用户走完"定需求 → 选/建品类 → 采候选 → 算分排名 → 交互微调 → 解读结论"六步,最后产出:
- 评分汇总表(.md / .csv):所有候选按五层框架逐项得分、总排名、否决判定一目了然。
- 细项明细表(.csv):每个候选在每一维的具体得分,便于复盘哪里扣分。
- 可交互 HTML 打分器(单文件离线):用户不用会命令行,鼠标点选/填数即实时出排名,还能自己加候选。
关键原则(务必遵守):
- 引擎不做"自动推荐文案"。它只输出分数、排名、判定(优/良/合格/不合格/待核),把"买不买、买哪个"的决定权留给用户。
- 信息缺失透明化:评测没写清的维度记为"—",不计入得分、也不据此判不合格——避免用"没数据"冤枉好产品。
- 不联网自动爬取商品页。候选数据由用户提供(或你基于公开资料整理后请用户核实),写入 data.csv。
工作流
第一步:明确需求与预算(先问,别急着算)
用引导式提问帮用户把模糊需求变清晰,例如:
- "你想买的是哪一类?家里用、送礼、还是数码装备?"(对应三大类,便于复用内置范例)
- "最不能接受的是什么?"(这往往就是否决项,比如椅子气压棒无认证、手表无 3C)
- "心理预算大概多少?"——记下,后面可覆盖默认预算基准。
- "大概想对比几款?手头有候选清单吗?"
> 引导技巧:先让用户说出 1–2 个"非买不可"的硬条件,这些条件几乎一定进"否决项"。
第二步:选品类或建品类
- 命中内置范例:若用户要的是人体工学椅 / 智能手表 / 拼图,直接用对应
presets/下的config.json+sample_data.csv,跳到第四步。 - 三大类下的新商品(如家居用品里的床垫、智能电子产品里的耳机、礼品里的香薰):在对应大类目录下新建子目录与
config.json(结构见references/config-schema.md),维度可参考同类范例微调。 - 完全新品类:按
references/config-schema.md新建config.json。建议先用联网检索把该类商品的"行家看重点"梳理成维度草案,再和用户确认权重。
第三步:采集候选数据(data.csv)
表头固定为:name, source, price + 每个维度的 field(字段名见该品类 config.json)。
- name 商品名、source 出处(评测/商品页)、price 参考价(含 ¥ 或数字均可,引擎自动取数算预算中位数)。
- 每个维度列填能核实的证据关键词(如椅子 gas_cert 填 "SGS BIFMA Class4"),引擎按 patterns 匹配打分。
- 查不到的填 未披露(或 待核/na/-),引擎记为"—"。
- 文件顶部可用 # 写注释说明采集口径,引擎会自动跳过。
第四步:跑评分引擎出大表
python scripts/score_engine.py \
--config presets/<大类>/<品类>/config.json \
--data presets/<大类>/<品类>/sample_data.csv \
--out <输出目录> \
[# --budget 1500 # 可选:覆盖默认预算基准]
产出 评分汇总表.md / 评分汇总表.csv / 细项明细.csv,并打印终端排名摘要。
第五步:生成可交互 HTML 打分器
python scripts/gen_html_scorer.py \
--config presets/<大类>/<品类>/config.json \
--data presets/<大类>/<品类>/sample_data.csv \ # 可选:注入示例候选
--out presets/<大类>/<品类>/打分器.html
双击生成的 HTML 即可离线使用:下拉选维度档位、数字框填数值,排名实时刷新;点"+ 添加候选"可自行扩充对比。
第六步:解读结果(克制,不替用户决定)
把结论讲清楚,但不写"你应该买 X":
- 先看否决列:标"不达标"的直接排除;标"待核"的说明"该项信息缺失,买前必须核实,否则风险自负"。
- 再看得分率:否决全过的前提下,≥80 优 / 60–79 良 / <60 合格偏低。
- 提醒用户:预算基准默认取候选参考价中位数,真实爆款常低于此,请结合自身预算看。
- 引导用户用 HTML 打分器自己调权重/加候选,体会"为什么这款排前面"。
内置范例
| 大类 | 品类 | 目录 | 维度数 | 示例候选 |
|---|---|---|---|---|
| 家居用品 | 人体工学椅 | presets/home/ergo-chair/ |
20 | 15 款 |
| 智能电子产品 | 智能手表 | presets/electronics/smartwatch/ |
19 | 5 款 |
| 礼品 | 拼图 | presets/gift/jigsaw-puzzle/ |
18 | 5 款 |
| 运动户外 | 篮球鞋 | presets/sports/basketball-shoes/ |
19 | 6 款 |
> 篮球鞋是"加新品类只需写一个 config.json"的活样例:它不在最初三大类里,新建 presets/sports/basketball-shoes/ 并写好 config.json 后,引擎与 HTML 生成器零改动即可跑通。
每个范例目录均含:config.json(维度/权重/评分规则)、sample_data.csv(示例候选)、打分器.html(可直接打开的交互版)。
命令速查
| 用途 | 命令 |
|---|---|
| 评分出表 | python scripts/score_engine.py --config C --data D --out O [--budget N] |
| 生成打分器 | python scripts/gen_html_scorer.py --config C [--data D] --out H.html |
扩展指引
新增品类只需写一个 config.json,引擎与 HTML 生成器零改动。详见:
- references/scoring-framework.md:五层框架、否决逻辑、缺失处理、评分规则类型、预算锚定与排名原理。
- references/config-schema.md:config.json 全字段说明 + 新增品类实操步骤。