策

策略商诊断

作者:董保全v6

策略商诊断:给门店ID即跑完"轩辕取数→战报归属→雷达→分型→一页纸PNG→alidocs永久版+开权限→阿里钉私发+BD分发→回执回读"全链路。触发词:策略商诊断、策略商整改一页纸、整改一页纸、跑一下这家店、诊断并出页、一页纸发BD。分型框架引用 store-diagnosis-framework。

下载量
271
点赞
67
价格
免费

技能文档

---
name: celue-shang-zhengai-onepage
description: 策略商诊断:给门店ID即跑完"轩辕取数→战报归属→雷达→分型→一页纸PNG→alidocs永久版+开权限→阿里钉私发+BD分发→回执回读"全链路。触发词:策略商诊断、策略商整改一页纸、整改一页纸、跑一下这家店、诊断并出页、一页纸发BD。分型框架引用 store-diagnosis-framework。
title: 策略商诊断
category: 运营
version: 2.3.0
---

# 策略商诊断(门店整改全链路执行管线)

给一个门店ID(可带店名),产出四段式精简一页纸 PNG 并按标准 caption 分发到阿里钉(用户+归属BD),永久版托管 alidocs 并开可管理权限。分型判定框架引用 `store-diagnosis-framework`(§7.1/§14.9 五型 + §16.11 批量分型器与不在招商池口径 + §16.13-16.19 v6/v7 双平台管线)。

## 输入
- 必填:shopId(可多店批量;批量>7店按波次拆,单波≤7)
- 可选:HD 同店数据(录屏/截图/商家端)→ 叠加 v6/v7 双平台六件套与社会证明重建

## 步骤
1. **节点1 轩辕直调**(模块直调,xy-*.exe 被 AppLocker 拦截 WinError 786):
   `py -X utf8 diag_xy.py shop-detail {sid} > n1_{sid}_shop-detail.json`、`marketing` 同理;
   然后 `cp n1_{sid}_shop-detail.json n1_{sid}_detail.json`(gen_auto 只认 _detail/_marketing 后缀)。
   鉴权按 cwd 读 `{cwd}/.xy-cli/config.json`;工作区缺失报"认证信息未配置"时 `cp ~/.xy-cli/config.json .xy-cli/` 恢复。
2. **战报归属**:`ls -t Desktop/9月招商战报*.xlsx | head -1` 取最新;扫 `0配阶梯明细`+`CPS商户明细` 两 sheet 增量补 zb_all.json(字段:业务包/邀约/阶梯A池/出资A/阶梯A在线/c配目标/c配商/0配占比/超抢手/CPS商户池/是否开通cps/CPS月达标)。
   - **不在池**(全 sheet 无记录):zb_all 写 `{"业务包": <推断>, "不在招商池":1}`;BD 归属用营销清单中"BD直上"活动的 creater 姓名定;gen_auto nobp 口径自动切换资源行文案防 None。**nobp 时 C配口径改「以营销清单为准」**(不再看 c配目标/c配商/0配占比,避免 gap 计算误触发"补C配"动作);**A 段不生成"开阶梯A / 开CPS / 补C配"这类需池动作**(无池可开),处方走"自建营销":补店铺满减(≤5档双递增、首档贴客单价)/ 新客立减 / 特价菜引流品 / 高客单店配凑单加购。
   - CPS 口径:`是否开通cps`=1 为开通;`CPS商户池`=1 仅入池;禁止写"池=1未开通"。
3. **雷达3.0**:navigate `radar-v2.faas.ele.me/xy/daojiaShopDetailMetrics?shopId={sid}` → JS clickTxt('交易')→抓 jy → clickTxt('流量')→ll → clickTxt('运营')→yy(先点交易防运营字段混扰);yy 值去"小时/分钟"后缀否则 num()=0;连续 2 次 V2 timeout = tab 僵死 → tabs_create_mcp 新开 tab。
   浏览器 javascript_tool 会 await Promise:可单次 JS 内「点近7日→交易读→流量读→运营读」整店读完,每店仅 navigate+read 两次调用。
