ThearchyHelios
|
5f96a23452
|
分析次数上限照实按每个 Agent 每次执行说:设置叫法「Agent 每次执行最多分析几次」,次数用完的调用错误「这个 Agent 这次执行最多做 N 次分析,已经用完」(入口按本节点这次执行的分析容器数次数,本来就是这样算的)
|
2026-10-21 14:08:56 +08:00 |
|
ThearchyHelios
|
e11a461a10
|
可验证报告认分析卡一项做完的事件改用 EventType.ANALYSIS_END,去掉 bundle/build 里的字面量 _ANALYSIS_END
|
2026-10-21 14:08:56 +08:00 |
|
ThearchyHelios
|
d529e5f694
|
算子的叫法只留契约一份:contract.OP_LABELS / MODE_LABELS 是唯一来源,趋势定为「趋势判断」;engine/labels 的 ANALYSIS_OP_LABEL 直接引用 OP_LABELS、ANALYSIS_MODE_LABEL 按 MODES 从 MODE_LABELS 分到各算子(分析卡校验、应用说明、前端表单照它),phrases 去掉 OP_NAMES,「{叫法}没有做成」的判定语和算子的调用错误都用契约的叫法
|
2026-10-21 14:08:56 +08:00 |
|
ThearchyHelios
|
a81a0a66ac
|
合入 W1-d 说法核对:说法表与绑定、check / strict / off、出口独立复核与文档版本、分析范围、血缘口子、G3
|
2026-10-21 14:00:07 +08:00 |
|
ThearchyHelios
|
4afe8e6f4f
|
合入 W1-c 入口:五个分析工具与方法注入、分析卡、口径卡可比性、运行对比按项对齐、设置与快照、使用者白名单
|
2026-10-21 13:59:06 +08:00 |
|
ThearchyHelios
|
28db25631d
|
合入 W1-b 证据接入:台账 A、写作目录、a / v:A / table:A / see:A 引用、出处链与复算、证据图、审计、导出与可验证报告、裁判摘录、账本跳过
|
2026-10-21 13:58:18 +08:00 |
|
ThearchyHelios
|
cb2fdd860f
|
证据接入按 W1-a、W1-c 的实际接口对齐:复算就是真的 app.analysis.recompute——load 交查询快照工件的原内容、load_result 交上一层结论(只认封存范围内交回过的查询、台账记过的结论,取不回照实说取不回哪一份),方法升没升版按结论里的 method 和现在的 contract.METHODS 比(升了版、复算成立的写结果同不同,现在的方法复算不了的写明原因),去掉为算子没落地准备的那一套;关键数的代入式按真的具名的数写(乘积拆解补上,波动基线按变化率比的按百分比写,负数加括号)。口径卡指标上的可比性结论(不进台账、只从卡上引用)点得开:证据面板的指标步骤带它整条出处链(判定 → 方法 → 计算 → 输入 → 复算 → 封存,封存按卡上记的 sha256 认),报告导出收在一个可展开的块里,可验证报告随附带的卡一起附上、④ 按已核对的卡认它、数字详情里展示各项检查和服务端复算;裁判的指标摘录、写作目录照卡上记的判定语写。现查结果分清按运行当天现算的界、一列一个值都没有、表的范围;可验证报告里分析工具的 tool.end、分析卡的 analysis.end 和结论同一个认法才带内容,输入的角色写叫法。测试改用真算的结论(run 交的输入照分析入口的写法,复算交工件原内容),下钻、总数闭合、方法升版、可比性端到端都过真的复算
|
2026-10-21 13:49:09 +08:00 |
|
ThearchyHelios
|
aa62393edb
|
出口认分析结论的引用:报告引用的判定语、具名标量、当依据的分析结论按结论工件记进「引用的查询」(结果表的格原来就会走到),顺着结论的输入找到查询,输入查询没通过 SQL 检查的照样计入缺口(受影响的引用写「A1(判定语)」「A1「top_share」」「A1(结论依据)」);逐个数字的出处里具名标量照实记成分析结论(analysis: A1.top_share),不再记成空的运行输入
|
2026-10-21 13:29:23 +08:00 |
|
ThearchyHelios
|
472115c817
|
说法核对接上证据接入(W1-b)和真算子(W1-a):一句的分析依据按引用的编号认(A 开头、目录条目 kind analysis),判定语 [[a:A1]]、具名标量 [[a:A1.键]] 整段不扫,[[see:A1]]、[[see:A1.r0]]、[[see:a:A1]] 都当依据;目录条目只带摘要的(存进文档的那份)复核时按工件取回整份结论(_Snapshots.analysis)。算子、模式的叫法从契约取(OP_LABELS、method_label)。比率拆解的结构为主、各段自身为主(判定语就说「主要来自…」)也能挂来源类判断;ASCII 的段名认整词时,挨着的汉字不算连着。去掉测试里代为解析 [[see:A…]] 的替身;新增挂真算子结论的绑定测试:可加拆解的主要来源与拖累带动、分散、持平带抵消、比率拆解的结构变化、乘积拆解的因子、波动基线的方向和新高新低与正常波动、趋势的方向和连续期数、差异检验两组的先后、算不了的基线,以及经组装和复核时判定语、具名标量不扫
|
2026-10-21 13:29:23 +08:00 |
|
ThearchyHelios
|
71dc16bc1a
|
分析能力入口(七):按 W1-a 算子库的实际接口对齐。工具参数名以算子为准:差异检验的均值是 mean / sd / n 或 sum / sumsq / n,逐行是 value,可选 pairs / reference;可比性检查另收可选的 measure、grain(不收 label);分析卡的参数校验用同一份定义,运行当天、目录事实、下钻层数由算子自己记,分析项里写了不收。交给算子的输入是工件库里那份查询快照原样(含 SQL 检查结果 checks、「查询区间里这张表没有数据」no_data、查询当时记下的遮罩),加上出处和遮罩列(数据源设的、按 SQL 认出改了名字的、遮罩运行里查询时就遮掉的),合并查询写明 sqlite 方言;agent 的容器在分析前把每份换成完整快照(每份只取回一次)。探查器改用 analysis.make_prober(数据源名 → 按运行固定版本解析出的源,coverage.Cache 一个节点里共用),剖析事实一律用 analysis.probe.profile_facts(查询工具的覆盖检查也改用它,原来那段同样的取法删掉)。分析次数用完交回 analysis.exhausted 的那句;口径卡的可比性写成 {工件, 判定码, 判定语, analysis.comparable_reasons 拆出的原因},删掉自己拆原因的那段。加真算子的端到端测试:agent 变化拆解并下钻(父结论按内容哈希认)、审批恢复重放不再算、分析卡的波动基线和变化拆解(本期完整按现查的表范围判)、口径卡跑真可比性检查(可比、有条件可比带原因),每份结论都按封存的工件复算、逐字段相同
|
2026-10-21 13:27:12 +08:00 |
|
ThearchyHelios
|
e40847c142
|
合入 W1-a 补丁:快照列类型的标注照实际形状;结果表带列类型(文本码值不加千分位)
|
2026-10-21 13:23:35 +08:00 |
|
ThearchyHelios
|
707218a9a4
|
分析结论的结果表带上列类型:ResultTable 加可选的 column_types({列 id: 类型},写法同查询快照)。维度列照输入快照里那一列查询时记下的类型(文本型的码值 "1203" 不会被渲染成「1,203」,没记类型的不写),数值列 number,说明、叫法这类文字列 text;差异检验和「其余各组合计」比时对照组那一列写 text;可比性检查表全是 text。契约里 InputSnapshot.column_types 的标注改成实际形状 dict[str, str] | list[str | None](to_payload 给的是 {列: 类型},按列序的列表也认)。复算逐字段相同照旧成立
|
2026-10-21 13:19:27 +08:00 |
|
ThearchyHelios
|
9f014560fe
|
Merge branch 'an1/b' into an1/d
|
2026-10-21 13:19:10 +08:00 |
|
ThearchyHelios
|
bea1119a6c
|
说法核对按算子的真实结论形状对齐:点名的段只认拆解的维度列(params.by,乘积拆解是因子叫法)和差异检验的 a、b 两组,别的算子没有段;比率拆解的 n_base、n_target 是度量列;「抵消」除了 offset 也认判定为基本持平、各段有涨有跌的(持平的判定语本身说了此消彼长)
|
2026-10-21 13:16:48 +08:00 |
|
ThearchyHelios
|
d2b5096e97
|
合入集成分支 an/w1(W1-a 分析算子库):证据接入按真的 run / recompute 对齐
|
2026-10-21 13:14:48 +08:00 |
|
ThearchyHelios
|
fdbf896dd4
|
Merge branch 'an/w1' into an1/d
|
2026-10-21 13:13:11 +08:00 |
|
ThearchyHelios
|
010e74b006
|
Merge branch 'an/w1' into an1/c
|
2026-10-21 13:13:04 +08:00 |
|
ThearchyHelios
|
a690b5c571
|
门禁 G3 加一条:受管级别的报告撰写节点要把「分析说法核对」设为严格(REPORT_POLICY 加 analysis_claims: strict,没写时运行时是 check、只标注)。受管级别挡住发布、已发布级别只警告,写错的值交给校验;已经发布的版本照常运行(按缺省的 check 核),下次发布才按新规则查。同一份要求自动跟到自动修复(一键写明)、一键升级成受管、按口径出具起草的报告节点;自动修复「不许放宽」的判断认这一项(从严格改回去算放宽);白话补一句分析说法;模板 ⑨ 的报告节点补上这一项,拿来照旧能发布成受管。各处「受管要求都满足」的图(测试夹具)跟着补上这一项
|
2026-10-21 13:13:04 +08:00 |
|
ThearchyHelios
|
8a5f96be4b
|
出口契约:分析说法出口独立复核、指标可比性、引用模式的血缘口子。引用模式下 verify_doc 按文档记下的那一项再核一遍分析说法:处置取文档和报告节点产出里更严的那个,strict 有违规记一条缺口(降档),报告节点报上来的同一条不重复收,check 只写进出具声明(analysis_claims,counted 为 false),要求 strict 却没有核对记录的照实记缺口,老文档不核。口径卡指标上的可比性(MetricComparability):报告引用了的(引用模式按文档,别的按数字回指)和契约必需的指标两期不可比记缺口,有条件可比的只写进出具声明(comparability)。血缘(D15):收齐报告引用的指标([[m:]] 片段和句末依据里的 m:),按卡上记的输入认追不到原始数据的,受管级别的正式运行记缺口,其余写进出具声明的 untraced(counted 为 false);_untraced_gaps 拆出可传子集的 _untraced。现有受管正式运行的两条用例(裁判判档)档位不变、缺口里多一条血缘,断言不涉及缺口列表,不用改
|
2026-10-21 13:12:24 +08:00 |
|
ThearchyHelios
|
767b1ac07a
|
报告撰写节点加「分析说法核对」(analysis_claims:off / check / strict,缺省 check)和「分析范围」(analysis_scope:auto / off,缺省 auto),画布校验和执行时报同一句话(report.analysis_claims_invalid / analysis_scope_invalid),界面叫法进 labels,运行对比登记这两项。check:判断词没挂对分析结论、原因没有依据的句子交回写作者重写一次(不按最多重写次数反复),仍有的标在报告里、写一条日志 report_analysis_claims,不影响档位;strict:按最多重写次数重写,仍有的写进产出的 issuance_gaps(另记 analysis_gap);两种都不让节点失败(不挡生成);off 不核、写作规则和文档一字不变;升级前发起的运行照旧。写作者角色改成「挑重点、组织结构、说清变化;有分析结论时说清变化来自哪里;原因只按证据写」,写作规则按目录里有没有分析结论各加一段判断词规则,重写请求列出违规和修法;这次有分析结论、取值 auto 时每一稿文档都带系统写的 analysis_scope。产出和 report.checked 记下处置。几个测裁判、结论句策略、审计表的用例写作者那句「增长主要来自新客」没有拆解可挂,把分析说法核对关掉
|
2026-10-21 13:12:15 +08:00 |
|
ThearchyHelios
|
a6f7572a9e
|
报告文档里系统写的「分析范围」(engine/analysis_scope,契约 ScopeBlock):按写作目录里的 A 条目照实写现象(可比性、基线、趋势)、拆过(按下钻链,上一层在前)、排除(分散的拆解、差异可能只是样本波动的检验)、算不了(带原因)、检验次数;agent 写的假设不进这一段。没拆的候选维度确定地从数据目录算:拆解所用查询 SQL 里的事实表(目录标了 fact / log,没标且只读一张表时就是它)上标成属性、状态、不遮罩(数据源设置和查询当时记下的遮罩列)、取值不多(码值表不超过 50 个取值或已列全)的列,加上关联的维度表(标了 dimension 或多对一)上同样的列;拆解按的列对不上目录、读不到目录、源还没有目录、取不回查询、认不出事实表的,not_decomposed 为 None、note 照实写核对不了。目录经这次运行的目录视图读(data/catalog_view,关掉的当核对不了),出错不挡报告。契约的 ScopeBlock 加一项 corrected(检验之间有没有校正:只做一次为 true、不止一次为 false、没做为 None)
|
2026-10-21 13:12:05 +08:00 |
|
ThearchyHelios
|
7acee0faed
|
分析说法核对的说法表与绑定(engine/analysis_claims):判断词分来源、分散、抵消、结构、异常、新高新低、正常、趋势、无趋势、差异、无差异、因果几类,一处定义、带版本(LEXICON_VERSION 1);只收强判断词(「持续」要跟着涨跌、「异常」后面是订单数据这类名词或前面是数据系统的不算、「相当」只认句读前的,「大幅」按细案收进异常类、要跟着涨跌动词);否定(前 4 个字以内、跳过「出现」「明显」这类填充词,「不但」「不少」「无论」不算)翻到反面类;来源与因果分界(因果词所在分句点名的是拆解的段或因子按来源核),推测说法、同句的知识库原话和运行输入豁免因果,说的是数据本身的原因不算;不扫判定语(a:)、知识库原话(q:)、别的引用渲染出来的字、标题、代码块、表头。绑定:一句的分析依据按这次重新解析的引用算,A 条目经 contract.catalog_result 读,核判定、点名的段(全半角归一)、拖累拉动的方向、新高新低、连续的期数,挂了算不了的结论算对不上;违规三种(analysis_claim_uncited / analysis_claim_mismatch / causal_unsupported),每条带判断词、句子、类、要的 op、这句挂的 A、给人看的和交回写作者的各一句,同一分句同一类只报一处。挂点:compose_doc 收 analysis_claims(check / strict)时文档顶层记下处置和说法表版本,verify_doc 只核记了这一项的文档(按记下的版本,认不出的记 bad_schema),老文档复核结果和统计一字不变;_DIRECTIONAL 补主要、集中、异常、偏离、持续、趋势、显著、明显高于 / 低于等预筛词(列提纲、建议、引出图表的写法除外),裁判优先判这类句子
|
2026-10-21 13:11:56 +08:00 |
|
ThearchyHelios
|
f816fc4c25
|
合入 W1-a 分析算子库:五个算子(变化拆解三种模式与下钻、波动基线、趋势、差异检验、可比性检查)、纯 Python 统计、规范十进制、判定语与标签消毒、目录事实、期次、现查与复算;Wilson 移到 analysis/stats 共用
|
2026-10-21 13:11:45 +08:00 |
|
ThearchyHelios
|
ab98c7430c
|
分析算子收尾:复算剔除系统字段改用同一个 DERIVED_PARAMS;去掉没用的导入和小函数;测试按仓库的写法从 tests.analysis_samples 导入样例
|
2026-10-21 13:08:14 +08:00 |
|
ThearchyHelios
|
d8375c2251
|
可验证报告认分析结论:报告引用的(含分析范围里点名的)分析结论按原字节嵌入,连同它的输入快照和下钻的上一层结论;任一份输入快照证明不了没碰遮罩列的,结论也只给 id;分析卡的节点完成事件在它的结论都随文件附带时才带内容。导出时服务端按封存的输入复算一遍,结果记在结论的条目上。核对页:③ 遮罩白名单加分析结论,④ 按「已核对的分析结论的输入」认输入快照,⑤ 判定语、具名的数、结果表的格逐字核对是不是结论里写的那几个字(同服务端的渲染规则,不在浏览器里重算统计),数字详情里有分析结论一节(判定语、判定标准、方法与版本、附带说明、Agent 写的假设、输入的核对状态、导出时服务端的复算结论),正文后面渲染分析范围、编号点得开。另在 node 里用最小的 DOM 替身把导出页、核对页点开分析结论的路径各跑一遍
|
2026-10-21 13:07:55 +08:00 |
|
ThearchyHelios
|
7474fa5030
|
证据接口认分析结论:封存范围按台账记下分析结论;证据图的 A 条目带算子、判定、谁做的,连「派生自」的边到它的输入(Q…)和下钻的上一层(A…);片段接口的出处链为判定 → 方法 → 计算 → 输入(每份输入落到哪个 Q、用了哪些列和行、headline 闭合、下钻的上一层,接输入快照的查询步骤并照常遮罩)→ 复算(按 sha256 取回封存的输入、在线程里复算并逐字段比,算子没落地、出意外照实写复算失败,不让接口出错)→ 封存,结论哈希不符的只给判定和封存两步并写明原因;Agent 写的假设标成 Agent 写的假设;片段说明分判定语、具名的数、结果表的格三种。指标步骤展示口径卡记的两期可比性(点得开那份可比性结论)。审计:分析判定、分析结论的叫法,结果表的格按台账认封存,分析说法核对的三种违规单列一行,违规码补上判断词未挂分析结论、判断与分析结论不符、因果说法没有依据,以及原来就缺的依据写在句子中间、缺失断言。报告导出:判定语片段按引用键共用出处链,分析范围里的编号接同一条链。裁判的 loader 把分析结论的输入快照也逐份遮好
|
2026-10-21 13:07:55 +08:00 |
|
ThearchyHelios
|
4dd6889e69
|
报告导出认分析结论:点开判定语、具名的数、结果表的格,面板依次是判定(判定语、判定标准、点名的段与方向、这一处引用的是哪一项、谁做的、附带说明、Agent 写的假设)、方法(方法与版本、参数、实际用的阈值、现查的表范围)、计算(关键数的代入式、具名的数、结果表,引用的格高亮)、输入(角色、落到哪个 Q、用到的列和行、总数那一格的闭合核对、下钻自哪个 A,后面接输入快照的查询步骤)、复算、封存;指标那一步另展示两期可比性。报告文档带系统写的「分析范围」时,正文后面服务端渲染这一段(现象、拆过按下钻缩进、排除、算不了、没拆、检验次数),编号点得开同一条出处链;没有这个字段的文档一个字都不多。顺手修掉查询步骤「共 N 行」那一行把函数原文当标签显示的老毛病
|
2026-10-21 13:07:55 +08:00 |
|
ThearchyHelios
|
7e95703a94
|
结论句裁判与口径账本认分析结论:引用了分析结论的句子,裁判摘录里给方法与版本、判定语、判定标准、关键数、附带说明、结果表(被引用的行先给)、输入取自哪几个 Q 用了哪几列和它们的 SQL、下钻自哪个 A(核查 agent 的摘录照旧分段遮);摘录里有分析结论时裁判规则另加一条(判定是系统算的,只判句子说法和判定是否一致,分析说明不了原因),没有分析结论的报告规则一字不差。口径账本不给分析结论里的数(判定语、具名标量、结果表的格)标口径、不按它们投影比对、不进整题判断的计数,也不算成没比对
|
2026-10-21 13:07:36 +08:00 |
|
ThearchyHelios
|
855a559300
|
分析结论进证据链(引擎):台账 kind analysis 的条目在写作目录里按台账先后编 A1、A2……(只收报告祖先里的,报告节点的「证据来自」按做它的节点过滤),条目照 catalog_result 的约定带着从工件取回、复验过哈希的整份结论,取不回、哈希不符的记明原因;存进报告文档的目录只留摘要,整份结论按工件取回。引用:[[a:A3]] 渲染判定语(一个片段,种类 analysis,整段涂白、不算裸数字),[[a:A3.键|换算]] 渲染具名标量(换算同指标),[[v:A3.r0.列]]、[[table:A3 …]] 取结果表(表头写结果表的列名,表头里的数不算裸数字),[[see:A3]]、[[see:A3.r0]] 当依据;写错的编号、键、越界的行、判定语加换算都照实说为什么。受管级别的正式出具、契约没开「单元格引用」时,Agent 现场做的分析和它查的格同一个规矩,分析卡做的照常引用。写作目录加「分析结论」一段(判定语、判定标准、具名的数、结果表前 table_top_k 段与其余几段、附带说明、算不了的原因、来自哪几个 Q、下钻自哪个 A、输入查询的 SQL 检查问题,外加引用写法一句),放不下时判定和具名的数一律列出、结果表排在查询的行前面补、最后才退;口径卡指标上的可比性(有条件可比、不可比)照实写出原因。SQL 问题顺着分析结论的输入往下找。另有复算(analysis_recheck:算子没落地、调用写错、出意外都照实写「复算失败:原因」,方法升版写明前后两版)、复算用的输入快照、关键数的代入式,证据面板、导出、可验证报告共用
|
2026-10-21 13:07:36 +08:00 |
|
ThearchyHelios
|
8137f0cf37
|
分析契约补两样(只加不改):算子、模式给人看的叫法(OP_LABELS、MODE_LABELS,method_label 拼成「变化拆解(可加)」),证据面板、写作目录、审计、导出、可验证报告、裁判摘录同一份;按形状认一件工件是不是分析结论(is_result:op 是五个算子之一、method 是文字、inputs 是列表),证据接入取回结论工件、SQL 问题顺着结论的输入往下找、可验证报告认嵌进来的工件都按它认
|
2026-10-21 13:07:36 +08:00 |
|
ThearchyHelios
|
7d31922d00
|
五个分析算子与 run / recompute(细案 01 §1–§8):decompose(additive 按维度算贡献、headline 与下钻闭合、抵消、新出现 / 消失;ratio 中点对称拆结构与自身效应、辛普森、分母小;factor LMDI-I;两份快照先做可比性,口径结构不同不拆)、baseline(中位数与 MAD 的稳健 z、σ̂ = 0、日数据 lag 7、新高新低)、trend(Theil–Sen + Mann–Kendall、末尾连续期数)、differ(rate 的 z 检验 / Fisher、mean 与 rows 的 Welch、Holm、rows 的敏感性)、comparable(同口径、窗口长度、整期、星期构成、数据问题,现查记进 probes);run 先登记现查、查完再算,运行当天和目录事实记进 params,recompute 只用记下的、不现查;判定码、原因码、附带说明码都在契约里;输入记下方言和遮罩列名,复算逐字段相同;测试用虚构零售库,每个用例都核对复算
|
2026-10-21 13:04:58 +08:00 |
|
ThearchyHelios
|
6a96083dcb
|
分析能力入口(六):口径卡的可比性挂钩(engine/nodes/metrics.py 的 _comparability):一个指标的输入里取自查询快照的格(cell() 取的格、按位置取的格、Agent 按出处交来的字段)恰好落在两份不同的快照上,两份 SQL 按规范化(data/sql_semantics.normalize_sql,按数据源的方言)同形、只差字面量、查的是同一个数据源时(本周对上周),口径卡执行时调分析算子 comparable(早的那期作基期:第一处不同的字面量是日期或同样写法的期次的按先后,认不出的表达式里先出现的那份算本期),结论落成工件,指标上记 comparability(contract.MetricComparability:工件、判定、判定语、fail / warn 的原因,原因先按结论表的 status 一列取,没有再按判定语拆)。SQL 结构不同(退款额 / 销售额)、两次是同一条 SQL、数据源不同的不是同一个量的两期,不查也不记日志;同一对快照一张卡里只查一次。快照读不出来、探查失败、算子出错、算不了、还没有算子(第 1 波的 run 抛 NotImplementedError)都不挡口径卡,照实记一条 metric_comparability_skipped,这个指标不写 comparability
|
2026-10-21 13:03:38 +08:00 |
|
ThearchyHelios
|
7e6d52004c
|
分析算子的输入、目录事实、期次与现查:inputs.py(按名字取快照、拆「名字.r行.列」、列名不分大小写、遮罩列与非数值是调用错误);facts.py(按 SQL 认结果列取自哪张表的哪一列,读目录的度量类型、叫法、业务日期,只有确认过的度量类型才拿来判调用错误;查过的记进 params,复算不读目录);periods.py(日期、YYYY-MM、YYYY-Www、YYYY-Qn、整数序号,粒度按值推断);probe.py(make_prober 走 data/coverage 的只读探查:遮罩列不探、总时限、5 分钟缓存、退回剖析事实,另在库里算按运行当天现算的界;Book 先登记、查完再算,结论只记真用到的);data/coverage.py 加几个公开的小函数(parse_sql、as_day、literal_bound、window_of、column_range、bound_values、facts_range),_fallback 的读法抽成 _facts_range、行为不变;契约补几项可选字段(InputSnapshot 的 dialect / checks / no_data / mask_columns / masked_at_query,AnalysisInput 的 dialect,Probe 的 expr / value)
|
2026-10-21 13:03:35 +08:00 |
|
ThearchyHelios
|
e079e0ba88
|
分析能力入口(五):运行对比里两次运行的分析卡按节点和项的标识对齐(engine/compare.py 的 analyses,最小可用):按封存范围内每项一条的 analysis.end 认,循环里执行了几次的取最后一次(照实写进说明);每项列出两次的状态、判定、方向、判定语和结论工件,change 写 same / verdict(状态或判定变了)/ phrase(判定一样、判定语里的数变了)/ added / removed,不拆变化来源
|
2026-10-21 13:03:29 +08:00 |
|
ThearchyHelios
|
654cc23c85
|
分析结论的数与判定语:numbers.py(快照里的数换成精确的 Fraction,写成规范的十进制字符串:不带指数、去尾零、没有 -0,除不尽的和浮点留 12 位有效数字,同输入逐字节同输出);phrases.py 一处定义判定语模板(细案 01 §7.2)、数的写法(百分比一位小数带正负号、量千分位最多两位小数、百分点,ROUND_HALF_UP 同 render_cell)、label 消毒(去引用标记、出具校验认的数字写法、单位符号,≤ 20 字,空了退回目录叫法和列名)、附带说明的一句话(判定语后最多接两条)、照实际阈值写的判定标准
|
2026-10-21 13:03:23 +08:00 |
|
ThearchyHelios
|
fc6d4bd92d
|
分析能力入口(四):发起运行时把分析设置快照进 run.options["analysis"](engine/launch.py 的 _with_analysis_snapshot,照核查设置的 _with_verify_snapshot):只在图(含一层层套着的子工作流,同一个工作流的同一版只读一次)里有分析卡、或 Agent / 协作成员(节点上没写就取图级 defaults)绑了任一分析工具时写,调用方已经给了这一组的照它的;别的图 options 原样不动,run.started 一字不变。runner 本来就把整份运行选项放进 RunContext.extra,分析工具、分析卡、口径卡的可比性检查都只读这一份,没有快照的现读设置。子工作流的遍历抽成 _any_graph,核查设置的判断照旧
|
2026-10-21 13:03:23 +08:00 |
|
ThearchyHelios
|
9af50fb474
|
分析算子的统计函数(app/analysis/stats.py,纯 Python、不加依赖):正态分布函数(math.erfc)与分位数(Acklam 逼近 + Halley 修正)、t 分布(正则化不完全 β 的连分式,自由度很大时按正态)与分位数(二分)、Wilson(从 eval/stats 移过来,评测改为引用、行为不变)、Newcombe 区间、合并比例 z 检验、Fisher 精确检验(lgamma)、Welch t 检验与区间、Holm 校正、Mann–Kendall(n ≤ 10 且无并列用逆序数递推的精确分布,否则正态近似带并列修正和连续性校正)、Theil–Sen(精确的数在公分母上按整数比,只对浮点相等的那几个精确比)、中位数 / MAD / 名次;测试用公认表值钉住(正态 0.975 分位、t(10) 临界值、品茶表、Newcombe 例子、小样本精确分布对照暴力枚举)
|
2026-10-21 13:03:12 +08:00 |
|
ThearchyHelios
|
3009a43cee
|
分析能力入口(三):分析卡(节点类型 analysis,和口径卡平级,engine/nodes/analysis.py)。配置 items: [{id, op, mode, from, params, hypothesis}] 和阈值覆盖 overrides;画图时校验(schema.analysis_issues,执行前同一套再过一遍):至少一项、标识合法且不重复、分析方法和模式是契约里的、输入(from,或两份查询的 base_query / target_query,总数两格落在的节点)指向上游的调用工具 / 合并查询节点(Agent、不产出查询的节点、不在上游的报错,调用别的工具的只提醒)、参数和 agent 工具同一份定义且不能写阈值、下钻指向同卡排在前面的变化拆解、阈值覆盖按 contract.settings_problem。执行照合并查询的做法从 state.nodes 取上游的查询快照 id、复验哈希,只认台账里 kind query 的快照,遮罩列同证据面板;参数里的 {{ }} 先渲染;阈值是缺省 ← 发起时的快照 ← 卡上的覆盖;每项的结论落成工件、台账记一条带 item 的 kind analysis、发一条 analysis.end;产出 nodes.<卡>.results.<项> = {status, verdict, direction, values, phrase, artifact},条件分支能按判定走、成果能取判定语。一项算不了照实记(analysis_refused),不让卡失败;调用写错让卡失败并说清是哪一项、怎么改。登记:事件 analysis.end、叫法「分析卡」「分析项」「阈值覆盖」和分析方法、模式的叫法,编译器,治理(分析卡算可追溯的节点;受管级别分析卡的输入要是数据库查询或合并查询 governed.analysis_input,画布那条同义的提醒不再重复列;口径卡读分析卡的结果给提示 governed.caliber_analysis_input,输入按 via analysis 记、追不到原始数据),升级提醒的证据类节点,变量表(每项的结论、对上游节点的引用),数据目录影响面(同合并查询经由输入),助手查看的工作流说明,两条新编号的白话
|
2026-10-21 13:03:00 +08:00 |
|
ThearchyHelios
|
601b84918d
|
分析能力入口(二):五个 agent 分析工具(analysis_decompose / baseline / trend / differ / comparable,名字取 contract.TOOL_NAMES),参数只有「算什么」(引用本节点查过的结果 Q3、列的角色、期次、总数 headline、下钻 parent、度量叫法、在验证什么),没有阈值参数;五个工具共用一份「分析方法」说明(ToolSpec 新增 guide:方法说明 + 去重用的 id,register / build_tools 透传进工具的 metadata),Agent 节点、协作成员绑了任一分析工具就接在 Skill 后面注入 system,同一份只注入一次,模型调用节点不注入。Agent 建工具时经 ToolContext.extra 交一个本节点的分析容器(app/tools/analysis.py 的 AnalysisScope),每次查询记台账时往里放一份输入快照(编号和「【证据 Qn】」同一个),分析结论落成 analysis_result 工件、台账记 contract.ledger_entry(带 call_id),交回模型「【分析 An】」加判定语、判定标准、关键数、附带说明、算不了的原因、结果表前几段;tool.end 带 analysis_artifact;下钻按 An 取本节点的结论;调用写错(contract.CallError,含这个节点的分析次数用完 max_calls)作为工具错误交回、不记台账、不占编号;算不了照样记结论并发一条 analysis_refused。编号只在记台账时放进容器,审批恢复重放时分析不再执行、编号不错位。遮罩列按证据面板同一个函数认(数据源设的、按 SQL 认出改了名字的),遮罩运行交给算子的是遮过的快照。阈值读发起时的快照,没有就现读设置;运行期依赖给运行当天、按运行目录视图读的目录、剖析事实、现查表范围的探查(W1-a 的 make_prober,还没有时不给)。协作成员同样注入方法、同样编号(协作节点不记台账)。使用者问数据的白名单加上五个分析工具和分析卡;调用工具节点调分析工具在画布上就报错(analysis.tool_node)。能力登记不把它们当查询(is_platform_query 不认)
|
2026-10-21 13:02:30 +08:00 |
|
ThearchyHelios
|
a9f1555da2
|
分析能力入口(一):设置加「分析」一组(api/settings.py 的 analysis:判定用的阈值、一次运行最多分析几次、最多下钻几层、列出前几段),键、缺省、取值范围、叫法全取 app/analysis/contract.py(DEFAULTS / RANGES / LABELS / settings_problem),设置接口里和 ledger 组同一个写法:GET 按生效的样子给(存坏了的项按缺省,「明显超出」不大于「超出常规波动」、最多用几期历史小于至少几期的那一对一起按缺省),PUT 先查后写(不认识的键、类型、范围、两两之间的大小,说法用设置项的叫法),浮点的项存成浮点;analysis_settings 给发起时的快照和没有快照时现读用
|
2026-10-21 13:01:47 +08:00 |
|
ThearchyHelios
|
38906a92ea
|
分析能力骨架补跨包约定:写作目录里分析条目的读法(catalog_result:A{n} 条目 kind analysis、result 为整份结论)、口径卡指标上的可比性字段(MetricComparability)、报告文档里系统写的「分析范围」结构(ScopeBlock / ScopeItem)
|
2026-10-21 11:55:38 +08:00 |
|
ThearchyHelios
|
844f5571f0
|
分析能力骨架:app/analysis 契约(结论的工件种类、台账条目、写作目录前缀 A、引用标记 a、分析卡节点类型、五个算子与模式、方法版本、判定码、算不了的原因码、附带说明码、工具名)、设置缺省 / 取值范围 / 叫法与校验、阈值合并(缺省 ← 发起时快照 ← 分析卡覆盖)、复算比较;run / recompute 的签名(第 1 波实现);测试用的假结论
|
2026-10-21 11:53:43 +08:00 |
|
ThearchyHelios
|
9e5debfb33
|
合入文档重新梳理:README 中英各精简成介绍和索引(是什么、为什么用、主要功能、快速开始、部署、文档索引),细节按主题拆进 docs/zh-CN 与 docs/en(17 篇一一对应:问数据、工作流、证据与出具及复核套件、数据源、数据目录、工具、应用、评测与口径账本、定时与通知、部署、配置、PostgreSQL 与多进程、身份与安全、架构、开发、升级说明、常见问题),英文文档不含中文;代码和部署文档里指向 README 章节的地方改指新文档;新增 scripts/check-docs.py(英文文档中文字符、相对链接与锚点、中英对应)
|
2026-10-21 10:56:05 +08:00 |
|
ThearchyHelios
|
27175e2f5e
|
文档:「界面里的设置」表照设置页的实际页签改——偏好设置补上运行默认值、证据裁判、核查、口径账本、应用一节和界面主题;去掉不存在的「设置 → 应用」页签(应用那几项在偏好设置里,apps、identity-and-security 两篇里的说法一起改),补上「审计」页签;中英两边同步
|
2026-10-21 10:55:41 +08:00 |
|
ThearchyHelios
|
1ad087c387
|
文档补充:复核套件逐项写清(双盲复算、反方审稿、审批质询、数字推演沙盘、运行对比),新增「查询区间里没有数据」一节,补全访问密钥到期提醒发到哪里;中英文同步
- evidence.md「复核套件」:开头讲三项共用的只读核查 agent 和「设置 → 偏好设置 → 核查」,再按代码模块文档逐项写解决什么、怎么用、结果、局限;可验证报告的细节并进「导出」一节(只证明内部一致、封存后追加的单列、遮罩、何时能导出),复核套件里链过去
- evidence.md 新增「查询区间里没有数据」:整列是 0 时现查表里实际的日期范围,口径卡标「区间内无数据」、出具降档、写作提醒、问数据按复核重来、助手自查、宁可漏报;data-catalog.md 的数据剖析一节链过去
- schedules.md:访问密钥到期提醒写明个人密钥发本人的个人渠道、服务账号的密钥发全局渠道,以及消息里有什么;定时运行结束后的自动对比链到运行对比
- README 两版:功能列表加复核套件一条,文档索引里证据与出具一行补上新加的两节
scripts/check-docs.py:英文文档中文字符 0 处,相对链接 383 条全通,中英文档 18 对标题层级一致
|
2026-10-21 10:51:15 +08:00 |
|
ThearchyHelios
|
2714890d0d
|
文档重新梳理:README 精简成介绍和索引,细节按主题拆进 docs/zh-CN 与 docs/en(17 篇一一对应),英文文档不含中文
README.zh-CN.md / README.md 只留:这是什么、为什么用它、主要功能(按领域一行一条,链到文档)、快速开始、部署、文档索引、
开发与测试、许可(原文不动)。原来的每一节按读者和任务分到 17 篇主题文档:ask-data、workflows、evidence、
data-sources(新增:接入数据库、只读保证、上传表格、跨库合并、遮罩列)、data-catalog、tools(新增:工具、审批档位、
能力登记、端点、网络规则——它们管所有工作流,不只应用)、apps、evaluation-and-ledger、schedules(含通知)、deployment、
configuration、postgresql-and-scaling、identity-and-security、architecture、development、upgrade-notes(按时间倒序,
每波先写要做的事)、faq。删掉的只有模块名(api/copilot_gen.py、chat/drive.py、data/schema_view.py)、重复的话和
「以前…现在…」的叙述;操作步骤、命令、配置名、限制、权限边界都有归宿。中文是原文,英文按新的中文写;英文里界面文字
只写英文名,开头注明界面目前只有简体中文,中文占位符换成英文占位符,中文数字的例子改成不依赖中文的说法。
数据剖析可以同时剖析 2–3 张表(baf23998)收进 data-catalog。
新增 scripts/check-docs.py:英文文档(README.md、docs/en/**)不许有中日韩字符和全角符号(代码块也算),
README、docs/**、deploy/README.md 的相对链接和锚点都要通,docs/zh-CN 与 docs/en 文件一一对应、标题层级相同。
中文提示里指向 README 章节的地方改指新文档:cluster/guard.py、cluster/version.py、db/base.py 两处报错,
data/schema_view.py 文档串,.env.example 三处,scripts/prod.sh、scripts/test-postgres.sh,terms.ts 两处、
DataSourcesTab.tsx、check-manage.mjs 注释,deploy/README.md 三处链接。deploy/agentlab.env 未动。
验收:check-docs 0 问题(英文文档 18 个 0 处中文,相对链接 369 条 0 断链,18 对标题层级一致);相关后端测试
117 通过、7 跳过;tsc -b、check-copy 通过。
|
2026-10-21 10:23:26 +08:00 |
|
ThearchyHelios
|
baf239981e
|
合入:数据剖析可以同时剖析几张表(剖析设置加「同时剖析的表数」,1–3,缺省 1 即以前的一张做完再做下一张;每张表的查询仍一条一条发,同一时刻对业务库最多这么多条查询)。按任务里的顺序一张结束就开始下一张,进度、查询记录各落在自己那张表上;止损、停用后不再开始新的表,正在做的照常做完;停止时正在做的几张各自收尾、做完的项写进目录;一张表让任务出错时另几张按停止收尾;共享的行数只估一次;409 说法改成「已完成 x / y 张表」;设置表单、风险说明、预算和估算用时按并发写明张数;中英文 README 各补一句。验收:后端全量 14979 通过(变基到最新 main 后相关剖析测试 125 条重跑通过);tsc;check-catalog-profile 217 项、check-copy 28 项全过
|
2026-10-21 09:08:35 +08:00 |
|
ThearchyHelios
|
f774e42463
|
数据剖析可以同时剖析几张表:剖析设置加「同时剖析的表数」(table_concurrency,1–3,缺省 1,即以前的一张做完再做下一张;上限 3 是给这个源上的分析留出连接池的临时连接),每张表的查询仍一条一条发,所以同一时刻对业务库最多这么多条查询。剖析任务的执行改成按设置开几个执行者,按任务里的顺序一张结束就开始下一张;进度、发过的查询各落在自己那张表上(不再记「正在做的那一张」)。每张表开始前照旧重读数据源:停用、关掉剖析或止损后不再开始新的表,正在做的几张照常做完(止损时剩下的项记止损的原因),都结束后再把没开始的记停下;止损的连续失败、超时比例按几张表的查询合起来算。停止、关停时正在做的几张各自收尾,做完的项照常写进目录,都收完才往上交(等的时候又被停止也等完);一张表让任务整体出错(快照被改动、数据源没了、记结果写库出错)时,另几张按停止收尾、原因写这一句,本进程续不上租约的不写。同时要估同一张表的行数时只估一次(按表加锁,先来的没估成后来的自己估)。同源已有剖析时的 409 说法从「第 x / y 张表」改成「已完成 x / y 张表」。界面:设置表单多一格(单位「张」,提示写明业务库同时要应付几条查询、和分析共用连接),风险说明、卡片悬停、开始前的醒目一句在大于 1 时写明「同时剖析 N 张表、每张表的查询一条一条地发」,预算多一行,这次最多用时按几轮算。测试:同一时刻在途查询不超过设置、每张表仍一条一条发(1/2/3 三种)、几张一起显示进行中并按顺序开始、同时停止各自写进目录、止损后不再开始新表、停用时正在做的做完、一张出错另几张按停止收尾、共享行数只估一次;check-catalog-profile 加一节(预算、估算、说法、两行进行中、表清单)。验收:后端全量 14979 通过;止损那条并发测试单独跑 30 遍、整个剖析任务测试文件并行跑 15 遍都没有偶发;tsc;check-catalog-profile 217 项、check-copy 28 项全过
|
2026-10-21 09:08:10 +08:00 |
|
ThearchyHelios
|
31f3af8bac
|
合入:README 默认改成英文版(README.md,中文版的完整翻译),中文版独立成 README.zh-CN.md(内容不变),两边顶上互相链接;中文提示里指向 README 章节的地方改指中文版
|
2026-10-21 08:55:03 +08:00 |
|
ThearchyHelios
|
0d4ee79440
|
README.md 改成英文版(中文版 README.zh-CN.md 的完整翻译),作为仓库默认 README
逐节对译,不删不并:标题层级和顺序、45 个标题、18 个代码块、10 张表、142 条列表项、图片和外链与中文版一一对应;
代码块里命令、配置名、环境变量、路径、接口原样,只译注释(Mermaid 图的标签一并译成英文);行内代码原样(含 <密码>、
<数据目录> 这类中文占位符,含义不明显处在正文里附一句英文说明)。界面文字写英文译名,并在每个二级节首次出现时附中文
原文,如 Settings → Preferences(「设置 → 偏好设置」);附的中文都和中文版逐字一致。页内锚点全部换成英文标题的
GitHub 锚点,目录按英文标题重建;顶上一行「English | [简体中文](README.zh-CN.md)」。
核对:两份文件各 43 条页内链接(25 个锚点)0 条断链,deploy/README.md 指向 README.zh-CN.md 的 3 条带锚点链接也通;
中文版的 460 个行内代码在英文版里全部原样出现;正文里的数字除「200 万 → 2 million」这类单位换算外一致;
另按节对照通读复核一遍,改正漏译的限定语和几处语义偏差。
|
2026-10-21 08:50:47 +08:00 |
|