竞品 / 行业动态周报
适用场景
- 一周下来微信群、官网、行业媒体里扒了十几条竞品消息,堆在备忘录里,到写周报时不知道从哪条讲起
- 周报发出去被老板问「这条哪看来的」,答不上来——消息记了,出处忘了
- 盯了三个月竞品,全是「对方又发了篇推文」这类营销动作,真正的降价和产品发布反而漏掉
- 监测清单上五家公司,周报里只出现三家——剩下两家是真没动静,还是这周根本没去看?没人说得清
- 识别到对手降价 30%,周报里写了,然后……就没有然后了。下周周报里它还在,字都没改
- 同一份情报,老板只想看要决策什么,销售只想知道打单时怎么怼,业务团队要看全量——每次手动改三版
核心能力
- 信号自动分级(本技能的定价锚点):
分值 = 类型权重(1-3) × 影响分(1-3) × 可信度系数(0.3-1.0) × 层级系数(0.75-1.15),落到三档——🔴 强信号(≥5.4,需要决策)/🟡 需关注(≥2.4,保持观察)/⚪ 背景噪音(存档备查)。「对手发了条微博」和「对手降价三成」不该出现在同一个视觉层级里。
1.1 竞品层级参与加权(v1.0.2):直接竞品 ×1.15 / 潜在竞品 ×1.0 / 替代方案 ×0.9 / 标杆参考 ×0.75。同样一条产品发布,直接竞品的威胁与「海外标杆参考」完全不是一回事,不加权会让两者挤在同一档。清单外对象按 ×1.0 处理——不因「没登记」被平白降权,新玩家往往正是漏登记的那个。
-
可信度参与加权,而不只是标个签:传闻类动态自动降权到 0.3,很难够到强信号线。同时「高影响 + 传闻」的组合会被单独判硬伤——建立在未核实信息上的高影响判断,是拍脑袋决策的常见起点。
-
无信源判硬伤:每条动态都要求
source。没信源的条目会被点名「转发出去等于你自己在背书」;高影响动态若信源没有可点击链接,也会提示复核成本高。 -
监测盲区检测(防「没盯」被当成「没动静」):对比
watchlist与本周实际有动态的竞品,找出零动态对象。列入no_news的算「已确认静默」,没列入的一律标为疑似盲区;直接竞品零动态且未确认,直接按硬伤处理。 -
维度偏科检测:统计动态类型分布。只覆盖 1-2 类、或单一类型占比 >60% 时告警——通常意味着情报来源过度依赖单一渠道(只刷官微、只看广告投放)。本周若完全没有「产品发布」与「定价调整」,会主动提醒去翻一遍官网和价格页。
-
强信号响应缺口清单:识别出强信号却没填
our_response的,全部进「待决策清单」并记硬伤。情报的价值在于触发动作,识别到了没人决定怎么办,等于白收。 -
情报时效性校验:按周期起止日检查每条动态——超过陈旧阈值(默认 30 天)提示情报滞后,早于周期起始日提示「上期遗留,建议注明补录」,晚于周期结束日直接判日期填错。
-
指标环比自动计算:
value与prev对比,数值型自动算涨跌百分比(含 0 基准兜底),非数值型退化为「已变化 / 持平」。缺prev的会被提示——单点数值看不出方向。 -
受众自适应裁剪:
管理层只留一句话结论 / 强信号 / 指标 / 待决策 / 体检;销售一线只保留定价、客户变动、产品发布、负面舆情四类(打单直接用得上的);业务团队输出全量含背景噪音与盲区。章节编号动态生成,裁剪后不跳号。 -
竞品威胁指数榜(v1.0.2):把散落的事件收敛成「这周该盯谁」的一张排序表。
指数 = 该竞品全部动态分值之和 + 强信号条数 × 2(强信号额外加权——3 条噪音的威胁不等于 1 条降价),同表列出动态数、强信号数、响应缺口与最高分动态。响应缺口非零的竞品优先安排决策。 -
同源动态自动去重合并(v1.0.2):多人往同一份表里录情报时,同一件事常被记两三遍(措辞略有差异)。脚本对「同一竞品 + 标题相似度 ≥0.72」的条目自动合并,保留可信度更高的一条为主记录,把另一条的信源 / 细节 / 我方应对补进去(信源用
;拼接,不丢信息),并记提示。不合并会让该竞品的威胁指数虚高、传闻占比失真。 -
输出裁剪参数(v1.0.2):
--top N让强信号表只展示分值最高的 N 条、其余折叠并注明条数(给管理层发的版本用);--min-signal 强信号|需关注|背景噪音按分级过滤全篇动态。两者可与--audience叠加。 -
情报质量评分(0-100):综合情报量、信源标注率、传闻占比、监测覆盖率、类型覆盖、响应率、时效性、指标可对比性八项,硬伤 −9 / 提示 −3,给出「可直接转发 / 可用但需补齐 / 质量不足建议补录」三档结论。存在任一硬伤时不会给「可直接转发」,分数高不等于没有致命问题。
输入规范(缺失会主动引导)
脚本输入为 JSON,完整字段与逐项注释见 references/input_template.json。本技能不联网、不抓取任何数据——它组织的是「你已经收集好的情报」。最小可用输入需要 events 或 watchlist 至少一个非空:
{
"title": "协作平台竞品雷达 · 第 31 周",
"period": "2026-07-30 ~ 2026-08-05",
"our_product": "云协作平台 Pro",
"audience": "业务团队",
"watchlist": [
{ "name": "飞轮协作", "tier": "直接竞品", "note": "同价位段" }
],
"events": [
{
"id": "E1",
"competitor": "飞轮协作",
"date": "2026-08-01",
"type": "定价调整",
"title": "企业版从 128 元/人/月 降至 89 元/人/月",
"source": "官网价格页 https://example.com/pricing",
"impact": "高",
"confidence": "已证实",
"our_response": "商务侧本周内出对比话术"
}
],
"metrics": [
{ "competitor": "飞轮协作", "name": "企业版单价", "value": "89", "prev": "128" }
],
"no_news": ["橙芯办公"]
}
当用户只丢来一堆零散消息而非结构化情报时,按下列顺序引导补全,不要替用户编信源和日期:
- 监测清单——「这周你到底该盯哪几家?各自算直接竞品还是参考对象?」没有它就做不了盲区检测,而漏看了谁往往比对手做了什么更要命。
- 每条动态的对象与类型——「这条是谁做的?属于产品 / 定价 / 客户 / 人事 / 营销哪一类?」类型直接决定信号权重。
- 信源——「这条你在哪看到的?有链接吗?」这是本技能最硬的一项检查,没有信源的条目会被判硬伤。
- 影响与可信度——「对我们影响大不大?消息是官宣、待核实还是听说的?」两者共同决定分级,别把听来的消息标成高影响。
- 我方应对——「这条我们准备怎么办?谁来跟?」强信号缺应对会进待决策清单。
- 本周确认无动态的竞品——「哪几家你确实去看过、确实没消息?」填进
no_news,否则会被当成监测盲区。 - 受众——「这份给谁看?老板 / 业务团队 / 销售?」决定输出详略。
用户没提供的信源、日期一律留空,不要臆造。留空会被脚本点名(标「⚠️ 未标注」),比编一个像模像样的假链接有价值得多。
处理流程
- 与用户一起把零散消息整理成 JSON(如
input.json),逐条确认信源与可信度。 - 运行脚本:
python scripts/build_radar.py input.json # 打印到终端(位置参数)
python scripts/build_radar.py --input input.json -o radar.md # 写入文件(目录不存在会自动创建)
cat input.json | python scripts/build_radar.py # 从 stdin 读
python scripts/build_radar.py input.json --audience 管理层 # 覆盖受众
python scripts/build_radar.py input.json --audit-only # 只看情报质量体检
脚本参数
| 参数 | 说明 |
|---|---|
| input.json(位置参数)或 --input | JSON 输入路径;二者二选一,都不给则读 stdin。编码自动 utf-8-sig → gbk 兜底 |
| -o / --output | 输出 markdown 文件;缺省打印到 stdout。父目录不存在会自动创建 |
| --audience | 覆盖受众:管理层 / 业务团队 / 销售一线 |
| --audit-only | 只输出情报质量体检,不出周报正文 |
| --top N | 强信号表只展示分值最高的 N 条,其余折叠并注明条数(N 必须为正整数) |
| --min-signal LEVEL | 只保留该分级及以上的动态:强信号 / 需关注 / 背景噪音 |
退出码
| 码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | events 与 watchlist 均为空,内容不足以生成周报 |
| 2 | 输入内容非法(JSON 解析失败 / 顶层不是对象 / 数组字段填成了对象) |
| 3 | IO 或编码失败(文件不存在、路径是目录、编码无法识别、写入失败) |
- 把输出的 markdown 交给用户,并重点复述「待决策清单」与「情报质量体检」两节——前者决定这周要采取什么动作,后者决定这份周报能不能直接发出去。
- 若体检评分低于 65 分或存在硬伤,主动建议先补信源 / 补应对 / 核实传闻,再出正式版。
输出格式
markdown 竞品周报,章节按受众自动裁剪且编号连续:
| 章节 | 内容 |
|---|---|
| 本周一句话 | 取最高分强信号,并标明是否已有应对;无强信号时给出最值得留意项 |
| 强信号(需要决策) | 竞品 / 层级 / 类型 / 动态 / 影响 / 可信度 / 我方应对,缺应对标 ⚠️ 待决策;--top N 时折叠余下条数 |
| 竞品威胁指数榜 | 按威胁指数降序:竞品 / 层级 / 指数 / 动态数 / 强信号数 / 响应缺口 / 最高分动态 |
| 需关注(保持观察) | 中等分值动态表,含日期与信源;销售一线视角按打单相关类型过滤 |
| 分竞品动态 | 按竞品分组,逐条列类型、分级标记、日期、影响、信源、细节、我方应对;清单外对象单列 |
| 关键指标对比 | 本期 / 上期 / 变化方向(数值型自动算百分比) |
| 待决策清单 | 强信号但无应对的条目,逐条列出并要求指定 owner |
| 静默与监测盲区 | 已确认静默 vs ⚠️ 疑似盲区(仅业务团队视角) |
| 背景噪音 | 低分值动态,存档备查(仅业务团队视角) |
| 下周待查 | markdown 复选框清单 |
| 情报质量体检 | 8 项指标表 + 0-100 评分 + 硬伤 / 提示逐条列出 |
完整样例见 examples/sample_input.json → examples/sample_output.md(业务团队全量视角,7 条动态实测 70/100)。
异常处理
| 情况 | 处理方式 |
|---|---|
| events 与 watchlist 均为空 | 报错退出(exit 1),提示至少提供监测清单或本周动态 |
| JSON 格式错误 / 根节点不是对象 | 报错退出(exit 2),打印具体解析错误与实际类型 |
| 输入为空字符串 / stdin 无数据 | 报错退出(exit 2),提示至少提供 watchlist 或 events |
| events / watchlist / metrics 等数组字段写成了对象 | 报错退出(exit 2),提示「单条也要用中括号包起来」,不静默当空 |
| 输入文件不存在 / 路径是目录 / 编码非 UTF-8 | 退出码 3;编码依次尝试 utf-8-sig → gbk,均失败才报错 |
| 输出目录不存在 | 自动创建;创建或写入失败退出码 3 |
| 动态缺 title | 该条跳过并记硬伤(连发生了什么都没写,无法进入周报) |
| 动态缺 competitor | 记硬伤,归入「未指明对象」,不挂载到任何竞品 |
| 动态的竞品不在监测清单中 | 提示「是新玩家还是写错了名字」,单列到「清单外对象」 |
| 动态编号重复 | 自动重命名为 原编号#序号 并记硬伤 |
| 同一竞品下两条动态描述同一件事 | 相似度 ≥0.72 时自动合并,保留可信度更高的一条,汇总信源并记提示 |
| --top 传了 0 或负数 | 报错退出(exit 2) |
| --min-signal 传了非法分级 | argparse 直接拒绝并列出可选值(exit 2) |
| 监测清单竞品重名 | 合并为一条并记硬伤;缺 name 的项跳过并提示 |
| 类型 / 影响 / 可信度 / 层级不在标准词表 | 先精确匹配再模糊匹配,仍失败则降级到缺省值并提示 |
| 日期无法解析 | 该条跳过时效检查并提示 |
| period 无法解析 | 跳过全部时效性检查并明确提示 |
| 指标 value / prev 为非数值文本 | 退化为「已变化 / 持平」判断;prev 为 0 时只判方向不算百分比 |
| 受众填错 | 退回「业务团队」全量输出并提示 |
| 存在硬伤但分数 ≥80 | 不给「可直接转发」判定,降级为「可用但需补齐」 |
适用限制与免责声明
- 本工具不联网、不抓取、不搜索。 它不会替你去看竞品官网,也无法验证你填的消息是真是假。它做的是「把你收集到的情报组织成有分级、可决策的周报,并指出这份情报本身哪里不牢靠」。
- 体检只校验情报的结构与完整性,不校验内容真实性。 它能发现「无信源」「高影响却是传闻」「监测盲区」「响应缺口」,发现不了「信源链接是假的」或「你把竞品名字记错了」。发出去前请自行复核关键条目。
- 信号分级的权重表(类型权重、影响分、可信度系数)是内置经验值,不同行业的权重感受差异很大。首次使用建议人工核对一遍分级结果,必要时在
scripts/build_radar.py的EVENT_TYPES/IMPACT_SCORE/CONFIDENCE_FACTOR中按本行业调整。 - 「情报质量评分」按硬伤与提示条数线性扣分,仅用于横向对比同一团队不同周次的情报质量,不构成对竞争态势本身的评价——满分周报也可能意味着这周对手确实没动作。
- 竞品情报涉及商业敏感信息,请确保所有录入内容来自公开渠道或合法获取途径。本工具不对信息来源的合法性负责,严禁用于录入通过不正当手段获取的商业秘密。
- 输出为内部参考草稿,涉及定价跟进、法务、公关等对外决策前,请走公司既有审批流程。
微信扫一扫