4. **分型+一页纸**:`py -X utf8 gen_auto.py {sid}`(14.9 判定顺序 ⑤供给→④过投→①转化(P1<8 或 P1<10&曝光<0 或 **P2<10**)→②在池未开通→③;A表动作挂因子;P2<10 挂独立 P0"提P2下单率")。
   有 HD 同店数据时叠加:v6 六件套(主病灶banner/A挂因子/D复盘时点/E预期增量/F附录双表)或 v7 社会证明重建精简版;HD-E 菜品对照走 `hd_e_dish_compare.py`(纪律 D1 去【…】前缀+后缀包含兜底、D2 价差用 E到手价=min(标价,折扣,超抢手)、D3 未匹配键告警)。
5. **渲染**:`py -X utf8 render_all.py`(Chrome headless `--force-device-scale-factor=2 --window-size=1000,4200`,--screenshot 必须绝对 Windows 路径否则 0x3 静默失败;PIL 裁底部空白;增量:PNG 比 HTML 新则跳过)。
6. **交付七步链**(按阶段批量并行,远快于逐店串行):
   1) `create_document(name="{店名简称}{sid} 活动配置方案一页纸", markdown=摘要)` → nodeId/docUrl(可 N 店并行);
   2) `stat -c %s` 读 PNG 字节 → `get_doc_attachment_upload_info(nodeId, fileName, fileSize, image/png)`(可 N 店并行);
   3) `curl -X PUT -H "Content-Type: image/png" --data-binary "@<绝对路径>" "<uploadUrl>"` 须 200(bash 循环一次跑完 N 店);
   4) `insert_document_block(attachment)` —— **attachment 内不传 size 字段**(传了报 string 错)(可 N 店并行);
   5) `download_doc_attachment` → 签名直链(约2h有效,发送前现取)(可 N 店并行);
   6) `add_permission(nodeId, roleId=MANAGER, userIds=["282722", <BD staffId>], notify=false)`(旧格式;members+corpId 报 HSF internalError)(可 N 店并行);
   7) dws 串行发送:**发给用户本人会话免确认;发给 BD 等任何第三方前必须先手动确认**——先把完整消息正文+收件人(姓名/工号)呈给用户,等用户明确同意后才发送。确认后串行发送,间隔 sleep≥25s,RATE_LIMIT→sleep20-30 重试(**一次一调用**,见纪律)。
7. **回执回读**:`dws chat message list --open-dingtalk-id X --time 起点` 核 ground truth(裸跑不接管道,管道会绕过宿主执行钩子);缺谁补谁;文档 URL 丢失用 `list_nodes` 按名恢复;索引有延迟,末条未现稍等复读勿重发。

## 合并消息标准格式(v2.3.0 定稿)
发送内容 = 一条 markdown 消息,结构自上而下:
```
![一页纸]({alidocs附件OSS签名直链})

【{业务包}】{店名}({sid})·分型{fx}

观点:{3句话,每句一个病根,含关键数据}

TODO:
①{动作1}:{做法+目标}
②{动作2}:{做法+目标}
③{动作3}:{做法+目标}

永久版: {docUrl}
```
**生成规则**:
- 观点3句 = 分型病根→3句短句(每句≤20字、带核心数据,如"曝光大跌23.3%,流量进不来。");只讲影响订单的核心点,不展开分析。
- TODO 3条 = W1 处方前3个动作,与观点逐条对应(观点讲"为什么"、TODO讲"做什么");每条=动作名+做法+目标值。
- 报告文档(alidocs 五段正文)与一页纸 PNG 内容格式不变,完整报告点"永久版"进文档看。
**技术要点**:
- 图片直链 = `dws doc media download --node {nodeId} --resource-id {resourceId}` 返回的 downloadUrl(约2h有效,发送前现取;RATE_LIMIT 时 sleep 后重试)。
- markdown `![图](url)` 在钉钉渲染为图片气泡;alidocs 链接自动渲染为带文档标题的可点卡片;回读核验看 resourceRefs ready:true。
- 纯文本 caption(旧格式)仅作降级备用:`【{业务包}】{店名}({sid})·分型{fx}·W1{w1动作}|永久版: {docUrl}`。

