competitor-change-radar
Skill1 starsChanged 8 days agoMITView on GitHub
竞品变化雷达: 盯住一家对标 Shopify 独立站, 把 "上次" 和 "这次" 两份公开数据快照对比, 交付一份大白话中文 PDF 报告和 3 张 Excel 表: 上了什么新品, 下了什么, 哪些降价/涨价, 什么时候开始/结束打折, 首页促销文案, 换了什么主题/应用/追踪代码, 币种和多国站点, 政策页改了哪几句; 每条变化都能追溯到两次的原始数据. 第一次运行自动建基线 (可选网页历史存档), 并告诉你下次哪天再跑. 用于: 盯一下这家对标店, 竞品最近有什么变化, X 最近改了什么, 对手上新了吗, 它降价了没有, 它开始打折了吗, 再看一下 X 有什么变化, 和上次比有什么不同, 竞品监控, 竞品上新日历, 促销节奏, monitor a competitor store, what changed on X, did X drop prices, competitor price tracking, new products on a Shopify store. 只读公开页面, 不登录, 不下单.
In this repository6 other files it gives its agents.
- launch-readinessSkill
- payments-readinessSkill
- profit-modelSkill
- shopify-store-teardownSkill
- __SKILL_NAME__Skill
- tracking-auditSkill
The file
Files
竞品变化雷达
同一家对标 Shopify 店, 拿 "上次" 和 "这次" 两份公开数据快照比, 交给不懂技术的卖家一份看得懂, 每条变化都有证据的报告. 分工: 抓取和比较交给脚本 (确定性, 可追溯), 你负责把底稿写顺, 写 "需要关注的信号" (一律 [推测] + 依据), 并告诉用户下次哪天再跑.
边界 (先读)
- 只读公开页面和公开接口. 不登录, 不进入购物车和结账, 不提交任何表单. 不绕过验证码或拦截; 被拦就停, 如实写 "查不到".
- 请求礼貌: 同一店铺请求之间留间隔, 不并发. 一次只盯一家店 (多家一起盯是 Pro 版).
- 只能看到两个时间点的状态. 看不到真实销量, 库存数量, 利润, 结账价, 广告; 报告里不推断这些.
- 所有文件只写到交付根 (见第 2 步), 不要写到当前工作目录.
第 0 步: 检查 Python
脚本要用电脑上的 Python 3.8+. 先查一次, 用第一个输出 Python 3.x (x ≥ 8) 的命令, 下文的 python3 都换成它:
python --version
python3 --version
py -3 --version- macOS / Linux 一般是
python3; Windows 一般是python或py -3, 不是python3. - 没装 Python 的 Windows 会输出 "Python was not found; run without arguments to install from the Microsoft Store..." (退出码 9009). 这算没有 Python.
- 都不行时用大白话教用户装 (Windows: 命令行输入
python打开应用商店点 "获取"; 或到 python.org 下载, 安装第一屏勾选 "Add python.exe to PATH"), 装好后重开 AI 助手再继续. 用户不想装: 走模式 C.
第 1 步: 明确要盯哪家店
需要: 店铺网址 (域名, 首页或任意商品页链接都行). 用户没说关心什么时默认全部维度. 用户点名 "和上个月比" 时, 第 3 步加 --from <快照编号> (编号见 radar.py status).
只想先看看效果 (例如 "先用演示数据给我看看") → 跳到 "演示".
语言: 用户用英文提问时, 下面所有脚本加 --lang en, 报告按 references/report-template.en.md; 否则中文, references/report-template.zh.md.
第 2 步: 先看这家店有没有历史
脚本在本技能目录的 scripts/ 下, 只用标准库.
python3 <技能目录>/scripts/radar.py status <店铺网址>- 用户没有指定保存位置时, 不要加
--out-root, 也不要自己设置或改写环境变量CHUHAI_OUTPUT_DIR(包括演示和英文报告): 默认存到用户 "文档/出海拆解报告/雷达/<域名>/"; 设置了环境变量CHUHAI_OUTPUT_DIR时自动用它; 云端沙箱自动写到输出区. 只有用户明确说了存哪才加--out-root <目录>. - 有快照就是 "再跑一次", 没有就是 "第一次". 两种都直接进第 3 步, 命令一样.
第 3 步: 抓新快照并比较 (模式 A, 能运行 Python 且能联网)
python3 <技能目录>/scripts/radar.py run <店铺网址>它做: 第一次运行时先导入同一交付根下更早的对标拆解 (如有), 抓今天的快照, 这家店第一次运行时再试网页历史存档基线 (最多 8 个请求, 每个间隔 5 秒以上, 拿不到就跳过; 用户说不要或很赶时加 --no-archive); 然后和最近一份可比快照比较, 生成报告文件夹. 同一天重复运行会直接复用今天的完整快照, 不再联网.
脚本最后打印 报告文件夹 和下一步命令. 文件夹里 原始数据/diff.md (英文 data/diff.md) 是已按模板排好, 带好标签的底稿.
- 只有一份可用快照 (第一次, 且存档也拿不到): 出 基线报告, 完成状态
partial. 告诉用户这次是基线, 下次建议日期再跑才能看到变化. - 店铺打不开, 被拦, 或不是 Shopify 店: 照样生成一份
failed状态的短报告, 同样要走第 4-5 步交付, 不要只在对话里说. - 输出几乎全是网络错误 (不是 403/404): 环境不能联网, 换模式 B.
第 4 步: 写报告并自检
- 把底稿
diff.md复制成同一文件夹的report.md. - 把 "需要关注的信号" 里的
<待写...>占位换成 3-5 条: 动作 (今晚 / 本周 / 观察) + 事件编号 +[推测] 依据: .... 失败或基线报告写 1-2 条即可 (例如 "确认网址后重试"). - 把句子改顺, 可删空节. 不要改数字, 不要删标签, 不要删附录和固定结尾, 不要写具体哪天改的 (只能说 "在 A 到 B 之间"). 标签和写法见
references/report-template.zh.md的写作要求与references/method.md第 6 节.
python3 <技能目录>/scripts/check_report.py "<报告文件夹>"- 有 "错误" (退出码 1): 按 "怎么改" 改完重跑, 直到没有错误.
- 有 "提示" 或 "疑似标高": 逐条处理 (改掉, 或确认是纯事实后保留), 并在给用户的总结里说明你保留了哪几条以及原因.
第 5 步: 生成交付文件, 告诉用户去哪看
python3 <技能目录>/scripts/deliver.py "<报告文件夹>"生成 <店名> 竞品变化报告.pdf 和 CSV (价格变动.csv, 上新下架.csv, 全部变化.csv; 基线报告是 当前商品清单.csv), 中文表头, Excel/WPS 直接打开; 会自动打开文件夹 (不想打开加 --no-open). 找不到 Edge/Chrome, 或在沙箱里没法打印时, 生成的是 .html 报告: 这同样是完整交付, 不要再去找或安装别的 PDF 工具; 告诉用户双击用浏览器打开, 需要 PDF 可以 "打印 → 另存为 PDF".
最后用大白话告诉用户:
报告在: 文档 → 出海拆解报告 → 雷达 → <域名> → 变化报告
<A>至<B>, 双击 PDF 就能看; 表格可用 Excel 打开.
再给 4-6 行摘要 (最重要的变化, 没查清的事), 最后一行固定写: "下次建议 <日期> 再跑: 对我说 '再看一下 <域名> 有什么变化'." 日期取脚本打印的下次建议日期.
演示 (不联网)
python3 <技能目录>/scripts/radar.py demo用随技能附带的合成数据 (虚构店铺 demo-outdoors.example) 生成一份完整变化报告文件夹, 之后同样走第 4-5 步. 报告标题和开头都写着 "演示数据, 非真实店铺", 交付时也要这样告诉用户. 演示文件夹每次重新生成.
模式 B / C / D
- B: 能运行 Python, 不能联网, 有网页读取工具 → 按
references/method.md第 7 节存原始文件, 运行radar.py renormalize和radar.py diff, 之后同第 4-5 步. 读取工具返回摘要或截断内容时, 完成状态最多partial. - C: 不能运行 Python, 有网页读取工具 → 按
references/method.md第 8 节手工对比, 在对话里给完整报告 (同样的模板, 标签, 固定结尾), 完成状态最多partial, 说明没有 PDF 和表格. - D: 什么工具都没有 → 请用户粘贴两次的页面内容或表格, 同 C.
失败时
- 证书错误: 脚本已自动兼容. 仍失败时把提示转告用户; 不要关闭证书校验.
- 被限流 (429): 稍后重试, 不要并发.
deliver.py失败: 报告仍在原始数据/report.md, 告诉用户位置, 在对话里给摘要.- 快照索引损坏:
radar.py status <店铺网址> --rebuild从快照重建.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

