### Before\n\n用户每次在 HTML 或截图里发现一个新口径,agent 临时补一次脚本或 prompt:\n\n- 四个“商品类目/商品类型”标签要迁到 `创建配置态`。\n- “不能上架xxx”又要单独归到 `创建前/规则确认态 / 不能上架xx`。\n- 价格、素材相关桶还要再裁剪、重命名、把剩余 case 移到 `其他创建配置`。\n\n问题是规则散落在一次性脚本和对话里,后续很难回答“这个 case 为什么被移动”“这次改动影响了多少行”“客服话术有没有污染分类”。\n\n### After\n\n运行一个统一流水线:\n\n```bash\npython /Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/taxonomy_relabel_pipeline.py \\\n --input /Users/bytedance/Documents/job-bu/data-analysis-workspace/projects/<project>/商品域最终体系_生命周期映射_session复核.csv \\\n --rules /Users/bytedance/Documents/job-bu/data-analysis-workspace/config/taxonomy_relabel_rules.yml \\\n --definition-dir "$HOME/Library/Mobile Documents/com~apple~CloudDocs/bytedance" \\\n --out-dir /Users/bytedance/Documents/job-bu/data-analysis-workspace/projects/<project>/out/relabel_2026-05-07\n```\n\n流水线步骤:\n\n1. 拆分用户侧发言和客服侧发言。\n2. 先跑强规则,例如“不能/无法/没法/上不了 + 具体对象”。\n3. 再对边界模糊的四标签调用 Ark,并强制模型只依据用户原话。\n4. 按 priority 合并命中结果,生成 final CSV/XLSX/HTML。\n5. 生成 audit CSV:每行包含原标签、新标签、命中规则、证据句、Ark raw response。\n\n验收信号:\n\n- 总行数与输入一致。\n- 所有被移动行都有 evidence_text 和 rule_id。\n- 抽样 audit 中不存在“仅凭客服回复倒推商品类目”的 case。\n- HTML 复核页可以按 `rule_id=feedback_product_type_unselectable` 或 `target_label=不能上架xx` 直接筛选。