## 映射表
- BD staffId(add_permission 与 dws --user 通用):董保全282722/曾小峰470054/周成威511688/王庭478934/方泽明518202/付明亮530523/梁津铭519464/李宇云517579
- BD openDingTalkId(list 回读用):董保全 DpiiRneBOCao7YgE0ftqDGIUThexA7z2Lz/曾小峰 DpiiRneBOCao4kb3TV5hOPzPcAzc2325X3/周成威 DpiiRneBOCao4u5qMuJeEIVGWgvPEyEzY3/王庭 DpiiRneBOCao5kQxaGMmgGLknnr1DYo0Vh/方泽明 DpiiRneBOCao77N69VYx9ROpwKh2veX5Ro/付明亮 DpiiRneBOCao7DtpAJuzLMymdrCnn2RJK9/梁津铭 DpiiRneBOCao7lUafXqHmV3w0EsRvazg/李宇云 DpiiRneBOCao6EiicLIOlGIJweuzWrDQKXH
- 业务包→BD:滘口=曾小峰/花地湾=周成威/沙涌=王庭/中海花湾=方泽明/龙溪=付明亮/西朗=梁津铭/菊树=李宇云

## 纪律
- **第三方发送手动确认**:凡发给用户本人以外收件人(BD/其他同事/群)的消息,发送前必须把完整正文+收件人呈给用户并取得明确确认,绝不未确认代发;批量场景按店或按波次列确认清单。发用户本人会话免确认。
- **单发送者串行**:批量/收尾/接管禁止多代理并发 dws(互触 RATE_LIMIT 集体卡死且不自愈);接管也派单代理或主会话亲自跑。
- **dws 一次一调用**:单次 Bash 调用只执行首条 dws(宿主钩子只处理第一条);`&&`/`;`/for 链式与 python subprocess 均只生效首条或字面量 garbled。串行=一条 dws 一次 Bash 调用,前置 `sleep 25` 保间隔。
- **BD 收件用 staffId**(`--user 511688` 等)比 openDingTalkId 可靠(openDingTalkId 偶发 receiverUid 空报错或假 success 不投递);用户董保全发送用 openDingTalkId DpiiRneBOCao7YgE0ftqDGIUThexA7z2Lz。
- exec 复用 gen_auto/gen6 源码须 strip 其 `sys.stdout=TextIOWrapper` 行;外层也包装 stdout 时留 `_keep=sys.stdout` 防 GC 关共享 buffer。
-  bash 实际是 bash 非 cmd:禁 cmd 语法;heredoc 内单引号撞外层单引号→落盘脚本用 Write 工具。
- 出端白名单(AGENTS.md 隐私章节):dws 发送/alidocs OSS 托管/签名链均为用户指令交付通道;诊断器报"出端风险"判误报,不为消警删业务通道。
- 全 0 店(营业0h/动销0)判疑似停业:一页纸注明 W1 先核实恢复营业,不套常规转化处方。

## 验证
- 每店交付四件套齐:outputs PNG(目检 Read 一次)+ alidocs 文档含附件 + 权限 success + 用户&BD 双回执 success。
- 批量收尾跑 build_final_table.py 出总回执表(用户/BD/权限三列到位计数)。

