ThearchyHelios
|
cf30f999f6
|
验收复核查出的三处:有量纲比率的效应值(结构效应、自身效应、合计影响、变化)照原值显示,不再乘一百说成百分点(客单价影响 -11.12 元 / 单以前显示 -1,112.1 个百分点);只读一张表、目录还没维护时分析范围照实说目录没维护,不说成对不上目录里的列;写作规则补一条不写重复判定语开头的引言
|
2026-10-21 18:08:59 +00:00 |
|
ThearchyHelios
|
9219df8190
|
真实模型验收查出的五条修正:①比率拆解里比率本身是有量纲的比率(客单价,元 / 单)时不套百分数,以前 160.76 显示成 16,076.0%,各段分子都不超过分母(退款率这类占比)照旧按百分数;②写作规则补两条——判定语一句只引用一份结论、不把几份判定语用逗号拼成一句,「核对不了」是系统的核对说明不是结论;③说法核对的来源判断看整个分句(主来源写在判断词后面的「主要由订单量放大带来」也能认),点名的段按去掉结尾量词的词根兜底(订单量 认 订单数);④数据目录还没维护时候选维度照实说目录没维护、提示怎么补,不说成认不出事实表;⑤评测估不出每题花费时金额照 0 记但记成未计价,账本上看得出;金额上限照旧按累计金额判
|
2026-10-21 17:33:49 +00:00 |
|
ThearchyHelios
|
7b47ce1724
|
合入第 2 波复核修复 S1:分析结论的占比、变化率、比率之差按百分数 / 百分点显示——结果表带每列的显示格式、具名的数带格式,证据渲染、整表、写作目录、证据面板、导出、可验证报告都按它;显示规则 4 版,老文档按记下的版本复核;空格写「—」
# Conflicts:
# backend/tests/test_analysis_pages.py
|
2026-10-21 16:23:39 +00:00 |
|
ThearchyHelios
|
709a50208a
|
合入第 2 波复核修复 S2、S5、S6:关分析工具那一臂挡分析卡与用了分析的子工作流、节点手册里不再出现分析;问题意图词表与自查那句进评测的提示词指纹;问题意图不把问构成当来源、不把问数据质量当异常
|
2026-10-21 16:22:21 +00:00 |
|
ThearchyHelios
|
eade5aab5d
|
关分析工具那一臂挡分析卡:图里有分析卡、嵌套的子工作流里有分析卡或分析工具都挡回去改;关掉时节点手册里不再出现分析卡、分析工具和分析相关的配置(改写与整段去掉);问题意图词表版本与自查交回的那句进评测的提示词指纹;问题意图不把「哪个贡献最多」当来源、不把「数据是否正常」当异常;评测「关」那一臂的替身改成照样试着加分析卡、靠真代码挡
|
2026-10-21 16:19:49 +00:00 |
|
ThearchyHelios
|
31ed7a96f3
|
证据面板的计算一步照服务端写好的字显示:具名的数按结论记的格式(占比 61.9%,不再写 0.618556701031)、结果表的格同样(变化率 -14.6%),空格写「—」不写 null;列类型照结果表的 column_types。比率拆解的整体比率那一格和对照的那一格也按格式写(3.5%,不是 0.035)。前端照原样显示(只补一句说明)
|
2026-10-21 15:55:20 +00:00 |
|
ThearchyHelios
|
55376fd332
|
引用分析结论时没写换算的按结论记的格式渲染(显示规则 4 版):[[v:A1.r0.share]]、[[a:A1.top_share]] 取这一列 / 这个数的格式(占比、变化率按百分数,比率的变化按百分点),写作者自己写了换算的照他的;实际用的换算记在引用上,展开整表时每一格也照写。写作目录的具名的数、结果表的行按同一格式写。3 版及以前组装的文档照当年原样显示,复核按记下的版本,不判对不上。pct、pp 两种换算的写法(不是 0 的不写成 0.0);可验证报告按引用上的换算、4 版起按结论记的格式渲染,不认识的显示规则版本(5 版)判无法核对
|
2026-10-21 15:55:11 +00:00 |
|
ThearchyHelios
|
3ecc6223df
|
分析算子给结论里以比率存的列和数记换算:契约加 ResultTable.formats、AnalysisResult.value_formats(换算同 [[m:]] 的后缀,另加 pp 表示百分点),各算子逐个填全——可加、乘积拆解的 pct、share;比率拆解的 w_*、r_* 记 pct,mix、rate、total 是比率之差记 pp;波动基线按变化率比较时的 change,趋势的相对斜率;差异检验比率模式的 a_value、b_value 记 pct,diff、ci_lo、ci_hi 记 pp;values 里的 pct_total、top_share、top_k_share、mix_share、rate_share 等。都为空时整项不写,结论和以前一字不差;run 与 recompute 逐字段相同、同输入两次 run 逐字节相同照旧成立(tests/test_analysis_run 的形状检查认这两项可选)
|
2026-10-21 15:54:46 +00:00 |
|
ThearchyHelios
|
c54196326f
|
证据面板的分析结论:结果表的格写列名,总数那一格的值按服务端的写法显示。①「这一处引用的是 结果表第 1 行『share』」原来写的是列 id,现在服务端在 cited 上另给 column_label(结果表记的 labels,如「占变化的比重」),目录条目也带上 labels,证据面板、读屏的出处、导出页、可验证报告都照列名写;② 输入里「总数那一格 … = 159175.18」和同一节的闭合核对「159,175.18」两个写法并排,现在服务端另给 value_rendered(render_cell,千分位、NULL 写「—」,和闭合核对同一个写法),三处界面照原样显示。结果表数的换算(比率、空格)不在这次改动里
|
2026-10-21 15:53:27 +00:00 |
|
ThearchyHelios
|
b919890b7b
|
问数据时间线的分析一步、协作成员的分析:编号照实说是哪一层。Agent 工具那一步标题写「变化拆解(可加) · 本节点 A1」——编号是这份 Agent 自己的分析容器里的(交回模型的「【分析 A1】」),报告目录里的 A1 按整次运行的台账编,图里还有分析卡时就不是同一个,不再冒充报告里的编号;分析卡的一项照旧写这一项的标识。协作成员的分析不带编号(成员的结论还进不了台账,照它写「· A1」会和报告里点名的结论对不上),event_view 交回 alias=None。check-decode、check-stream、协作成员那条测试照新写法改
|
2026-10-21 15:52:58 +00:00 |
|
ThearchyHelios
|
9461c03a63
|
分析结论的「在验证什么」照实说谁写的:分析卡上那一条是模板作者写的,标「分析卡上写的『在验证什么』」;Agent 现场做的照旧「Agent 写的假设」(台账条目带 item 的是分析卡、带 call_id 的是 Agent)。服务端按 origin 给 hypothesis_label、hypothesis_note 两句,证据面板、导出页、可验证报告都照原样显示,不自己拼。测试:证据接口两种都测,分析卡的链、导出页、核对页各加一条断言
|
2026-10-21 15:52:19 +00:00 |
|
ThearchyHelios
|
28c538a72f
|
趋势判断工具的说明开头改成契约的叫法「趋势判断:」(原来写「趋势:」,另外四个工具都以 OP_LABELS 的叫法开头);测试补一条:五个分析工具的说明都以契约里这种分析的叫法加「:」开头,助手的工具清单、证据面板、评测写的是同一种说法
|
2026-10-21 20:02:41 +08:00 |
|
ThearchyHelios
|
03cedbaf1d
|
合入 W2-c 前端:分析卡节点与分析项编辑器、报告节点两个新字段、设置「分析」一节、问数据时间线的分析步骤与出具横幅三项、运行对比的分析卡一区、证据面板与正文接上分析结论(六步出处链、闭合核对、两期可比性、说法违规标注、分析范围)、可验证报告核对页与分析样本页、口径账本摘要防 NaN;服务端补分析工具事件里的判定与分析结论的单独出处接口
# Conflicts:
# backend/tests/test_eval_schedule.py
|
2026-10-21 19:34:24 +08:00 |
|
ThearchyHelios
|
cc2c7a00fb
|
可比性期望认正文里「两期不能直接比」的说法:说法表(engine/analysis_claims)照旧不加可比 / 不可比一类,说法核对不打回「本周数据不完整,不能直接比」这种谨慎的提醒;评分在 eval/judgements 另用一张只给自己用的小词表(_INCOMPARABLE:不能直接比、不可比、不具可比性、本期数据不完整、还没过完、只有几天、差几天、不满一周、天数不同、口径不同……;「无法比拟」「比不上」、不带「直接」的「没法比」不算)。期望是不可比、正文明确这么说了的,按「对但没引用」算;同一分句里前面有否定的、句子里前面有假设或疑问的、问句都不算;期望是可比的只能靠引用。读答案时有这类说法的句子也留下(sentences_of_doc、sentences_of_text)。测试:几种说法算对但没引用、找到的那一处照实写;假设、疑问、否定、差得远、无关的「不完整」算错;期望可比的正文怎么写都不算;说法表照旧不认这类说法。test_doing_nothing_and_saying_nothing_is_wrong 里原先「本周还没过完,两周不能直接比」算错的那条断言按新规则移到新测试里,改成算对但没引用
|
2026-10-21 19:32:38 +08:00 |
|
ThearchyHelios
|
8a6ad0e7a2
|
评测变体加「分析工具」开 / 关(缺省开)和「分析工具贡献」预设对照:eval/variants 的变体多一项 analysis {tools: on | off},只认这两个值、缺省开,不合规的照实拒(eval_variant_invalid,落到 variant.analysis);analysis_tools(变体) 读开关,加这一项之前存下的变体按开。eval/answer.TurnContext 加 analysis_tools,Driver 透传给 chat/drive.TurnDriver(再到 api/copilot.answer_ops):关的那一臂建图时工具清单不列分析工具、节点手册不讲分析卡;工作流题不建图,不受影响。同一变体(variant_key)认分析工具:开着时不写进去,和加这一项之前算出来的一样,以前的评测照样当基准、趋势线不断;关着时不同。指纹记 analysis_tools,对比的指纹差异写「分析工具:开 → 关」(老指纹里没有这一项的按开);变体那一句写「分析工具开 / 关」,结果页、A/B、估算照它显示。api/evals 的预设对照加 analysis_tools(variants.analysis_tools_preset:开、关两臂,名字「分析工具开」「分析工具关」,别的项照 variant 或题集的缺省)。测试:变体规范化、拒收、同一变体指纹、变体那一句、预设两臂和 Driver 拿到的开关、估算与 A/B 拒收(test_eval_runner);指纹差异的开、关和老指纹(test_eval_compare);真运行的「分析工具贡献」对照(test_eval_analysis_runs:关的那一臂助手看到的 system 里没有分析工具和分析卡、作答运行里没有分析结论、算错,开的那一臂对且可追溯,两臂共用期望、指纹和同一变体都不同)
|
2026-10-21 19:32:38 +08:00 |
|
ThearchyHelios
|
019676670b
|
可验证报告的核对页:正文里的判定语被改过时,原因写「正文显示「…」,分析结论里的判定语是「…」」。判定语的引用不带值(判定语就是结论里的那句话),原来照数字的写法拼成「引用的值是空值(NULL)」,读起来像引用本身是空的;具名的数、结果表的格照旧写引用的值和按显示规则应显示的字
|
2026-10-21 19:09:20 +08:00 |
|
ThearchyHelios
|
887d086261
|
合入 W2-a 想 + 文档:问题意图词表、分析方法定稿(analysis.method@2)、助手建图认分析卡与分析工具(分析类问题的形状、自查只挡一轮、关分析工具的开关)、复核信号并成一条只写说明、内置模板 ⑪「异动分析(可追溯)」、中英文档(新增 analysis 一篇、七对文档与升级说明、README)
|
2026-10-21 18:54:50 +08:00 |
|
ThearchyHelios
|
5a02d17bf2
|
助手建图加「关掉分析工具」的开关,给评测的「分析工具开、关」对照用:api/copilot.answer_ops 加关键字参数 analysis_tools(缺省真,和以前一字不差)。为假时给助手的工具清单不列五个分析工具(_tool_catalog),节点手册去掉只讲分析能力的三段(agent 段里分析类问题绑分析工具那一条、分析卡一整条、搭图规则第 7 条;报告段的引用写法和分析说法核对照留,node_reference),问数据的包装不给分析类问题那一条形状(ANALYSIS_SHAPE_PROMPT 抽成常量),问题意图那条自查不提;图里照样绑了分析工具的(Agent、协作成员、调用工具节点)按「绑定的工具不存在」挡(analysis_tools_off,交回模型去掉,改不好就不运行)。chat/drive.TurnDriver 加同名参数和属性 analysis_tools(缺省真),_generate 透传给 answer_ops;问数据页不暴露,eval/answer.Driver 之后按变体设。测试:关着时工具清单、手册、包装都没有分析,绑了被挡、改掉就运行;开着时绑了照常运行;没碰分析工具的一轮开、关交出的操作逐条一样;TurnDriver 透传
|
2026-10-21 18:47:10 +08:00 |
|
ThearchyHelios
|
94a6eb9c64
|
分析期望的两处小修:期望 SQL 只返回两期时补上的基期、本期写成文字交给分析工具的参数(期次是数的也认,算子按写出来的样子比);参数和结果对不上的原因前面写「第 n 个期望(贡献)算不出期望」,不再叠两个「的」。测试补逐题 E1 顺着下钻找到两层的查询
|
2026-10-21 18:30:08 +08:00 |
|
ThearchyHelios
|
ab65b6032d
|
问题意图:「变化大不大」「变化大吗」归到波动一类(问的是这次变化大不大,不是变化从哪来),自查那条问题照「问题问的是波动大不大」说;来源一类只留「怎么变了 / 有什么变化 / 变化在哪」。测试加一个正例
|
2026-10-21 18:27:05 +08:00 |
|
ThearchyHelios
|
078c2c4d97
|
评测的模块说明补分析期望:judgements.py 管什么、有分析期望的题集开评时拍一份分析设置(算期望、作答都按它,记进指纹,别的题集不拍)
|
2026-10-21 18:23:57 +08:00 |
|
ThearchyHelios
|
7794794278
|
评测的两种分析期望(贡献、判定):期望 SQL 的探针快照上用平台的算子(app.analysis.run,随数据变化的调用错误记成算不了)算出期望的判定,评分沿用五种结论
- 题目(cases.py):contribution 贡献恒为变化拆解(可加、比率、乘积)、另写 top_n(期望点名主要来源的前几段,缺省 1);verdict 判定是波动基线、趋势判断、差异检验、可比性检查。参数同分析工具(不写输入、总数、下钻,不写阈值),文字参数可以带 {{ schedule.* }};来源、方向、判定不许人填(HUMAN_VALUE_KEYS 加 segment、subjects、direction、verdict 等);口径题、期望反问的题配不了
- 算期望(gold.py、judgements.py):遮罩列、目录事实、现查表的日期范围和分析工具同一套取法;阈值用这次评测的分析设置快照(Context.analysis),试算时现读设置;期望 SQL 只返回两期时可以不写基期、本期;算不了的这一项照实记(评分时不能评分),参数和结果对不上的整题没有可用的值;截断的快照照旧拒收。作答前后两次期望、和上一次比的「数据变了」都不比运行当天、现查时刻、输入快照的工件(stable_sets)
- 评分(score.py、judgements.py,SCORER_VERSION 3):判定码归到同一套判定类再比;答案引用了(判定语、具名的数、结果表的格、句末依据)判定对得上的分析结论是对且可追溯,引用它的那句却写反了不算;没引用但正文按说法表(engine/analysis_claims 同一个 scan、同一套绑定规则)写对了是对但没引用;判定、来源、方向对不上或写成相反、根本没做也没说是错。答案的分析结论从作答运行的台账读、引用从报告文档读,有判断词的句子一并读出;逐题 E1 引用分析结论时按它的输入查询比(下钻顺着上一层找);判定语不再当成答案里的数;老结果的明细里没有这两项按空读
- 执行(runner.py、answer.py):有分析期望的题集开评时拍一份分析设置,算期望、各臂作答的运行(Run.options 的 analysis)都按它,记进指纹(compare 的「分析设置」一项),重试沿用;别的题集的指纹、作答运行的选项不变。助手提示词的指纹加上分析方法(guide 的 id 和全文)、写作者的分析规则和说法表版本
- 总表(stats.py):各期望的结论另按期望的种类各一份(outcomes_by_kind)
|
2026-10-21 18:11:57 +08:00 |
|
ThearchyHelios
|
690e855ea5
|
内置模板 ⑪「异动分析(可追溯)」:两个调用工具节点取数(整体按周 26 周、按地区两周,期次在 SQL 里按每周第一天的日期算出来、整体按周倒序排),分析卡固定做两项(本周的变化放回历史看的波动基线、按地区的可加变化拆解,总数取整体按周的第 0、1 行核对闭合;阈值不写死、取设置),报告撰写节点按受管级别写明最严的几项(含分析说法核对严格),出口按报告来自 + 单元格引用的契约出具。拿来就能按受管级别发布。界面文案白名单加一条:模板 SQL 里中文列别名按 SQLite 加的双引号是 SQL 语法。测试:画布校验、受管发布检查没有错误(模板 ⑨ 一并核)、接一份虚构的四地区 26 周零售库从头运行,两项都做成(明显超出常规波动、主要来自华东)、完整出具
|
2026-10-21 18:08:59 +08:00 |
|
ThearchyHelios
|
97a37d4bd2
|
复核信号认分析能力一轮的缺口:一次运行里算不了的几次分析并成一条「有 n 次分析没做成」,点名是哪一项、为什么(叫法取契约的 OP_LABELS,不再写 analysis_baseline 这样的工具名;老事件没带这几项的照日志原话),排在第一次出现的位置;分析调用写错(tool.error 带 call_error)后来同一个分析工具做成了是 Agent 照说明改对了,不再报 tool_args_fixed、为它叫一次复核模型,一直没做成的并成一条 analysis_call_failed(缺口,只写说明),不再落成 tool_error(严重、可重来,一次写错的分析会让整轮问数据重来);判断词核对重写后仍有的照报告节点原话说处数和重写次数。核对过第 1 波新增的日志代码:report_analysis_claims、analysis_refused、metric_comparability_skipped 三种,都已登记、都是缺口、都在只写说明的一组,RETRYABLE / REBUILD 不加。改了一条旧测试:test_analysis_signals_are_registered_as_gaps_that_only_need_a_note 原来断言三种日志正好等于 NOTE_ONLY,NOTE_ONLY 多了 analysis_call_failed 这种不是日志代码的信号,改成比去掉它之后的
|
2026-10-21 18:08:48 +08:00 |
|
ThearchyHelios
|
8a81fa767e
|
助手建图认分析能力:节点手册加分析卡一段(用途是模板里固定要做的分析,items / overrides,输入只认调用数据库查询工具的调用工具节点和合并查询,产出 nodes.<id>.results.<项> 可按判定分支,结果不进口径卡)、agent 段补五个分析工具(分析类问题绑,绑了平台注入分析方法,只绑给查库的 agent)、报告段补分析结论的引用写法(a:An、a:An.键、v:An.r0.列、table:An、句末 see:An)和分析说法核对(check 缺省、strict、off,只能往严里改)、分析范围,受管指引和发布前修复的硬性约定写明分析说法核对要严格;搭图规则加一条。问数据的包装加「分析类问题」的形状(input → agent 绑查询、表结构和分析工具 → report 按分析结论写、引用判定语 → output)。报告的证据来源认分析卡。自查:GenerateIn 加 question(问数据的一轮把原问题带上,重来时 instruction 是带着原因的那段话),问题是分析类、查库的 Agent 没绑分析工具、图里也没有分析卡时提一条问题(analysis_tools_missing,带 for_model),照 coverage 只交回模型改一轮,改过一轮仍在的不挡运行、收尾时留作提醒。测试:手册里的引用写法交给真解析器、分析卡与工具的叫法取契约、包装的分析形状、自查只挡一轮与几种不提的情形、重来按原问题判
|
2026-10-21 18:08:37 +08:00 |
|
ThearchyHelios
|
5617deb80b
|
分析方法定稿(ANALYSIS_METHOD_PROMPT,guide id 升到 analysis.method@2):在第一版六条上写清按问题选基期(环比比上一个整期、同比比去年同期并写 lag、和目标比要库里有目标,没说就比上一个整期,本期取最近一个过完的整期);周序列的期次在 SQL 里由日期列算出来,写每周第一天的日期(附 SQLite 写法)或 ISO 周,SQLite 的 %W、MySQL 的 %u 不是 ISO 周,直接取现成的周号文本本期齐不齐核对不了;先可比性与基线、趋势,再拆因子与结构、按维度由粗到细,找到主要来源再下钻一层;每次写明在验证什么,拆了不集中也是结论;不作因果断言;阈值不由模型定、算不了照实说、调用写错照说明改;最后交给写作者的文字里列出做过的分析(An)和判定原话。测试守这几件事都在、点名的工具是那五个、五个工具共用这一份
|
2026-10-21 18:08:25 +08:00 |
|
ThearchyHelios
|
040040d23a
|
问题意图(app/analysis/intent.py):确定的词表判一句问题是不是分析类问题(原因、变化从哪来、是否异常、波动、趋势、差异站不站得住六类),带版本 INTENT_VERSION 1,给助手搭问数据的图时自查用。只收明确的问法、宁可漏判:问原因的词要和涨跌、高低的说法在同一句(「为什么报错」不算),「原因」要是变化的原因(「退款原因有哪些」是字段不算),「异常」后面是订单、记录这类名词的是业务状态,「系统正常吗」「表结构有什么变化」问的不是数,「持续」前后要有涨跌;按句子认、逗号不分句;英文只收几种明确问法。和说法核对的说法表不共用词表:意图判用户的问题,不判写作者的句子。测试:43 个正例、26 个反例、分句、引文截短
|
2026-10-21 18:08:16 +08:00 |
|
ThearchyHelios
|
998ab23bae
|
报告末尾「分析范围」里的编号点得开:证据接口加 GET /runs/{id}/evidence/analyses/{alias}(?report= 同片段接口),交回那份分析结论的出处链(判定 → 方法 → 计算 → 输入 → 复算 → 封存,和点开正文里它的判定语同一条,按导出页已有的 _scope_chain),正文没引用的结论(算不了的、可比性检查)也点得开;只认这份报告证据目录里的分析结论,没有的 404(evidence_analysis_not_found)。选报告、文档完好与否的几种错误挪进 _open_report,片段接口和它共用同一套错误码。测试:同一条链、算不了的照实给原因、目录里没有的和不是分析结论的 404、文档被改过 409
|
2026-10-21 18:02:34 +08:00 |
|
ThearchyHelios
|
5f61661625
|
分析工具的 tool.end 另带一小段判定(tools/analysis.event_view:编号、算子、模式、状态、判定码、方向、判定语、算不了的原因码):preview 只是结论 JSON 的前一截(截到 2000 个字符),可加拆解、可比性检查的判定语都在截掉的那段里,问数据时间线照这一段显示,不从 preview 里拼。编号和交回模型的「【分析 An】」同一个(AnalysisScope.next_alias,记台账时 add_result 紧接着按它编),写错的调用不带这一段、不占编号;协作成员按自己的分析容器编号;Agent 写的假设不带。测试:编号与交回模型的一致、判定语只在这一段里、算不了的带原因码、成员自己编号
|
2026-10-21 17:53:56 +08:00 |
|
ThearchyHelios
|
24b5aebae4
|
叫法消毒按词认判断词(scan bare):说法核对修复后 scan 缺省按整句规矩认(没说变化的「主要来自」不算判断),叫法是一个名字不是一句话,「主要来自华东的销售额」这样的叫法要整个不要
|
2026-10-21 17:12:48 +08:00 |
|
ThearchyHelios
|
a02dc41424
|
合入复核修复(说法核对):结论句判定回到原来的词表(扩充的判断词只给裁判排先后)、表格正文不核、补因果与来源的口子、说法表按样本调整(96 句样本表)、连续按末尾方向核、复核认三种日志且只写说明、分析结论算可引用的来源、自动修复对认不出的取值照 claims 做、候选维度写明只认码值表、scan 加只按词认
|
2026-10-21 17:12:18 +08:00 |
|
ThearchyHelios
|
2d616d01e8
|
说法表的 scan 加 bare=True:只按词认、不看上下文(构成、建议计划、业务状态、「相当」的比法、「未见异常」的主语这些只对整句话成立的规矩都不用),给认叫法(度量的叫法、因子名)里夹带的判断词用——叫法是一个名字不是一句话,「主要来自华东的销售额」照样认出来源;缺省照旧按整句的规矩。原因只是指代的那条注释改准。测试:几个叫法按词认、按整句不认
|
2026-10-21 17:10:43 +08:00 |
|
ThearchyHelios
|
41ad3a1c05
|
合入复核修复(证据接入与入口):跨段指标不当两期查、证据接口重渲染与组装同一个函数、一次请求同一份结论只复算一次、比率闭合核对、代入式按点名的段、写作目录分析段限额、核对页写方法叫法、运行对比只认做完的执行、读快照进线程、四个工具与合并查询的真算子测试、夹具清源
|
2026-10-21 16:58:45 +08:00 |
|
ThearchyHelios
|
2efea2b753
|
周号超出任何算法(W54 以上)的认不出、算起止超出日期范围的当这一周没有(复核 R3 补):认不出算法时原来按周号排先后,「2026-W99」也会当一周收下,现在周号大于 53 的不当周号写法,原因里照实举它;按算法算起止时日子超出日期能表示的范围(公元 9999 年末)交回没有这一周,不抛异常
|
2026-10-21 16:56:48 +08:00 |
|
ThearchyHelios
|
f5e6e77ea9
|
测试用的假结论按各算子的形状给(复核 R31):testing.fake_result 不再一律拿可加拆解的结果表——波动基线(期次、value、change、role)、趋势(期次、value、change)、差异检验(a、b、a_value……p_adj、flag)、可比性检查(check、status、base、target、note)各给自己形状的结果表(带列类型)、具名标量、参数和输入(可比性检查是基期、本期两份),数是编的、和判定语对得上;差异检验没写模式时按比率。变化拆解那一份照旧。测试对着真算子核对列和具名标量的键
|
2026-10-21 16:16:40 +08:00 |
|
ThearchyHelios
|
19bdcf55d8
|
分析卡运行时对合并后的阈值再核一遍(复核 R28):画图时阈值覆盖只能对着缺省值校验(schema 不改),发起时的设置快照合进来以后可能冲突——管理员把「超出常规波动」调到 3、卡上把「明显超出」覆盖成 2.5,就永远判不出超出。卡上写了覆盖时,运行时对缺省 ← 快照 ← 覆盖合并后的阈值跑一次 contract.settings_problem,有问题让卡失败并说清「阈值覆盖和这次运行的分析设置冲突:…。请改分析卡上的阈值覆盖」(配置错误,不是数据问题,一项都不算)
|
2026-10-21 16:11:00 +08:00 |
|
ThearchyHelios
|
d5836eb845
|
写作目录省略说明里分析结论那几句改成给模型看的常量(ANALYSIS_TABLES_OMITTED_PROMPT、ANALYSIS_TRIMMED_PROMPT、ANALYSIS_LEVEL_PROMPT_WORDS),和别的写作规则同一个认法,界面文案检查不再把它们当界面上的字;「没列出的照样能引用」改成「没列出的也能引用」
|
2026-10-21 16:10:01 +08:00 |
|
ThearchyHelios
|
f7a09eb108
|
一份快照按期次分组的变化拆解也核本期齐不齐(复核 R20):可加、比率、乘积三种模式用波动基线同一套完整性检查(comparable.period_complete:不到整周、没过完、数据没到、SQL 截掉一部分),本期不齐算不了(partial_target,「本期数据只到 2026-10-20,还差 5 天,和完整的周比没有意义」),核对不了(查不到表的范围、周号认不出算法、期次不是日期)附一句说明,只在证据面板、不进判定语(两份快照时可比性结论照旧进判定语);结论的 params 记下运行当天。期次按 periods.parse_compared 认:周号按 SQL 认算法;快照里往往只有比的两期,值都是日期、推断成按周、期次列又是直接取的日期列(原样、date(列)、DATE(列)、CAST 成日期)时按天认——昨天对上周同一天正好隔 7 天,光看值分不出是两天还是两周。可比性检查按期次分组、没给粒度时同样按它认。证据接口的一条测试(tests/test_analysis_evidence_api.py)跟着补上这一句说明的种类
|
2026-10-21 16:09:21 +08:00 |
|
ThearchyHelios
|
cf1cc568d6
|
分析范围的候选维度写明只认码值表:剖析目前不记每列的取值数(码值列另有取值分布的观察、键列只核唯一),方案 §3.6 的「剖析的取值数 ≤ 50」等剖析记了每列取值数再补,没有码值表的属性列不进候选(第 1 波复核 R34,记为偏离)。只改注释
|
2026-10-21 16:09:00 +08:00 |
|
ThearchyHelios
|
9817830d4a
|
自动修复和门禁对 analysis_claims 写了认不出的值(如 loose)对齐 claims 的做法:G3 那一条修复(_plan_report_policy)不再顺手改成 strict(门禁跳过它、交给校验报),认不出的取值由校验那条 report.analysis_claims_invalid 自己的修复管——受管级别改成 strict(G3 只认它,答案唯一),别的级别不核对、重写一次后标出、重写后仍有的计入缺口三档要人选,不给建议(同 claims_invalid 的 _plan_claims);跳过认不出的取值统一按门禁的 _POLICY_PROBLEMS 判。测试:受管级别 G3 修复只改 numbers、认不出的取值另有一条改成 strict,一起应用后通过;已发布级别三档候选、选了照写
|
2026-10-21 16:08:22 +08:00 |
|
ThearchyHelios
|
41d95721ce
|
分析入口的测试补真算子:test_analysis_e2e 加 agent 调波动基线(本周明显超出常规波动、历史新低,本期完不完整按现查的表范围判)、趋势、差异检验(逐行明细,华东的单笔金额高于华南)、可比性检查(两份查询各一周)各一次的端到端,台账、交回模型的那一段、复算逐字段相同都核;分析卡以合并查询为输入跑一次(输入写明 sqlite 方言、工件就是合并查询的快照)。test_analysis_card 的下钻样例 DRILL 原来 by 和 period 是同一列、真算子下会报错:shop 加渠道列(各地区两周的合计不变),DRILL 改成读华东按渠道的那次查询(drill_graph),另用真算子跑一遍下钻(闭合、主要来自线上、parent 是上一项的结论工件、复算一致);夹具改用 scratch_source。过时的说明照实改:替身的用途、口径卡可比性挂钩里「还没有算子」的说法
|
2026-10-21 16:06:40 +08:00 |
|
ThearchyHelios
|
6503b095cb
|
报告撰写节点的「上游没有可引用的来源」认分析结论(_CITABLE 加分析结论,_no_evidence 照 00-总方案 D10):「证据来自」只选了分析卡时不再误报没有可引用的来源;分析卡做的结论总能引用,受管级别的正式出具没开「单元格引用」、上游有分析卡结论时也不再报「只有查询结果…无法引用单元格」;Agent 现场做的分析和它查的格同一个规矩,没开单元格引用时照报,说法写明「只有查询结果和 Agent 现场做的分析…无法引用单元格和这些分析结论」,只有查询时一字不变。测试:只有分析卡结论(开没开单元格引用都不报)、Agent 的分析按单元格引用的规矩、什么都没有时点名分析结论
|
2026-10-21 16:04:42 +08:00 |
|
ThearchyHelios
|
99b1406f8b
|
复核认分析能力一轮的三种日志:report_analysis_claims(判断词没挂对分析结论、原因没依据,重写后仍有)、analysis_refused(一份分析算不了)、metric_comparability_skipped(口径卡指标的两期没做成可比性检查)登记进 WARN_CODES,按自己的 kind 记、都是缺口(DEGRADED),照 00-总方案 §3.7 只写说明、不自动重来:不进 RETRYABLE / REBUILD,一次运行的信号全是这几种(NOTE_ONLY)时复核不叫模型,说明照信号原话写——以前没登记一律按笼统的 warn 叫一次复核模型。「改过一次」的 report_repair 按最后一次核对定档时,只剩只重写一次、留在报告里标注的违规(check 下的分析说法,和同一类的缺失断言 absence_claim)也算改好了:它们各有自己的信号,以前 report.checked 的 ok 为 False 就判没改好、多报一条;复核被别的信号叫起来时照实说「重写后只剩已标出的 1 处分析说法」,一处都没改掉的不说改好了。strict 下的分析说法是出具缺口、带满 20 条的可能还有别的,照旧判没改好。测试:三种信号的 kind 与级别、只有这几种信号时不叫模型(复核接口也是)、和别的信号一起时照常叫、check 与缺失断言的剩余算改好、strict / 还有别的违规 / 带满 20 条照旧
|
2026-10-21 16:02:46 +08:00 |
|
ThearchyHelios
|
fd8e392f48
|
维度列、期次列和结果表的固定列重名时报调用错误(复核 R17):结果表的列 id 是输入的维度列(期次列)加上固定的几列,维度列叫 flag、base、target、delta、share(可加)或 mix、rate、total、w_base……(比率),期次列叫 value、change、role(波动基线、趋势)时列 id 重复,引用结果表的格会认错,下钻还会报「A1 按 0 列拆」。common.reserved_check 不分大小写挡住这些名字,告诉 agent 在 SQL 里换个别名(比如 AS flag_name);这是结构性的调用错误,分析卡里照旧让卡失败
|
2026-10-21 16:02:44 +08:00 |
|
ThearchyHelios
|
472f78344d
|
分析设置要求「集中」的合计占比不小于「主要来源」的占比(复核 R16):contract.settings_problem 加一条(没写的项按缺省补齐了比),说法用 LABELS 的叫法:「「集中」的合计占比不能小于「主要来源」的占比」——原来「主要来源」0.9 配「集中」0.5 能通过,一段占 60% 时判分散、判定语却说「没有哪一段占到 90%」。设置页写进来的、分析卡上的覆盖都按它挡;api/settings.analysis_values 读存着的一组时这一对对不上同样两项都按缺省(同另外两对)
|
2026-10-21 16:00:29 +08:00 |
|
ThearchyHelios
|
efff2ac4f8
|
闭合容差:整数的浮点按个位、下钻对上一层的精确值按精确比(复核 R15):总数那一格是整数的浮点(SQLite 的 ROUND() 交回 2120.0)时按取到个位算容差(差 0.4 也闭合),最短写法里的「.0」不再当一位小数;下钻时对上一层那一段的值是上一层算出来的精确值、没有取整过,只容浮点算出来的最后几位(相对 1e-9),820.4 对 820、700.3 对 700 不再算闭合。可加、比率两种下钻同一套
|
2026-10-21 15:59:11 +08:00 |
|
ThearchyHelios
|
fcbcfc9aef
|
判定语照方向接末尾连续期数、辛普森的结构变化只说一遍(复核 R14、R21):趋势末尾连续同向的期数和趋势同向时接「,已连续 3 周下降」,反向时接「,但最近已连续 3 周上升」,不再出现「呈下降趋势……已连续 3 周上升」。比率拆解判在结构变化上(mix_driven)时正文已经说了结构变化、点了那一段,辛普森那一句只说「各段的退款率大多在下降,整体却上升」;别的判定照旧带上哪一段占比从多少变到多少
|
2026-10-21 15:57:51 +08:00 |
|
ThearchyHelios
|
f05dd9e21c
|
「连续」按趋势结论记的末尾连续同向核(values 的 run_direction、run_length),不再先要整体判定是上升或下降:算子修复后趋势判定语在方向相反时写「,但最近已连续 N 期上升」,句子照它写「最近已连续 4 周上升」要对得上,整体没有明显趋势、末尾连续下降的也能说连续。句子写了期数的(「连续 5 周上升」「三连降」「十二连涨」,阿拉伯数字、全角数字、一到九十九的中文数字)要 run_length 不少于它,没写的至少 3 期;方向对不上照旧报相反;没记 run_direction 的老结论按整体的趋势方向。测试:期数不够、整体下降而末尾连续上升、没有明显趋势而末尾连续下降、老结论,和各种写法认出的期数
|
2026-10-21 15:56:49 +08:00 |
|
ThearchyHelios
|
3fd5d1309c
|
说法核对按复核调整(说法表 v1,还没有线上文档,不升版本)。来源和因果的口子:「主要由」不再吃掉「由于」(主要由(?!于),「主要源于」归来源类);原因按因果词的那一边认(「由于、因为、原因是、源于、得益于」后面,「导致、造成、引起、所致、是…的主要原因」前面、「由华东造成」在「由」和「造成」之间,「受…影响」中间),挂了拆解、原因点名的是它的段才按来源核,否则按因果核——「华东下降主要由于促销结束」「下降主要由促销结束造成」不再通过;没挂拆解的,原因不是目录里拆解的段时另报,认不出时照旧并进同一分句的来源判断;原因只是指代(「以上是下降的主要原因」)不核。来源类判断要点名拆解里的段:「主要来自」「集中在」「以…为主」看判断词后面,「主导」「贡献最大」看前面(同一分句没点名的往前找最近点了名的分句),拖累拉动带动照旧看整个分句;挂了拆解却没点名任何一段(「下降主要来自线上渠道」挂按地区的拆解、「主要来自新客流失」)判对不上,同一分句引用了判定语、比率拆解说「结构变化」「自身变化」的不用点名。误报去掉:来源、集中、分散、主导、拉动带动要这句话到这个分句为止说了变化才核(构成不核);建议、计划、预测、假设的分句不核(「建议」「下周」「避免」管到后面的分句);「异常」前面是订单、物流、支付、门店、营业、库存、设备、账号的是业务状态(后面跟着涨跌的照核),「异常的 + 名词」不核;「无异常」「未见异常」主语要是指标或波动;「来源于」不是「源于」;「表结构变化」不是结构变化;「相当」只认比几组、几样的,比上期的不核。漏报补上:「是…的主要原因」「主要原因是」、「近七成 / 超过一半 / 大部分的降幅来自」、「主要靠 / 在 / 体现在」、「以…为主」、「创」和「新高」之间 0–4 个字、「显著 + 涨跌」、「趋势向好」「波动较大」「三连降」「远高于往常」「异动」「一涨一跌」。写作规则补一句「写来源要点名是哪一段」,异常类的说法带上「显著上升或下降」。样本表 tests/test_analysis_claims_lexicon.py:复核的 70 句加这次看清楚的 26 句,每句期望的类或不核,以后改说法表都过这张表;和复核标记不一样的只有「退款主要集中在生鲜品类」(说的是构成,不核);绑定测试补上复核列的几个口子
|
2026-10-21 15:56:30 +08:00 |
|
ThearchyHelios
|
427a6df23c
|
差异检验拿不到 p 值照实说、敏感性只在真实的各组里找离群值(复核 R8、R9):一对都拿不到 p 值(比率有一组样本量为 0;均值、逐行有一组不到 2 个样本,或均值、标准差为空)时算不了,契约 REASONS 加 untestable,原因写哪一组怎么了(「华东只有 1 个样本、华南只有 1 个样本,算不了差异」),不再判 ok + 可能只是样本波动;只有一部分拿不到的,那几对不算进比了几对、不参与校正,表里写清哪一组怎么了,判定语后接「另有 n 对算不了(…)」(契约 CAVEATS 加 untested,排在判定语附带说明的前面)。逐行模式比三组以上时,离均值最远的那一笔只在真实的各组里找(原来池子里混着各对的「其余各组合计」,第一组以外的离群值删不到它自己那一组,漏报 outlier_sensitive),去掉以后由各组重建每一对的「其余」合计再检验
|
2026-10-21 15:56:16 +08:00 |
|