fix(strategy): 禁止 §2.1 编造用户引语与无依据痛点

在 STRATEGY_DATA_RULES 明确证据信号列须可溯源;无原话时写主题归纳或待抽样,禁止伪装成已监测结论。底稿与测试同步。

Made-with: Cursor
This commit is contained in:
hub-gif 2026-04-20 16:45:04 +08:00
parent 71ab78cf3a
commit 71395d217c
4 changed files with 15 additions and 5 deletions

View File

@ -19,6 +19,10 @@ STRATEGY_DATA_RULES = """**与竞品分析报告的分工(硬性)**
- **必须**把篇幅放在**策略**痛点归纳§2.5 动作表怎么做与验证后文章节
**数据与口径硬性与宿主分析报告同源输入**
- **§2.1 痛点表证据信号反捏造硬性**
- **禁止**书写用户反馈评价称**带引号的逐字原话**除非该片段在 `structured_brief``strategy_hints``report_strategy_excerpt` `business_notes` **已出现相同或明显包含**的文本否则一律**不得**用引号假装引用
- 若输入仅有主题级信号关注词负向归因方向价差行数等证据信号应写**可追溯归纳**例如 brief ×× 字段一致与报告第八章/节选已归纳的 ×× 主题一致监测摘要见 `strategy_hints` n 或写**待原评论抽样核实****禁止**把合理推测写成用户已明确说的事实口吻
- **禁止**凭空发明痛点行配料相似卖点雷同性价比一般作为**已监测结论**此类表述仅当 `structured_brief`节选或备注中**确有同类主题或措辞**时方可写入否则不写或标为待验证假设
- **不得编造**销量GMV未在 `structured_brief` 与底稿中出现的占比或价格底稿与摘要中的数字须保持一致
- **店铺集中度**仅可依据 `structured_brief.concentration` 与底稿并区分**列表行****去重 SKU**第一大份额前三家合计等中文**不要用** CR1CR3
- **禁止编造**京东自营 SKU 占比自营超 X%等摘要中未给出的定量句
@ -52,7 +56,7 @@ STRATEGY_SYSTEM = f"""你是市场策略顾问,根据**结构化监测摘要**
**分节要求与底稿章节一一对应勿省略**
- **摘要**除范围样本外**阶段重点**须含 12 **可执行动作**且能回扣 §2 中的优先痛点非空泛加强运营
- **顾客是谁****禁止**重复报告中的细类词频分品类样本量展开文本挖掘方法 **少量结论句**谁搜关心什么即可**1.3 本品聚焦**须写清本期主攻人群/场景 **§2 痛点**的对应关系
- ****§2.1 痛点表须**写全**监测已支撑的主要维度至少覆盖**口感/质地预期**按细类分线见下条**分量/规格/克重与场景是否匹配**若摘要负向主题或 `strategy_hints` 中出现该方向则**不可省略**信任与价格感知等**短语结论**不写统计过程§2.4 负向归因写**主题级结论**即可 brief/节选已出现具体品牌或例句可作**佐证****禁止**编造未出现的品牌或评价原文§2.5 为全稿**动作总锚**后文须能指回
- ****§2.1 痛点表须**写全**监测已支撑的主要维度至少覆盖**口感/质地预期**按细类分线见下条**分量/规格/克重与场景是否匹配**若摘要负向主题或 `strategy_hints` 中出现该方向则**不可省略**信任与价格感知等**短语结论**不写统计过程**证据信号列遵守上文§2.1 证据信号硬性条款****禁止**为凑行数而捏造用户引语或未监测结论§2.4 负向归因写**主题级结论**即可 brief/节选已出现具体品牌或例句可作**佐证****禁止**编造未出现的品牌或评价原文§2.5 为全稿**动作总锚**后文须能指回
- ****§3.2 **每条转化障碍**须对应**至少一条应对动作**在什么页面/环节改什么§3.1 时机叙述后须**承接** §2 中优先解决的痛点
- ****品牌承诺与调性须能落到**可感知触点**如商详第几屏包装客服首句避免只有形容词
- ****§5.2 差异化§5.3 竞争应对须写清**相对竞品多做什么/少做什么具体一步动作**

View File

@ -294,6 +294,8 @@ def build_strategy_draft_markdown(
"",
"*成稿须列全监测已支撑的主要维度(依数据取舍),通常含:**口感/质地**(按细类分线)、**分量/规格/克重与场景**、信任与配料、价格与促销感知等。*",
"",
"*「证据信号」须与 `structured_brief` / 策略线索 / 报告节选**可核对****禁止**编造「用户反馈『……』」式引语,除非原句已出现在上述输入中。*",
"",
"| 痛点 | 证据信号 | 优先级 |",
"|------|----------|--------|",
"| *(成稿依数据与评论归纳)* | | |",

View File

@ -26,8 +26,10 @@ class StrategyDraftTests(SimpleTestCase):
self.assertIn("任务 ID**99", md)
self.assertIn("假设A", md)
self.assertIn("重点:华东", md)
self.assertIn("目标与边界", md)
self.assertIn("营销策略与总体方向", md)
self.assertIn("## 摘要", md)
self.assertIn("「证据信号」须与", md)
self.assertIn("## 一、顾客是谁", md)
self.assertIn("## 七、品牌四线", md)
self.assertIn("市场策略制定草稿", md)
def test_strategy_decisions_merge(self) -> None:
@ -56,7 +58,8 @@ class StrategyDraftTests(SimpleTestCase):
self.assertIn("- [x] **卡腰**", md)
self.assertIn("- [ ] **贴顶**", md)
self.assertIn("侧翼切入", md)
self.assertIn("| 产品 | 做低糖配方 |", md)
self.assertIn("做低糖配方", md)
self.assertIn("### 7.1 品牌建设", md)
self.assertIn("- [x] 关注词/场景统计是否以偏概全", md)
self.assertIn("- [ ] 价格带是否含大促", md)
self.assertIn("- [x] 列表集中度与深入样本品牌是否不一致", md)
@ -154,5 +157,5 @@ class StrategyDraftTests(SimpleTestCase):
self.assertNotIn("评价文本中「口感", md)
self.assertNotIn("用途/场景中「控糖", md)
self.assertIn("样本内品牌较分散", md)
self.assertIn("促销与活动(须与报告对齐)", md)
self.assertIn("price_promotion_signals", md)
self.assertIn("price_promotion_signals", md)

View File

@ -153,6 +153,7 @@ LLM 路径下:**A** 经 `compact_brief_for_llm` 压缩进 payload**B** 原
| 除 §2 外各章须带可执行句 | `STRATEGY_SYSTEM` 分节要求;规划 §1.1 表 |
| 语气:少内部缩写、少反复「对齐第几章」 | `STRATEGY_SYSTEM` **语气**段 |
| 分量/规格/克重痛点 | `STRATEGY_SYSTEM` §二;底稿 §2.1 提示 |
| §2.1「证据信号」可溯源、禁编造用户引语 | `STRATEGY_DATA_RULES` §2.1 证据列硬性条款 |
| 负向归因(主题级,可举 brief 已有例证) | `STRATEGY_SYSTEM` §二;底稿 §2.4 |
| 口感按细类:酥脆 vs 松软分线,禁止一词盖全站 | `STRATEGY_SYSTEM` **口感/质地与细类** |
| 促销:满减/满折/券/跨店,不编造门槛、不全节留空 | `STRATEGY_SYSTEM` **促销**;底稿 §八.3 |