返回 Skill 列表
extension
分类: 数据与分析无需 API Key

竞品/行业动态周报

把一周里零散收集的竞品动态,组织成可直接转发的竞品雷达周报——按「类型权重×影响×可信度」自动分级强信号/需关注/背景噪音,并对情报本身做质量体检:查无信源、查监测盲区、查维度偏科、查强信号响应缺口、查情报时效。纯标准库确定性脚本,零依赖,不联网抓取。

person作者: user_af5149c6hubcommunity

竞品 / 行业动态周报

适用场景

  • 一周下来微信群、官网、行业媒体里扒了十几条竞品消息,堆在备忘录里,到写周报时不知道从哪条讲起
  • 周报发出去被老板问「这条哪看来的」,答不上来——消息记了,出处忘了
  • 盯了三个月竞品,全是「对方又发了篇推文」这类营销动作,真正的降价和产品发布反而漏掉
  • 监测清单上五家公司,周报里只出现三家——剩下两家是真没动静,还是这周根本没去看?没人说得清
  • 识别到对手降价 30%,周报里写了,然后……就没有然后了。下周周报里它还在,字都没改
  • 同一份情报,老板只想看要决策什么,销售只想知道打单时怎么怼,业务团队要看全量——每次手动改三版

核心能力

  1. 信号自动分级(本技能的定价锚点)分值 = 类型权重(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 处理——不因「没登记」被平白降权,新玩家往往正是漏登记的那个。

  1. 可信度参与加权,而不只是标个签:传闻类动态自动降权到 0.3,很难够到强信号线。同时「高影响 + 传闻」的组合会被单独判硬伤——建立在未核实信息上的高影响判断,是拍脑袋决策的常见起点。

  2. 无信源判硬伤:每条动态都要求 source。没信源的条目会被点名「转发出去等于你自己在背书」;高影响动态若信源没有可点击链接,也会提示复核成本高。

  3. 监测盲区检测(防「没盯」被当成「没动静」):对比 watchlist 与本周实际有动态的竞品,找出零动态对象。列入 no_news 的算「已确认静默」,没列入的一律标为疑似盲区;直接竞品零动态且未确认,直接按硬伤处理。

  4. 维度偏科检测:统计动态类型分布。只覆盖 1-2 类、或单一类型占比 >60% 时告警——通常意味着情报来源过度依赖单一渠道(只刷官微、只看广告投放)。本周若完全没有「产品发布」与「定价调整」,会主动提醒去翻一遍官网和价格页。

  5. 强信号响应缺口清单:识别出强信号却没填 our_response 的,全部进「待决策清单」并记硬伤。情报的价值在于触发动作,识别到了没人决定怎么办,等于白收。

  6. 情报时效性校验:按周期起止日检查每条动态——超过陈旧阈值(默认 30 天)提示情报滞后,早于周期起始日提示「上期遗留,建议注明补录」,晚于周期结束日直接判日期填错。

  7. 指标环比自动计算valueprev 对比,数值型自动算涨跌百分比(含 0 基准兜底),非数值型退化为「已变化 / 持平」。缺 prev 的会被提示——单点数值看不出方向。

  8. 受众自适应裁剪管理层只留一句话结论 / 强信号 / 指标 / 待决策 / 体检;销售一线只保留定价、客户变动、产品发布、负面舆情四类(打单直接用得上的);业务团队输出全量含背景噪音与盲区。章节编号动态生成,裁剪后不跳号。

  9. 竞品威胁指数榜(v1.0.2):把散落的事件收敛成「这周该盯谁」的一张排序表。指数 = 该竞品全部动态分值之和 + 强信号条数 × 2(强信号额外加权——3 条噪音的威胁不等于 1 条降价),同表列出动态数、强信号数、响应缺口与最高分动态。响应缺口非零的竞品优先安排决策。

  10. 同源动态自动去重合并(v1.0.2):多人往同一份表里录情报时,同一件事常被记两三遍(措辞略有差异)。脚本对「同一竞品 + 标题相似度 ≥0.72」的条目自动合并,保留可信度更高的一条为主记录,把另一条的信源 / 细节 / 我方应对补进去(信源用 拼接,不丢信息),并记提示。不合并会让该竞品的威胁指数虚高、传闻占比失真。

  11. 输出裁剪参数(v1.0.2)--top N 让强信号表只展示分值最高的 N 条、其余折叠并注明条数(给管理层发的版本用);--min-signal 强信号|需关注|背景噪音 按分级过滤全篇动态。两者可与 --audience 叠加。

  12. 情报质量评分(0-100):综合情报量、信源标注率、传闻占比、监测覆盖率、类型覆盖、响应率、时效性、指标可对比性八项,硬伤 −9 / 提示 −3,给出「可直接转发 / 可用但需补齐 / 质量不足建议补录」三档结论。存在任一硬伤时不会给「可直接转发」,分数高不等于没有致命问题。

输入规范(缺失会主动引导)

脚本输入为 JSON,完整字段与逐项注释见 references/input_template.json本技能不联网、不抓取任何数据——它组织的是「你已经收集好的情报」。最小可用输入需要 eventswatchlist 至少一个非空:

{
  "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": ["橙芯办公"]
}

当用户只丢来一堆零散消息而非结构化情报时,按下列顺序引导补全,不要替用户编信源和日期

  1. 监测清单——「这周你到底该盯哪几家?各自算直接竞品还是参考对象?」没有它就做不了盲区检测,而漏看了谁往往比对手做了什么更要命。
  2. 每条动态的对象与类型——「这条是谁做的?属于产品 / 定价 / 客户 / 人事 / 营销哪一类?」类型直接决定信号权重。
  3. 信源——「这条你在哪看到的?有链接吗?」这是本技能最硬的一项检查,没有信源的条目会被判硬伤。
  4. 影响与可信度——「对我们影响大不大?消息是官宣、待核实还是听说的?」两者共同决定分级,别把听来的消息标成高影响。
  5. 我方应对——「这条我们准备怎么办?谁来跟?」强信号缺应对会进待决策清单。
  6. 本周确认无动态的竞品——「哪几家你确实去看过、确实没消息?」填进 no_news,否则会被当成监测盲区。
  7. 受众——「这份给谁看?老板 / 业务团队 / 销售?」决定输出详略。

用户没提供的信源、日期一律留空,不要臆造。留空会被脚本点名(标「⚠️ 未标注」),比编一个像模像样的假链接有价值得多。

处理流程

  1. 与用户一起把零散消息整理成 JSON(如 input.json),逐条确认信源与可信度。
  2. 运行脚本:
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 | eventswatchlist 均为空,内容不足以生成周报 | | 2 | 输入内容非法(JSON 解析失败 / 顶层不是对象 / 数组字段填成了对象) | | 3 | IO 或编码失败(文件不存在、路径是目录、编码无法识别、写入失败) |

  1. 把输出的 markdown 交给用户,并重点复述「待决策清单」与「情报质量体检」两节——前者决定这周要采取什么动作,后者决定这份周报能不能直接发出去。
  2. 若体检评分低于 65 分或存在硬伤,主动建议先补信源 / 补应对 / 核实传闻,再出正式版。

输出格式

markdown 竞品周报,章节按受众自动裁剪且编号连续:

| 章节 | 内容 | |---|---| | 本周一句话 | 取最高分强信号,并标明是否已有应对;无强信号时给出最值得留意项 | | 强信号(需要决策) | 竞品 / 层级 / 类型 / 动态 / 影响 / 可信度 / 我方应对,缺应对标 ⚠️ 待决策--top N 时折叠余下条数 | | 竞品威胁指数榜 | 按威胁指数降序:竞品 / 层级 / 指数 / 动态数 / 强信号数 / 响应缺口 / 最高分动态 | | 需关注(保持观察) | 中等分值动态表,含日期与信源;销售一线视角按打单相关类型过滤 | | 分竞品动态 | 按竞品分组,逐条列类型、分级标记、日期、影响、信源、细节、我方应对;清单外对象单列 | | 关键指标对比 | 本期 / 上期 / 变化方向(数值型自动算百分比) | | 待决策清单 | 强信号但无应对的条目,逐条列出并要求指定 owner | | 静默与监测盲区 | 已确认静默 vs ⚠️ 疑似盲区(仅业务团队视角) | | 背景噪音 | 低分值动态,存档备查(仅业务团队视角) | | 下周待查 | markdown 复选框清单 | | 情报质量体检 | 8 项指标表 + 0-100 评分 + 硬伤 / 提示逐条列出 |

完整样例见 examples/sample_input.jsonexamples/sample_output.md(业务团队全量视角,7 条动态实测 70/100)。

异常处理

| 情况 | 处理方式 | |---|---| | eventswatchlist 均为空 | 报错退出(exit 1),提示至少提供监测清单或本周动态 | | JSON 格式错误 / 根节点不是对象 | 报错退出(exit 2),打印具体解析错误与实际类型 | | 输入为空字符串 / stdin 无数据 | 报错退出(exit 2),提示至少提供 watchlistevents | | 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.pyEVENT_TYPES / IMPACT_SCORE / CONFIDENCE_FACTOR 中按本行业调整。
  • 「情报质量评分」按硬伤与提示条数线性扣分,仅用于横向对比同一团队不同周次的情报质量,不构成对竞争态势本身的评价——满分周报也可能意味着这周对手确实没动作。
  • 竞品情报涉及商业敏感信息,请确保所有录入内容来自公开渠道或合法获取途径。本工具不对信息来源的合法性负责,严禁用于录入通过不正当手段获取的商业秘密。
  • 输出为内部参考草稿,涉及定价跟进、法务、公关等对外决策前,请走公司既有审批流程。