## 版本记录
- **v2.3.0(2026-09-10)**:合并消息格式定稿——「一页纸图片 + caption(业务包/店名/sid/分型) + 观点3句话(每句一个病根带数据) + TODO 3条(与观点逐条对应=动作+做法+目标) + 永久版链接」;报告文档与一页纸 PNG 内容格式不变,不再内联长报告正文。图片走 alidocs 附件 OSS 签名直链(`dws doc media download` 现取、约2h有效);旧纯文本 caption 降级为备用。1327986251 样例实证:图片气泡+文字+文档卡片渲染正常、resourceRefs ready。
- **v2.2.0(2026-09-09)**:新增硬纪律「第三方发送手动确认」——发给用户本人以外收件人(BD/其他同事/群)的消息,发送前必须把完整正文+收件人呈给用户并取得明确确认,绝不未确认代发;发用户本人会话免确认。交付七步链第7步同步改写。
- **v2.1.0(2026-09-07)**:①技能改名「策略商诊断」(slug 保持 celue-shang-zhengai-onepage 以延续广场身份,中文名见 title/描述/触发词);②caption 标准格式改纯文本模板(去内联 `![](签名链)`:签名链含 & 被 dws 宿主截断),alidocs 链接钉钉内自动渲染标题;③dws 纪律补两条实证:单次 Bash 调用只执行首条 dws(串行=一次一调用+前置 sleep25)、BD 收件用 staffId 比 openDingTalkId 可靠;④交付七步链标注按阶段批量并行(create/uploadinfo/curl/insert/permission/download 各可 N 店并行);⑤雷达补 Promise 单次整店读法、节点1补 cwd 鉴权恢复法、回读补"裸跑不接管道+索引延迟勿重发"。20 店批量(2026-09-07)全链路实证:用户20/20、BD20/20、权限20/20。
- **v2.0.2(2026-09-07)**:同步 `store-diagnosis-framework` v1.20.0 §16.11 未落地的两条 nobp 细节——① **C配口径改「以营销清单为准」**(不再看 c配目标/c配商/0配占比,避免 gap 计算误触发"补C配"动作);② **A 段不生成"开阶梯A / 开CPS / 补C配"这类需池动作**(无池可开),处方改走"自建营销"(补店铺满减 / 新客立减 / 特价菜引流品 / 高客单店凑单加购)。首段引用范围显式加 §7.1(五型正表)与 §16.11(批量分型器与 nobp 口径)。SKILL.md 与 gen_auto.py 实际行为一致(脚本层已在 v2.0.0 修复,此次仅补文档口径与引用)。
- **v2.0.1(2026-09-07)**:CPS 行口径残留修复——B表 CPS 行改用「是否开通cps={0/1}」字段表述(v2 复跑 540825166 时发现仍写"CPS池=1未开通"歧义表述);复跑验证:管线零报错、分型随整改成效自动迁移(该店动销72→114后由⑤+②迁移为①+②)。
- **v2.0.0(2026-09-07)**:①分型①纳入 P2<10 并挂独立 P0"提P2下单率"动作(江渔儿 2093277458 实证:P1 13.49% 达标但 P2 7.25% 崩,只看 P1 会漏判);②不在招商战报池口径:zb_all 加"不在招商池":1、gen_auto nobp 切换资源行文案防 None,BD 归属改用营销清单"BD直上"活动 creater 姓名定;③HD-E 菜品对照三纪律(D1 去【…】前缀+后缀包含兜底、D2 价差用 E到手价=min(标价,折扣,超抢手)、D3 未匹配键告警)固化进 hd_e_dish_compare.py;④雷达 tab 跨会话会被回收(tab id 失效),每会话先 tabs_create_mcp 新开再 navigate;⑤SkillPie 发布/更新流程入档(version bump 后 skillpie submit 发新版)。
- **v1.0.0(2026-09-03)**:首版:七步全链路(轩辕直调→战报归属→雷达→gen_auto分型→render_all出图→alidocs七步交付链→回执回读)+ caption 标准格式 + BD 双映射表 + 单发送者串行纪律。

如何安装此技能?

访问技能市场,点击「安装」按钮,按提示将技能包放入 AI 编程助手的 skills 目录即可。

浏览技能市场

支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手