outbound-call-analysis v1.50 | 一条主链:清过期 → 取数 → 分析 → 出两版 → 发链接 → 写一列 → 两路推送
跑监测批次.py只处理状态=持续监测 的行;每行给 MCP 凭证(可多段 json)、开场白秒数、webhook 地址、是否启用推送 webhook发布_Cloudflare.py --prune每次跑批必做:过期页从站点摘掉后重发一次才算真失效,项目空了就删项目;失败会明确喊出来call_records先看当日条数,不吃导出配额;为 0 走「今日无外呼任务」导平台表.py≤1 万条 1 次搞定;超了按条数均分切时间、取最少段;导完拿行数与平台总量对账,被裁尾巴就告警QuotaError/CredError 触发换下一把,全失败才退回已拿到的部分结果读通话记录.py列别名、接通判定、失败归类、AI 代接、按轮次的听不清信号出分析.py表里有几天就出几套范围;按日聚合、配色阈值、下钻键复核助手.py只读、不写文件;改完标 reviewed,页面「脚本草稿」标记才消失出报告.py号码/公司/转写全留、可导出、可下钻。不进公网链接,只走群文件与本机留存出报告.py --public号码遮中间(按长度分档)、姓名只留姓、公司留前两字;平台链接与录音清空;剥掉模板注释;导出按钮不生成+下载硬闸门oca-c-xxxx/2026-10-25.html所以每天都是新链接、不覆盖旧的;发完回读正式域名验 200(预览域名带 8 位哈希前缀,本机 TLS 会告警,不能当交付链接)pages.dev 的域名直接拒发——防止哪天遮罩规则被改松就把没遮干净的页面发上公网--publisher / publisher外部程序契约:收「文件+公司+日期」,回 {"url":…} 或裸链接。Cloudflare 发不出才用它2026-10-25格内第一行「分析链接:…」,下面接本次结论;不再建附件列、不再传 xlsx/HTML推企微.py需同时满足:开关=推送 webhook + 地址已填 + 该家走到「已回传」。发结论摘要+原始 HTML+本次表格;超 20MB 自动降级成「请到后台下载」而不是整单失败--push-hook / QY_WEBHOOK只发本次总览:一家一行(状态/呼出接通/缺不缺数/可能问题/链接),不带文件--no-push、--dry、开关没开、地址没填、没走到回传自检环境.py 跑批前查 Grist·名单·凭证
出报告.py 四道内建闸:语法·模板版本·下钻键·口径对账
页面 __verify() 逐范围实时重算比对
打包.py 凭据扫描·版本三处对齐·py_compile