$npx -y skills add zach22-1999/amazon-skills --skill zach-feature-demand-validator功能需求真伪验证器。用三维数据(Review/关键词/社区)验证微创新是否真实需求。 使用时机:品类选定后评估微创新、竞品分析发现差异点后判断要不要跟进。 触发词:/zach-feature-demand-validator
| 1 | ## 前置建议 |
| 2 | |
| 3 | 本公开版 Skill 是自包含的,不依赖任何私有工作区文件、内部参考库或品牌专属协议。 |
| 4 | |
| 5 | 开始执行前,建议先阅读本 Skill 自带的参考材料: |
| 6 | |
| 7 | - `references/judgment_criteria.md` — 三维需求判断标准 |
| 8 | - `references/report_template.md` — 报告结构 |
| 9 | - `references/csv_schema.md` — 交付 CSV 结构 |
| 10 | - `references/review_fallback_pack.md` — 无 Sorftime 时的评论证据包格式 |
| 11 | |
| 12 | ## 定位 |
| 13 | |
| 14 | 亚马逊卖家的产品开发,大多数时候不是做颠覆式创新,而是在现有供给上做微创新: |
| 15 | |
| 16 | - 加一个小功能 |
| 17 | - 补一个小结构 |
| 18 | - 优化一个小体验 |
| 19 | |
| 20 | 危险点也恰好在这里。很多功能看起来合理,但很可能只是卖家自己的想象,不是消费者真实在意的点。 |
| 21 | |
| 22 | 这个 Skill 的定位,不是帮你发明新物种,而是判断: |
| 23 | |
| 24 | **这个微创新,到底是不是用户真的在意。** |
| 25 | |
| 26 | 它通过三个独立维度交叉验证,避免“感觉有需求就开模”。 |
| 27 | |
| 28 | | 维度 | 首选数据源 | 无 Sorftime 时的替代方案 | |
| 29 | |------|-----------|----------------------| |
| 30 | | Review 信号 | Sorftime `product_reviews` | WebSearch + WebFetch 主动抓取 Amazon Review 页面,或用户提供 `review_source_pack` | |
| 31 | | 关键词信号 | Sorftime `keyword_detail` / `keyword_trend` / `keyword_extends` | Google Trends(WebFetch)+ Amazon Autocomplete(WebSearch)+ 第三方搜索量估算 | |
| 32 | | 社区信号 | WebSearch(Reddit + Quora) | 继续可执行(不依赖 Sorftime) | |
| 33 | |
| 34 | ## 上游 / 下游 |
| 35 | |
| 36 | - **上游**:`zach-product-research`、`zach-competitor-deep-dive` |
| 37 | - **下游**:`zach-new-product-listing-writer` |
| 38 | |
| 39 | --- |
| 40 | |
| 41 | ## 执行优先级 |
| 42 | |
| 43 | ### 路线 A:Sorftime 完整版 |
| 44 | |
| 45 | 适用条件:当前环境可调用 Sorftime MCP。 |
| 46 | |
| 47 | 1. Review 维度走 Sorftime `product_reviews` |
| 48 | 2. 关键词维度走 Sorftime 关键词工具 |
| 49 | 3. 社区维度走 WebSearch |
| 50 | |
| 51 | ### 路线 B:无 Sorftime 替代版 |
| 52 | |
| 53 | 适用条件:当前环境没有 Sorftime MCP。 |
| 54 | |
| 55 | 1. Review 维度:优先用 WebSearch + WebFetch 主动抓取 Amazon Review;若抓取失败,再降级到用户提供的 `review_source_pack` |
| 56 | 2. 关键词维度:用 Google Trends + Amazon Autocomplete + 第三方工具获取免费搜索数据 |
| 57 | 3. 社区维度:继续走 WebSearch |
| 58 | |
| 59 | **注意**:替代版的数据精度不如 Sorftime(无法拿到精确周搜索量和 CPC),但三个维度都有真实数据支撑,不存在”空白维度”。报告中需标注数据来源差异。 |
| 60 | |
| 61 | --- |
| 62 | |
| 63 | ## 输入方式 |
| 64 | |
| 65 | ### 业务输入 |
| 66 | |
| 67 | 支持两类: |
| 68 | |
| 69 | | 输入方式 | 示例 | 处理逻辑 | |
| 70 | |---------|------|---------| |
| 71 | | 品类 + 功能描述 | `air fryer + steam feature` | 先找市场上是否已有带该功能的产品 | |
| 72 | | ASIN + 功能描述 | `B0XXXX + self-cleaning` | 直接围绕指定产品和相邻竞品验证 | |
| 73 | |
| 74 | 默认站点:`US` |
| 75 | |
| 76 | ### Review fallback 输入 |
| 77 | |
| 78 | 当 Sorftime 不可用时,用户需要提供本地评论证据包: |
| 79 | |
| 80 | ```text |
| 81 | review_source_pack/ |
| 82 | ├── source_manifest.json |
| 83 | └── raw/ |
| 84 | ├── reviews.csv |
| 85 | ├── reviews.txt |
| 86 | └── reviews.html |
| 87 | ``` |
| 88 | |
| 89 | 详细格式见 `references/review_fallback_pack.md`。 |
| 90 | |
| 91 | --- |
| 92 | |
| 93 | ## 执行流程 |
| 94 | |
| 95 | ### Step 0:解析任务与构造关键词 |
| 96 | |
| 97 | 1. 确认输入是“品类 + 功能”还是“ASIN + 功能” |
| 98 | 2. 确认站点,默认 `US` |
| 99 | 3. 基于 `references/keyword_construction_guide.md` 构造 3-5 个英文关键词变体 |
| 100 | 4. 判断当前走 Sorftime 完整版还是 Review fallback 降级版 |
| 101 | |
| 102 | ### Step 1:Review 信号采集 |
| 103 | |
| 104 | #### 1.1 Sorftime 完整版 |
| 105 | |
| 106 | 1. 若用户给的是品类: |
| 107 | - 调 `product_search` 找含该功能的产品 |
| 108 | - 优先选 3-5 个月销高、评论多、标题明确带功能词的 ASIN |
| 109 | 2. 若用户给的是 ASIN: |
| 110 | - 直接用该 ASIN |
| 111 | - 必要时调 `product_detail` 确认功能是否真实存在 |
| 112 | 3. 对每个目标 ASIN 调 `product_reviews` |
| 113 | 4. 把返回结果保存为 JSON,再调用脚本: |
| 114 | |
| 115 | macOS / Linux: |
| 116 | ```bash |
| 117 | python3 skills/zach-feature-demand-validator/scripts/parse_reviews.py \ |
| 118 | --input <reviews.json> \ |
| 119 | --asin <ASIN> \ |
| 120 | --keywords "steam,steamer,steaming" \ |
| 121 | --source-url "sorftime://product_reviews/<ASIN>" \ |
| 122 | --output <数据源目录>/01_review_信号_原始数据.csv |
| 123 | ``` |
| 124 | |
| 125 | Windows: |
| 126 | ```powershell |
| 127 | py -3 skills/zach-feature-demand-validator/scripts/parse_reviews.py ` |
| 128 | --input <reviews.json> ` |
| 129 | --asin <ASIN> ` |
| 130 | --keywords "steam,steamer,steaming" ` |
| 131 | --source-url "sorftime://product_reviews/<ASIN>" ` |
| 132 | --output <数据源目录>\01_review_信号_原始数据.csv |
| 133 | ``` |
| 134 | |
| 135 | #### 1.2 无 Sorftime 时的 Review 采集 |
| 136 | |
| 137 | **核心原则:按功能关键词定向选 ASIN,不随机抓。** |
| 138 | |
| 139 | Review 采集的意义在于验证"用户有没有在意这个功能",所以必须定向找两类产品: |
| 140 | - **A 类:已带该功能的产品** → 看用户对这个功能的真实评价(好评提到了?差评说没用?) |
| 141 | - **B 类:同品类但不带该功能的竞品** → 看用户有没有抱怨"缺了这个功能" |
| 142 | |
| 143 | 随机抓高销量产品的 review 不会命中功能相关内容,没有分析价值。 |
| 144 | |
| 145 | **第一步:用功能关键词定向搜索 ASIN** |
| 146 | |
| 147 | 1. 用 WebSearch 搜索 `amazon.com [品类] [功能关键词]` |
| 148 | - 例:验证"空气炸锅+蒸汽"→ 搜索 `amazon.com air fryer steam` |
| 149 | - 从结果中提取 2-3 个**已带该功能**的真实 ASIN(A 类) |
| 150 | 2. 再搜索 `amazon.com [品类] best seller`,提取 2-3 个**不带该功能但销量高**的 ASIN(B 类) |
| 151 | - 这些是对照组,看主流产品的 review 里有没有人提到"希望有这个功能" |
| 152 | 3. ⛔ 严禁使用 `B0XXXXX` 等占位符,必须拿到真实可验证的 10 位 ASIN |
| 153 | 4. 确认每个 ASIN 的产品名、是否带目标功能,记录到报告中 |
| 154 | |
| 155 | **第二步:抓取 Review** |
| 156 | |
| 157 | 对每个 ASIN: |
| 158 | - 用 WebFetch 尝试访问 `https://www.amazon.com/product-reviews/<ASIN>/ref=cm_cr_dp_d_show_all_btm?reviewerType=all_reviews&sortBy=recent&pageNumber=1` |
| 159 | - 如果 Amazon 页面可访问,提取评论内容(标题、正文、星级、日期) |
| 160 | - 如果被反爬拦截,用 WebSearch 搜索 `site:amazon.com "<ASIN>" reviews` 获取评论摘要 |
| 161 | - 还可搜索第三方评论聚合站(reviewmeta.com、fakespot.com) |
| 162 | |
| 163 | **第三步:数据量要求** |
| 164 | |
| 165 | - A 类(带功能):每个 ASIN 至少 15-30 条 review |
| 166 | - B 类(不带功能):每个 ASIN 至少 15-30 条 review |
| 167 | - 总量目标不低于 80 条 |
| 168 | - 如果单个 ASIN 返回不足,增加同类 ASIN 补足 |
| 169 | - 实际采集量和 A/B 分类写入报告 |
| 170 | |
| 171 | **第四步:脚本解析** |
| 172 | |
| 173 | 将采集到的 review 整理为标准 JSON,再调用 parse_reviews.py 脚本(同 1.1) |
| 174 | |
| 175 | **降级路径:用户提供 review_source_pack** |
| 176 | |
| 177 | 仅当 WebSearch + WebFetch 均无法获取足够 review 数据时,才要求用户手动提供证据包: |
| 178 | |
| 179 | 1. 要求用户提供 `review_source_pack/` |
| 180 | 2. 检查 `source_manifest.json` 是否包含 ASIN、站点、导出时间、来源 URL、导出方式 |
| 181 | 3. 调脚本统一解析原始证据: |
| 182 | |
| 183 | ```bash |
| 184 | python3 skills/zach-feature-demand-validator/scripts/parse_review_source_pack.py \ |
| 185 | --pack <review_source_pack> \ |
| 186 | --keywords "steam,steamer,steaming" \ |
| 187 | --output <数据源目录>/01_review_信号_原始数据.csv |
| 188 | ``` |
| 189 | |
| 190 | 支持的原始文件格式:CSV、TXT / Markdown、HTML |
| 191 | |
| 192 | #### 1.3 Review 判定 |
| 193 | |
| 194 | 判定标准见 `references/judgment_criteria.md`,核心仍是: |
| 195 | |
| 196 | - 功能提 |