关于

本站是 RWA 代币化产品档案库的公开层,由档案库的已发布视图导出生成:静态页,没有后端、没有登录。

当前收录已发布记录 436 条;每张档案卡公开 74 个字段。

本库不对产品排名、不评分、不评级。

字段为空表示该项不适用或原件未载;存量规模为空时显示「发行人未披露」。

方法篇

本库的取件与核查方法,按章节展开(66 节公开,其中 4 节为改写后公开)。

本篇的收录闸门

本篇只收实证记录与新形态,不收推演。

一、这篇文档要回答的问题

一个产品档案库最常被问的三句话是:你怎么知道有这只产品、你怎么知道它是真的、你查不到的那些是什么。

前两句是检索与核查的问题,收录标准的第六节已经给了规则。第三句不是规则问题,是方法问题——它问的是「空白」。而本库在 2026 年 9 月这一轮里得到的最重要的一项进展,就是把「空白」拆开了:

空白的成因继续找有没有意义本库怎么记
执行者没找到有未结论,继续投入
市场上确实没有这类产品有(未来会出现)空格(已穷尽)
文件依法不生成没有——继续找是浪费依法无须披露、结构性不可建档
文件存在但法律上不对本库这类读者开放没有同上,但成因是适格性不是披露义务

后两行是本轮才拆出来的。它们合起来就是本篇的核心命题:

取件地图的边界,就是披露义务的边界。(本库变更记录,由 UBS 对照实验得出)

取件地图的边界,就是投资者适格性的边界。(本库变更记录,由 ODX 403 得出)

两句必须并读。它们是同一张地图的两种边界,成因不同、判别方式不同、对后续投入的含义也不同,混为一谈就等于在全图上撒谎(本库变更记录)。


二、取件地图是从披露义务里长出来的
2.1 一般做法

读监管文件时除了读它管什么,还要读它要求谁向公众披露什么,后者直接就是档案库的取件地图。这条对后续所有辖区都适用,不限于美国。(本库变更记录)

这条做法的价值在于它把「去哪里找」从经验问题变成了推导问题:不必先知道某个网站存在,只要读懂某项法规要求谁在什么时点向公众发布什么,就知道那份文件必然存在、必然公开、且必然可定位。

2.2 正例:法规要求披露,于是文件必然存在(W-1)

美国 SEC 的创新豁免(M-1/TSV 路径)把披露设成了生效条件:

TSV 须在运营前至少 30 个日历日于公开网站显著发布 Notice,须保留所有历史版本,须在发布后一个营业日内书面通知 SEC。不披露就不能运营。(本库变更记录)

这是本库遇到的第一个「取件路径由法规规定」的例子。它的方法论意义不在于这条路径本身,而在于它确立了推导方向。

⚠️ 但须同时记住它的限度:

「取件路径已定」与「有件可取」是两件事,W-1 至今零条。(本库变更记录)

路径已定不等于路上有东西。这一点在后文 §6.4「监管允许 ≠ 产品已开放」处会再次出现——是同一类错误的两个位置。

2.3 反例:法规不要求披露,于是文件必然不存在(UBS 对照实验)

Ed 2026-09-18 指定:「把 UBS 自家法定文件页当对照实验来读,从『取不到』推到『依法不生成』,这是这一周期方法论上最重要的一次推进,进方法篇。」(本库变更记录)

实验的构造。UBS 新加坡法定文件页(ubs.com/sg/en/assetmanagement/funds/statutory-documents.html,发行方自营、A 级)页面自述覆盖范围为 "funds registered under the authorised and recognised schemes in Singapore"。同一张页面上有两个子基金:

UBS (SG) Select Opportunities VCC – Money Market (SGD)UBS (SG) Global Opportunities VCC – Money Market (USD)
是否代币化否是(uMINT 的底层子基金)
发行人UBSUBS(同一家)
载体VCCVCC(同一种)
资产类别货币市场货币市场(同一类)
认可制身份认可/受认可计划不在其列
该页文件PHS、年报、半年报齐备一条都没有

六个变量控住五个,只剩一个在变:认可制身份。而结果是文件从「齐备」变成「零」。这不是近似对照,这是发行方自己在同一张页面上做出的对照。(本库变更记录)

结论:

公开注册本身就是文件的来源。 招募说明书与产品重点摘要(PHS)是认可制下的法定产出,不是发行方的营销选择;不走认可制,这些文件在法律上根本不被要求生成,因而不存在「藏起来了」这回事。(本库变更记录)

为什么这个实验是可复制的方法而不是一次运气。区分「执行者没找到」与「文件依法不生成」的手段,是找同一发行方、同一资产、只在监管身份上不同的一对产品(本库变更记录)。这是一个可以在任何辖区重做的对照设计:控住发行方、资产类别、法律载体,只让监管身份变动,观察法定文件的有无。

机制侧另有律所分析佐证(新加坡多数代币化基金以私募方式面向 AI/II 发售,豁免于完整招募说明书义务),但:

佐证只是佐证——本条的证明力来自 UBS 自家页面的那一对子基金,那是 A 级一手件。(本库变更记录)

这句本身也是一条方法纪律:二手机制分析不能替代一手对照,它只能在一手对照已成立之后解释机制。

W-1 与本条是同一条原理的正反两面(本库变更记录):

法规怎么说文件的状态对本库的含义
W-1要求披露文件必然存在取件路径可由法规推导
UBS 对照不要求披露文件必然不存在停止投入是正确的,不是放弃

⚠️ 反向不成立,须留痕:

不得由「文件不存在」推出「产品不存在」。uMINT 是真实在运作的产品,只是不产生可建档的法定文件。同理,SG-5(渣打)维持普通空格而非第三种状态,因为那是模拟发行——是「没有产品」,不是「没有文件」。两种空白长得一样,成因完全不同,混为一谈就等于在全图上撒谎。(本库变更记录)

2.4 第二种边界:适格性(ODX 403)

日本大阪数字交易所(ODX)的 START 市場,多条路径返回 403:/start/、/pts/、/security-token/ 均 403;/st/ 返回 200 且从 Next.js flight 数据里完整还原出站点地图,但真实内容路径 /ja/securities_info/securities_list/ 403(本库变更记录)。

403 在这里不是反爬。判定依据是 ODX 自己的页脚原文(从 /st/ 的 flight 数据取得,A 级,发行方自述):

「当社は、特定投資家以外の方に対しサービスを提供しておりません。」(本库变更记录)

并附「当社START市場の取扱銘柄についてのご注意事項」,明言 START 市場适用的是「当社が独自に制定した規則」而非金融商品取引所对上場有価証券的规制,且「各取扱銘柄の識別には ISIN コードまたは当社が独自に附番した START コードが用いられる」(本库变更记录)。

判别方法本篇归纳:把一个 403 判为「适格性边界」而不是「反爬」,须满足两条——(1) 拒绝有主体自述的法律理由,且该自述本身是 A/B 级来源;(2) 拒绝的范围与该法律理由的范围一致(此处是整个内容层对非特定投資家关闭,而非某几个端点限流)。只满足其一的,仍按「未打通」记,不得升格为结构性结论。

结论:

这与新加坡 SG-2 的登录墙同构:不是检索障碍,是法律上的投资者适格性边界……这里是「取件地图的边界,就是投资者适格性的边界」。 日本二级市场层因此不可能成为本库的产品发现链路,一级发行层(EDINET 有価証券届出書)是唯一出口。(本库变更记录)

Ed 的关闭裁决(照录):

「第三项不做,剩下那个工作日不用在 BOOSTRY 上,记『未打通、二级市场层因适格性限制不可作发现链路』关闭。」(本库变更记录)

⚠️ 关闭理由不得合并:

ODX 是二级市场(PTS),关闭理由是适格性限制(有其自述原文为证);BOOSTRY 是一级发行平台不是二级市场,其关闭理由只是未打通(纯客户端渲染,无服务端可取内容),无证据表明它受适格性限制。把适格性那半句套到 BOOSTRY 上会是一次无据的因果归并。(本库变更记录)

两个取件点同日关闭、同一份报告里并列,理由却必须分开写——关闭的同时性不产生理由的同一性。

2.5 三条边界并读(2026-09-23 由两条扩为三条,Ed 立)

Ed 2026-09-23 裁定:辖区内部的公募/私募分界,是「披露义务边界」的第三种形态,三种形态并列。 三者依次是——辖区间的披露义务、辖区间的适格性、辖区内的发行方式。

① 披露义务的边界(UBS)② 投资者适格性的边界(ODX)③ 发行方式的边界(NTT-TC)
边界落在哪辖区之间辖区之间同一辖区内部
文件是否存在不存在——法律不要求生成存在——金商法下必然已提交不存在——同一部法律对这一只不要求
取不到的原因没有可取之物有,但不对本库这类读者开放该只走私募,法定披露义务未被触发
判别的一手证据发行方自家页面的对照组主体自述的适格性声明发行文件自述的发行方式(適格機関投資家限定・少人数私募)
会被什么改变监管框架变化(如纳入认可制)读者身份变化,或另找一级发行层出口同一发行方下一只改走公募
对本库的处置该格记第三种状态,停止投入该链路关闭,但该辖区不关闭——改走一级发行层该记录的字段记「未披露」并注明依法不要求,该辖区、该链路均不关闭

第三种形态为什么必须单列,而不是并进第一种:第一种是「这个辖区不要求」,第三种是「这个辖区要求,但这一只没触发」。前者的结论对整格有效,后者的结论只对这一只有效 —— 把它当成第一种,等于拿一只私募债去论证整个辖区没有文件。

实证(NTT-TC,2026-09-23 日本收口):两条记录试遍七条通道(EDINET/发行方 IR ×2/Progmat 联名新闻稿 ×2/大和証券/JSTOA/DBJ/三菱UFJ信託),「社債原簿」只作为「社債原簿管理者」这一角色名出现,譲渡記録・名義書換・移転・分散型台帳 全部零命中。→链上权属效力维持「未披露」,且这不是「没找到」,是依法不要求披露 —— 該発行为適格機関投資家限定・少人数私募。

三条边界句虽然对仗,处置的终局性递减:

把靠后的当成靠前的,会让一个本可建档的辖区被自己关掉——这个错误本库已经犯过一次(见 §3.4 新加坡 OPERA)。日本本身就是反例:

46 件里 45 件是公募,金商法下必然已提交有価証券届出書,A 级法定文件不是『可能有』而是『一定有』。日本的困难不在文件是否存在,在取件点的入口(EDINET key、BOOSTRY、ODX)。(本库变更记录)

2.6 法定表格码:披露义务判据的可枚举形态(06A000)

前五节讲的是「披露义务的边界就是取件地图的边界」。日本这一批不是靠关键词猜,是靠法定表格分类枚举。

「有価証券届出書(内国信託受益証券等)」是受益証券発行信託专用的法定表格码 06A000。同一 13 个月窗口内,公募基金用的 04A000 有 1,773 件,06A000 只有 21 件。(本库变更记录)

它与香港 4,951 CE 名录检索的性质相反,这是它的全部价值所在:

香港名录检索EDINET 06A000
匹配依据关键词命中法定表格分类
得到的是一个子集一个可枚举的全集
证明力只能证实,不能否证(§4.2)可以否证

为什么表格码能否证而关键词不能:凡走这条法律路径的发行,都必须落在这个码上——这不是检索系统的性质,是披露制度自己的性质。关键词是我们施加在文件上的;表格码是发行人依法必须选的。判据的强度来自它由谁决定。

Ed 2026-09-19 的定性(照录):「formCode 06A000 这个锚点是日本这一批最值钱的发现——它是法定表格分类而不是关键词检索,可枚举、可否证,是『披露义务的边界就是取件地图的边界』这条判据在日本的落地形态;用它否证了 Progmat 自家清单的完备性,比『OPERA 不能作入口』又强一档。」(本库变更记录)

它立刻否证了一件事:21 件里 10 件在 Progmat 自家清单上没有对应。

是法定表格码否证了平台清单的完备性——如果只走平台侧,这 10 件永远不会进入视野。(本库变更记录)

这与 §3.4「OPERA 是印证不是入口」同构,但方向更强一档:

OPERA(新加坡)Progmat 清单(日本)
结论不能作入口已被证明不完备
依据推理(A 级定义不要求经监管入口)实证(全集里 10 件它没有)

三件非 ST 的排除也是真否证,不是「没找到」:S100WY8X/S100XDFO/S100YOG5 在十个锚点词上全部零命中——否证落在「连技术词都一次不出现」这个排他事实上,符合 §4.1 对否证句式的要求。

推论(已落地为建档母体的选择):建档母体改用 06A000 全集,不用平台清单。Ed 的理由一句话:「清单不完备,全集可枚举可否证。」

可迁移的问法:进入一个新辖区时,不要先问「哪个平台有清单」,先问「这类产品依法必须提交哪一份表格、那份表格有没有自己的代码」。有代码,就有可枚举的全集;只有清单,就只有一个来源不明的子集。

2.6.1 一般化:行业清单只能作线索,不能作分母(Ed 2026-09-23 立)

Ed 指定把「06A000 否证 Progmat 自家清单」这条从个例升为通则:

任何由行业主体(平台、协会、券商、媒体)维护的清单,都只能作候选线索,不能作检索的分母。

分母是什么意思:一切形如「共 N 件,其中 M 件符合」「检索 0 条所以没有」的陈述,都预设了一个分母。分母的合法性来自「凡属这一类者必被收入」这条强制——只有法定披露义务能提供这种强制。行业清单没有,因为没有人被法律要求把自己登在上面。

两个已实证的例子,方向一致:

清单被什么否证否证形态
Progmat 自家 ST 清单(日本)06A000 法定全集 21 件10 件在清单上没有对应
JSTOA ST 統計(日本 STO 协会)它自述不完备原文:全てのSTを網羅し集計しているわけではありません

第二例比第一例更干净:它不需要外部全集来否证,清单自己就写明了它不是分母。→ 用清单之前先读它的口径自述;写了不完备的,连线索都要标注来源边界;没写的,按不完备处理。

这条与 §4.1「文件名法只能证实不能否证」同构,层级不同:那条说的是同一份文件内部的检索层级,本条说的是样本空间从哪来。共同结构是——证实只要一个命中,否证要求覆盖面有制度担保。

德国是这条通则第一个前瞻性适用的辖区(2026-09-23):BaFin 招股说明书库不可按法定分类枚举(见本库德国取件地图草案 §二 载体三),德国没有自己的 06A000。因此德国线走发行方文件路径,候选全部来自行业线索,这条线上不允许出现任何以「检索 0 条」为依据的结论。

2.7 覆盖面不是载体的属性,是「载体 × 产品类别」的属性

§2.6 证明了 06A000 让日本这条链路可枚举、可否证。但同一个 EDINET,换一类产品,结论就翻过来——这一条是本篇对「取件地图」这个概念本身的一次修正。

Ed 2026-09-20 的裁定(原话照录):

「EDINET 能枚举受益証券発行信託、不能枚举社債型,覆盖面是『载体乘产品类别』的属性,这句话进方法篇正文。」

两类产品在同一个载体上的实测对照:

受益証券発行信託(不動産 ST 等)社債型 ST
有无专用法定表格码有:06A000无——混在全部公司债的 080/100 里
縦覧口径提出日 + 5 年,可预知随母体発行登録的效力终止,长短由发行方决定,不可预知
能否枚举全集能(13 个月 21 件,397 天 0 失败)不能——过期件元数据全空,暗集与可见集同量级(15,791 vs 11,009)
「零命中」的含义可作否证不可作否证(SC-8b 的实证)
唯一可用的取件形态按表格码枚举外部锚点圈窄窗口 → 枚举空壳 docID → 逐件取 PDF 表紙识别

为什么这条要写进正文,而不是记成一次日本的特殊情况:本篇前面几节都在把「取件地图」当作按辖区划分的东西——某国某载体打通了,就在地图上涂一块。这条实测说明那种涂法本身是错的:

同一个载体,对一类产品可枚举,对另一类产品连否证都做不到。 地图的格子不是「辖区 × 载体」,是「辖区 × 载体 × 产品类别」。

因此「EDINET 能不能枚举日本的代币化产品」是一个坏问题——它预设了答案对全部产品类别一致。正确的问法是:这一类产品依法提交哪份文件,那份文件的縦覧口径是什么。 两个子问题都必须逐类别重问一遍。

连带一处改记:上一批三条社債型记录(トヨタ/NTT・TCリース)当时是靠外部锚点圈窗口 → 枚举空壳 → 逐件取表紙建起来的,本库变更记录里记为「一次绕路」。Ed 2026-09-20 改记:

「上一批三条社債型的建档方式改记为该类别的唯一链路,不再叫绕路。」

这个改记不是措辞问题。 叫「绕路」意味着存在一条正路、只是当时没走通,下次可以再试;叫「唯一链路」意味着没有正路,这就是这一类产品在这个载体上的全部取法。前者会让后来者反复去试那条不存在的正路。

2.8 取件地图上的第一条不可逆边界:2021-09-21

Ed 2026-09-21 裁定:「『窗口前端已经关上』记为取件地图上的第一条不可逆边界,2021 年 9 月 21 日之前的件永久不可判,这个日期写死。」

实测。2026-09-21 扫 06A000,窗口 2021-09-01 → 2023-12-31,852 天 0 失败:

日期段可见的 06A000该段空白的解释
2021-09-01 → 09-210 件不可判——縦覧満了(提出日+5 年)后退化为元数据全空的壳,「没有」与「看不见」在结果里长得一样(SC-8b)
2021-09-22 → 09-270 件真空白——若有件,此时仍在縦覧期内,必然可见
2021-09-28 起4 件(首见)—

同窗口扫出元数据全空的壳 85,036 件,逐件取件不可行。

因此「2021-09-28 是第一件」是取件窗口的性质,不是市场事实。 这句话必须与数字一起记,否则后来者会把它读成「日本 ST 的公募从 2021 年 9 月 28 日开始」。

为什么它与本篇已有的边界都不同。 §2.3(披露义务)、§2.4(适格性)两条边界讲的是文件存不存在;§5.3 的时效边界讲的是文件取不取得到。本条是第三种:

边界类型出处性质能否解除
披露义务§2.3法规不要求 → 文件不存在法规改则解除
适格性§2.4不适格 → 看不到取得资格则解除
时效(SC-8/8b)§5.3过期件退化成壳对尚未过期的件仍可抢救
不可逆(本条)§2.8已过期的件,窗口不会再打开永不解除

前三条都有「等条件变化」这个选项,本条没有。它是本库第一条只能记录、不能计划绕过的边界——对它唯一有意义的动作是在剩余窗口内尽快取件,而这个窗口每天向前移动一天。

这条边界还有一个容易被忽略的后果:它让本库的取件完整度成为一个随时间单调下降的量。所有其他缺口(链路未打通、适格性不足、字段填不满)都可以靠后续投入补回来,唯独这一条,今天不做就永远缺。因此凡涉及縦覧制的载体,取件排程的优先级判据不是产出密度,是剩余窗口长度——与 Ed 2026-09-20 立的「射程应该等于已连续无缺口的窗口」并读:那条定射程的宽度,本条定射程的时限。


三、各辖区取件链路的现状

状态截至 2026-09-18。本表是链路状态表,不是覆盖度表——链路打通不等于该辖区已建档,链路未打通也不等于该辖区不能建档(见 §3.4)。

3.1 香港

链路:证监会《认可投资产品名录》→ 文件清单页 → PDF 原件。四步操作细节见本库香港取件操作文档,本篇不重复。

Ed 2026-09-06 裁定:「这是这一轮最大的技术资产,以后任何认可产品都走这条路。」

名录全集的取法(2026-09-18 改进):不再用关键词检索构造子集,改为枚举名录本体四张表——searchProduct/OFC.do(2,569 CE)、searchProduct/OFCL.do(90 CE)、searchProduct/UTMF.do(2,409 CE)、searchProduct/ETF.do(287 CE),去重合计 4,951 CE(Last updated on: 17 Sep 2026)(本库变更记录)。

持牌机构名录:本库香港取件操作文档 §八记为「未破解」(searchByName 对所有公司名返回 {"ce":null})。2026-09-18 已找到可用形态——须 POST https://apps.sfc.hk/publicregWeb/searchByNameJson,加 X-Requested-With: XMLHttpRequest 头(GET 返回 405)(本库变更记录)。⚠️ 但它打通的是另一样东西:取到的是管理人的主体级中央编号,不是产品级编号,两者严格分离(字段字典 §2.23),v0.6 草案 D6 为此另设发行方主体编号承载。本库香港取件操作文档 §八的状态更新待 v0.6 落地时一并改,本篇不擅改该文档。

3.2 美国

链路:EDGAR 全文检索 → 回原件读上下文。

3.3 日本
#取件点实测状态
1progmat.co.jp/concept/st_list/page/{1..6}/200,46 件全取,无专名✅ B 级(平台官网)
2jsda.or.jp/shiryoshitsu/toukei/sttoukei/sttoukei2607.xlsx200,三 sheet,47 只✅ A 级
3jstoa.or.jp/member/member-list/200,正会員 16 家✅ A 级
4fsa.go.jp/menkyo/menkyo.html200✅ 可访问
5EDINET API v2 api.edinet-fsa.go.jp/api/v2/documents.json带 Subscription-Key 后 200/正文 200 OK✅ 已打通(2026-09-19 起),日本两批共 21 条记录的 A 级原件全部经此取得
6EDINET 閲覧サイト(路 B)三端点全部 200,ASP.NET postback❌ Ed 裁决不做
7EDINET API v1403,端点已废弃❌
8boostry.co.jp200 但纯客户端 Nuxt SPA,8 条路径全返回同一个 19.8KB 空壳❌ 未打通,但见下方⚠️
9ODX START /ja/securities_info/securities_list/403❌ 适格性限制,已关闭

(第 1–4、6、7、9 项状态截至 2026-09-18,本库变更记录;第 5、8 项已于 2026-09-19/09-20 更新。)

⚠️ 第 8 项要连着读一条关闭令的适用范围:BOOSTRY 官网未打通后被裁决关闭,但关的是「去 BOOSTRY 网站取件」这条路,不是「ibet for Fin 上的产品不建档」。这些产品后来全部经 EDINET 取到 A 级法定原件。

Ed 2026-09-19:「关的是路径不是产品。」——关闭令的适用范围由关闭令自身的理由决定(理由是「官网取不到」,故范围止于官网这条路径)。这是 §2.19 先例的又一次适用,也是本库把「平台侧关门」与「披露义务侧关门」分开的一次实证:只要发行是公募,披露义务侧的门就是开的,平台配不配合无关。

两条具体链路(2026-09-19/09-20 实测):

产品类型法律路径文件种别縦覧期間
受益証券発行信託(不动产 ST、基金份额 ST)直接发行有価証券届出書 030 / formCode 06A0005 年
社債型 ST参照方式発行登録書 080 → 訂正発行登録書 090 → 発行登録追補書類 1001 年

两条链路的检索条件定义域不重合,这一点曾经造成一次系统性漏检:第一批的扫描只保留 030/040,社債型从一开始就不在样本里——这不是漏检,是检索条件的定义域与目标客体不重合。合并 SC-8 的时效边界一起读,见 §5.3。

两条须写进方法而不只是写进日志的处置:

  1. 注册类动作不由执行者代做。 Ed:「金融厅的 API 利用登録是免费的邮箱注册,但它是以你的名义在监管机构网站开账号,这类动作不由执行者代做。」(本库变更记录)
  2. 已知覆盖缺口要写进全图说明,不为它停下。 Ed:「Progmat 的 46 件加 JSDA 的 47 只计数已经够第一批用,野村和 SBI 系的产品缺席是一个已知的覆盖缺口,写进日本全图的说明里,不为它停下。」(本库变更记录)

Progmat 清单的限度:46 件全取,但不给产品专名——「内部标号出自图片文件名(如「不動産ST40号」)……专名须另去 EDINET 有価証券届出書或券商产品页取」(本库变更记录)。这是「链路打通」与「字段能填」之间的典型落差,见 §7.1。

3.4 新加坡

OPERA 的分层状态(本库变更记录):

端点用途状态
ViewSchemes.aspx浏览已打通,无 CAPTCHA,但硬顶 30 行,最长 12 个月滚动窗口
ViewProspectus.aspx浏览已打通,有翻页控件
SearchSchemes.aspx检索未打通,CAPTCHA(ctl00$MainContent$RadRegistrationCaptcha$CaptchaTextBox)

故 OPERA 浏览页的真实覆盖面 = 最长 12 个月的滚动窗口,且非 Authorised 页签在 30 行处被截断。(本库变更记录)

检索层的唯一障碍是 CAPTCHA,绕过它超出执行者的行为边界,故主动停手,不再消耗预算。(本库变更记录)

本库在新加坡犯过的错,是本篇最该记住的一条:

Ed 原话:「新加坡不允许『格子表加零记录』结项,但也不让它卡在 OPERA 上——因为 OPERA 不是新加坡唯一的 A 级路径,这一点它没有想到位。收录标准第六节的 A 级定义是『发行方或监管机构的一手文件』,发行方自己的招募说明书和产品文件从来都是 A 级,不需要经过监管机构的检索入口取得。」「OPERA 的作用是核对认可状态,是印证不是入口。」(本库变更记录)

已落收录标准 §6.9。把入口误当门槛,会让一条完全可走的 A 级路径被自己关掉。

3.5 英国

目前仅一条记录(柏基 Baillie Gifford Enhanced Yield Fund,英国 FCA 监管 OEIC/UCITS)。证监会认可名录三种检索式均返回 0 条——因其为英国认可产品,不在 SFC 名录内,0 条在此处不构成任何否证(收录标准 §6.5 第 5 项)。主来源走发行方官网新闻稿。


四、检索的证明力:证实与否证从来不对称

这是本库反复踩坑最多的一族问题,也是本篇最长的一节。

4.1 两级核查的分工
级别材料能做什么
一级发行文件清单页的文件名只能证实,不能否证
二级招募说明书全文可证实亦可否证,且否证必须落在正文的排他句式上(only / solely / exclusively 一类)

(收录标准 §6.6)

实证:某只人民币货基由共用招募说明书第 7 页脚注否证——

Applicable in respect of tokenised Shares of Bosera USD Money Market ETF and Bosera HKD Money Market ETF only.

该系列因此产出 2 条而非 3 条。清单页文件名缺失只能提示,正文的 only 句式可以否证。

根因(本库香港取件操作文档 §三之二):是否为代币化类别单独出一份 KFS,是发行方的自由裁量,不是监管强制。

同形态的误判风险本库已连读成组三条:

  1. 名录检索 0 条 ≠ 无代币化(名录记录单位是基金,不含代币化属性)
  2. KFS 无 token ≠ 无代币化(KFS 更新滞后于招募说明书)
  3. 清单页文件名无 tokenised ≠ 无代币化(单独出 KFS 是自愿行为)
4.2 香港 4,951 CE:「一级只能证实」最完整的一次实证

Ed 2026-09-18 指定:「全名录 4,951 个 CE 一级扫完、『8 不是 8 只产品而是 8 个选择单独出 KFS 的发行方』这句,进方法篇,它是『一级只能证实不能否证』最完整的一次实证。」(本库变更记录)

两次扫描的对比(本库变更记录):

2026-09-062026-09-18
扫描范围6 组检索式汇出的 817 个 CE(按关键词构造的子集)枚举名录本体得 4,951 个 CE(全集)
一级命中7 只8 只
反证样本3 只已知代币化产品未命中至少 6 只未命中(CSOP BMV635、恒生 BWZ468、汇丰 BUS816、华夏 BWG918/BWG919/BVQ026/BXU205)
结论强度「该方法可能漏」「该方法漏掉的比它找到的还多」

这个升级本身是一条方法:第一次的证据是三只回测样本,「三只是个例,说服力有限。本轮把它推到了全集上」(本库变更记录)。把一个已知的弱点从个例推到全集,比再找一个新弱点更有价值——前者把「可能」变成了「确定」。

那个数字的正确读法:

「8」不是「香港有 8 只代币化产品」,是「有 8 只产品的发行方选择为代币化类别单独出 KFS」。(本库变更记录)

由此立一条计数报出纪律(Ed 指定进方法篇):

任何靠检索得出的计数,报出来时必须同时报出「已知的漏检样本数」。本条的规范写法是「一级检测在全名录 4,951 个 CE 上命中 8 只,同一方法对在库 6 只已确证的代币化产品未能命中」——后半句和前半句一样重要,缺了它,8 就会被读成 8。(本库变更记录)

二级核查的结果与召回率(本库变更记录):以库内已建档的 10 家香港发行方为种子,枚举其名下全部产品得 275 CE,剔除私募后 260 CE;46 份不同招募说明书全部用 pypdf 提取全文,正则 (?i)tokeni[sz]|blockchain|distributed ledger|digital ledger,命中 12 份(覆盖 95 CE),拆为三类——真代币化 9 份(覆盖 77 CE)、A 类假阳性 2 份(加密资产现货 ETF)、B 类假阳性 2 份(投资于代币化资产的基金)。真代币化一类共 14 只产品,逐只与库内 26 条香港记录对照,全部已在库,新增 0。

指标值
一级相对二级的召回率8.5%

一级检测的全部产出,都来自已知做过代币化的管理人。扫遍全名录 4,951 只,一级没有发现任何一个新管理人。(本库变更记录)

这一条同时确立了「这条路走到头了」的判据:

一级检测(文件名法)已在全名录 4,951 个 CE 上跑完一遍,再跑一次不会有新东西。 而二级核查在 4,951 只基金上逐个下载是不可行的——单份招募说明书动辄十余兆、上千页。所以这不是「还没扫完」,是「这条路走到头了」。(本库变更记录)

这与 P38 第三种格子状态是同一族的判断:区分「还没做」与「做不了」。(本库变更记录)

Ed 对这轮结果的定性:「这条结果的价值是把『香港已定位 12 只』这个数的置信度又提高了一档,记档即可。」(本库变更记录)——穷尽性扫描的产出不是新记录,是既有数字的置信度。零新增是一个正面结果,不是一次白跑。

4.3 美国方向相反:命中连证实都不算
辖区一级二级
香港(SFC 名录)清单页文件名 —— 只能证实,不能否证招募说明书全文 —— 可证实亦可否证
美国(EDGAR 全文)全文检索命中 —— 连证实都不算,只能提示回原件读上下文 —— 可证实亦可否证

方向相反的根因:SFC 检索的是标题层(命中即相关,缺失不代表不存在);EDGAR 检索的是全文层(覆盖道德准则、风险因子、人物简历、排除条款,命中与产品无必然关系)。(本库变更记录)

实测:全文检索 "tokenized" 的命中量为 N-1A 9 条/5 主体、N-2 14 条/7 主体、424B2 41 条/7 主体、S-1 341 条/43 主体;12 个基金类主体中只有 5 个是真代币化产品。

最锋利的一条:

WisdomTree 一条最值得记:它的命中出自一份明文排除代币化资产的托管协议——全文检索无法区分「做这件事」与「明说不做这件事」,这是「命中连证实都不算」最锋利的证据。(本库变更记录)

这是「检验只覆盖部分维度时,别把它的结论当全称」这条通则的第三个实例。(本库变更记录)

4.4 「逐条核过」会制造「已穷尽」的错觉(SC-4)

「逐条核过」这个动作本身会制造「已穷尽」的错觉,而且命中数越多、核得越细,错觉越强。……核查的质量与检索范围的正确性是两件事,前者的说服力会冒充后者。(本库变更记录)

具体经过:先在 424B2 上逐条核完 41 条假阳性,核得很干净,之后才发现检索的样本空间(公开注册)根本不覆盖银行代币化票据走的 Reg D/Reg S。41 条核得再准,也不能补救样本空间选错这件事。

本篇归纳的一条操作:任何一轮穷尽性检索,在报告命中与核查结果之前,先写一句「本次检索的样本空间是什么、它已知不覆盖什么」。这一句写不出来,这轮检索就不能被称作穷尽。

4.5 委托方的预判不免除核查义务

Ed 原话:「424B2 那 41 条在 F-1 内核完再定去留,我的预判是 boilerplate,但预判不是核查。」(本库变更记录)

记此一句作为纪律:委托方的预判不免除执行者的核查义务,且核查结论与预判一致时也须写明是核查得出而非采信预判。(本库变更记录)

后半句是要害:一致时最容易省掉核查,而省掉之后没有任何外部迹象,因为结论看起来是对的。

4.6 「0 条」必须配对照组才算数

§4.1 说一级检索只能证实不能否证。但零命中有时确实要用——那就必须先证明检索本身是有效的。方法只有一个:同一检索式,换一个已知应当命中的对象跑一遍。

本库的原始实例(香港):

方法学要点(可复用):0 条检索结果必须配对照组才算数。本次以 HSBC Gold Token 作对照,同一检索式返回 1 条、认可日期 20/3/2024(并交叉验证了 HK-3 的数据),证明检索方法有效,故 Baillie Gifford 的 0 条是真阴性而非检索失败。此后凡以「不在名录内」作否证,一律须附对照组。(本库变更记录)

官方名录是唯一裁判,而查名录必须带对照组。 检索返回 0 条可能是真的没有,也可能是检索式写错了。(本库变更记录)

要害在「0 条」是一个二义信号:它既可能是「对象不存在」,也可能是「检索式坏了」——而这两种情况在结果上完全无法区分。对照组把它变成单义:对照组命中 ⇒ 检索式没坏 ⇒ 这个 0 是真的。

三个层次的对照,强度递增:

层次实例控住了什么强度
同检索式换对象HSBC Gold Token vs Baillie Gifford(§3.5)检索式、载体证明工具有效
同页面换产品UBS uMINT vs 同发行方非代币化产品(§2.3)六个变量控住五个,只剩认可制身份在变证明因果——文件的有无由制度决定
同请求换凭证EDINET 不带 key(控制组)vs 带 key(实验组)端点、日期、参数全同,只有凭证在变证明故障定位准确

第三个是日本这一批做的,同时现场复现了 §5.2 的「HTTP 200 / 正文 401」:

组请求HTTP正文状态长度
控制组(不带 key)documents.json?date=…&type=2200401139 B
实验组(带 key)同上 + Subscription-Key200200 OK231,465 B,235 件

控制组正是 §5.2 那条「HTTP 200 / 正文 401」的原型,本次是现场复现,不再是回忆。(本库变更记录)

UBS 那个层次为什么最强:它不是我们构造的对照,是发行方自己在同一张页面上做出的对照(§2.3)。构造的对照证明工具,天然的对照证明制度。 遇到后者要认出来——它比任何自建实验都硬。

4.7 自我校正(SC)系列:本库已编号的十二个洞

SC 编号记的是本库自己犯过并已定性的方法错误,不是外部障碍。逐条散在各章,此处只列一览与四条尚未单独成节的。编号一律由 Ed 给,执行者不自行编。

SC 之外另有 R 系列(取件判据,2026-09-21 Ed 开):SC 记错,R 记法——SC 收本库犯过的方法错误,R 收已验证可用的正向方法。两系列不交叉编号。首条 R-1(取件成功三判据)见 §5.2。

#洞性质本篇位置
SC-1文件名法「只能证实、不能否证」阴性信号被当否证§4.1
SC-2verify_field 之初从不校验数字精度阳性信号被当全证—
SC-3MAS 假 200伪造的成功信号§5.1
SC-4「逐条核完」掩盖样本空间被切掉一半取样出错(前三条是读数出错)§4.4
SC-5「申报日=公告日」被当成规则把一次观察当成规则本节
SC-6锚点只用一个法定概念,漏掉另一个把一次观察当成规则(锚点过窄)本节
SC-7全文关键词抽链名,七件全假阳性文档级命中 ≠ 对象级事实(锚点过宽)本节
SC-8EDINET 过期件返回元数据全空的壳载体覆盖到了却什么都不报§5.3
SC-8b过滤条件建在会被置空的那个字段上不可见与不存在在结果里长得一样§5.3
SC-90円 按子串匹配,命中「金400円」等 7 条判据的实现比判据宽(SC-3 是判据本身宽)本节
SC-10ST 词级判据在 FY2024 窗口 23/24 干净,换个窗口 74% 假阳性没有反例的通过不构成验证(SC-4 是覆盖面不全,本条是样本无敌意)本节
SC-11英文辖区 3 条产品名称(中文)长期留空,违定义但填法恰好是对的偏离定义但结果对,因此永远不会被证伪(与 SC-10 并列)本节
SC-12① 用拼错的字段名 published 查发布状态 ② 用 jurisdiction 代替链类型判公链 ③ 用产品名称(英文)代产品名称(原文)④ 用 products 的选项集推 stablecoins 的 ⑤ 用「两 arm 预测相同」代「遮蔽触发了几条」没查那个字段,用看起来相关的东西代替(前十一条都是查了但查错,本条是根本没查)本节
SC-13①②S100V863 API 404 → 报「原件不可取、本库记错期限、因償還终止」,三条全错 ③ 把「22 条是否转 published」列为待裁项,而答案在 v0.7 冻结节里(published 72 → 94,正好 +22)三层:① 没查本库自己的文档就下结论(SC-12 近亲,对象是自家文档)② 给结论补了一个合理的因果(合理的因果不需要是真的就能被写下并引用)③ 问题问错了和结论下错了,来源是同一个动作(错在输入不在输出;伪装成谦抑,把查证成本转嫁给裁决层)本节
SC-14① 看 BaFin「Datenbanken & Übersichten」总览页就断言无登记机构名录(入口找错层级)② 查 eWpG 第 3 章就断言全法无逐只披露载体(查局部答全局)③ 只读招股说明书 Legitimierung 一节就断言「原件未写明登记簿跑在哪条链上」,而风险因素章有 Blockchain-Störung 句检索范围小于问题的范围——查的范围比问的范围小,却按问的范围下了结论(SC-12 的近亲但更一般:SC-12 是没查那个字段,本条是查了、但查的那一块装不下这个问题)本节

SC-1 与 SC-2 的同构关系:「两者都是把一个只覆盖部分维度的检验,当成了覆盖全部维度的结论。」(本库变更记录)

SC-5 · 「申报日=公告日」不是规则

七件实测提出日与平台公告日同日,据此推论为规则;而 S100XMTM 的提出日是 2026-02-24,Progmat 公告日是 2026-02-25,前一日。已改为按 ±12 天窗口检索,不再用同日假设。

Ed 2026-09-19 把它与 SC-6 并列定性:「『申报日等于公告日不是规则』和『锚点扩成十词集才抓到 Securitize 那件』这两条纠错,性质相同——都是把一次观察当成了规则。」(本库变更记录)

七次一致为什么仍然不是规则:七次一致只说明在这七次里两者同日,它没有给出任何机制说明两者为什么必须同日——而申报与公告本就是两个主体在两条时间线上的动作。观察能给出频率,不能给出必然性;把频率当必然性,就是 SC-5/SC-6 这一族。

SC-6 与 SC-7 · 同一个字段上一对方向相反的错(锚点过窄 / 过宽)

Ed 2026-09-19:「抽链名的两次相反错误(锚点过宽、过窄)并列进方法篇,它们是同一个字段上的一对。」(本库变更记录)

SC-6 · 锚点过窄 → 假阴性。 日本的法定定性有两个不同概念,首轮只认得一个:

法定概念出处本批件数
電子記録移転有価証券表示権利等金商業等府令第1条第4項第17号17
電子記録移転権利金商法第2条第3項1(S100YQ1G,Securitize)

首轮只用前者作锚点,S100YQ1G 被判成「非 ST」——这是一次假阴性,靠第二轮把锚点扩成十个词集才纠回。教训与 §4.1「否证须落在排他句式上」是同一条:单一关键词的零命中不构成否证。(本库变更记录)

SC-7 · 锚点过宽 → 假阳性。 首轮抽所在链时七件全部命中 Ethereum 与 パブリック型——

实为文件里「DLT 分两类」科普对比段的用词,与本产品的链无关。改从「具体的なDLT基盤技術として「X」を採用」这一句定位后才正确。(本库变更记录)

Ed 判定 SC-7「比 SC-5、6 更根本」(本库变更记录),理由是它错在另一层:

这条错的性质与已定的 SC-5/SC-6 不同:那两条是「把一次观察当成规则」,这条是「词出现在文件里 ≠ 词说的是这个产品」。全文检索给出的是文档级命中,而字段要的是对象级事实。(本库变更记录)

这一对放在一起才完整:

SC-6SC-7
锚点过窄过宽
后果假阴性(漏掉真件)假阳性(七件全错)
错觉「找过了,没有」「找到了,就是它」
修法把锚点扩成词集把锚点从词改成句式

两条修法的方向相反,但共用一个判据:锚点的宽窄不由词表决定,由它与目标客体是否一一对应决定。Ethereum 这个词在文件里出现是真的,它指的不是这个产品也是真的——修法不是换词,是换层级:从全文层落到句式层(「具体的な…として『X』を採用」这一句只可能在说本产品)。这与 §6.3 的 P40 判别锚点是同一个动作。

这一对与 §5 的三条判据同族:那里问的是「拿到的东西是不是我要的」,这里问的是「命中的这一处是不是在说我要的那个对象」。都是在追问一个表面成功的信号到底证明了什么。

SC-7 已被推广为 §九 的一条通则「判据独立性」(Ed 2026-09-21 裁定,本库变更记录,不另给 SC 编号)。SC-7 防的是「别的对象的证据」;推广后的形态防「别的字段的证据」——取值确实出现在同一份文件里,但它支撑的不是本字段。首个实证是链上权属效力按平台分组会填反:平台与权属轴在 21 条样本里高度相关,相关性因而看起来像规则,而它是被样本撞出来的、不是被条文定义的。

SC-9 · 裁定落地成匹配规则时的走样(0円,2026-09-20)

编号由 Ed 于 2026-09-20 给出:「『0円』那条编为 SC-9,序列续上。」本条是 SC 系列第一条不在取件或检索层、而在「把裁定翻译成代码」这一层的错。

Ed 2026-09-20 裁定「申込手数料」的否定性回应枚举集为五种:該当事項はありません/定めなし/なし/無し/0円,命中即填 0。执行者把五个成员一律实现为纯文本子串匹配——0円 于是命中了「金400円」「金440円」「金364円(税込金400円)」。

裁定给的脚本执行的
0円 是什么一个语义单元:金额为零一段字节序列:字符 0 后跟字符 円
命中范围免申购费的条款任何以 0 结尾的金额
后果—7 条「有申购费上限」的记录会被写成「确定免费」

它与 SC-3 同族但方向相反:SC-3 是判据本身太宽(HTTP 200 不排他),本条是判据的实现太宽——裁定写得毫无歧义,走样发生在从词到字节的那一步。

发现方式与 SC-3 同理——看命中数是否可疑地多(§5.1 靠的是两份不同文件字节数相同)。本例的信号同样直白:一条「免申购费」的枚举集,竟然命中了 8 条带具体金额的条款中的 7 条,这个比例本身就是警报。修法是负向后查:0 前不得紧跟数字。修后待回填由 8 条收敛为 1 条。

⚠️ SC-9 是在 dry-run 阶段拦下的,全系列中唯一一条未造成任何实际污染的。 值得写明它若未被拦下会有多糟:0 在本库是一个正向断言(字典 §1.7 #39:免申购费填 0、未披露留空),所以错误不是把已知写成未知,而是把「有费率上限」升级成「确定无费」——与裁定四本身要防的方向恰好相反。

由它撞出来的通则(已入 §九):

凡把裁定转成枚举集匹配的,短成员必须单独验其边界,不得默认子串匹配即是词匹配。

Ed 2026-09-20 的定性(原话照录):

「枚举集里最短的成员边界最危险,『枚举集短成员须单独验边界』这条通则是它自己撞出来的,正好落进 §九。」

「它自己撞出来的」这个说法与 JP-6 立格时的措辞逐字相同——「格由样本撞出」这条体例,在通则一层也成立:通则不是先验列全的,是被具体的错撞出来一条补一条。

SC-10 · 没有反例的通过不构成验证(2026-09-21,Ed 编号)

Ed 2026-09-21 定性(原话照录):「那条判据『从未被证伪过所以通过不构成检验』——FY2024 那轮 23/24 干净是因为窗口里没有敌意样本,本轮第一次遇到就 74% 假阳性——这是新观察,给编号 SC-10,它和 SC-4 同族但更进一步:SC-4 说覆盖面不全的检验不能当全称,SC-10 说没有反例的通过不能当验证。」

事实。判日本 ST 用的是法定概念词集(電子記録移転有価証券表示権利等 / 電子記録移転権利),全文命中即判为 ST 候选。

窗口06A000 件数词级判据命中实际 ST(句式层复判)假阳性率
2024-01 → 2026-082423230%
2021-09 → 2023-1289892274%

67 件假阳性同出一处——受託者自身财务报表里的一行法定披露项:

「2020年5月1日付の銀行法施行規則の改正に伴い、2020年9月中間期より『信託勘定有価証券残高』に含まれる『信託勘定電子記録移転有価証券表示権利等残高』を区分することとなりましたが、該当金額がないため記載しておりません」

这些件的产品是株価指数参照円建信託社債,与 ST 无关。该行出现在 89 件中的 86 件——它不是噪声,是这两家信托银行每一份 06A000 都带的固定栏位。该栏的值还恰恰是「該当なし」:一句「本行没有 ST」的声明,被词级判据读成了「这是 ST」。

为什么前一轮没暴露。 不是判据在那轮更准,而是那个窗口里几乎不存在非 ST 的 06A000(这两家的信託社債发行在 2024 年后基本停止)。判据在 FY2024 从未面对过一个「该被它否掉」的样本,因此它的 23/24 不是一次通过,是一次空转。

SC-4SC-10
检验本身做了,但只覆盖部分样本做了,覆盖全部样本
缺的是什么样本空间被切掉一半样本空间完整,但其中没有一个反例
错觉的来源「我逐条核过了」「它一次都没错过」
纠正方式声明样本空间的边界记录判据面对过什么,而不只是记录它答对了多少

本条的可迁移形态:一个判据的通过率,只在它曾被反例挑战过的前提下才有信息量。 没有反例的样本里,正确的判据与「一律返回是」的判据给出完全相同的结果——这正是本例的实况:在 FY2024 窗口,「全文命中即 ST」与「凡 06A000 皆 ST」两条规则输出完全一致,而后者显然是错的。区分不了这两者的检验,等于没做检验。

修法有两层。 表层是把锚点抬到句式并带上两个法定概念(SC-6 + SC-7 的合用):主语必须是本件受益権的判断句 ——

(本受益権|本件受益権|本信託受益権|本信託の受益権|本受益証券)
  …(電子記録移転有価証券表示権利等|電子記録移転権利)…(該当|に当た)

深层是判据的验收标准变了:此后凡新立检索判据,须在已知含反例的样本上跑一次;若手上的窗口里没有反例,须写明「本判据尚未被证伪过」并视同未验证,不得因其连续通过而升为定规。

⚠️ 本轮修法后 22 件 ST 与「平台词命中 22 件」完全重合、零分歧——这个重合不得回头用作判据。它正是判据独立性(§九)要防的那种相关性:看上去可以拿平台词当 ST 判据,而平台词在 FY2024 窗口同样没被反例挑战过。一条刚被 SC-10 拆掉的推理方式,不应在同一页上以另一个字段的名义复活。

✅ SC-10 的正面用法(Ed 2026-10-11 点名,Ondo 第五批实证)

Ed 2026-10-11 逐字:「"不得套模板这个结论依然对,但本批不是被证明的,只是被保守选择的"——这句话写明了证据和结论的距离,是SC-10那条纪律的正面用法,下一批读简报的人不会把保守选择误记成三次实证。」

SC-10 以上各节都是反面用法:拿它去拆一个已经被相信的判据。本条记它的正面用法 —— 在结论尚未被拆之前,由写结论的人自己标出结论与证据之间的距离。

实例(Ondo 第五批十条,2026-10-11):「不得套模板」这条纪律在本批三次都通过了(三条硬断言全过、法条词零命中、LEI 三道探针与建档值逐条相等)。⚠️ 但本批的错法与正确法输出完全一致 —— 即使执行者套了模板,这些断言也同样会全过。故简报写的是:

「不得套模板这个结论依然对,但本批不是被证明的,只是被保守选择的。」

反面用法(SC-10 原形)正面用法(本条)
时点判据已被当成验证过的之后结论正在被写下的当时
动作去找它面对过什么,发现没有反例主动声明本轮没有反例
成本一次返工(本例 67 件假阳性)一句话

⭐⭐ 判别句:一个结论可以是对的,同时又是没被本轮证明的 —— 这两件事同时写下来才完整。 只写前者,下一个读简报的人会把保守选择误记成三次实证;而一旦它被记成实证,这条纪律以后被放宽时就没有人知道其实从未有过反例。

⭐ 这也是本篇 §8.18(永远为真的断言等于没有断言)的互补面:§8.18 管的是不要写恒真断言;本条管的是写了可失败的断言、但本轮恰好不可能失败时,要把这件事说出来。⚠️ 两者的差别在失败分支可不可达:第五批的断言在第六批真会失败(PALLon 会被接住),故它不是恒真断言,只是本批无反例。

SC-11 · 偏离定义但结果对,因此永远不会被证伪(2026-09-21,Ed 编号)

Ed 2026-09-21 定性(原话照录):「那处静默背离——英文辖区三条留空、方向恰好正确所以不被结果证伪——编 SC-11,性质是『偏离定义但结果对,因此永远不会被证伪』,和 SC-10 并列。」

事实:字典 §1.2 #8 的产品名称(中文)定义写「官方中文名;无则填自拟译名并在备注注明『译名』」。三条英文辖区记录——franklin-onchain-usd-st-mmf-sg、arca-us-treasury-fund-us、franklin-onchain-us-govt-money-fund-us——自建档起一直留空,从未填自拟译名。这违反定义的兜底分支。

它为什么能活这么久:因为留空是对的。Ed 在 P42 里给的判准是「官方名称是什么就记什么,可核优先于可读」——按这个判准,不给英文基金编一个中文译名恰恰是正确处置。于是执行者与定义的偏离,被一个正确的结果掩盖了。

正常的错SC-11
结果错对
暴露方式被结果证伪不可能被结果证伪
唯一暴露方式复核结果拿定义去比对实际填法,逐条查「填法与定义是否一致」,而不是查「填得对不对」

与并列两条的分工:

检查的对象失效形态
SC-10判据判据通过了,但样本里没有反例 → 通过不构成验证
SC-11执行执行结果对了,但走的不是定义规定的路 → 结果对不构成合规
§8.6 量纲错数值值对、纲错、整批一致 → 批内看不出来

三条合起来是同一句的三个面:一次检查只能证明它实际检查的那件事。SC-10 查的是判据在这批样本上的表现,SC-11 查的是结果,§8.6 查的是值——三者都不代替「填法是否按定义走」这一项。

由此立的固定动作(与 §8.6 的跨批一致性检查并列,同属每批建档后的例行项):
字段填法与字典定义的逐条比对——不是查填得对不对(那是审核清单的事),是查填法走的是不是定义写的那条路。本次比对一次查出产品名称(中文)的四种实际填法,其中严格按定义成立的只有 13 条(13.5%)。

⚠️ 本条的自指风险:SC-11 自己也可能以 SC-11 的形态失效——「我们一直没做填法比对,但填法一直是对的」。故本条写成固定动作而非纪律:纪律靠自觉,动作有输出物可查。

SC-12 · 没查那个字段,用看起来相关的东西代替(2026-09-22,Ed 编号)

Ed 2026-09-22 定性(原话照录):「上午的字段名拼错和下午的辖区代理,同一族——『没查那个字段,用看起来相关的东西代替』,编 SC-12,两个实例并列记,配套固定动作按它写的:凡结论依赖某字段,先断言字段存在并直接读,不用代理变量,need() 断言进所有脚本。」

两个实例(同日,间隔数小时):

结论依赖的字段实际用的为什么没报错后果
实例 A收录状态拼错的字段名 publishedAirtable API 对不存在的 key 不报错,只是不返回;f.get("published") 得 None,读成 falsy96 条全判成 draft,与真值(94 published/2 draft)完全相反
实例 B链类型jurisdiction(代理变量)辖区与链类型确有相关性,推出来的数看着合理「公链记录」写成 30 条,真值 19 条;且掩盖了 HashKey Chain 等 7 种链无处安放

本条与前十一条的分界:

SC-1 到 SC-11 记的都是「查了,但查的方式有毛病」——判据太宽、样本无敌意、覆盖面不全、量纲错、走错路径。
SC-12 记的是「那个字段根本没被读到」。 它比前面所有条都更靠前一步:前面的错发生在推理里,本条的错发生在取数据的那一行。

两个实例为什么必须并列记,而不是分成两条:
实例 A 像打字错误,实例 B 像推理捷径,表面不同族。但失效机制是同一个:都用了一个不是目标字段的东西去代表目标字段,且替代物与目标字段足够相似,以至于结果看上去自洽。拼错的 published 长得像收录状态的值;jurisdiction 与链类型高度相关。分成两条会让它们各自像偶发,并列才看得出这是一种做法。

为什么它产出的假数格外可信:两次的输出都整齐、无缺口、无报错——96 条全 draft,30 条全公链。整齐是替代物的副产品:替代物往往比真字段更规则,于是假数比真数更像对的。这一点与 §8.6 量纲错(整批一致所以批内看不出)同源。

由此立的固定动作(Ed 指定,进所有脚本):

凡结论依赖某字段,先断言该字段存在于字段并集,并直接读它;不得用代理变量推导。

# 断言的依据必须是表 schema 里的字段名,不是「某条记录里出现过的 key」。
meta = GET /v0/meta/bases/{base}/tables
SCHEMA_KEYS = {f["name"] for f in meta_table["fields"]}
def need(k):
    assert k in SCHEMA_KEYS, "字段不存在:%s" % k
    return k
# 用法:f.get(need("收录状态")),而不是 f.get("收录状态")

⚠️ 这段代码本身被改过一次,留痕:初版用的是「所有记录的 key 并集」。它有一个致命的静默失效——Airtable 对全库为空的字段不会在任何一条记录里返回该 key,于是「字段存在但全空」会被断言判成「字段不存在」。产品名称(原文)与账本技术实现刚建好时正是这个情形。一个用来防 SC-12 的断言,自己差点以 SC-12 的方式失效:它查的不是字段是否存在,而是字段是否有值——用了一个看起来相关的东西代替。

这个断言在本次立刻兑现了一次:写进脚本后第一次运行,它没有拦下拼写(那次已人工发现),但拦下了所在链的类型问题——Counter 对多选字段抛 unhashable type: 'list',直接暴露出所在链是多选而非单选,而这正是 D6.2「两栏同值」在结构上不可能成立的原因。一个防 A 的断言顺带查出了 B。

实例 C(同日第三次,发生在本条已经写完之后):步 13 回填里,判断「这条的 name_cn 该不该清空」,依据本应是它是否等于将要写进产品名称(原文)的那个值;我写成了拿产品名称(英文)去比。产品名称(英文)绝大多数情况下确实等于产品名称(原文),于是 dry-run 出数 77,只比预期的 80 少 3 —— 少的正是 3 条产品名称(英文)为空的日本公司债,它们的产品名称(中文)装的是日文原文。字段名一个字没拼错,need() 全绿。

实例 C 的意义不在于它是第三个例子,而在于它发生在「知道了 SC-12 并且刚刚把断言写进脚本」之后。 这恰好证明了断言的射程:它拦的是打字,拦不了取舍。

实例 D(2026-09-23,第一次把错误交出去执行):v0.7 配套要改 products 表结构性不适用字段的选项集(因为它锁的是完整度分母 35 字段)。我把这项待办写成了「两表各改一次」,Ed 照办。但 stablecoins 表不计完整度,它的结构性不适用字段是 §5.2 定死的四项事实声明,与分母无关 ——产品名称(原文)不属于它,产品名称(中文)也从来不在它里面。结果是 Ed 手工往一张表里加了一个指向不存在字段的选项,还要再手工撤回一次。

实例 D 的替代物是「另一张表的同名字段」。字典 §6.1 有一条专门挡它的纪律:「两表同名字段是两个独立字段,各有选项集,不得互相推定」。纪律早就写好了,我没有去读那张表。

⭐ 与前三个实例的性质差别,值得单记:A、B、C 产出的是假数据或假结论,都在写库前被拦下,成本是我自己的返工。D 是把一条错误的指令交给了人去执行——它绕过了所有 dry-run(人工操作没有 dry-run),落到实表上,并且消耗的是 Ed 的时间。一个交出去执行的错误指令,比一个自己跑出来的错误结论贵。 由此派生一条:凡是要写成「请你去点」的待办,它依赖的每个事实都必须是当场读出来的,不能有一个是推定的——因为待办一旦交出,dry-run 这道闸就不在链路上了。

实例 E(2026-09-23,Jev 基准测试;这次在交出结论前拦住了):三个 arm 跑完,raw(喂未遮蔽一句话备注)与 quoted(遮蔽结论词后)的预测逐条 0/94 差异。当时手边现成有一句漂亮的读法:「本库的 note_cn 没有实质泄题。」但「预测相同」是代理变量,目标量是「遮蔽到底触发了几条」。 去数了:94 条里遮蔽只对 15 条触发,其中只有 4 条含真正的档位标签,其余 11 条命中的仅是字段名。真相是「遮蔽几乎没发生」,不是「泄题几乎没有」。

两种读法的数字完全一样,含义相反。 这是 SC-12 到目前为止最干净的一个形态:代理变量不只会给出错的数,它会给出对的数配错的解释——而错的数迟早会和别处对不上,错的解释不会。

派生:凡是「两组结果相同/差异为零」这类否定性结论,先去数那个使它们本该不同的动作发生了几次。 差异为零可以是「没有差异」,也可以是「没有施加差异」。

同族但不是失误的一例(同日,has_ev()):同一轮测试里按「note_cn 有没有权属原文」把 94 条拆成 EV 35 / NOEV 59,拆分判据 has_ev() 是执行者写的关键词启发式,不是库字段——它本身就是一个代理变量。它之所以还能用,靠的是一个不经过它自己的旁证:同样这 35 条,blind arm(不喂 note)只有 8.6%,而 quoted 有 97.1%。若 EV 那一组只是「天生好判」,blind 不会塌成这样,差异只能来自证据供给。

由此补出 SC-12 的一条可用边界:代理变量并非一律禁止——有时目标量根本没有字段可读(「note 里有没有原文」就没有)。判据是:有没有一个不经过这个代理变量自己的旁证。 有,它是近似;没有,它就是 SC-12。

Ed 2026-09-23 裁定:实例 E 同号 SC-12,算第五例,不另编号。 本段(has_ev() 的可用边界)随之并入本条,亦不另编号。

本条的边界(Ed 2026-09-23 指定写进节尾):

need() 只挡拼错字段名那一半;代理变量那一半靠的是「直接读目标字段」这条纪律,不是断言 —— 两者缺一堵一半。

断言是可执行的,所以它靠得住,但它只能证明字段存在,不能证明读的是对的那个字段:实例 B 的 jurisdiction、实例 C 的产品名称(英文)都是真实存在的字段,断言一律放行。纪律是不可执行的,所以它不牢靠,但只有它管得住「该读哪个」。把这两半分清楚,比把它们合并成一条「要小心」更有用——因为一旦合并,人就会误以为跑绿了的脚本已经替自己把纪律也守了。

SC-13 · 没查本库自己的文档就下结论;以及给结论补一个合理的因果(2026-09-23,Ed 编号)

⭐ 本节已于 2026-10-27 合并为一族(Ed 2026-10-22 指定「v1.0 定版时值得合成一节」,2026-10-27 令「现在合,按 §8.18 同一规矩」):
SC-13.0 的表是索引(可改写、可缩),SC-13.1–SC-13.4 是现场(一字不动、一次不删);现场原文整段移入,唯一改动是在其前插入小标题。
✅ 机械检查:合并后 SC-13.1–SC-13.3 字节数之和 ≥ 合并前三处现场之和(落地时已跑);SC-13.4 为本族新收的 2026-10-26 两例,原文取自本库v1.0改动包清单(逐字)。
⚠️ 本节是方法篇结构,不碰字典,不触 v1.0 冻结计时。

SC-13.0 索引

#日期结论(或问题)写的是真相在哪里现场
12026-09-23S100V863「原件不可取/期限记错/随償還终止」方法篇 §5.3 早有縦覧期間表;真实机制是新発行登録書取代旧母体SC-13.1 第一、二层
22026-09-23「22 条是否转 published」列为待裁v0.7 冻结节已写明SC-13.1 第三层
32026-09-25「SPCX 是未上市公司的 A 类普通股」进上呈单原件无此依据SC-13.1 上呈门槛第三种情形
42026-10-21「Backed 在登记簿核不到」清单 09-24 已落盘,版本号相同SC-13.2
52026-10-21§1.5「并集覆盖 81 ⟹ 没问题」两栏重叠两项SC-13.3 表第二行
62026-10-22「视图可见性 API 读不到」本库脚本自 09-23 起一直在用SC-13.3 表第三行
72026-10-26#5 写成文本字段+哨兵值Ed 2026-10-12 定版原句「数值字段……字段为空」SC-13.4
82026-10-26QQQon「三态之外,加项须等指令」Ed 2026-10-13「#1 同型」,是包写丢了第三态SC-13.4
92026-10-28RHJ 预案「索引侧与原件侧是否同序 —— 取件后才知道」旧索引(本库落盘数据)2026-09 已载 196 份原件日期;Ed:「答案在数据目录里这件事和 10-21 清单 PDF 那次是同一个形状」§8.18a 续十一

⭐⭐ 共同点(索引层的归纳,可改写):查的那个动作被一句结论性的话替代了,而推翻它的材料都已在本库之内。

SC-13.1 本体(2026-09-23 起,三层 + 上呈门槛第三种情形)

触发事实:S100V863(トヨタファイナンス社債)EDINET API 三种 type 全部 404,据此报出三条结论 —— 「原件已不可取件」「本库把縦覧期限记错了」「原因是随償還终止」。三条全错。

Ed 指定本条分两层记,第二层单独成立。

第一层 · 没查本库自己的文档就下结论。

方法篇 §5.3 早就写着「PDF 通道对过期件仍然可取——件在、通道在、只有描述它的那一层没了」;同处有完整的縦覧期間表,并且已经订正过一次「1 年」那个单样本外推的错误,订正所用的物证正是 S100V863 本身。答案在同一份文档里,在那两天被反复编辑的同一份文档里。

它是 SC-12 的近亲,但对象换了:SC-12 是「没查那个字段,用看起来相关的东西代替」,本层是「没查本库自己的文档,用一次现场实测代替」。两者的共同结构是用手边够得着的东西顶替本该去读的东西;差别在于,本库文档是唯一一处「本该已经知道」的来源 —— 查它的成本最低,不查的代价最大,因为不查就等于把已经付过的学费再付一次,而且付得毫无察觉。

配套固定动作(Ed 指定):

凡产生「我好像发现了一条本库没记的事」这个念头时,先 Grep 三份文档:methodology.md、changelog.md、field-dictionary.md。

这个动作的触发条件很特别:它不由风险触发,由兴奋触发。 「发现了新东西」这种感觉恰恰是最不想停下来查证的时刻 —— 所以把它写成触发器,而不是写成「要谨慎」。

第二层 · 给结论补了一个合理的因果(新,Ed 指定单独记)。

我写的是「縦覧随発行登録效力与償還终止(償還期限 2026-03-03,已过)」。真实机制是发行方 2025-03-07 另提出新的発行登録書 S100VA8I,旧母体被取代,与償還无关。

「償還」这两个字是我补的。它没有来源,但它:

所以:

一个合理的因果不需要是真的,就能被写下来并被后面的人引用。

它比错的结论更难被发现,因为它替结论准备好了辩护。 错的结论会和别处对不上,因而迟早暴露;补出来的因果不与任何东西冲突 —— 它是为了消除疑问而生的,本职就是让人不再追问。查证它的唯一办法,是去查那个它替你省略掉的问题,而它的全部作用就是让你不觉得那里还有问题。

这一层与「整齐是替代物的副产品」同族:两者都是关于错误如何自我伪装的观察 —— 一个伪装成秩序,一个伪装成解释。它们都不是靠更仔细地看同一份东西能发现的,只能靠去看另一份东西。

判别提问(本层的可操作形式):

写下一个「因为」的时候,问一句:这个因果是我读到的,还是我补上去的? 读到的能指出处;补上去的只能重述它自己的合理性。

第三层 · 问题问错了和结论下错了,来源是同一个动作(2026-09-23 加,Ed 指定)。

触发事实:我在上呈单里把「22 条回溯窗口记录是否要转 published」列为待 Ed 裁决项。Ed 的回应是「先核实表」——而实表与冻结文档都早已给出答案:v0.7 冻结节写明门槛② 的 published 由 72 → 94,正好 +22;直读收录状态得 published 94/draft 2,两条 draft 是 UK/HK 的长期 draft,与那 22 条无关。那 22 条早已发布,根本不存在待裁事项。

这一层为什么不是前两层的重复:前两层错在输出(下了一个没依据的结论、补了一个没依据的因果),本层错在输入——我没有下结论,我提了一个问题。表面上提问是谨慎的、是把判断权交还给 Ed 的,实际上:

一个不该存在的问题,和一个错误的结论,是同一个动作的两种外观:都是在该查的地方没查。

它比下错结论更难被拦住,因为它伪装成谦抑。 错的结论会被审读者逐条核;而一个问题不承载断言,因此没有可核之物——审读者只能顺着它去回答,于是本该由查证解决的事被升级成了裁决事项,查证成本被转嫁给了裁决层。这是对三层验证的一次隐性破坏:Ed 那一层是用来判「两种读法都说得通」的,不是用来替执行层读文档的。

与第一层的关系:两层同源(都是没查本库自己的文档),区别在于没查之后做了什么——第一层写成了结论,第三层写成了问题。所以第一层的配套动作对本层同样适用,且必须前置到提问之前:

上呈之前先做一次「这个问题是否已经有答案」的检索,与「下结论之前先 Grep 三份文档」是同一个动作,只是触发时机不同。
判别提问:我是在请求裁决,还是在请求代查? 前者才该上呈。

这一层同时收紧了上呈门槛的读法:铁律「结论唯一就直接落地;两种都说得通的读法才上呈」中的「两种读法」,指的是查完之后仍并存的两种读法,不是没查之前看起来的两种可能。

⛔ 上呈门槛的第三种情形:门槛筛不出上呈事实本身的错误(Ed 2026-09-25 指定记录)

Ed 原话照录:「『上呈门槛筛不出上呈事实本身的错误、唯一防线在取件那一步』记为门槛第三种情形。」

至此这道门槛有三种情形,前两种管「该不该上呈」,第三种管「上呈的东西本身对不对」:

情形门槛怎么判
①查完之后结论唯一不上呈,直接落地
②查完之后两种读法仍并存上呈(注意:是查完之后仍并存,不是没查之前看着像两种,见上一段)
③ ⭐上呈的是一条事实,而这条事实是错的门槛判不出来——它只数「有几种读法」,不核「这一种读法的底料是不是真的」

为什么第三种不能靠门槛兜住。 前两种情形里,被衡量的对象是读法的数量;而第三种情形里,读法数量可能正好是 1(看起来完全满足「结论唯一」),错的是那个 1 本身。门槛是一把尺,它量长度,量不出这根东西是不是假的。

传导链(本条的危险之处全在这里):

错误判断进上呈 → Ed 据此下一道带前提的指令 → 前提是假的 → 指令空转。

⚠️ 指令空转比指令做错更难发现:Ed 下的指令在形式上被完整执行了,执行报告也会写「已按指令办」,但那道指令原本要处置的情况根本不存在。错误不表现为冲突,而表现为一段无事发生。

实证(2026-09-25,SPCX,Series 20):上一轮我向 Ed 报「SPCX 是未上市公司的 A 类普通股」——这句话没有任何原件依据,是凭名义印象写的。Ed 据此下了条件句指令:「原件写未上市就记未上市并标原件日期,不与现状调和」。实测原件逐字为「Primary Exchange where the Underlying is listed: Nasdaq Global Select Market.」,全份 164 页检索 not listed/unlisted/not admitted to trading on/private company/privately held 零命中。于是 Ed 那道指令的条件分支从未被触发,它处置的是一个我凭空报上去的情况。

唯一防线的位置。 既然门槛拦不住,防线只能前移到取件那一步:

凡进上呈单的事实陈述,必须与原件的某一句逐字对应;对不上的,不进上呈单。
判别提问:这句话我是从原件读到的,还是从名字、从印象、从「一般来说」推出来的?

⭐ 这与 §九 通则「逐字引用只保证转录无误,不保证转录的那句话足以定出一个值」构成上下两段:那条管已有引文之后还能不能定值,本条管有没有引文。本条更靠前——没有引文的陈述,连进入那条通则的资格都没有。

SC-13.2 最直接的一次(2026-10-21)

⭐⭐⭐ SC-13 的第 N 个实例,也是最直接的一次(2026-10-21,Ed 指定归入本条)

Ed 2026-10-21 逐字:「「一份取回来的材料和一份被查过的材料在目录里长得一样」是 SC-13(没查自家文档就下结论)的实例,而且是它最直接的一次:推翻结论的材料当时就在盘上。」

触发事实:2026-10-21 报「Backed Assets 在 FMA 登记簿核不到,仍靠证书反证」。
⛔ 而推翻它的材料 2026-09-24 就已落盘:data/li_fma/fma_li_Liste_geb_Prospekte_ab_20190721_54_20260907.txt
与 193 行结构化 fma_li_prospekte_ab20190721_rows.json —— ⚠️ 文件名里的版本号
54_20260907 与当日重取的那份完全相同,即同一份文件。

⭐⭐⭐ 判别句(Ed 收,归 SC-13):一份已经取回来的材料,和一份被查过的材料,在目录里长得一样。

⚠️ 与 SC-13 本体那次(S100V863)的差别,正是「最直接」三个字的内容:
那次是没去查自家文档;本次是材料已经躺在本库自己的数据目录里,
且是同一个版本号。⭐ 即 SC-13 的前提(「可查而未查」)在本例中被推到极限 ——
不需要去任何地方查,只需要打开已经在手里的那个文件。

⚠️⚠️ 另一层(与 §8.9b 的分界,须写明):§8.9b 那一族说的是
「一条从上一批继承的陈述可以在本批已经不成立」—— 那是随时间失效;
本条的陈述从写下时就没成立过,因为推翻它的材料当时已经在盘上。
⭐ 判别句:失效的陈述与从未成立的陈述,在档面上长得一样,而订正它们的理由不同 ——
前者要写「何时起不成立」,后者要写「它为什么一开始就不成立」。

SC-13.3 两天三次(2026-10-21/22)

⭐⭐⭐ SC-13 同一形状两天内第三次(2026-10-22;Ed 指定本句进本族)

Ed 2026-10-22 逐字:「第一处那句「脚本测不出来这句话本身也需要实测」进 SC-13 那一族,两天三次同形,这一族在 v1.0 定版时值得合成一节。」

次日期结论写的是而真相在哪里
一2026-10-21「Backed 在登记簿核不到」清单 2026-09-24 就已落盘在本库数据目录,版本号相同
二2026-10-21§1.5 三栏「并集覆盖 81 ⟹ 没问题」两栏重叠两项(65+12+6=83),只核并集永远查不出来
三2026-10-22「视图可见性 API 读不到,须 Ed 界面核」meta API 带 ?include[]=visibleFieldIds 就回报,而本库自己的脚本自 2026-09-23 起一直在用它,每跑一次就把隐藏字段逐个打印一遍

⭐⭐⭐ 判别句(Ed 2026-10-22 收,归 SC-13):「脚本测不出来」这句话本身也需要一次实测 ——
⚠️ 它和「我没去试」在材料上长得一样。

⚠️ 三次的共同点不是「没去查」,而是查的那个动作被一句结论性的话替代了 ——
一次是「核不到」、一次是「并集对上了」、一次是「读不到」。
⭐ 三句都可以被一次十秒的实测推翻,而三句都写进了交付材料。

✅ v1.0 定版时本族合成一节(Ed 2026-10-22 指定)—— ⚠️ 合并照 §8.18 那一族的同一条:
表是索引、现场是证据,三次现场一字不动。

SC-13.4 同日两例(2026-10-26,v1.0 六包 apply 前查出;原文逐字取自本库v1.0改动包清单)

#5 杠杆倍数:

错在三处:① 字段类型写成文本(应为数值);② 设了哨兵值「原件明示无杠杆」(应为空 —— 那是把文字翻译成标签,翻译即推断);③「上文"不改任何读数"」的说法不成立的根源是把取件侧三态探针当成了字段口径。
本次属 SC-13 家族又一例:布置的口径来自记忆中的候选表,没回到 Ed 定版原句现读。

#1 标的 LEI 成因:

⚠️ 执行者上一轮把 QQQon 报成「三态之外、加第四项属字典变更等指令」—— 错在没回到 10-13 定版原句:「#1 同型」那半句在场,是包写丢了,不是字典缺项。与 #5 同一天、同一形状(SC-13 家族)。

⭐ 两例与 SC-13.3 第三行同形:布置的口径来自记忆中的候选表,没回到 Ed 定版原句现读;Ed 定版原句当时都在本库变更记录里。

SC-14 · 检索范围小于问题的范围(2026-09-24,Ed 编号)

Ed 2026-09-24 定性(原话照录):「两处 SC-12 实例合编 SC-14,性质是『检索范围小于问题的范围』——一次是入口找错层级,一次是查局部答全局,两者的共同点是『查的范围比问的范围小,却按问的范围下了结论』,和 SC-12『没查那个字段』是近亲但更一般。」

五个实例(前两个是 Ed 合编时点名的,后三个是同日在同一条记录上撞出的):

问的是什么查的是什么差在哪
ABaFin 有没有公布加密证券登记机构名录BaFin「Datenbanken & Übersichten」总览页入口找错层级:总览页是导航层,名录在 Unternehmensdatenbank 的 kategorieId=160 分面里。总览页不列它,不等于它不存在
BeWpG 全法有没有逐只披露载体eWpG 第 3 章(Kryptowertpapierregister)查局部答全局:§ 20 在第 4 章。查了法的一块,答了整部法的问题
C招股说明书有没有写明 Kryptowertpapierregister 跑在哪条链上招股说明书的 Legitimierung 一节同 B。写明处在风险因素章:「Ist das Kryptowertpapierregister infolge einer Blockchain-Störung nicht funktionsfähig …」
D ⭐§ 16/§ 25 eWpG 自 2021 年起有没有被改过StoFöG 的 3 项修改中间整整少了一部 ZuFinG(19 项,其中 Nr. 14 确实改了 § 25)。检索范围=一部修法,结论范围=五年
EZuFinG 哪天生效Artikel 35 Absatz 1Absatz 2–(4) 另定三个生效日;本库要追的 Artikel 16 Nummer 11 落在最晚的 (4) 里,差 将近两年
F138 条 Ondo 最终条款有没有具名发售国拿 RHJ 原件的项名「Non-Exempt Offer」去搜 Ondo 原件拿一家的项名搜另一家的原件:Ondo 的项名是「Country(ies) of offer(s)」,每份都以「particularly in the following countries:」列出 30 国。0 命中被记成「抽不到」,2026-09-28 Ondo 第三批起沿用七批,无人用 Ondo 自己的项名复查,也无 Ed 裁定(2026-10-29 回填线查因撞出,Ed 2026-10-30 指定记入本条)

实例 F 补记(2026-10-30,§8.9 追加,上表「五个实例」原句不改):检索范围=RHJ 的项名,问题范围=Ondo 原件的全部写法。它和 A–E 的差别是范围小在检索词上,不在文件上:文件是对的、全文也读了,只是用了别家的词。「0 命中」在返回结果里长得和「原件不载」一模一样,于是被沿用七批。Ed 定性:回填缺口不是事实缺口。

为什么不并进 SC-12,而要单独一号。 SC-12 是「没查那个字段」——错发生在取数据的那一行,取回来的东西和要的东西不是一个对象。SC-14 里取回来的东西是对的对象,只是不够大:BaFin 官网确实是查 BaFin 的地方,eWpG 确实是查 eWpG 的地方,招股说明书确实是查这只债的地方。取件本身没有一处错,错在停手的位置。

所以它更一般,也更难拦:

SC-12 的错留下的是一个不匹配的对象,SC-14 的错不留下任何痕迹——它留下的是一个「看起来查过了」的状态。

断言字段存在能拦 SC-12(字段名对不上就报错),拦不了 SC-14:范围不足这件事,在返回结果里长得和「查完了、没有」一模一样。这与 §5.0 德国线表头是同一件事的两个说法——那里说的是「0 条不携带信息」,这里说的是「0 条也可能只是因为你圈小了」。

配套固定动作:

下任何否定性断言之前,先写一句「我检索的范围是 X」,再问一句「问题的范围是不是也只有 X」。
两者不等时,只有两条路:把范围补齐,或者把结论的范围缩到 X(写成「在 X 内未找到」,而不是「没有」)。

第二条路是本条的实际用法,因为范围常常补不齐(穷举一部法、穷举一个官网,成本经常是不可接受的)。所以 SC-14 的产出多数时候不是一个更完整的检索,而是一个更小的结论。

与 §5.0 表头的关系:取件地图德国线 §5.0 立的那条「空格只能写成『尚无样本撞出』,不得写『检索无结果』」,正是本条固定动作第二条路的辖区级实例——把对世界的陈述降级为对本库状态的陈述。本条把它提到通则层。

⭐ 实例 D 是本条至今最干净的形态,值得单独看一眼。 它出现在一段正在论证「修法链已经查全」的文字里 —— 那段话的全部目的就是证明范围查全了,而它本身正是范围没查全。写下它的时候,我刚刚花了一小时打通 BGBl 原件端点、逐条读完两部修法,「查得够仔细」这个感受本身成了不再追问范围的理由。这与 SC-13 第一层的触发条件同源:由兴奋触发,不由风险触发。

由此补出本条的一条判别提问,与固定动作配套:

「我刚才查得很仔细」和「我查的范围够大」是两件事,前者从不蕴含后者。

节尾:SC-14 的正向用法(2026-09-24 晚·八,Ed 指定记进本节节尾)

Ed 原话(逐字):「『Ondo 无目录』成立的范围是发行人公开页面,扩大范围后它自己翻掉了 —— 这是 SC-14 的正向用法,结论缩到范围内之后才有翻的余地。」

经过:上一轮判定「Ondo 没有可用的 Final Terms 目录,只能逐个代币页去取」。该结论当时已按 SC-14 缩到范围内——写的是「在发行人公开页面(app.ondo.finance/assets 及各代币页)内未找到目录」,不是「Ondo 没有目录」。本轮把范围从发行人公开页面扩大到该站点内容所依赖的 CMS 数据层(Sanity 公开数据集,project 8k2tqa6n/dataset production/doc type tokenizedAsset),一次查询取回 453 条标的、其中 138 条挂有 Final Terms 直链。原结论被推翻,且推翻得干净。

⭐ 这里的要点不是「上一轮错了」,恰恰相反 ——

若上一轮写的是本轮扩大范围后会发生什么
「Ondo 没有目录」(全称否定)新证据与旧结论正面冲突,须先处理一次自相矛盾,再追问当初凭什么下全称断言
「在发行人公开页面内未找到目录」(缩到范围内)新证据不与旧结论冲突,它只是换了个范围;旧结论在它自己的范围内至今仍然为真

所以 SC-14 的产出——那个「更小的结论」——不只是一个更谨慎的说法,它是一个可被后续证据安全替换的说法。
全称否定一旦写下就只能被推翻;缩到范围内的结论可以被超越。前者要认错,后者只要换范围。

与本节固定动作的接续:固定动作说「两者不等时,把结论的范围缩到 X」。本条补的是它的后半段——缩到 X 之后,X 本身成了一个可以被下一轮显式扩大的量。范围写在结论里,下一次就知道往哪儿扩;范围不写,下一次连「该扩什么」都无从谈起。

SC-14 的近亲:把观察者的位置写进被观察对象的字段(2026-09-24 立,Ed 指定进本篇,未编号)

Ed 2026-09-24 原话:「『德国是我们的检索入口,不是产品的属性』是正确的诊断:把观察者的位置写进被观察对象的字段,这条进方法篇,它和 SC-14 是近亲。」

首次实例(DAAG):该招股说明书经列支敦士登 FMA 批准后护照通知至 29 个国家,德国只是其中之一,且不是批准国。而执行者一度准备把 jurisdiction 填「德国」—— 理由追到底只有一个:我们是从 BaFin 的 VPInfo 撞见它的。

SC-14本条
错在哪检索范围小于问题范围检索入口被当成对象属性
共同点都是把「我怎么查到它的」当成「它是什么」
差别错的是范围大小错的是把观察者的位置写进了字段

⭐ 判别提问:这个字段值,换一个人从另一个入口查同一个对象,会不会得到不同的答案? 会,就说明写进去的是观察者不是对象。

对 DAAG 而言:从 BaFin 进 → 德国;从 CSSF 进 → 卢森堡;从 CONSOB 进 → 意大利。29 个入口 29 个答案,而对象只有一个。 反过来,「批准辖区」只有一个答案(列支敦士登),因为它由法律定义,不由检索路径定义。

⚠️ 这条比 SC-14 更难自查,原因在于它不产生任何异常:填进去的值是真的(德国确实在通知清单里)、来源是 A 级的(BaFin 官方库)、字段类型也对。唯一的破绽是「换个入口答案就变」,而这件事在单次检索里永远看不见。 故本条的固定动作不是核查返回体,而是:

给一个字段定值时,先问它的定义锚在哪里 —— 锚在法律或对象自身属性上的,可填;锚在「我从哪儿找到它」上的,不可填。

本条在 v0.8 直接产生了一次规则改写(Ed 2026-09-24 晚·三):辖区归属规则由「公开发售辖区、首要或首个」改为「批准辖区」锚定,理由逐字 ——「批准辖区是唯一由法律定义、不依赖观察者的锚」。详见 §6.7。

合成条:载体的属性不写进对象的字段(2026-09-24 晚·八,Ed 定名并指定合成)

Ed 原话(逐字):「这条和『入口不是属性』是同一条纪律的第三次应用,三次分别是辖区、时间、顺序,可以在方法篇合成一条:『载体的属性不写进对象的字段』。」

同一条纪律至今四次落地(第四次见表下说明),被观察对象都是产品,载体每次换一个,被误写的字段也跟着换一个:

#载体载体的属性差点写进对象的哪个字段对象自身的锚在哪
一·辖区BaFin VPInfo 库(检索入口)「这份文件在德国被通知过」jurisdiction ← 德国批准辖区由招股说明书批准决定(列支敦士登 FMA)
二·时间Ondo 的 Sanity CMS(内容管理系统)createdAt = 内容录入时间(138 条里逾百条同一分钟批量录入)发行日期/ 「最早发行」的判定Final Terms 原件首页自己载明的 dated …("Final Terms")
三·顺序同上 CMS 的返回顺序数据集的排列顺序「第一批十条」取哪十条原件的 ft_dated 为主,同日者以产品 ISIN 的连号后缀(VGG7001AA{字母}{校验位})为次
四·签署Docusign(电子签署系统)审计轨迹的 SENT / SIGNED 时间戳、页眉的 Envelope ID发行日期原件的发行日条款本身;条款若只给相对算法而不给起点,则没有锚,字段留空

⭐ 第四次是 Ed 在 2026-09-24 晚·九 裁发行日期判据时同步指定的(逐字:「Docusign 时间戳按载体属性不用」)。它与前三次有一点不同,值得单记:前三次的载体属性都被一个更好的锚替换掉了,第四次没有替换物 —— 原件的发行日条款是相对的(「one day after the publication of these Final Terms」),而起点「publication」原件自身不载。于是正确的动作不是换一个锚,是承认没有锚、把字段留空。

⚠️ 这里有一个反向用法必须与禁令分清:Docusign 时间戳不能用来给发行日期取值,但可以用来证伪「发布日=原件首页日期」这个推断 —— Ondo 原件末页审计轨迹显示这份 Final Terms 签署于 2026-01-23,而首页 dated 11.11.2025;Robinhood 十份原件共用同一个信封、编号前缀 20260629,而首页 dated 25 June 2026。一份文件不可能在签署之前被发布。 两者的分别是方向:禁令管的是「往对象的字段里填载体的属性」,反向用法是「用载体的属性拿掉一个关于对象的错误推断」——前者是填进去,后者是拿出来。

⚠️ 事实维护(2026-09-28,Ondo 第三批取件实测):上段所述「Ondo 原件末页审计轨迹」只对第一、二批成立。Ondo 第三批十份(dated 26 March 2026)没有 AUDIT TRAIL 页,十份共用同一个 Docusign Envelope ID: F45C0C19-…,无发出/签署时间戳。三批三种形态(第一批有轨迹;第二批一份一个独立信封 + 各自轨迹;第三批共用一个信封、无轨迹)。

⭐ 这件事对本条通则的实际含义:第三批拿不到那条用于证伪的旁证,但发行日期的结论一字不变(仍留空)—— 因为做功的一直是判据(「原件载不载 Issue Date」),旁证只是当初用来打掉一个错误推断的工具。一个只用来证伪的证据消失了,被它证伪的东西不会因此复活。 ⚠️ 反过来说,若某个字段的取值依赖某条旁证在场,那说明判据本身没立住 —— 判据不该有前提,有前提的是推断。

⚠️ 本表第二、三行的「对象自身的锚」于建表当晚即被订正一次,订正本身留在表下不删(2026-09-24 晚·八):初稿两行的锚都写作原件首页的 Final Terms for Product Nr. N,并称「与 Robinhood 的 Series 同构」。这个判断是错的。 它是从一份原件(AAPLon)推出来的——138 份全量跑完后发现,只有 10 份带 Nr.,且全部都是 Nr. 1;其余 128 份首页写作 Final Terms for Product {SYM} (ISIN: …),根本没有编号。Product Nr. 不是序号,是 Ondo 早期批次十份原件上的一个残留字样。

这次订正与本条通则的关系:锚错了,但找锚的方向没错——换锚之后仍然只在原件内部找(ft_dated 与产品 ISIN 都印在原件上),没有退回 CMS 的 createdAt 或返回顺序。通则未被动摇,被动摇的是我对「原件上有什么」的一次 n=1 外推(同 SC-14「拿手里那一段代替全体」,见 §4 该节)。

⭐ 三条合成后的通则:

载体(入口、目录、CMS、登记簿、数据集)会把自己的属性混进它承载的对象里。凡一个值可以追问到「这是载体的,还是对象的」,它就必须取自对象自身的原件,不取自载体。

为什么「入口不是属性」不足以覆盖后两次:入口说的是空间(我从哪儿进来),而时间戳与排列顺序说的是载体自己的内务——CMS 什么时候录入、按什么顺序返回,与产品何时发行、按什么次序发行毫无关系,但两者长得一模一样:都是一个日期,都是一个序。把规则从「入口」提到「载体」,覆盖面才与实际撞见的情形相称。

⚠️ 本条与 §2.10「载体的整洁度低于数据的安全性」是两条不同的规则,只是共用「载体」一词。 那一条说的是要不要为了载体好看去动数据(不动);本条说的是载体的属性能不能进数据(不能)。前者管改不改,后者管填不填。

判别提问(承 SC-14 近亲条那一问,换一个问法):

换一个载体重新取同一个对象,这个值会不会变? 会,就说明它是载体的属性,不是对象的属性。
—— 对 createdAt:改用发行人官网或 FMA 登记簿去取同一份 Final Terms,这个时间戳根本不存在,它随载体一起消失;而 dated 11.11.2025 与产品 ISIN 印在原件上,换任何载体都还在。

⭐ 同一条纪律的反向情形:索引的缺席不构成事实的缺席(2026-09-25 晚·二 撞出,⬜ 待 Ed 认可后再决定是否单列通则)

本条不是新规则,是上述通则的另一个方向,故记在这里而不另占编号(执行者不自行新增通则)。

前四次落地都是同一个形状:载体上有一个值,对象的原件上另有一个值(或压根没有),于是取原件。2026-09-25 晚·二 建 Ondo 第二批十条时撞到了反过来的一次:

方向本轮实例处置
索引有值 ≠ 原件有值MSTRon 索引作「MicroStrategy Incorporated Common Stock Class A」,原件正文逐字「The Product represents the Underlying consisting of Strategy Inc Class A shares.」;ORCLon 索引作「Oracle Corp」,原件作「Oracle Corporation ordinary shares」取原件
⭐ 索引无值,而原件有值IAUon/SLVon 的 isin_underlying 与标的 LEI在 CMS 索引里都是空;而原件 Security Codes 段逐字载「The ISIN is: US4642852044 Bloomberg Ticker: IAU.」/「…US46428Q1094 … SLV.」取原件

索引在两个方向上都不是证据。 它的在场不构成事实的在场,它的缺席也不构成事实的缺席。

为什么这一面容易漏:把纪律记成「索引与原件不一致时取原件」,在语感上要求先看见两个值才启动比较;而索引为空时根本没有第二个值,比较不会被触发,字段就顺着索引一起空掉了——那是一次由载体的空白造成的字段空白,外观上与「原件确实不载」完全一样,事后无从分辨。

配套动作:凡从索引取值的批次,索引为空的格子必须回原件再看一眼,不得以索引的空直接落成字段的空。落地形式见本库脚本 —— 该脚本不再由索引直接喂字段,而是把每个已核值写成源码里的一张 ROWS 表(每项与原件某一句逐字对应),索引只用来取 ft_url,并与 ROWS 逐项 assert 互证;底层 ISIN 一项只在索引有值时才比对,索引为空时以原件为唯一来源。

⭐ 这同时是「唯一防线在取件那一步」(上呈门槛第三种情形的配套动作)的一种工程化:把「值从哪来」从运行期的一次读取,变成写在源码里、可被逐字复核的一张表。

⭐⭐ 同一条纪律的进一层:载体的印记会改变对象的读数(2026-10-15 Ondo 第十一批撞出,Ed 2026-10-16 指定进本篇;⬜ 编号待 Ed 定 —— 执行者不自行给编号)

本条不是新规则,是上述通则向前走一步,故照 959 行那条的体例记在这里、不另占编号。两条的分工一句话说清:

上面那条管「别把载体的属性填进字段」(填不填);本条管「载体的印记会改变对象的读数」(数得准不准)。
⚠️ 前者的危害停在一格值上,后者的危害在计数那一步就发生了 —— 污染发生在「数」之前,而被污染的那个数看上去完全正常。

实证(Ondo 第十一批,10 份,2026-10-15):取件后三处逐字探针读数与前 80 份不同,剥掉 Docusign Envelope ID:\s*[0-9A-F-]{30,40} 并再压一次空白后重算:

读数剥前剥后定性
⒜ Ledger-Based Securities can be traded 24 hours per day, 7 days per week4 份 154 页件读 010/10 各 1水印伪影
⒝ the Settlement Currency may be the e-money token6 份 154 页件读 2(应 3)10/10 各 3水印伪影
⒞ FT 未上市短句6 份读 0仍 6 份 0⭐ 真的模板差异

⚠️ 「再压一次空白」这一步不可省:水印串被删掉后,它两侧的词会粘成一个词,于是换来另一种 0 命中。

⭐⭐⭐ 判别句:一个「逐字 0 命中」的读数有两个成因 —— 文件没写,和水印插在句子中间;两者在计数上完全同形。 判别法不是看命中数,是剥掉载体的印记再数一次,两次都 0 才是「没写」。⒞ 之所以能被认定为真差异,正是因为它经过了第二次数。

⚠️ 这条实证当场挡掉一次误报:按剥前读数,MICAR_CLAUSE(splice 常量、跨批哈希锚)里「Issue Price 与 Redemption Amount 两处合同条款均载明」会被判成「在 6 份 154 页件上不成立」,从而上呈一个并不存在的缺口;剥后 10/10 各 3 处 → 常量一字不动,不上呈。⭐ 配套判别句:先查清再报告 —— 一个报错的缺口和一个真的缺口,在报告里长得一样。

✅ Ed 2026-10-15 裁定(逐字):

「剥过水印的文本是派生物,不是原件。」

据此两条体例,此后各批固定执行:

  1. 探针读数在剥后文本上算;但权属依据原文/底层资产细分等字段里转录的句子若被水印切断,剥掉再录,并在内部备注记一句「原件此句被 Docusign 水印切断,转录时已剥除,水印原文为 <id>」。⭐ 理由(Ed):水印不是发行文件的内容。⚠️ 本批无适用对象(两处转录句均未被切断)→ 不补空话。
  2. 剥水印函数自身要有自检:「水印枚数 == 页数」做成每批固定跑的断言,与 pypdf_trap() 并列。⭐ 因为它是上面那条纪律的前提本身 —— 若水印并非每页一枚,「剥干净了」这件事就没有被任何东西保证。(落点已由 Ed 2026-10-16 定为另立 SHARED_WM_SELFCHECK,原六段跨批哈希一字不动。)

⚠️ 残片扫查有一个同形陷阱:第十一批入库后对 10 条全字段扫 Docusign,21 处命中全部是我方关于水印的说明文字(内部备注/一句话备注/EWZon 的底层资产细分),真残片 0 处。⭐⭐⭐ 污染物与关于污染物的记述,在扫查正则下长得一模一样 —— 残片扫查必须看命中的上下文,不能只看命中数。
⚠️ 按 Ed 2026-10-16 裁定,这一句不另立条目,作为「两个成因在计数上同形」族的第三实例挂在此处。该族三例:

#同形的那个读数被压在一起的两个成因分开它们要做什么
⒜某逐字句0 命中文件没写 / 水印插在句子中间剥掉载体的印记再数一次(本条)
⒝索引标的 LEI为 null原件真的不载(orig_na) / 原件载了但用全称式写法,CMS 抽取器只认缩写(full_blind)加一道不依赖标签的码形探针(§8.17 末「从两道零到三道零」)
⒞残片扫查的命中数真残片 / 我方关于残片的说明文字看命中的上下文,不看命中数

⚠️ 注意这个族与 §8.16 方向相反:§8.16 是「一个成因造出两个现象」(于是两个现象互证等于零证据);本族是「两个成因造出一个读数」(于是那个读数不携带是哪个成因的信息)。两者都会让人停在原地,但要补的东西不同 —— §8.16 要补的是一道独立的证据,本族要补的是一次换条件的重测。
该族满三例,待 v1.0 定版时由 Ed 整理成有编号的一条。


五、取件成功的判据:HTTP 200 不等于取件成功
5.1 HTTP 200 不等于取件成功(含真实实例)

探新加坡取件链路时,curl -A "Mozilla/5.0" 抓 MAS 的 PDF,返回 HTTP 200,curl 无任何错误,脚本一路走完。实际拿到的是一张「Sorry, this service is currently unavailable」维护页。(本库变更记录)

发现方式才是这一条的价值所在:

不是靠报错,是靠两个不同 URL 的 PDF 下载返回了完全相同的字节数 853817。两份内容不同的文件不可能同尺寸,由此回查 file 命令,得 HTML document text。(本库变更记录)

Ed 2026-09-07 定性:「MAS 假 200 页面的洞记为 SC-3,它的性质是『让抓空的脚本看起来抓成功』,正符合门槛。」(本库变更记录)

派生纪律:

凡下载二进制文件(PDF 等),须校验内容类型与文件签名,不得以 HTTP 200 作为取件成功的判据。状态码只证明服务器回了话,不证明它回的是要的东西。(本库变更记录)

修法:补 --compressed + 完整 Chrome UA + Accept + Sec-Fetch-* 头集,补后取回真件 1290563 字节、PDF document, version 1.7,脚本固化为本库脚本。

5.2 同一形态的其余四个实例
实例表现判据落在哪一层
EDINET API v2HTTP 200,正文 {"StatusCode":401,...invalid subscription key}应用层状态码与 HTTP 状态码不一致,须解析正文
BOOSTRYHTTP 200,但 8 条路径全部返回同一个 19.8KB 空壳(软 404);14 个 _nuxt/*.js 分片里「既无 path: 路由定义也无任何 API 域名」响应长度全等即可疑,与 MAS 同一发现方式
EDINET 閲覧サイト(路 B)三端点全部 200,但均为 ASP.NET postback 形态,无可直取内容200 但形态不可用
OPERA SearchSchemes.aspx200,但 CAPTCHA 阻断200 但行为边界阻断——不是技术不能,是不做

R-1 · 取件成功的三判据(2026-09-21,Ed 编号,R 系列首条)

Ed 2026-09-21 裁定(原话照录):「§5.2 取件成功三判据够格编号,但不进 SC 系列——SC 是自我校正,它是正向判据。另开 R 系列(取件判据),编 R-1;以后 06A000 锚点、控制组对照这类正向方法也归 R 系列,和 SC 分开,一个记错一个记法。」

R-1(定版):一次取件是否成功,看三条——

  1. 内容类型与文件签名是否与预期一致;
  2. 正文里有没有第二个状态码(应用层状态码可与 HTTP 状态码不一致);
  3. 同一批请求的响应长度是否可疑地全等。

三条都过,才可以说取到了。

支撑:五个实例共同撑起,样本构成结论 —— MAS 假 200(§5.1/SC-3)、EDINET API v2 正文 401、BOOSTRY 19.8KB 空壳、EDINET 閲覧サイト 200 但形态不可用、OPERA 200 但 CAPTCHA。

本条编为 R-1(取件判据)。
判定里最容易出错的一处:它写在取件章、看着像操作细节,且 SC-3 已有编号,容易顺势判成「SC-3 的推论」。不能这样判——SC-3 是那五个实例中的一个,R-1 是五个实例的归纳,实例不能当自己归纳的上位。

R-1 一族补一条(Ed 2026-11-04 裁定归族):清单类来源如果分页,必须翻完所有分页才能计数,也才能说「全量」。只取到第 1 页时,那一页能说明的也只是第 1 页。实例:德国 NYALA 电子证券清单,曾以第 1 页的 41 只报作「全量公开」,翻完 4 页后实为唯一 189 只(2026-11-04 取件线补取,同时归为 SC-14「查局部答全局」)。

R 系列与 SC 系列的分工

系列记什么方向编号规则
SC(自我校正)本库自己犯过并已定性的方法错误负向由 Ed 给
R(取件判据)本库已验证可用的正向方法正向由 Ed 给

一个记错,一个记法。 两系列不交叉编号:同一件事既可以是一个错(SC)也可以是由它立的判据(R),但不共用编号——SC-3 是「MAS 假 200 这个错」,R-1 是「由五个这样的错共同撑起的正向判据」。

R 系列的待归入项(Ed 已点名,编号一律由 Ed 给,执行者不自行编,未编号前不占 R 序列):

⭐⭐⭐ 待归入项 · 字段名核验前置:字典核过才动格,核不上先报不改(2026-10-12,Ed 点名进 R 系列,未编号)

Ed 2026-10-12 逐字:「裁定里出现字段名,执行前先对冻结字典核类型和落点,口头指的字段和实表的字段可能是同一格也可能不存在——这一轮两种都撞上了,一个是我说的"标的描述栏"其实就是asset_subclass,一个是它上一条写的underlying_lei根本不是库字段。规则是:字典核过才动格,核不上先报不改。你这次做的就是这个,把它写成固定动作。」

固定动作:凡裁定/简报/脚本里出现一个字段名,在动那一格之前依次核三项 ——

核什么怎么核核不上怎么办
① 这一格存不存在直读实表字段元数据(meta/bases/{base}/tables),不靠字典也不靠记忆报告,不改 —— 不自选替代字段
② 它是什么类型同一次元数据里读 type(singleSelect / singleLineText / multilineText …)类型决定会不会触门槛②
③ 既有体例往这一格写什么直读该字段现有全部取值,看句式与承载范围体例不一致时照实报,不就地统一

本条的两个触发实例(同一轮,形状相反):

实例口头说的实表的事实性质
Ed 的「标的描述那一栏」以为是另一格,且以为底层资产细分是枚举就是底层资产细分,且它是 singleLineText 不是枚举;枚举是底层资产类别(singleSelect 14 档)口头指的字段与排除的字段是同一格
执行者上一条简报的标的 LEI当成库字段,写「按原件逐字填 underlying_lei」81 字段里没有任何 underlying_* —— 那是取件探针的键名;LEI 一直写在底层资产细分括号里口头指的字段根本不存在

⭐⭐⭐ 判别句:一个字段名在裁定里出现,不证明它在库里存在;它在探针里存在,更不证明它在库里存在。 两套命名空间(取件探针 / 实表字段)长得一样而不是一回事。
⭐⭐ 核类型不只为了填对,是为了算准门槛:本轮若没核出底层资产细分是自由文本,就会把一次「不触门槛② 的自由文本写入」误判成「改选项集 = 门槛② 归零」,因为一个误记而白等两周。⚠️ 反向的错更贵:把一次真的选项集变更误判成自由文本写入,会静默归零。
⚠️ 「核不上先报不改」的落点是「不自选替代字段」 —— 执行者此时最容易做的事是挑一个看起来最像的格子填进去,那等于自行决定了承载位置(铁律:不得自行新增字段/落点)。

R-2 · 单页应用(SPA)的后端主机:先找运行时配置,再找 lazy chunk(2026-09-24,Ed 编号)

Ed 2026-09-24 原话:「SPA 找后端主机『先找运行时配置文件,再找 lazy chunk,部署期注入的按定义不在包里』,这是正向方法,编 R-2。」

R-2(定版):当监管库是 SPA、而前端包里只抽得到相对路径(/api/v1/*)却没有主机名时,按此顺序找:

顺序找什么为什么在这一档
①运行时配置文件:assets/config*.json、config/config.json、env.js、runtime-config.*、appsettings.json部署期注入,必然是独立可取的文件
②主包里的配置加载器本身(搜 configUrl/apiBaseUrl/baseUrl/loadConfig/APP_INITIALIZER)它会把①的路径写死在包里——包里没有主机名,但有「去哪儿取主机名」
③lazy chunk / 次级 bundle只有编译期注入的值才在这里

⭐⭐ 判据句:编译期注入的才在包里,部署期注入的按定义不在包里。 同一份前端要能部署到 dev/test/prod 而不重新编译,后端地址就必须外置——所以「主包里没有主机名」不是「藏得深」,而是「按设计就不在那里」。

⚠️ 这条同时否掉一个常见的错误推论:「相对路径 /api/v1/* ⇒ 后端与前端同域」。不成立 —— 相对路径只说明前端代码里这样写,运行时会被 apiBaseUrl 拼成绝对地址。

首次实证(列支敦士登 FMA 招股书登记簿,2026-09-24):

主包 /main-3BTREYGY.js(513,003 字)→ 只有 /api/v1/*,无主机名,且全站无 lazy chunk
主包内一行:this.configUrl = "assets/config/config.json"
GET https://register.fma-li.li/assets/config/config.json → 68 B
{"api":{"baseUrl":"https://ws-api.llv.li/fire-wsapi"}}

⭐ 后端在另一个域:ws-api.llv.li(llv.li = Liechtensteinische Landesverwaltung,政府主域)。在 register.fma-li.li 下怎么猜都猜不到,因为它压根不在那个域上。

⭐⭐ R-2 续:端点找到之后还有一步 —— 那把钥匙不一定是列表递给你的那个(2026-10-21,Ed 指定进本族)

Ed 2026-10-21 逐字:「那把钥匙是 fmaCategoryId 不是 uuid 的事进 R-2 一族。」

现场(FMA 登记簿的 PDF 清单):按 R-2 找到配置文件 assets/config/config.json → 得主机 ws-api.llv.li/fire-wsapi;再从包里抽出端点模板 /api/v1/pdfRegister/${e}?lang=${r}。
列表接口 /api/v1/pdfRegister 返回每个类别一行,行里明明白白给了 pdfLinkIdDe 与 pdfLinkIdEn 两个 uuid —— 而把那个 uuid 代进 ${e},一律 HTTP 400(lang 换遍 de/DE/de-CH/en/不带,全 400)。
✅ 真正能取到的键是同一行里的 fmaCategoryId(本例 11):/api/v1/pdfRegister/11?lang=de → 200,返回 JSON 内嵌 base64,解出 660,955 字节 PDF。

⭐⭐⭐ 判别句(R-2 的下半句):一个列表里给出的标识,不一定是取它的那把钥匙 ——
⚠️ 而名字越像(pdfLinkId 里就带着 pdfLink),越容易只试它一个。

⚠️ 怎么把这一步做完:端点模板里的占位符 ${e} 只告诉你要一个标识,不告诉你是哪一个;
⭐ 故 R-2 的收尾动作是 —— 把同一行里的每一个标识都当候选试一遍(本例一行四个字段:
id/pdfLinkIdDe/pdfLinkIdEn/fmaCategoryId),而不是只试名字最像的那个。
✅ 判别法:400 与 500 是「钥匙不对」,200 但 0 字节也是(本例 364032 即如此)——
只有 200 + 合理体积 + 正确魔数(%PDF-)才算取到。

与 R-1 的关系:R-1 管「取回来的东西算不算数」(判返回体),R-2 管「该去哪儿取」(定端点)。上一轮猜的六个 /api/v1/* 全返 200 而正文是 SPA 壳 —— 那是 R-1 第五例;R-1 只告诉你猜错了,R-2 告诉你该怎么找对。⚠️ 由此得一条:R-1 判失败判得再准,也不会自己指向正确端点;能判错不等于会找对,这是两种能力。

R-3 · 时间戳判据的优先级:系统元数据 > 文件 mtime > 会话摘要(2026-10-11,Ed 编号)

Ed 2026-10-11 原话:「R-3:时间戳判据优先级为系统元数据、文件 mtime、会话摘要,会话摘要永远排最后,继承来的日期是推断值不是实测值。」

R-3(定版):凡要落一个日期(更新日/来源核验日/文档标注日/门槛计时起点),按此顺序取判据,高档位可得时不得用低档位:

档判据性质取法分辨力
①系统元数据实测date;Airtable record 的 createdTime;API 响应里的时间字段到秒,且指向该对象自己
②文件 mtime实测,但只到「最后一次」os.stat().st_mtime⚠️ 能界定范围,不能定位个体
③会话摘要/上下文里出现的日期⭐⭐ 推断值,不是实测值——永远排最后

⭐⭐⭐ R-3 例外条(Ed 2026-10-11 裁定,唯一可以越级的情形):② 档 + 唯一性旁证 = 个体级

Ed 2026-10-11 裁定逐字:「裁定(a),接受文件mtime。理由不是降级将就,是这里的②档判据实际上能定位个体:脚本mtime 10-10 17:09只能界定范围,但"全库updated_at等于09-30的恰好只有这十条"把范围压缩到了个体,两个证据合起来达到了①档要求的东西——判据等级看的是能不能定位到个体,不是看它叫什么名字。执行者说"②档能界定范围不能定位个体"作为一般规则对,本例是例外,让它把这个例外写进R-3:②档加唯一性旁证可以上升到个体级。」

例外条(定版):② 档本身只界定范围;但若另有一个唯一性旁证把该范围压缩到个体,两个证据合起来即达到 ① 档的分辨力,可以当个体级判据用。⚠️ 上表 ② 行那句「能界定范围,不能定位个体」作为一般规则仍然有效,本条是它的例外、不是它的修正。

⭐⭐⭐ 判别句:判据等级看的是能不能定位到个体,不是看它叫什么名字。 档位名(「系统元数据」「文件 mtime」)是取法的名字,而优先级排的是分辨力;绝大多数时候两者同向,故平时可以用名字代替分辨力来排序 —— ⚠️ 但名字只是分辨力的代理变量,代理失效时必须回到被代理的那个量。

本例两个证据如何合成个体级(Ondo 第四批十条更新日):

证据内容单独的分辨力
一(② 档)本库脚本 mtime = 2026-10-10 17:09:43,且其源码内含 TODAY = '2026-09-30'(即错值的来源)只界定范围:证明「那次写入发生在 10-10」,不证明「哪些记录被它写了」
二(唯一性旁证)全库更新日== 2026-09-30 的记录恰好只有这 10 条,且与授权射程逐条相等把范围压缩到个体:该次写入的作用面与这十条重合

⚠️⚠️ 唯一性旁证须同时满足三条,缺一不可:① 恰好(不是「包含」或「大部分」—— 多一条或少一条都不成立)② 与授权射程逐条相等(不是数量相等)③ 本次运行时实测 —— ⭐ 不得沿用上一轮的实测结论,上一轮的实测结论本身就是一个继承值,正是 ③ 档。

⭐⭐ 例外条的落地形态 = 把裁定的理由写成脚本的前置断言:本库脚本把上表两行各写成硬 assert(mtime 日期 + 源码含错值常量 / 命中集合 == 授权射程 且逐条产品 ID相等)。两个证据哪一个不成立,裁定的推理就断,脚本即停手上呈。
⭐ 一个由「两个证据合起来」支撑的结论,必须让这两个证据同时可失败 —— 否则下一次只剩一个证据时,没有任何东西会报警。

⚠️ 例外条不扩大到 ③ 档:会话摘要加任何旁证都不能上升。⭐ 判别句:② 档缺的是精度,③ 档缺的是真值 —— 精度可以靠旁证补,真值不能。 立条那个错正是如此:47 处全错,而「全错」这件事里没有任何一处旁证能发现它(旁证要靠内部不一致露头,全错恰好内部一致)。

⭐⭐ 判据句:继承来的日期是推断值,不是实测值。 它看着像一个已经核过的事实,实际上只是「上一轮某处这样写过」—— 中间可能跨了日界,也可能上一轮本身就写错了。

立条的那个错(2026-10-10):执行者从上一段会话摘要里继承了 2026-09-30,跳过了 ① 和 ②,于两份冻结文档、本库变更记录、回填脚本共 47 处与库内 10 格落下错值。⚠️ 它撞在 v0.9 使用约定第 8 条上,而第 8 条正是为日期戳立的 —— 第 8 条定「TODAY/CHECKED 只向前生效不追溯」,而它第一次向前生效的那一批常量值本身就是错的。⭐ 规则管住了「要不要追溯」,没管住「当下这个值对不对」;R-3 补的正是后半句。

R-3 的三个即日实例:

  1. 第二天就抓到一次降级:2026-10-10 的简报写「第五批 TODAY 常量用实测 2026-10-10」,而 2026-10-11 开工先跑 date 回 2026-10-11 13:23 CST。⭐⭐ 判别句:实测值有保质期 —— 过了那一天,昨天的实测值在今天就是 ③ 档的继承值。 故第五批落 2026-10-11。

    ✅✅ Ed 2026-10-11 点名认可,并把本句定为判别句,逐字:「R-3立了第二天就抓到自己把"实测10-10"当继承值用,这个自抓比R-3本身更有价值,"实测值有保质期"可以直接进判别句。」
    ⭐⭐⭐ Ed 给的权重落在「自抓」上,不在条文上:R-3 的条文只说了档位高低,没说一个 ① 档实测值会随时间自己掉到 ③ 档 —— 这一句是条文被执行时由执行它的人补出来的,而补它的那次正是它自己要拦的那种错。
    ⭐⭐ 判别句(本条的一般形态):一条纪律的价值要看它立起来之后第一次约束到谁 —— 如果第一个被它接住的是立它的人,它是在用的;如果第一个被它接住的永远是别人,它可能只是在被引用。
    ⚠️ 本句已是 R-3 的组成部分,不是注解:凡取 ① 档,取用日与落值日不是同一天即失效,必须当日重测。唯一性旁证的第三个条件(「本次运行时实测」)就是这一句在例外条里的落点。

  2. 第一次反向适用:① 档不存在时,不得自行拿 ② 顶上(Ondo 第四批十条的更新日)。Ed 的授权条件点名 ① 档(记录的最后修改时间),而 products 表无 lastModifiedTime 字段、Airtable REST 只返回 createdTime、revision history 无公开 API → ① 档取不到;② 档可得(回填脚本 mtime 2026-10-10 17:09:43)但执行者不得自行替代。⭐ 判据等级是门槛的一部分,执行者不得自行降级 —— 降级通过的结论与原授权不是同一个结论。

    ✅ 已由 Ed 2026-10-11 裁定 (a) 结清,十条已改为 2026-10-10(本库脚本,patched 10,三条反向断言全过)。⚠️⚠️ 结清的方式值得记明:Ed 不是批准了一次降级,而是指出这里本来就没有降级 —— ② 档加唯一性旁证已达 ① 档分辨力(见上「例外条」)。
    ⭐⭐ 判别句:上呈的价值不取决于上呈的理由对不对。 本例执行者给的理由(「② 档不能定位个体」)作为一般规则对、用在本例上错,⚠️ 但「不自行降级」这一动作的效力不受理由对错影响 —— 判据等级归 Ed 定,执行者的职责是把判据摆出来,不是把它评定完。

  3. 取证动作本身可能损坏被保护的对象:要把 ① 档变成可读,就得新增一个 lastModifiedTime 字段,而「字段增」按字典头部的定义算变更 → 门槛② 的 14 天计时当场归零。⭐ 判别句:当取得判据的动作本身会损坏被判据保护的对象时,必须先上呈,不能先取证。

    ✅ Ed 2026-10-11 裁定:(b) 不批,字段不加,归零代价不值;但记为 v1.0 候选 #3,加字段的时点留到 v1.0 定版那一刻。⭐⭐ 这给出了第 3 条的通解:当取证动作的代价是「使某个计时归零」时,解法往往不是放弃取证,而是把取证挪到一个「反正要归零」的时点上 —— #1(LEI 字段)/#2(镜像全列核对)/#3(lastModifiedTime)一起算一次变更,而不是三次。
    ⭐ 判别句:同一种代价被三件事分别付一次,和被三件事合起来付一次,总额完全不同 —— 而决定它的只是排期。

与 R-1/R-2 的分工:R-1 判「取回来的算不算数」,R-2 定「该去哪儿取」,R-3 定「同一个事实有几个来源时该信哪个」。⚠️ 三者都不互相替代:R-1 不会告诉你哪个来源更可信,R-3 也不检验来源本身是否伪造。

R-1 族在指针层的延伸:路径的真实性与路径的通达性是两件事(2026-09-24 立,Ed 指定进本篇,未编号)

Ed 2026-09-24 原话:「『登记簿保证路径的真实性,不保证通达性,两件事分开记』这句进方法篇,它是 R-1 那族判据在指针层的延伸。」

适用场合:当一个 A 级载体(官方登记簿、监管公告、法定披露页)不托管原件本体,只给出通往原件的地址时。

层判的是什么判据
R-1(返回体层)我取回来的东西算不算数状态码 / 内容类型 / 字节数与文件签名
本条(指针层)我拿到的地址意味着什么⭐ 真实性由载体的权威性保证;通达性完全不由它保证

⭐ 判据句:官方登记簿背书的是「这个地址是发行人向监管机关申报的原件公示地」,不是「你现在能从这个地址拿到文件」。 前者是法律事实,后者是当下的网络与合规状态 —— 两者由完全不同的东西决定,因此必须分成两格记,不得因为取不到就怀疑地址,也不得因为地址权威就认定文件已得。

首次实证(列支敦士登 FMA 登记簿 Erhältlichkeit des Prospektes 列,三家一次跑完得到三种形态):

形态案例现象正确处置
指针跳两次可达Robinhood申报地址页全页 0 个 PDF,只有一句「Issuer disclosures, including the Base Prospectus and Final Terms」;真正的文件柜在另一个域,由该页侧栏外链指出⚠️ 不得按「目标站无 PDF ⇒ 此路不通」收手 —— 指针可以再跳一次,这与 R-2「配置在别处」同型
指针指向应用、须找对路由才可达Ondo申报地址 302 到营销页(0 个 PDF),页内文字指路到应用;应用根页也是 0 个 PDF,文件挂在单个代币页上,路由须试(/assets/{TICKER}on ✅ 200,另五种猜法全 404)根页无文件 ≠ 站内无文件;路由是要试的,试法按 R-1 判返回体
指针有效但被合规拦截Backed申报地址 302 到 /geoblock,页面明文「restricted country/US citizens, US residents」⛔ 既不是 R-1 意义上的失败返回(不是壳、不是系统错误页),也不是站点失联(DNS/TCP/TLS 全正常),而是发行人依法设置的访问控制。记为「路径已确证存在、当前不可达」,不绕过

⚠️ 第三种形态必须与前两种区分开,理由不在技术上:合规拦截是被观察对象主动、合法、有意返回的结果,它本身就是一项关于该产品的事实(发售受地域限制),不是取件失败。把它记成「取件失败」会丢掉这项事实;把它当成障碍去绕,则越过的是法律而不是技术。

⭐ 与 §4.3「检索命中 0 的含义取决于载体覆盖了什么」的分工:§4.3 管载体里有没有,本条管载体指出去之后拿不拿得到。两条都是在说同一件事的不同段 —— 一条线索从「被记载」到「被取得」之间,每一段都可能断,断在哪一段决定了它该被记成什么。

⭐⭐⭐ R-1 族的第三处延伸:报坐标就得穷尽检索(2026-10-21,Ed 定规则)

Ed 2026-10-21 逐字:「「只看前几条命中的检索和穷尽检索在报告里长得一样」进 R-1 那一族,规则定成:凡报坐标、报行数、报「共几处」,检索必须穷尽,报告里带总命中数,截断只准发生在展示层不准发生在检索层。」

触发事实:2026-10-21 在 FMA 清单里检索 Backed Assets,脚本正确地打出了
「14 处」这个总数,随后只展示前 6 条;而我据展示的那 6 条报出「核到 3 行」——
实为 5 行(另有第 32、36 两页)。⚠️ 总数就在同一屏上,我没拿它去校自己的结论。

⭐⭐⭐ 判别句(Ed 收,归 R-1 族):一次「只看前几条命中」的检索,与一次穷尽检索,在报告里长得一样。

规则(定版)

#要求
① 穷尽凡要报坐标、报行数、报「共几处」,检索层必须穷尽 —— 不得在取结果时 [:N]
② 带总数报告里必须出现总命中数,且它与所列条目数对不上时要写明「只展示前 N 条」
③ 截断的位置截断只准发生在展示层,不准发生在检索层 —— ⭐ 两者在产出的文字上同形,区别只在被截掉的那部分有没有进过结论

⚠️ ③ 是这条规则的全部要害:展示层截断不改变结论(结论是在全集上得出的),
检索层截断悄悄改变结论(结论只在前 N 条上得出)。
⭐ 而本例更刺眼的一点:脚本已经满足了 ②(它打了「14 处」),
失效的是读它的人 —— ⟹ 本规则因此同时约束报告,不只约束脚本:
一个在输出里备齐了总数的脚本,救不了一个只读前几行的结论。

✅ 与 R-1 本体的关系:R-1 判「取回来的东西算不算数」,本条判
「在取回来的东西里查了多少才够下结论」——⚠️ 两者都可以在「有输出」这件事上通过。

R-1 族的第二处延伸:文件的存在不是产品存在的证据(2026-10-13 立,Ed 指定进本篇,未编号,一例不立字段)

Ed 2026-10-13 原话:「『文件的存在不是产品存在的证据』这句进方法篇,它和 R-1 取件成功三判据是一对:R-1 管取到没取到,这句管取到的东西还在不在。这个形态如果在 RHJ 或后续 Ondo 件里再出现,到时再看要不要在 v1.0 之后立字段,一例不立。」

适用场合:当原件自身载有使它在某个外部事实未发生时自动失效的条款时(自动失效、生效条件、到期自动终止等)。

首见实例:Ondo 第十批 SPCXon(VGG7001AJU93,Final Terms dated 09.06.2026),原件逐字——

Notwithstanding the foregoing, the Offer Period shall commence on the later of (i) the date of publication of these Final Terms on the Issuer's website and (ii) the date on which the Class A common stock of Space Exploration Technologies Corp. is first admitted to trading on the Nasdaq Stock Market LLC (the "Listing Date"). No offer of the Products shall be made, and no Token shall be issued, prior to the Listing Date. If the Listing Date has not occurred within thirty (30) calendar days from the date of publication of these Final Terms, these Final Terms shall automatically lapse and the offer contemplated hereunder shall not commence.

⭐⭐⭐ 判据句:一份带自动失效条款的文件,失效之后仍然可以被下载到,并且和生效中的版本逐字相同 —— 文件的存在不是产品存在的证据。

⚠️ 即「这个产品是否已生效」这个结论不可能从本件自身读出来。原件给出的是一个条件,条件是否满足由外部事实回答;而两种结局(已生效/已失效)在原件的字节上完全同形,连 sha256 都一样。

层判的是什么判据
R-1(返回体层)我取回来的东西算不算数状态码 / 内容类型 / 字节数与文件签名
R-1 延伸一(指针层)我拿到的地址意味着什么真实性由载体权威性保证,通达性不由它保证
本条(条款层)我取到的这份文件现在还作不作数⭐ 文件内部只能给出条件,满足与否须由外部 A 级事实回答

本实例的处置(Ed 2026-10-13 裁定,逐条):

  1. 原文逐字进底层资产细分/special,不另立字段(一例不立)。
  2. 内部备注记一句判读:条款以 Listing Date 为发行日、三十天未上市自动失效;失效与否由外部事实回答。
  3. 外部事实用 A 级旁证:SEC EDGAR(CIK 0001181412)EFFECT 2026-06-11 + 424B4 2026-06-12 ⟹ 条件已在三十天期限内满足,产品已生效。
  4. 发行日期填 Listing Date 对应的 2026-06-12,发行日期精度填「日」。⚠️⚠️ 该值是裁定值不是原件值(原件只给相对条款 The expected issue date of the Tokens is the Listing Date),来源是 EDGAR 而不是本记录的来源链接—— ⭐ 两者落在同一个日期格里长得完全一样,故此层差别必须在内部备注显式写明,否则事后无从分辨。

⭐ 与 R-1 的分工:R-1 管「取到没取到」,本条管「取到的东西还在不在」。 ⚠️ 两条都不互相替代 —— R-1 的三判据全部通过(内容类型 PDF、无第二状态码、字节数正常)恰恰是本条得以成立的前提:文件取到了、完好、可读,而这一切都不说明它还作数。

⚠️ 本条同时是一条反向警告:若外部事实回答的是「条件未满足」,则该文件仍然可被取到且逐字相同,此时正确处置是不入库(产品不存在),⭐ 而不是按原件照录建档——照原样录只管字段值怎么填,不管这条记录该不该存在。

5.3 载体覆盖面:载体覆盖到了,却什么都不报(SC-8)

EDINET documents.json 对已过縦覧期間的文件,不是把它从结果里去掉,而是保留 docID、把 filerName/docTypeCode/docDescription/edinetCode/secCode 全部置为 null(legalStatus="0"、disclosureStatus="0"、pdfFlag="0")。(本库变更记录)

为什么它比 SC-3 更隐蔽:假 200 至少给了一个可校验的对象——字节数、文件签名、正文状态码,三条判据里总有一条能抓住它。空壳给不出任何可校验的对象,因为它本身就是合法的一条记录:HTTP 200 正确,JSON 结构完整,字段齐全,只是值全是 null。过滤器在空壳上永远不命中,却也永远不报错。按发行人名称或文件种别做的扫描,会把「过期件」和「不存在」输出成同一个结果——零条。

实证:两轮定向扫描共 69 天、13,442 份文件,对「NTT・TCリース」「トヨタファイナンス」零命中,一度被误判为「文件不存在」。改为按日期窗口枚举全部 filerName is None 的 docID、逐个下载 PDF 读表紙识别之后,命中 S100V863。PDF 通道 https://disclosure2dl.edinet-fsa.go.jp/searchdocument/pdf/{docID}.pdf 对过期件仍然可取——件在、通道在、只有描述它的那一层没了。

与 §4.3 的关系,是同构但更锋利一档:§4.3 讲「检索命中 0」的含义取决于载体覆盖了什么,那是地图缺一块;本条讲的是载体覆盖到了、记录还在、却什么字段都不给,那是地图上标着一个无字的点。前者靠补载体解决,后者靠换检索轴解决——不能按内容过滤,只能按缺失本身过滤(filerName is None)。

Ed 2026-09-20 定性:「EDINET 对过期文件返回『元数据全空的壳而不是零条』——这是载体覆盖到了却什么都不报,比假 200、假阴性都更隐蔽,因为过滤器在空壳上永远不命中却也不报错。」

这条洞的第二重后果:它是一条时效边界,不只是一个检索缺陷

縦覧期間本身因文件种别而异,两个数字合起来就画出了取件地图上的时间边界:

文件种别docTypeCode縦覧期間后果
有価証券届出書030 / 06A0005 年全集元数据完整,按名称/种别过滤安全
発行登録追補書類100~~1 年~~ → 见下方订正元数据被抹平后只能靠 PDF 逐件识别

日本社債型 ST 走的正是 100 这条链路(発行登録書 080 → 訂正発行登録書 090 → 発行登録追補書類 100),与 06A000 完全不同。

⚠️ 订正(2026-09-20,本篇自身的一处推断被实测推翻):上表原写「100 的縦覧期間 1 年」,那是从一个样本(S100V863,提出 19 个月后已成空壳)反推的。2026-09-20 的 547 天全窗口实测否掉了它——同窗口内可见的 100 件共 242 份,最早的落在 2024-05,跨度远超一年。真实口径是:

080/100 的縦覧不按本件提出日起算,而是随母体発行登録自身的效力终止。

物证:トヨタファイナンス在 ST 社債発行(2025-02-19 の追補書類 S100V863)之后,于 2025-03-07 另提出一份新的発行登録書 S100VA8I(该件今日仍可见)。旧発行登録被取代、效力终止,挂在它下面的追補書類随之退出縦覧——这才是 S100V863 只活了 19 个月、而同期其他公司的追補書類至今可见的原因。

这处订正本身是一条纪律的实例:原来的「1 年」是从一个样本外推出来的规则,与 SC-5/SC-6 同族(把一次观察当成规则)。它写进本篇时未标「本篇归纳」。

订正后的结论比原来的更不利,也更硬:

社債型的可取件窗口不是一个固定长度,而是由发行方自己的発行登録效力决定的变量。 发行方换一份発行登録,旧链路上的全部追補書類即刻退出縦覧。窗口长度不可预知,因而不能靠「一年内取完」这样的排程来兜底。

派生纪律两条:

(1) 凡依赖外部检索接口做「存在性」判断的,必须先查清该接口的记录保留期与过期记录的表现形式。「零命中」在保留期之外不成立为否证。

(2) 有时效窗口的载体,取件优先级由窗口长度决定,不由产品重要性决定。窗口短的先取——窗口关上之后,同一件的取件成本会跃升一个量级。

私募的沉默不可与此混为一谈:少人数私募/適格機関投資家限定依法无 EDINET 披露义务,其沉默是制度性的、可预期的(§7.2 第三种状态),不是空壳。空壳是「有义务、已披露、载体仍在、描述层失效」;私募是「本来就没有」。

SC-8b · 过滤条件建在一个会被置空的字段上(2026-09-20,Ed 编号并与第一形态并列)

SC-8 第一次是别人把描述层抹平;SC-8b 是我自己的过滤器正好读在那一层上。

2026-09-20 扫 FY2024 全集时,留存规则写的是「docTypeCode ∈ {030,040,043,050,080,100} 者留下」。按此枚举窗口内 242 件 100,逐件取正文找法定定性句,命中 0 件、取件 0 失败——一个看上去干净利落的否定结论。

按 §4.6 挂对照组,用库里已有的社債型 ST 记录当对照:

对照件来源记录在本次留存集中
S100V863(トヨタ 発行登録追補書類,2025-02-19)toyota-finance-st-bond-1-jp❌
S100V4SS/S100V9XM(同发行方 訂正発行登録書)同上❌
S100XNPVntt-tc-lease-st-bond-2-sustainability-jp❌

四件全缺席。那个 0 不是事实,是过滤器的产物。

Ed 2026-09-20 的定性(原话照录):

「SC-8 的第二形态——过滤条件建在一个会被置空的字段上、不可见和不存在在结果里长得一样——编为 SC-8b,和第一形态并列。」

两个形态的分工:

SC-8SC-8b
缺陷在谁那边载体:描述层被抹平检索者:过滤条件读的正是被抹平的那一层
表现结果里多出一堆无字的点结果里什么都不多,干净得像一次成功的否证
为什么难发现过滤器不命中也不报错同上,且此时还多了一份「我已经枚举了 242 件」的踏实感
修法换检索轴:按缺失本身过滤挂对照组——用已知存在的对象去验这次枚举

规模实测:同窗口 547 天,docTypeCode is None 的 docID 共 15,791 个(逐月 571–2,128)。这不是边角料,是一个与可见集同量级的暗集。

SC-8b 的教训可以脱离 EDINET 表述:凡按某字段过滤,先问这个字段在什么情况下会为空,以及为空的那些记录是不是恰好就是你要找的。 本例里两者完全重合——越是过期的、越是稀有的、越是需要抢救性取件的,越是元数据全空的那一批。


六、核查纪律:来源、锚点与三条最容易破的读法

完整规则在收录标准第六节,本篇只写方法上最易破的几处,不重复分级表。

6.1 分级的两条边界必须成对读

实例:Pioneer TMF Token 唯一来源为发行方新闻稿(Media OutReach,B 级),无 A 级来源,维持 draft。Ed:「维持 draft,不转 archived。……一个自称首只、没有证监会认可、没有独立官网、只有 B 级来源的产品,档案如实呈现这个状态就是它的价值。」(本库变更记录)

另一个方向的实例:uMINT 的官网稿证实了链、上线日等,「A 级来源存在,但 A 级来源里没有产品级字段」,故维持不建档(本库变更记录)。来源级别与字段可填性是两回事——这一点在 §7.1 展开。

第三个方向:级别之内还有一层「是否一手核实」。 CLARITY 法案一例,同一条目里两行事实被标了两个不同的状态(本库变更记录):

事实标注
参议院 cloture 表决未达 60 票门槛,法案未能推进C(媒体报道,多家一致)
票数 49–50、全体民主党与 4 名共和党议员反对C,且一手未核实——senate.gov roll call 两条路径均返回 Unavailable,congress.gov 返回 403

两行同为 C 级,第二行却多带一道限制:「票数不得单独引用。若确需写出 49–50,必须同时写明该票数未经一手核实。」(同条口径纪律第 4 条)

要点有二。其一,多家媒体一致不等于一手——一致只说明它们抄了同一个源,而那个源正是取不到的那一个;这与 §4.1 「一级只能证实」是同一个道理,只是换到了来源侧。其二,限制是可解除的,且解除条件写死在条目里:「一手 roll call 编号待补,取到后本条升级为 B 级并删除本项限制。」一条降级标注应当同时写明它靠什么撤销,否则它会永久留在档案里,没人知道该补什么。

6.2 主来源的选取

凡有发行文件的产品,直取发行文件为主来源,不要从新闻稿倒推。新闻稿只补两样:上线日期与平台商用名。(收录标准 §6.4)

新闻稿是为传播写的,发行文件是为责任写的。 凡两者冲突,以发行文件为准,冲突本身记入内部备注。

效率上的旁证:HK-3 是单一发行文件(KFS)一次覆盖九成字段——「发行文件(招募说明书/KFS)是效率最高的来源类型」(本库变更记录)。

发行文件也有覆盖不到的三类事实(本库香港取件操作文档 §六):上线日期、平台商用名、实际分销伙伴。这三样须另找 B 级来源补,并在内部备注注明该字段的来源级别低于本条主来源。

6.3 P40 判别锚点:「代币化」这个词出现在文件的哪一节

一只基金写明可投资于代币化证券,不构成本库意义上的代币化产品。判别锚点是「代币化」这个词出现在文件的哪一节——出现在份额/单位条款(Schedule of Tokenised Class、Dealing of Tokenised Units、Tokenisation of Units)才算,出现在投资策略或风险因素不算。(本库变更记录)

实证:本轮华夏 13 只产品的招募说明书里「代币化」仅出现在投资策略与风险因素两节,不出现在份额条款,全部判为假阳性。

这条锚点与 §4.3 的 WisdomTree 一例是同一族:关键词出现的位置,比关键词是否出现更有信息量。

6.4 监管允许 ≠ 产品已开放(P30)

起因:取到三份 2026-04-20 的证监会通函原件(26EC22 修订版代币化通函、26EC23 允许代币化产品在持牌 VATP 二级交易)。

核对结论:一条记录都不用改。 26EC23 是许可性规定;本次新建的 Global X 一条日期为 2026-08-31(晚于通函四个月),发行文件仍明文写 "currently not permitted for ... trading on any secondary markets"。

由此固化一条读法:监管允许 ≠ 产品已开放。 transferability 与二级流通场所只跟发行文件原文走,不跟通函走。通函只在发行文件出现相应修订时才产生回填触发。(本库变更记录)

已三次适用:(1) 上述 Global X;(2) SEC 创新豁免 M-1 生效后,US-4 格转「待填」而非「待建档」——「『路径已开』不得写进任何记录的字段,它是格子表状态与本区的登记事项,不是产品属性」(本库变更记录);(3) 汇丰持有港元稳定币牌照条目但无产品名称、无代码,牌照条目本身不构成一只已发行的稳定币,不建档(本库变更记录)。

与 §2.2 的 W-1 连读:「取件路径已定」≠「有件可取」,「监管允许」≠「产品已开放」——同一个错误分别发生在取件层和字段层。

6.5 发行方持牌 ≠ 产品获认可

两者是两件事,不得互相推导(收录标准 §6.7 第 1 条)。这一条在 v0.6 草案里被进一步落成了字段设计:发行方登记性质(主体级)与监管性质(产品级)对象不同——一个是主体,一个是产品,取值同名不同义,任何统计不得混用或交叉汇总(Ed 2026-09-18 裁定,v0.6 草案 D6)。

6.6 法条文本的来源分级(Ed 2026-09-24 立,德国线逼出)

联邦机关文本是 A 级;私营法条库只作定位用,不作依据。(Ed 原话要点)

形态级别用法
官方公报原件(BGBl、官報、Gazette)A边界日期、修法事实的唯一合法依据
部委/司法部的现行合并文本(如德国联邦司法部 gesetze-im-internet.de)A公报原件未打通时的替代依据;须与公报原件核出的修法链一并给出
私营法条库(商业数据库、法条聚合站)定位用,不作依据只能用来找到「该去看哪一条」,找到后必须回官方文本取字

成立经过:德国线 BGBl 2021 原件未打通(同 Bundesanzeiger 那道 JS +会话障碍)。替代方案=两份 BGBl 原件(StoFöG 2026、ZuFinG 2023)核出完整修法链 + 联邦司法部现行合并文本,Ed 2026-09-24 认可,并立为通则。

⚠️ 合并文本单独用不够。合并文本只给「现在长什么样」,给不出「什么时候变成这样」——§20 eWpG 的三段制(见 §8.3.3)全部来自公报原件里的生效条,合并文本上只有一个 (weggefallen)。所以替代方案的两个组成部分缺一不可:合并文本管现状,公报原件管时点。

6.7 辖区归属:锚在批准,不锚在发售(Ed 2026-09-24 晚·三 立,改写同日晚·二 的前一版规则)

Ed 原话要点:「辖区归属改为『批准辖区』锚定……我上一轮的『公开发售辖区、首要或首个』在护照制下不可操作——29 国同一次通知,没有首个,首要未证……批准辖区是唯一由法律定义、不依赖观察者的锚。」

四栏定版:

栏记什么
jurisdiction招股说明书获批准、或产品获认可的辖区(欧盟护照制下的母国 Home Member State)
regulator批准机关
发行方注册地发行方注册地
发售国清单(v0.8 新增,多选)发售国清单,选项集须容纳全部 EEA 成员国

为什么前一版规则必须被改

前一版(同日晚·二)是「jurisdiction 记产品公开发售所在的辖区;护照制下只记首要或首个发售国」。它在 DAAG 上当场失效:

前一版要求实况
取「首个」发售国❌ 不存在 —— 29 国列在同一次通知里,登记簿不给逐国日期,无先后可言
取「首要」发售国❌ 未证 —— 无按国的发行量/募集额数据,原件又不可得

⭐ 失效的不是这条规则的准确度,是它的可操作性:它要求的那个事实,在护照制这个法律构造下根本不产生。一份招股书经 Prospektverordnung Art. 25 通知后,29 国同时具备公开发售资格 —— 「首个」是这个构造里不存在的量。

判据:一个字段的锚必须独立于观察者

前一版规则在 DAAG 上的实际后果,是执行者差点把 jurisdiction 填成「德国」,而德国之所以在场,只因为我们从 BaFin 的库撞见了它(详见 §4.7 SC-14 近亲条)。

锚换一个检索入口,答案会变吗可用
「我从哪个监管库查到它的」会(BaFin→德国,CSSF→卢森堡,CONSOB→意大利,29 个入口 29 个答案)❌
「谁批准了它」不会(永远是列支敦士登 FMA)✅

⭐⭐ 一个字段的定义锚,必须是对象自身的属性或法律赋予的地位,不能是检索路径。 批准辖区之所以是唯一合格的锚,是因为护照制本身就是围绕「母国批准、东道国承认」这个法律构造建起来的 —— 母国有且只有一个,是这个构造的定义性事实。

回填影响:零

辖区批准辖区 vs 发售辖区回填
中国香港(26 条)/日本(66 条)/美国(2 条)/新加坡/英国重合(无护照制,本地批准本地发售)零回填
德国 DN Group DE000A46ZYN8批准机关 BaFin → 仍是德国不变
DAAG批准辖区 列支敦士登,不是德国见下

Ed 逐字:「DAAG 若建档就是列支敦士登不是德国,它不算德国线的产出,这是诚实的结果。」

⭐ 这一句值得单记:规则改写把一条本来记在德国线名下的产出判给了另一条线,裁决层在规则正确性与本线成果之间选了前者,并把这个取舍明说成「诚实的结果」。一条规则的可信度,看它第一次减少的是谁的成果。


七、找不到的时候
7.1 先分清「没找到」「没文件」「没字段」

三者常被混为一谈,但处置完全不同:

情形判别处置
没找到取件链路未穷尽,或样本空间选错(§4.4)继续投入
没文件对照实验成立(§2.3)或适格性自述成立(§2.4)停止投入,记结构性状态
有文件、有 A 级来源,但字段填不出来文件是存在性登记,或文件不含产品级字段不建档,进观察清单

第三行的判据是 Ed 立的:

建档的门槛是字段能不能填,不是材料值不值得。(本库变更记录)

两个实例:uMINT(A 级官网稿存在,但无产品级字段);Progmat 46 件(B 级清单齐备,但不给产品专名,须回 EDINET 取)。链路打通与字段能填之间永远有一段落差,这段落差要显式记,不要用推断值填平——填平它就是违铁律二。

7.2 空格的三种状态(P38)
状态含义会被什么填上
有记录该格已有符合硬标准的产品建档——
空格(已穷尽)找过、找对了地方,该格目前没有符合硬标准的产品未来的产品。市场里出一只,格子就填上了
依法无须披露、结构性不可建档该格有产品、且产品是活的,但其发行结构依法豁免了公开披露义务,不存在也不会产生 A 级产品级文件只会被监管框架的变化填上,产品再多也填不上

前两种的差别是「有没有产品」,第二种与第三种的差别是「有没有文件」——而文件的有无不取决于市场,取决于法。把第三种记成空格,等于向读者暗示「等等就会有」,而它等不来。(本库变更记录)

Ed 的立意(照录):

「为什么新加坡的代币化基金查不到」这句话的答案,是全图里该有的一格。 它不是全图的缺陷,是全图的一项内容——一张只标了「有什么」的地图,不如一张同时标了「哪里依法不会有」的地图。(本库变更记录)

各格判例:

格状态事由
SG-2/SG-3/SG-4第三种有产品且活跃,私募豁免公开披露义务——不是发行方选择不披露,是依法无须披露
SG-5(渣打)普通空格Guardian 项目下的模拟发行,硬标准 1 不满足——是「没有产品」,不是「没有文件」
US-3空格(已定)两个候选注册申报均未生效(Arca、Superstate 均载《证券法》第 8(a) 条延迟生效条款)
US-4由空格转待填SEC 创新豁免 M-1 生效,路径已开但产品未有(§6.4)
JP-5未结论证据不足,且 JSDA 目录维与格子维正交,无法用于否证

⚠️ JP-5 那一行是三种状态之外的第四种情形,不构成对 P38 的反例:P38 的三种指的是已结论的三种;未结论不在同一层。一个格子在拿到结论之前,不属于任何一种状态。

7.2a 留空对「理由是否成立」几乎没有阻力(Ed 2026-09-20 认可为纪律)

§7.2 讲的是格子的空,本节讲字段的空——两者共用一个弱点:留空这个动作不校验它自己的理由。

起因是一次转录错误:shinsei-trust-tokiomarine-jp-pe-st-jp 的内部备注把申购费原文误引为「上限として別途取扱会社が定める金額」——那是同批其余八件的措辞,本件原文实为「1口当たり金40,000円(税込金44,000円)とします」,是确定额。误引导致留空的理由写成了「实际数额未定」,而真实情况是数额确定、只是含税口径未定。

理由错了,结论碰巧仍是留空。

这才是要害。 一个错的理由和一个对的理由,在这个字段上会落进同一个格子——

错的理由对的理由
理由实际数额未定数额确定,含税口径未定
结论留空留空
完整度不变不变
有无信号无无

因此错误不会被结果暴露。 填值错了会撞上校验、会与来源对不上、会在复核时被看见;留空错了什么都不会发生。这与本篇其余各条讲的错都不同——那些错有代价,这一条没有,它的全部代价推迟到「以后有人想知道为什么这里是空的」那一刻。

与 §8.1(P37)对比,方向正相反:

§8.1 A 级原件内部矛盾本节
错在哪原件错转录者错
是否留痕矛盾在原件里,照录即留痕转述之后,原件的痕迹没了
处置不更正、不选择、两边都录逐字引原文,不得转述

派生纪律:

凡以「未披露」「未定」「无法确定」一类理由留空的,须在内部备注里逐字引出支撑该理由的原文,不得转述。

理由是转述出来的,就无从校验;逐字引出来,错误才会在下一次有人读原文时撞上去。本条正是因为转述才出的错。

已按 §8.3 转录纪律处置:内部备注更正后保留初稿有误的留痕,不覆盖(见本库变更记录)。

7.3 不降标准凑格

「每格有结论」这条验收标准有一个内建的诱惑:一个空着的格子会制造填它的压力,而最省事的填法是把一个不满足硬标准的候选放进去。

本库已就此并列引用过第二条(核心字段不放推断值)与第五条(只填 A/B 级来源支撑的字段)两条铁律,立为不降标准凑格(本库变更记录)。

这条与 §7.2 必须一起读:空格三种状态的价值,正在于它们让「空着」成为一个可以体面结项的结果。没有它们,验收压力就只能由降标准来释放。把「空格不是缺陷,是事实」写进验收标准,是防止凑格的结构性手段,不是一句安慰。

三个已发生的正面实例:SG-5 不因「渣打有 5 亿美元 ABS 代币」就建档(模拟发行,硬标准 1 不满足);uMINT 不因「有 A 级官网稿」就建档(无产品级字段);汇丰港元稳定币不因「有牌照条目」就建档(无产品名称、无代码)。三次都是材料看起来很够,但字段填不出来。

7.4 空格说明的成立要件

三条全中方可结项,缺任一条该格算未结论(收录标准 §10.1):

  1. 检索已穷尽:写明用了哪条取件链路、检索词、命中总数
  2. 候选的下落已交代:零候选,或候选存在但因具体事由不成立(撤回、未生效、不满足硬标准某条)
  3. 事由有 A/B 级来源:撤回须有撤回申报、未生效须有申报状态,不接受「没找到」作为事由

v0.6 草案 C2 拟增第四条要件「载体的覆盖面已写明」——由 OPERA 的 30 行硬顶与 12 个月滚动窗口推出:一条链路的覆盖面若未写明,「检索已穷尽」这句就无法被读者验证。该项未落地前,本节仍为三条。

7.5 Series ID 的存在不证明产品已落地

EDGAR 在申报时即分配 Series/Class ID:Arca 那只未生效的基金已有 S000088189 与 C000254247,产品却一天都未开放认购。

故 Series ID 只能用作「产品级编号」的填值,不得反过来用作可认购性(硬标准 1)的证据。这两件事共用一个编号,但证明力不同。(收录标准 §10.1)


八、拿到原件之后
8.1 A 级原件内部矛盾:不更正、不选择、不向任何一边解释(P37)

事实:Anchorage 2026-07-31 USAT 鉴证报告 Schedule I 脚注 iv 原文——

"Blockchain Celo refers to the smart contract running on Ethereum at 0xD2ab3C9A02DBBAB236BfEC45D1d755DF4267F771."

小标题为 Celo,正文却写 running on Ethereum,两者互斥。 同页脚注 iii 写 Ethereum 链合约为 0x07041776f5007aca2a54844f50503a18a72a8b68,是另一个地址,故不是重复笔误。

处理:

不更正、不选择、不向任何一边解释。 这是第三条铁律「冻结文档不一致先报告、两边都不改」的同构情形——区别在于这次不一致的不是本库的两份文档,是发行方 A 级原件的内部,处理原则相同。(本库变更记录)

已在记录一句话备注中原样留痕,并注明执行者未取到可判定孰对孰错的第二份 A 级来源。

解除条件:发行方后续月度报告改正该脚注,或取到合约浏览器一手证据可确证该地址实际部署于哪条链。在此之前所在链的「其他公链」一项只承载「报告自称的 Celo」,不承载执行者对合约实际部署位置的任何判断。

8.1a 同日两版、发行人段说法相反:取现行版,旧版不用来补新版(2026-10-27,Ed 裁,新形态)

事实:Ondo Global Markets (BVI) Limited 落盘两份基础招股说明书,首页都写 As of November 11, 2025(站点分别标 current/previous),发行人段逐字相反 ——

current(210 页):The Issuer does not have a Legal Entity Identifier (LEI).
previous(209 页):The Issuer Legal Entity Identifier (LEI) is 984500Z0Q6A5E8BE2B61.

Ed 2026-10-27 逐字:「Ondo 的 issuer_lei 留空,按 v0.9 #2 原件内部矛盾分开陈述不调和:现行版明示无 LEI,取现行版;前一版那个码不采,因为『不校验不补全』同时意味着不用旧版去补新版。两版同日而发行人段说法相反,这是新形态,进方法篇。」

处理:发行人 LEI 138 条留空;内部备注逐条补一句两版各说了什么、取哪一版(事实维护,回读 138/138)。

⭐ 与 §8.1 的分工:§8.1 是一份原件内部互斥;本条是两份同日期的版本之间互斥 —— 日期相同,所以「取较新的」这条常用规则在这里没有可用的输入,能分开两版的只有发行人自己的「current/previous」标签。
⭐⭐ 判别句:「不补全」不只禁止用外部常识补,也禁止用同一发行人的另一版文件补 —— 旧版里写着的值,和本库从别处找来的值,在「补全」这个动作上同形。
⚠️ 缺口(记为 v1.1 候选 #1):发行人 LEI没有成因字段,「原件明示无」装不进去,只能落在内部备注;拟 issuer_lei_status,四态与标的 LEI 成因同型。

8.1b WIB 作来源的第一例:法定备案存档件,不是批准件(2026-11-04,Ed 裁,新形态)

事实:德国 TRIQBRIQ AG DE000A46ZXZ4,来源是 BaFin VPInfo 存档的 Wertpapier-Informationsblatt(WIB,2026-06-25 版)。WIB 原文写明本只没有经 BaFin 批准的招股书。这是本库第一条以 WIB 为来源的记录。

Ed 2026-11-04 裁定(三点):

⭐ 判别句:数据库详情页上的字段不等于原件正文。同一机构的数据库记录也不能拿来补原件没写的值。这与 §8.1a「不用另一版文件补」同属「不补全」。

8.2 口径差:不是错误,不得「修正」

本节记录同一事实在不同 A 级来源中因口径不同而呈现的不同数字。这类差异是最容易被误当作错误而「修正」掉的,也是二手来源永远查不到的。凡发现口径差,一律记入本节。(本库变更记录)

实例:HK-4 政府绿债,金管局新闻稿 "priced at 3.633%" 对 hkgb.gov.hk 票息 3.625——新闻稿的 "priced at" 是定价水平,不是票息。2023 首批两个口径数值恰好相同,而这「是新闻稿分列两行的巧合,不能反推『定价水平即票息』」(本库变更记录)。

两个数字碰巧相等,是本库最危险的一种证据——它会让一次错误的等价被当成一次验证。

8.3 转录纪律

8.3.3 日期精度的第二条轴:一份文件上不止一个日期(Ed 2026-09-23 立)

字段字典 §3.5 已有一条日期精度规则:来源只到月精度时填当月首日,并由精度字段声明。那条管的是「知道得不够细」。本条管的是它的正交情形:

签署日、公布日、生效日是三个日期,必须分开记。

Ed 原话:「只取一个会算错五天。」

两条并列,各管一边:

字典 §3.5「月精度填首日」本条「三个日期分开记」
问题形态一个日期,只知道到月三个日期,被当成一个
失真方向精度损失,方向已知、幅度有界取错了那一个,方向未知、幅度不定
声明方式精度字段(日/月/年)逐个转录,不合并、不择一
有没有信号有——精度字段自己在报警没有——填进去的是一个真实存在于原件上的日期,长得毫无问题

本条比精度损失危险,正因为它不损失精度。 月精度填首日填出来的是一个看得出来被归一化过的日期;取错了三者之一填出来的是一个日精度的、原件上白纸黑字有的日期——它没有任何地方在提示「这不是你要的那一个」。

两个实证,同一天撞出,分属法规侧与产品侧:

法规侧(StoFöG)产品侧(DN Group 招股说明书)
签署/文件日Vom 4. Februar 2026(Ausfertigung)Frankfurt am Main, 06. Juli 2026(封面,BaFin VPInfo 库亦列 06.07.2026)
公布/批准日ausgegeben zu Bonn am 9. Februar 2026(Verkündung)Datum der Billigung des EU-Wachstumsemissionsprospekts: 7. Juli 2026
生效/起售日am Tag nach der Verkündung in Kraft → 2026-02-10Das Öffentliche Angebot beginnt am 8. Juli 2026 (9:00 Uhr)
三者跨度6 天2 天
取错的后果§ 20 eWpG 废止生效日写错 5 天发行日期/来源日期互串

产品侧那份文件自己把这条写了两遍:Nachtrag Nr. 1 的首段是「zum Wertpapierprospekt vom 6. Juli 2026 …… der am 7. Juli 2026 von der BaFin gebilligt wurde」——文件日与批准日在同一个从句里并列出现,这说明区分它们不是本库的洁癖,是出具文件的一方自己就在区分。

落地:来源日期记文件自身的日期(封面/落款),不记批准日、不记公布日;批准日与生效日逐字进一句话备注。发行日期记产品起始日(起售/起息/发行日),不得用文件日代替。三者若在原件中相同,也须确认它们相同,而不是默认相同。

可迁移的问法:拿到一份带日期的文件,不要问「这份文件是哪天的」,先问「这份文件上有几个日期,它们各自回答什么问题」。

第三组实证(2026-09-24 补,ZuFinG)——它把本条从三个日期推到第四条轴上。

ZuFinG(BGBl. 2023 I Nr. 354)三个日期齐全且互不相同,且三者都印在同一页上:

逐字日期
签署(Ausfertigung)Berlin, den 11. Dezember 2023;标题行亦作 Vom 11. Dezember 20232023-12-11
公布(Verkündung)Ausgegeben zu Bonn am 14. Dezember 20232023-12-14
生效(Inkrafttreten)Artikel 35 (1) Dieses Gesetz tritt … am Tag nach der Verkündung in Kraft2023-12-15

但 Artikel 35 还有三款,而正是它们改变了本条的形状:

(2) Die Artikel 8, 9 und 17 … treten am 1. Januar 2024 in Kraft.
(3) Artikel 2 Nummer 2 und die Artikel 32 und 33 treten am 1. Januar 2025 in Kraft.
(4) Artikel 16 Nummer 11, 13 und 17 tritt am 1. November 2025 in Kraft.

一部法有四个生效日。 而德国线要追的那一项(Artikel 16 Nummer 11,把 § 20 eWpG 由「向联邦公报公告」改为「向 BaFin 报告、BaFin 维护清单」)恰好落在最晚的那一款里。只读 Absatz 1 会把这项改动提前 将近两年(2023-12-15 vs 2025-11-01),并因此把 BaFin Kryptowertpapierliste 的法定义务期从三个月零九天误读成两年两个月。

于是本条加第四条轴:

同一部法的不同条款可以有不同的生效日。「这部法哪天生效」这个问题本身可能没有唯一答案。

四条轴并列如下:

管什么有无信号
字典 §3.5 月精度填首日一个日期,知道得不够细有(精度字段)
本条主轴三个日期被当成一个无
第四轴(本组新增)一个生效日被当成整部法的生效日无,且更隐蔽——Absatz 1 读起来是完整句,它不提示后面还有例外款

可迁移的问法随之扩写:查一条法条的生效日,不要只读生效条的第一款,要读完整条生效条,并核对自己关心的那一项有没有被单独点名。这与 SC-14 是同一件事——Absatz 1 是「检索范围」,整部法是「问题范围」。

8.3.2 同一种写法,两侧同一类丢失:机器切出残句,人手抹掉括号(2026-09-23)

日本法定文件极高密度地使用「……(以下「○○」といいます。)」这种括号内自带句点的定义式插入语。本轮在同一天的两侧各栽了一次,而且是同一个坑:

侧表现后果
机器按「。」朴素分句,在括号内的句点处切断抽出以「)」开头的残句
人工建档手抄时顺手略去插入语,未标省略号S100V863 转录成「……会社法第681条に定める社債原簿を構成します。」,原件是「……社債原簿(以下、「社債原簿」という。)を構成します。」

两侧的共同点,是这种写法本身就在邀请你把它扔掉:插入语在语义上确实可有可无 —— 它只是给一个词起名字。正因为扔掉它不影响理解,扔掉这个动作不会在任何一次通读里被察觉。

纪律:

括号内的定义式插入语属于原文,转录时不得无标记略去。 确需省略的,以省略号标记。

两条各自的检出方式不同,都要有:机器侧靠分句器的括号深度感知与残句检查(§8.3.1 的产物落盘让这种检查可以反复跑);人工侧只能靠与原件逐字对照 —— 而这正要求原件可回取,又绕回 §8.3.1。

这个坑的隐蔽度评级:它比错别字危险,因为错别字会让句子读起来不对,抹掉插入语会让句子读起来更顺。

凡「删掉之后更通顺」的改动,都要按删改处理,不按润色处理。

8.3.1 判断所依据的抽取结果与记录同寿命(Ed 2026-09-23 立)

规则:凡从原件抽取出、并据以填写字段的中间产物(正文缓存、抽取结果 JSON、命中句清单),一律落在项目目录内(data/ 或 logs/)随仓库保存,不得落在 /tmp 或任何会随重启清空的位置。字段活多久,它的抽取依据就得活多久。

由来:上一轮日本 66 条建档的中间产物放在 /tmp/auth_final.py,随清空灭失。后果是 Ed 授权的「逐字补入建档时已抽取的判档原文句」这项回填前提直接不成立 —— 记录还在,链上权属效力还在,但这个取值是凭哪句原文得出的,已经无从查证。当时唯一能补上缺口的办法是拿链上权属效力反推该引哪句,那正是 SC-12(用看起来相关的东西代替没查的那个字段),且会让推断值穿上原文外衣、此后再不会被复核。只能上呈、拒绝执行,然后重开取件。

这条不是备份纪律,是证明力纪律。 一个字段有两种状态:*有据可查* 和 *看起来一样但查不动了*。两者在表里长得一模一样 —— 正因为长得一样,它不会在任何一次对账里暴露,只会在有人真的要回溯时才发现。丢掉抽取产物不会让字段变错,它让字段变得不可复核,而不可复核的字段和推断值的区别,只剩下当初填的人还记不记得。

推论(复核成本):抽取产物在,改判据时不必重新取件。本轮实证:A 句正则过度匹配被发现后,22 件正文已落盘,重算一次即可;若正文还在 /tmp,这次自查的代价就是重新向 EDINET 取 22 次件 —— 代价越高的自查,越不会发生。

8.3.1a 射程扩到「凭证」:被文档引用的输出,即使它没填过任何字段(Ed 2026-09-29 指令扩)

Ed 逐字:「第一轮探针留痕从 /tmp 搬进项目目录,§8.3.1 适用于凭证。」

扩前的射程:本条原文限定在「并据以填写字段的中间产物」—— 判据是「这个输出下游接着一个字段值」。

扩后的射程:凡被任何一份文档逐字引用为依据的输出,一律同样落盘,不论它有没有填过字段。

触发这次扩张的实例:N-a 探针第一轮的输出一个字段值都没填过(它的结论当场就被推翻了),按扩前的字面不在本条射程内。但它被三处逐字引用 —— 本库v0.9草案§9.2.1、本库字段字典 §2.5.2「第四种形态」、本篇 §8.13。⭐ 删掉它,那三处引用就都变成了没有凭证的断言;而它们恰恰是本周期最重要的几条教训。

⭐⭐ 判据由「下游接着谁」改为「有没有东西在引它」。 前者只盯字段,后者把文档里的论断也算作下游 —— 一条纪律的凭证和一个字段的凭证,需要同样活得久;否则本库会长出一种特殊的空洞:结论仍在文档里,支持它的那次实测已经不可复现,而这与 §8.3.1 正文所说「看起来一样但查不动了」是同一种损害,只是损害的对象从字段换成了纪律。

⭐ 与 §8.9 合流:§8.9 说「错误留痕比干净文档有用」,本条回答了留在哪儿 —— 留痕若落在 /tmp,它的寿命比它要教的那条教训短得多。§8.9 管留不留,§8.3.1a 管留得住不住。

落地:留痕搬入本库落盘数据(含两轮脚本、两份 JSON 明细、两份终端输出原样、70 份原件的正文缓存 pdftext_cache/,另附说明文件写明第一轮为何错、为何不删)。⚠️ 脚本内写死的 /tmp 输出路径与缓存路径须一并改掉 —— 搬了文件而没搬路径,下一次复跑又会把新产物写回 /tmp。 搬迁后已复跑核验:结论一字不差,且因正文缓存同批迁入,复跑由十七分钟降到数秒 —— §8.3.1「代价越高的自查越不会发生」的一次正面兑现。

8.4 可比的沉默:A 写了而 B 没写,「没写」是有信息量的

§8.1 讲原件说了两句互相矛盾的话怎么办。本节讲一个更常见也更难的情形:原件在某处什么都没说。

本库默认的处置是填「未披露」——但日本这一批逼出了一个例外,而这个例外后来成了一条可复用的判据。

事实:同一法律框架(信托法第 186 条的受益権原簿)、同一类文件(有価証券届出書)、同一位置上,两个平台的措辞不同:

平台原文链上权属效力
Progmat「『Progmat』上の帳簿は……本受益権に係る信託法第186条に定める受益権原簿を構成します」链上即权属
ibet for Fin「受益権原簿(受託者が管理する……をいい、当該原簿は……『E-Prime』を利用して作成されます)」链上为副本、链下为准

差别在动词:Progmat 写链上帳簿构成原簿;ibet 写原簿由受託者管理、链上只是用来生成它的工具——生成不等于构成,且 ibet 那份从未把原簿地位赋予链上帳簿。

Ed 2026-09-19 的裁定(照录要点):

「理由不是推断而是文件陈述的结构:文件明确写了受益権原簿由受托人管理、且它是信托法 186 条的法定原簿,链上帳簿只被描述为生成原簿的工具,从未被赋予原簿地位——Progmat 那份把『平台上的帐簿构成原簿』写成了正文,ibet 没写,这个『没写』发生在同一法律框架、同一类文件的同一位置,是可比的沉默,不是文件没表态。」(本库变更记录)

立为判据:

可比的沉默 —— 同一法律框架、同一类文件、同一位置上,A 写了而 B 没写,B 的「没写」是有信息量的,不等于「文件未表态」。

它与「未披露」的边界必须划清,否则这条判据会变成推断的借口:

可比的沉默未披露
文件对该问题有交代(说了原簿在谁手里),只是没作 A 那样的赋权表述完全无涉
有无可比对象有——同框架同类文件同位置的 A无
处置按沉默的位置判读填 未披露

三条成立要件,缺一即退回 未披露:(1) 同一法律框架;(2) 同一类文件的同一位置;(3) 沉默的那一方在别处有正面交代——ibet 那份说了原簿由受託者管理,不是整个问题都没提。

⚠️ 这条判据必须显式标注:本库的做法是一句话备注逐字转录两句原文、内部备注标「结构读法」。理由是它比转录多走了一步——转录只是照抄,结构读法是在比较两份文件,读者有权知道这一步走过。

第二组样本已出现:日本第二批八件中,6 件 Progmat / 2 件 ibet 的措辞与第一批逐字一致(本库变更记录)。这条判据因而不再是一次性的读法,而是一个在同一批文件上可重复的判别。 可重复,才能叫判据。

灾备条款不作依据(字典 §2.20):文件里「若平台停止服务则以受託者记录为准」一类条款,讲的是故障状态下的安排,不是常态下的权属归属。

8.5 权属轴上的两条纪律

链上权属效力是本库最容易被相邻事实污染的字段,已定两条。

(1)第一档有两条不同进路,二者同档。

「记录即权利本身」与「链上记录构成法定名册」是第一档的两条不同进路。 前者适用于根本不存在链下名册的结构(Securitize、汇丰黄金代币),后者适用于存在法定名册且链上帐簿构成之的结构(Progmat)。二者同档。(本库变更记录)

进路机制实例
记录即权利本身通篇不存在原簿/名册,财产价值的记录与移转由平台记录完成Securitize(金商法 2 条 3 項 電子記録移転権利)、汇丰黄金代币
链上记录构成法定名册法定名册存在,而文件写明链上帳簿构成它Progmat

为什么要分开写又判同档:两者达到同一结果的机制完全相反——一个是「没有链下名册可言」,一个是「有名册而链上就是它」。只认得其中一条,就会把另一条误判成低档:碰到 Securitize 那种结构时去找名册,找不到,于是以为权属没落在链上;而真实情况是根本不需要名册。

(2)流转性不属于权属轴。

流转性不属于权属轴。 全面禁止转让是 transferability 的事实,不得用来压低链上权属效力。(本库变更记录)

Securitize 那条全面禁止转让,仍判第一档。Ed 的原话把两者切开得很干净:

「全面禁止转让作为事实一并转录,它不改变权属层的定性,只说明这个权利几乎不流转。」(本库变更记录)

「权利记在哪里」与「权利能不能转手」是两个独立的问题。 混淆它们会产生一种很自然的直觉错误——「都不让转了,链上记录还有什么意义」——而这句话把权属的载体和权利的属性当成了一件事。一份不可转让的权利,仍然必须有个地方记着它属于谁。

(3)零判别力的样板文不得当判据(2026-09-23 立,本轮自查产出)。

日本这批文件里,「財産的価値の記録及び移転が X への記録によって行われます」这句话,ibet、Progmat、Securitize 三家全写,回溯窗口 22 件 22/22 命中。一个在全样本上命中率 100% 的模式,判别力恰好是零 —— 它不区分任何两条记录,把它当 A 句族的第二条,结果就是 22 件全判第一档。

它看起来像判据,是因为本库变更记录里确实有一例(S100SZOI)靠它落了第一档。但那一例成立的真正原因不是这句在,而是 B 句不在(即 §8.4 的可比的沉默)。把「双缺席时的兜底」误当成「在场即成立的正面证据」,是一次典型的条件丢失。

由此定三条:

  1. 平台记录句只在 A 句与 B 句双双缺席时参与判断,且必须在一句话备注里标明它零判别力、此处落档凭的是双缺席。引文的效力必须跟引文一起存 —— 否则下一个读到它的人会以为这句话本身证明了什么。
  2. 新增任何抽取模式后,先看它在本批的命中率。 逼近 100% 或逼近 0% 都是警报,不是捷报。
  3. 这是 §4 已立的零方差是过度匹配的自供状在原文抽取上的第二次实证。第一次在 Jev 遮蔽清单(SC-12 实例 E)。

本轮的两读,实际是后者:22 件与库内冲突时,「本库填错」与「我的规则错」都说得通;查命中率分布立刻定案 —— 是规则错。修正后 22/22 与库内一致。能把它分开的不是谨慎,是那个能分开它们的数字。

(4)A 句 40/40:本库权属判据第一次拿到外部可复现性证据(2026-09-23)。

把 63 条日本记录的判档原文句遮去答案后,交给一个不知道结论、也读不到链上权属效力的外部模型独立判档:

判据n准确率平均置信度
A 句40100.0%0.859
B 句2035.0%0.450
平台句(双缺席兜底)30.0%0.493

A 句 40 次全中。 这是本库的权属判据第一次不靠「填表人说他是这么判的」来自证 —— 同一段原文,换一个不知道答案的读者,复现出同一个结论,四十次。

在此之前,本库对判据可靠性的全部依据是内部一致性:同一个人按同一套口径填,填出来当然一致。那证明不了判据可执行,只证明了它被一致地执行了。(可进专栏。)

⚠️ 同一张表的另外两行,量出的是缺口,见 §8.5(5)与字典 §2.20 第二档成文规则。

(5)引文能传递「在场」,传递不了「不在场」(2026-09-23 立)。

上表平台句 0/3。这三条的档位凭的是 A 句与 B 句双双缺席(§8.4 可比的沉默),而交给模型的只有那句零判别力的平台样板文 —— 它当然判不出来。缺席不是一段可以被引用的文字。

这是空值三态那条老规则在证据层的镜像。 字段层早就分清了「填了空」「查过没写」「没查」三种状态,靠的是枚举值,不是靠在自由文本里描述。证据层同理:

「此处没有 A 句」这个判据,必须靠一个枚举值来说;它说不进引文里。

这就是 basis 枚举存在的理由,也是 v0.8 字段权属依据原文必须「枚举 + 原文句」成对存的原因(Ed 2026-09-23 定,枚举值=A 句/B 句/双缺席兜底/其他)。若只存原文句,双缺席兜底那一类会永远呈现为「存了依据、而依据支持不了结论」 —— 看起来像填错,实际是这种判据根本装不进那个格子。

8.6 量纲错:值对、纲错、整批一致,批内看不出来

Ed 2026-09-21 定性(原话照录):「这种错的形态是『值本身正确、量纲错、且整批一致所以在批内看不出来』,只能靠跨批比对发现,和完整度脚本那次『存量零漂移』的检验是同一类——跨批一致性检查该成为每批建档后的固定动作,不只查完整度,也查数值字段的量级分布。」

实例:FY2024 批次 23 条的规模数值全部填了原币种原值(smtb-mitsui-nasu-outlet-jp = 11450000000),而字典 §1.5 写死「单位统一为百万」。差 10⁶。

这类错为什么躲得过所有既有检查,值得逐条拆开:

检查为什么没拦住
逐条回原文核原文数字抄对了——11,450,000,000 确实是発行価額の総額。错的不是抄写,是抄完之后那一步换算
完整度脚本只数有没有值,不看值的量级。23 条全都有值,满分通过
批内互核23 条整批一致,互相印证得完美。一致性在这里是伪装,不是证据
Ed 的审核审的是判断——判据、留空理由、两读。单位不在审核清单上

共同点是:每一层都在各自的尺度内正确。 错误只在换一把尺时才现形,而那把尺不在任何一层的手里——它要求把这一批和别的批放在一起看。

因此本条的处置不是「以后小心点」,而是加一个动作:

跨批一致性检查(每批建档后的固定动作)

  1. 完整度零漂移:backfill_completeness.py 复跑,存量条目须全部「已一致」。已行之有年(本库变更记录)。
  2. 数值字段量级分布:对规模数值一类有量纲的字段,跨全库打印量级(log10)分布,看有没有断层。新增。

第 2 条在本次的实际效力:全库 78 条有规模数值的记录里,量级 ≥ 10⁶ 的正好 23 条,一条不多一条不少,其余 55 条连续落在 10⁻¹ ~ 10⁵。断层本身就是判据——不需要事先知道哪一批错了,分布会把批次边界画出来。

顺带排除了一个疑似:shinsei-trust-tokiomarine-jp-pe-st-jp = 100,000.00(10⁵)看着也大,但它是正确的百万值(1,000 億円上限),由本库变更记录交付表原文「100,000.00(上限)」佐证。这说明量级扫描只负责画出可疑集合,不负责定性——每一条仍要回原文或回留痕才能判。

与 §8.2「口径差不是错误」的边界:口径差是两个 A 级来源对同一事实给出不同数字,双方都对,不得修正;量纲错是本库自己在转录时换错了尺,只有一个正确答案,必须修正。分辨点在「差异出现在库外还是库内」。

与铁律四的边界(Ed 2026-09-21 裁定):

「它是已发布记录但错的是单位不是判断,属于事实性纠错;铁律四防的是擅改判断,不是禁止改错数。」

处置仍走 dry-run:执行者出 old → new 全表,Ed 核数后才 --apply,逐条差异写进本库变更记录留痕。「可以改」与「可以不打招呼地改」是两件事。

审核清单自本日起增一项(Ed 立):数值字段的单位与字典口径一致。Ed 对这一项的归属定性照录:「我审的时候没看单位,这是我这一层的漏洞,不是它的。」

✅ 已闭环(2026-09-21):Ed 核数后裁「dry-run 核过,23 行统一除以 10 的 6 次方,apply」。23 条已写回(只动规模数值与更新日,收录状态与其余字段未动)。写回后复核:量级 ≥10⁶ 的残留 0 条;全库 78 个规模数值的量级分布回到 10⁻¹~10⁵ 连续无断层(10⁻¹:1/10⁰:1/10¹:3/10²:9/10³:53/10⁴:10/10⁵:1,中位数 2,466.51 百万)。规模数值的跨批统计自此可用。

§8.6 的护栏由 Ed 2026-09-21 定为两层(D8 裁定),取代「只靠流程层再加一道检查」:

层动作时点阈值
批内建档脚本 dry-run 阶段比对:本批数值与该字段已发布记录的中位数相差 两个数量级 即拦下落库前两个数量级,误报了再调(Ed 原话)
跨批落库后做量级分布扫描(log10 直方图 + 断层检测),即本次的做法固定化每批落库后看断层,不看绝对值

为什么必须是两层:本次事故里批内四层检查全部放行——因为 23 条整批一致,批内任何比对都对得上。批内层拿已发布记录的中位数作参照,正是为了把参照系挪到批外;跨批层则是这一条的兜底。两层防的是同一件事的两个时点:落库前拦、落库后查。

8.9 错误留痕比干净文档有用(Ed 2026-09-23 立)

Ed 原话:「错误留痕比干净文档有用。」

体例:结论被推翻时,不删除原文,不静默改写。原段落整段保留,逐条标注「作废一 / 作废二 / 作废三 ——(作废理由)」,改正后的事实另起一节。文档因此变长、变不整齐,这是预期代价。

首个实例:2026-09-23 本库变更记录「重开取件 · 第二批」第三节,三条结论全错(详见 §4.7 SC-13):

作废原文写的实际
一丰田条「原件已满期不可取件」仅 EDINET API 三种 type 取不到;disclosure2dl 直链当日 HTTP 200,真 PDF 120,303 字节 17 页,正文可抽
二「由此更正本库记错的期限」本库 §5.3 早已写明 PDF 通道对过期件仍可取,且该表订正过一次,订正物证正是这一条
三「随発行登録效力与償還终止」真实原因是发行方 2025-03-07 另提新発行登録書 S100VA8I,旧母体被取代;「償還」是补出来的因果

为什么保留比删掉有用:

裁决层的对应动作(Ed 2026-09-23 自认领):

Ed 原话:「我上一轮直接采纳了『原件已不可取』这个前提并让它写留痕,没有让它先核直链 —— 三层验证里我这层也漏了。以后凡涉及『某件事已不可能』的断言,我在裁决前要它列出试过的全部通道。」

即:执行层负责不把「A 通道取不到」说成「取不到」(SC-12),裁决层负责在采纳任何否定性断言前,先要通道清单。「不可能」是本库唯一一类无法靠引文支持的断言 —— 引文能传递「在场」,传递不了「不在场」(§8.5(5)),所以它只能靠穷举已试通道来替代,而通道清单必须显式列出、可复核。

8.9a 原位订正的机检形态(Ed 2026-10-20 定为常设:以后所有原位订正都带这条)

§8.9 立的是「原位不删」这条纪律,而一条纪律写成描述和写成断言不是一回事。
2026-10-20 第 12 批十条内部备注的错陈述订正给出了它的机检形态:

要件落法
原句一个字不动断言订正后文本里原句恰 1 处
订正句紧接其后断言 index(原句) + len(原句) == index(订正句)
不是改写/删除/末尾另加上一条同时排除这三种 —— ⭐ 末尾另加会让读者先读到错句、很久以后才读到订正,而「读到了」与「读到了之后还记得」不是一回事
射程写死PATCH body 只含该字段;条数、字段名、不动更新日、不开 typecast 全部写成断言
两步先 dry 后 apply,apply 后回读逐条

⭐⭐⭐ Ed 2026-10-20 逐字:「原位订正的机检形态——index(原句)加len(原句)等于index(订正句)——是本轮最实的一小步,把 §8.9 从一句描述变成了一条断言。以后所有原位订正都带这条。」

⚠️ 没有这一条时,「原位」只是执笔人对自己做法的描述 —— ⭐ 而一句描述与一条断言,在文档上长得一样。

8.9b 被订正的那一句,它的错因本身要留(2026-10-20 实例)

该次订正的原句是「PATS 仍区分大小写,本批只是没踩上」,⛔ 它在写下的那一刻就已不成立(同轮立的 v2 已给日期探针加 re.I,而那一批的取件正是用 v2 跑的)。

⭐⭐⭐ 判别句(Ed 2026-10-20 收):一条从上一批继承的陈述,可以在本批已经不成立,而档面上与成立时一样。

⭐⭐ 族属(Ed 指出):它与 R-3「继承来的日期是推断值」同族 —— 一个是值,一个是句子。

8.9c 「第一次」与「第 N 个」必须附回扫范围(Ed 2026-10-20 立为常设)

Ed 逐字:「「本系列第一次」的射程是整条线,这句立成规则:凡在简报里写「第一次」或「第 N 个」,必须附回扫范围,没回扫全线的不许写「第一次」,写「本批首见」。」

要写的话前置条件
「本系列第一次」/「第 N 个」必须回扫整条线(全部已落盘批次),并在同一句里写明回扫范围与口径
没回扫全线⛔ 不许写「第一次」 ⟹ 改写 「本批首见」
回扫受限(某几批无该字段/无落盘)⚠️ 照实写无从比对的那几批,⭐ 不得把「没查到」说成「没有」

实证(2026-10-20,执行者自报):曾把 NBISon 报成「本系列第二个非美国标的发行人」、STXon 报成「第三个」——
⛔ 都错:按「地址段里不含任何「美国」写法」回扫全线,它们至少是第 9、第 11 个(全线 15 份,另有 MPon 地址不载国别 1 份,第 2–4 批 30 份探针无该字段 ⟹ 无从比对)。
成因:当时只看了最近几批,没有回扫全线。
⭐⭐⭐ 判别句:「本系列第一次」这种说法的射程是整条线,而它常常只被在最近几批上验过 —— 一个没有回扫过的「第一次」,与一个回扫过的「第一次」,在简报里长得一样。
⭐⭐ 族属:与 R-3(继承来的值是推断值) 同族 —— 前者继承的是值,本条继承的是范围:⚠️ 「第一次」里隐含着一个「我查过全部」的断言,而那个断言从不被写出来,所以也从不被检查。

⚠️ 本条同样适用于裁决层(Ed 2026-10-20 同日自报的一例):他按一周前的计数说「published 还是 216、draft 会积到 50」,而实态是 published 246、Ondo 线 111 条已全部由他本人发出。
⭐ Ed 逐字:「这是我自己做的动作,我却按一周前的计数在说话,正是 R-3 说的继承值。」
⭐⭐ 故本条的落法是对称的:执行者在简报里写「第 N 个」要附回扫范围;两层在引用库内计数时都要现读 —— ⚠️ 「我做过这个动作」并不使那个计数变成现值。

8.10 对外镜像的写序通则

先写新、核对过、再删旧。

8.11 事实进公开层,判断过程留内部(Ed 2026-09-25 裁定,成文)

权属依据原文(发行文件权属条款的逐字原文)该不该进公开层,上呈时两读并存:一读称「原文逐字转录是事实,不该藏进内部栏」,一读称「它与已定为公开层不可见的 internal_note(同样装原文)形态高度重合」。Ed 裁定进公开层,并由此成文:

内部备注之所以不进公开层,不是因为它装原文,是因为它装的是执行过程中的内部判断与取舍。逐字原文本身是事实 —— 事实进公开层,判断过程留内部。

此后同类问题按此读,不再上呈。 判别时问的不是「这个字段装的是不是原文」,而是「这里面有没有执行者的选择」:逐字转录没有选择(选择在「取哪一件」那一步,已由取件地图承担),而「为什么选这一句、为什么不采另一读、当时卡在哪」全是选择。

⭐ 这条同时解释了权属依据类型与权属依据原文为什么必须拆成两个字段(v0.8 #1,Ed 原话「一个字段装不下两样东西」):档位是判断的产物、原文是事实,两者混在一格里,本条分界就无从落到字段层 —— 拆字段不只是为了好读,是为了让「事实/判断」这条线可以在结构上被执行。

8.12 悬而未决的判断什么时候可以先走(Ed 2026-09-29 指定进本篇)

2026-09-29 RHJ 第四批撞出一个本库没有判据的地方:两条底层原件写 ADR、此前四个样本写 ADS,而 v0.8 #12 的阈值要数「三个以上不同结构的凭证样本」。判「ADR 与 ADS 算不算两个不同结构」需要对法律形态作认定,而认定恰是本库不做的事 —— 本库能确认的只有「原件里是两个不同的词」,而词不同不等于结构不同。

当时的处置是不阻塞建档、上呈待裁,依据即本条:

⭐⭐ 一个悬而未决的判断,恰好在两读下给出同一字段值,能先走的前提是「两读同值」已实测,不得推广成「悬而未决就先走」。(Ed 2026-09-29 逐字指定入本篇)

两读同值当时是实测出来的,不是估计的:读作 2 种结构或 1 种,都不足 3,都不触发新设底层资产类别档;六条存托凭证记录的底层资产类别(全 股票与权益)与底层资产细分(逐字照录原件用词)取值完全一致。

⚠️ 这一条最容易被误用成一句免责话。 它成立靠的是那个已经算过的「都不足 3」,不是靠「反正现在填什么都一样」这种感觉 —— 一旦某批里两读给出不同字段值,必须先裁后填。

⭐ 它与 §8.1「A 级原件内部矛盾:不更正、不选择、不向任何一边解释」同源而分工不同:§8.1 管的是原件内部两句话打架(两句都是事实,本库不替它们选);本条管的是本库自己缺一条判据(事实只有一个,本库没有裁它的资格)。两者都通向「不自行认定」,但 §8.1 的出口是「两句都留」,本条的出口是「先核两读是否同值:同值则先走、异值则先裁」。

⭐ 后续:该问题已由 Ed 2026-09-29 作为 v0.9 #6 裁定,走的是第三条路 —— 不裁「ADR 与 ADS 是不是同一结构」,改裁「本库怎么数」:按原件术语计数,不数法律形态。 ⚠️ 这一裁定印证了本条的射程:先走那一步换来的时间,被用来找一个「不需要作认定也能数」的口径,而不是用来等一个本库无权作的认定。

8.13 两个方向相反的错误会对冲成一个干净的结果(Ed 2026-09-29 指定进本篇)

⭐⭐ 两个方向相反的错误合成的结果,看起来最像没有错误。

实例(N-a 探针第一轮,2026-09-29):扫列支敦士登 70 份原件判「文件日期与动作日期取值不同」,两个系列都跑出干净的 0 份矛盾。去读原样命中串的上下文,这个 0 是两个方向相反的错误各抵掉一半拼出来的:

系列错型原件逐字
RHJ 40 份假阳性「Date of approval of the Base Prospectus … The Base Prospectus was approved on 25 June 2026」—— 动作对象是被引用件,RHJ 根本没有关于本文件的动作日期
Ondo 10 份假阴性「The Final Terms … have been filed with the FMA on 11.11.2025」vs 首页「dated 26 March 2026」是真矛盾,却被同一份里 Base Prospectus 的 dated 11.11.2025 撞出的交集判没了

⭐ 只犯一种错,输出会刺眼:只犯假阳性会跑出一个大得可疑的数,只犯假阴性会跑出一个零得可疑的数 —— 两种都会促使人再看一眼。两种一起犯,跑出来的是一份平静的报表,而平静恰恰是最不触发复核的状态。

⚠️ 这一条否定了一种很自然的自查方式:「数字看着合理」不是证据。⭐ 能把对冲拆开的不是复核计数,是回去读那个命中串的主语是谁 —— 本例里,approved on 和 filed with 两个锚点各自命中的句子,主语一个是 Base Prospectus、一个是 The Final Terms,而计数栏里它们长得完全一样。

⭐ 它是 v0.9 #4「命中计数不是证据,命中的那个 token 才是」的第四种形态,并把 #4 的要求又推进一层:#4 立时面对的三种都是假阳性(大小写不敏感/跨语言 IEVADS/子串 ratio),09-27 那次是假阴性,本次是两者同时出现在一份输出里。故「回报原样命中串」还不够 —— 得看得出这个串在讲谁。日期类锚点尤甚:一份 Final Terms 里至少同时存在三份文件的日期(本件/Base Prospectus/Programme),dated 这个词单独出现时不指向任何一份。

⭐ 与 §8.4「可比的沉默」互为反面:那里说「没写」有信息量;这里说「看起来没问题」没有信息量 —— 一个平静的输出既可能是真没事,也可能是两处有事撞在一起,二者在报表上同形。

8.14 阈值按系列数写,挡的是模板放大出来的假普遍(Ed 2026-09-29 指定进本篇)

⭐⭐ 同一个模板出现十次,证明的是模板存在,不是现象普遍。

实例(v0.9 #2 的触发条件,2026-09-29):#2 把「要不要为动作日期新建字段」写死为 —— 同型矛盾在两个以上系列出现才建。探针实测:同型矛盾只在 ondo-global-markets 一个系列出现,10 份,十份全同;RHJ 40 份一份没有 → 1 < 2,不触发。

⭐ 若阈值当初写成「两条以上记录」,10 ≫ 2,v0.9 就会为此新建一个字段。 而那 10 份同出一个模板、同属一个系列 —— 它们证明的是「Ondo 第三批的模板里有这个矛盾」,不是「原件内部矛盾是个普遍现象」。

⭐ 阈值挡掉的不是一个假现象,是一个真现象的假普遍性。 矛盾本身是真的(立 #2 的证据就是它),假的是它的分布 —— 把「真」与「普遍」当成一件事,是本库新增字段时最容易踩的那一步。

⭐ 这是 v0.8 #12「三份同一家发行的 ADS 不构成三个样本」在另一个字段上的第二次现身 → 由一次观察升为一条通则:凡以「出现了多少次」为门槛的规则,计数单位一律取「独立来源」(系列/发行人/法域),不取「记录条数」。 ⚠️ 记录条数是取件批次的产物,取件批次由本库自己决定 —— 用它做阈值,等于让本库的排产节奏决定本库要不要建字段。

⭐ 与 §8.12 并读:#2 的处置(先立文本规则、把「以后再说」写成一个可检查的条件)与 §8.12 的「先走」同形 —— ⭐ 两者都不是折中,而是把「什么时候该改变做法」这件事本身写成了数字。

8.15 判据缺一格时,先看这一格能不能改变结论(Ed 2026-09-29 指定进本篇)

⭐⭐ 判据缺一格时,先看这一格能不能改变结论,而不是先去补这一格。

实例(N-a 探针第二轮,2026-09-29):第二轮加了「日期归属判别」—— 看 dated 命中前一段窗口里有没有被引用件的名字。RHJ 的句子作「…Tokenised Products Programme dated 26 June 2026(“Final Terms”)」,Programme 在前而定义出来的是 Final Terms,窗口法答不了这一格,故 RHJ 的「本文件日期」计为 0 份。

没有去补它,理由不是「差得不多」,而是它改变不了结论:RHJ 的动作句主语已逐字确认是 Base Prospectus,RHJ 的动作日期那一半根本不属于本文件 —— 本文件日期无论取哪个值,都凑不成一对「本文件的两类日期」。

⚠️ 这一条极易被误用成偷懒的借口,两条边界钉死:

  1. 「改变不了结论」必须是论证出来的,不是估计出来的 —— 本例的论证是「另一半不在场」,是一个结构性理由,不是「大概不影响」。
  2. 判不了的那一格必须如实记着,不得因为不影响结论就抹掉。 ⭐ 「本库判不了」与「本库判了是 0」在字段上同形、语义相反 —— 这正是 v0.9 #3 要分的那条线(其他 单档时区分「原件没说」与「本库没找到」)在探针层的同一个形状。

⭐ 它与 §8.3.1a 是一对:§8.3.1a 要求把凭证留住,本条要求先判断这份凭证要不要去取 —— 留住已有的证据是无条件的,去补缺失的证据是有条件的,条件就是它能否改变结论。⭐ 否则本库会把力气耗在「把每一格都填满」,而不是「把结论钉住」。

8.16 同一个成因造出的两个现象,互相印证等于零证据(Ed 2026-09-29 指定进本篇)

⭐⭐ 同一个成因造出的两个现象,互相印证等于零证据。交叉验证只在两个来源真正独立时才成立。

实例(Ondo 第四批,2026-09-29):COPXon 与 GLDon 两条要填底层 LEI,手上有两个「互相印证」的信号:

信号输出看起来证明了
CMS 索引标的 LEI= null目录方没有这个值
本库探针原样词边界 \bLEI\b 命中 0原件里没有这个值

两者指向同一结论「原件不载 LEI」,且一个来自第三方索引、一个来自原件全文,形态上正是本库最看重的那种交叉验证。结论是错的 —— 换精确锚点 The Underlying asset is issued by 重抽,两份原件都载:…and the Legal Entity Identifier is 549300L5RUQZ388WGS57.

⭐ 两个信号不独立,它们共同的成因只有一个:这两份原件的 LEI 写法与众不同 —— 用全称 the Legal Entity Identifier is,而不是同系列另外三十八份的缩写 LEI:。缩写锚点漏掉全称写法,于是本库探针报 0;CMS 抽取器同样只认缩写,于是索引栏为 null。⭐ 两个「来源」其实是同一个抽取难点的两个下游。

⚠️ 判别独立性的问法不是「这两个数字是不是从两个地方来的」,而是「有没有一个单一原因能同时造出这两个输出」。 本例那个单一原因(写法不同于模板)一句话就能说完,而它同时解释了两边 —— 这就是不独立的判据。

⚠️ 这条立完之后,「索引与原件对得上」这句话的证明力要重新算:本库前三批曾以「CMS 索引与原件逐字一致」互证过五处,那些互证之所以有效,是因为核的是在场的值(两边都有值、逐字比对);⭐ 本例核的是不在场,而「不在场」在两个来源里可以由同一个抽取缺口造出 —— 引文能传递在场,传递不了不在场(§8.5(5)),交叉验证也一样。

⭐ 与 §8.13 并读,两条讲的是同一类平静输出的两种成因:§8.13 是两个方向相反的错误对冲成干净结果;本条是两个同向的、同根的错误堆成一个看起来被印证过的结果。⭐ 前者的拆法是「读命中串的主语是谁」,本条的拆法是「问这两个输出有没有共同的上游」。

⭐ v0.9 #4 的第五种形态,并给它补了一个反方向的缺口:#4 的词边界纪律当场拦下了这次假阳性(德文 EINLEITUNG 含 LEI),但同一条纪律拦不住这次假阴性 —— ⭐ 词边界管的是「命中的是不是这个词」,管不了「这个词是不是唯一的说法」。 故凡以某一术语作锚点取值,必须同时列出该术语的缩写与全称两套写法,任一套 0 命中时另一套必须实抽过。

⚠️ 代价已实测:本条错了的两格写进过 published 记录(ondo-global-markets-iau-li/-slv-li,2026-09-29 由 Ed 预先授权改正)。⭐ 而它被发现的路径,不是复核那四条同类记录,是新批次里撞上了同一个写法 —— 见 §8.17 末段。

⭐⭐⭐ 8.16a 页数是模板的代理变量,而代理会失真 —— 事前判定的单位从「按组」改为「按件」(Ed 2026-10-13 裁定)

本条的由来:§8.16 的事前判定(第五批起实行)一直用页数作为「哪个模板」的判据,再由模板推出三道探针的预期读数。该用法在第 5–9 批连续命中,但它命中的原因是那几批的日期组恰好单一模板,不是「页数决定模板」。

失真的实测证据(2026-10-13,全 138 份 Ondo Final Terms 索引全量交叉表):

页数份数索引标的 LEI
1402—
1416463 有值 / 1 null
1424—
14466/6 null(而原件 6/6 确载)
1462828/28 null(原件已实测 5/5 确载,见下)
1471—
15433⚠️⚠️ 27 有值 / 6 null —— 同一页数内部分叉

⭐ 154 页那一行就是代理失真的实证:同一个页数里两种读数并存,所以「页数 = 模板」在这 33 份上不成立。⚠️ 并且 2026-07-16 组(57 份)内部页数 146/147/154 三分叉,是本库第一个「单一日期组内含多模板」的组。

✅ Ed 2026-10-13 裁定(逐字):

「分组纪律只按解析后日期,不按模板;模板不是分组依据,是探针预期的依据。所以 07-16 组按组内 ISIN 升序照常切批,每份的模板由页数加探针在取件时逐份判,§8.16 的事前判定从「按组」改成「按件」,154 页件内部的 27 比 6 分叉也就是逐件处理,不需要再分子组。」

据此定版三条:

  1. 分组纪律不变:唯一分组依据是 ft_dated 解析后的日期;组内按 ISIN 升序切批。模板从来不是、此后也不是分组依据。
  2. 模板的职能被收窄:它是探针预期读数的依据,不是分组依据,也不是略过实抽的依据(§8.17a)。
  3. 事前判定的单位改为「按件」:每份的模板在取件时由「页数 + 三道探针实抽」逐份判定。⚠️ 同一组内允许多模板并存,不另分子组。

⭐⭐⭐ 判别句(可迁移):一个代理变量在连续多批上命中,证明的是那几批里被代理的那件事恰好与它同变,不是它就是那件事。 代理失真的表现是它继续给出一个读数,而那个读数不再对应任何东西 —— 与 §8.18 的恒真断言同族:两者在输出上都和「正常工作」没有区别。

⭐ 与 §8.17a 的分工:§8.17a 管「形状吻合不是略过实抽的理由」(模板对了也要抽);本条管「形状本身可能根本没对」(模板的判据先失真了)。前者防的是省步骤,后者防的是省步骤的那个理由本身是假的。

8.17 结论正确会掩盖假证据,证据要逐条独立核(Ed 2026-09-29 指定进本篇)

⭐⭐ 结论正确会掩盖假证据。证据要逐条独立核,不能因为结论对就整包接受。

实例(Ondo 第四批 TEMPLATE PRECHECK,2026-09-29):模板前提检查报两个键各「2 版」,结论「模板法前提不成立 → 逐份实抽」。结论是对的,但两条支撑证据一真一假:

键两版差在哪真假判据
ledger_sentence合约地址后有无句号(本批 9 有 1 无)真差异与前三批「17 份带句号/13 份不带」同型,延续至本批
governing_lawdebt securities vs debt s ecurities抽取伪影同一份 COPon 内部,securities 正常拼写 31 次、s ecurities 2 次 —— 同一份文件里同一个词抽出两种形态,只可能来自 pypdf 的字间距处理,不可能来自原件用词

⭐ 假的那一条不改变结论(ledger_sentence 单独就足以否掉模板前提),而这正是它能留下来的原因 —— 结论一旦对,就没有任何输出会提示其中一条证据是假的。⚠️ 「结论对」是整包接受证据时最常用、也最不可靠的理由。

⭐ 判别一条差异是原件的还是抽取器的,靠的是同一份文件内部的自我对照:把同一个词在同一份 PDF 里的全部形态数一遍。跨文件比对答不了这个问题(不同文件可以真的用词不同),同一份文件内部的两种拼法只能来自抽取层。

⚠️ 这一条给「原样比对、不得归一化」(v0.9 #5)划出了边界:原样,原样的是抽取结果,不是原件。 原件与那一行之间隔着一层 pypdf,而这一层自己会造出差异。⭐ 处置不是加归一化(归一化会把 ledger_sentence 那个真句号一起抹掉,把唯一一条真证据也变成假的),而是把各版原文逐字落盘,让读这一行的人能自己判哪一版来自原件、哪一版来自抽取器。

⚠️ 「N 版」这个数字本身判不出那 N 版的成因 —— 这是本轮第三次撞上同一个形状:

#汇总行被压在一起的两样东西
1索引 null + 探针 0两个不独立的同根错误(§8.16)
2governing_law 2 版 + ledger_sentence 2 版一条假证据 + 一条真证据(本条)
3governing_law=10MISS + constitute=10MISS「锚点写错、要改脚本」+「原件真没有、要改结论」

⭐⭐ 数字相同不代表成因相同。一行汇总会把性质不同的东西压成同一个数。

⭐ 四条同类里两条错两条对,而两条「对」各有各的原因 —— §8.16 那两格错值的同批四条 ETF/信托记录:spy-li 是当时碰巧抽对了那一段,qqq-li 是原件真的不载(全称写法 0 命中,已实测)。⚠️ 只抽查一条,抽到哪一条对都会读成「这一型没问题」。 ⭐ 这是 §8.13 的第二种形态:那里是错误互相抵消,这里是正确的样本给错误的样本作了掩护。

⚠️ 最要紧的一点:存量里的这个错,在存量里没有任何迹象。 iau-li 那句「原件未载 LEI」与真·不载的 qqq-li 一字不差。它之所以被发现,是因为新批次里撞上了同一个写法 —— ⭐ 本库对存量的自查能力,受限于「错误会不会在库里留下形状」;不留形状的错,只能等下一次同型取件撞出来。 故凡改正一处此类错值,必须同时把同型探针在全库存量上跑一遍(本次实测:全库 177 条,命中「称原件未载 LEI」4 条,改 2 条、留 2 条)。

✅ 本条的收口(Ed 2026-10-11 点名为「本批最实的方法增量」):从两道零到三道零

Ed 2026-10-11 逐字:「码形探针让"原件不载LEI"从两道零变成三道零,是这一批最实的方法增量。」

上文那次错的修法只补到第二道(缩写 + 全称两套标签)。⚠️ 两套标签都是标签,而 ⭐⭐ 标签两套都不在场时,值本身仍可能在场。第五批补上第三道:码形探针 —— 不依赖任何标签,直接按 LEI 的码形去原件里找值。

道锚点依赖失效情形
一缩写 (?<![A-Za-z])LEI(?![A-Za-z])标签原件用全称
二全称 [Ll]egal [Ee]ntity [Ii]dentifier标签原件不写标签,只给值
三⭐ 码形 (?<![A-Z0-9])[A-Z0-9]{18}[0-9]{2}(?![A-Z0-9])不依赖标签值被拆行/被 OCR 改形

定版(纪律):「原件不载 LEI」这个结论此后必须三道同时为 0 才能下。⭐ 第五批建档脚本据此下了一条硬断言 —— 本表每条 LEI 必须出现在码形探针独立抽到的值集合里(不靠标签,靠值);全称写法本身也已实测为「不是一种写法而是一族写法」(第四批 GLDon 作 Identifier is5493…(连写)、第五批作 Identifier is 5493…(带空格)),故锚点不得卡在标签的尾字符上。

⭐⭐ 判别句(可迁移):一个「不载」的结论,有多少道探针依赖标签,它就有多少种默默为假的方式 —— 补探针要补的不是更多锚点,是一道不依赖标签的。 前两道是同族(都问「有没有人在这里宣布这是 LEI」),加一道同族的探针不增加独立性(§8.16);第三道换了问法(「这里有没有一个长得像 LEI 的值」),它才是第一道真正独立的证据。

⚠️ 升为字典硬性体例第 ⑥ 条须 Ed 授权,执行者不自行加 —— 本库字段字典 §2.5.2a 的体例表是规则条款,增一条即按门槛② 定义算变更、计时归零。本条暂只落方法篇(方法篇不在门槛② 的两份字典之内),升体例的时点建议与 v1.0 定版合批,理由同三个 v1.0 候选的排期耦合。已上呈。

⭐⭐⭐ 8.17a 三道零是「不载」的充分条件,不是「载了什么」的判读规则(2026-10-12 第六批 OKLOon 实证)

第六批取件前,VGG7001ACH55(OKLOon)被我按旧经验标成高风险件:登记簿索引的 LEI 为 null。此前四条 null 件的成因都是页数异常 + 标的为 ETF(144/146 页、iShares),而这一份页数 141 与同批另九份完全一致、标的是普通股,事前判定给不出解释 —— 这本身就是该实抽的信号。

实抽后三道探针的读数是:

件页缩写全称码形索引 LEI
VGG7001ACH55 OKLOon141100null
同批另九份141101有值

原件逐字是 LEI: N/A。⭐⭐⭐ 即原件载了 LEI 这一项,载的内容是 N/A。

⭐⭐⭐ 判别句(可迁移):「原件不载」与「原件载明为空」是两种不同的事实。 §8.17 定版的「三道同时为 0 才能下不载结论」给出的是不载的充分条件,它不负责判读「载了」的内容 —— 缩写或全称任一有命中时,必须读回那一道命中处的上下文,才知道命中的是值还是一句空值声明。本批若只看「码形=0 + 索引=null」两格,会把「标的方自己没有 LEI」记成「本库没抓到 LEI」。

⭐⭐ 附带的第二个判别句:OKLOon 的「索引 null + 码形 0」确实同源,与 §8.16 禁止的「同源旁证互证」是同一形状 —— 但这一次成因是真的(标的方确实没有 LEI),不是第四批那种「写法与众不同」。同一个现象组合可以第一次为假、第二次为真;旁证的价值不在它出现过几次,在每次的成因是否被单独查过。

落地(第六批建档脚本已实测):这一条「为什么没有 LEI」不写成注释,写成五条会失败的前置条件 —— 索引 LEI 为 None、码形集合为空、全称命中数为 0、缩写命中数 ≥ 1(为 0 则是「不载」而非「载明 N/A」,须改写)、原件逐字含 LEI: N/A。

⚠️⚠️ 对 v1.0 候选 #1(LEI 两字段)的硬性设计约束:新字段必须能表达「原件明示无」这第三态,不能只有「有值」与「留空」两态;否则 OKLOon 会与「本库没抓到」挤进同一格 —— 那正是 §8.15 一直在防的混同。

✅ §8.17 定版的补全:三道探针是分工,不是三重保险(2026-10-12 第七批 PSQon 实证)

Ed 2026-10-12 逐字:「这条补全的正确表述不是"三道都不可少",是分工:缩写加全称两道负责判有无,各自已有反例所以缺一不可;码形负责抽值,不参与判有无。144 页模板等于全称式写法等于索引 null 这条闭环一并写进去,它让"索引 null"从一个警报变成了一个可预期的模板特征。COPXon 和 GLDon 三道未留档,照它写的"数据未获取,不推定",不回补。」

⚠️⚠️ 先立诚实边界(这是主句,不是附注):本条的实证基础只有三批、30 份有 lei_probe 逐份留档(batch5/6/7 各 10 条)。batch1 无本库落盘数据,batch2/3/4 各 0 条 —— 即 §8.16/§8.17 当初触发修法的 COPXon(VGG7001ABK93)与 GLDon(VGG7001ABQ63)两份,三道探针本身并无留档。它们在下文只作历史叙述,不计入本条的实证件;对这两份的三道读数,本库的记法是「数据未获取」,不由形状相同的件去推定(§8.17a)。⭐ 一条结论的实证基础有多宽,和它听起来有多普适,是两件事;写的时候先写窄的那一个。

分工(定版表述):

道锚点职责已实证的反例
一 · 缩写(?<![A-Za-z])LEI(?![A-Za-z])判有无PSQon(第七批)作全称写法 → 这一道读 0,而原件载有值
二 · 全称the Legal Entity Identifier is 一族判有无OKLOon(第六批)作 LEI: N/A → 这一道读 0,而原件载有这一项
三 · 码形不依赖标签,按 LEI 码形找值抽值,不参与判有无OKLOon 码形读 0,而原件载有这一项(载的内容是 N/A)→ ⭐ 码形为 0 不足以判「不载」

⭐⭐⭐ 判别句:缺一不可的理由不是"多一道更保险",是"这一道是别的道不负责的那一格的唯一入口"。 一、二两道各自已有反例,互为对方的反例;第三道的 0 与 1 都不构成有无的判据 —— 它在场只证明「有一个长得像 LEI 的值」,它缺席只证明「没有一个长得像 LEI 的值」,而原件可以载明这一项且内容不是一个 LEI(OKLOon)。故 §8.17 的「三道同时为 0 才能下不载结论」照旧成立,但它成立的理由要改写:不是三重冗余,是两道判有无取合集、第三道只在判有无通过后负责抽值。

六行实证(原始读数见各批本库落盘数据的 lei_probe):

件批页缩写全称码形索引 LEI这一行证明了什么
VGG7001ACQ54 PSQon第七批144011null缩写这一道会漏 → 全称不可省
IEMGon/IVVon第五批144011null同形,且早于本批
VGG7001ACH55 OKLOon第六批141100null全称与码形两道同时会漏 → 缩写不可省
第七批另九份第七批141101有值常规形态(缩写式写法)
COPXon/GLDon第四批144———null⚠️ 三道未留档 = 数据未获取,不推定,不回补
QQQon第一批—————⚠️ 同上;底层资产细分写「原件未载 LEI」这一格的留档是空的

⭐⭐⭐ 一并定版的闭环:144 页模板 ⟺ 全称式写法 ⟺ CMS 抽取器只认缩写 ⟹ 索引 LEI 为 null。 三件实证(IEMGon/IVVon/PSQon)的三道读数完全一致,都是 0/1/1;三件都是 ETF、都是 144 页。⭐ Ed 的落点:它让「索引 null」从一个警报变成一个可预期的模板特征 —— 此前「索引 null」一律当高风险件事前标出,现在要分两种:

索引 null 的成因判据性质
① 144 页模板 + 全称式写法页数 144 + 缩写 0 + 全称 1 + 码形 1可预期,成因已知(抽取器盲区,§8.16 同根)
② 标的方自身无 LEI页数 141 + 缩写 1 + 全称 0 + 码形 0 + 原件逐字 LEI: N/A原件载明为空(§8.17a)

⚠️ 但形状吻合(①)不是略过实抽的理由(§8.17a):第七批 PSQon 是该条第一次用在「吻合」那一侧 —— 事前就标为高风险件、照常三道实抽,读数吻合是结果,不是前提。原件逐字留档:

…is issued by ProShares Short QQQ, with legal address c/o Proshare Advisors LLC,
7501 Wisconsin Avenue, Suite 100, Bethesda, Maryland 20814, United States of America
and the Legal Entity Identifier is Q95Y09OLRIOMH8CB3M62.

⭐ 该值与登记簿索引不一致(索引为 null)→ 按既有规则「索引与原件不一致取原件」直接适用,建档取 Q95Y09OLRIOMH8CB3M62,索引不采。同型情况此后不再逐件请裁。

✅ QUAL_PATS 定性词探针(2026-10-13 第九批新设,Ed 批准留用)

由来:第八批 USOon 的「自称 ETF」是把 144 页模板的栏目标签(ETF name/Information on the ETF/Exchange where the ETF is listed)读成了原件的定性断言 —— 缩写命中数不区分内容与表头。⭐ Ed 2026-10-12 由此定下:144 页模板的适用范围由发行方决定,与标的法律形式无关;此后非 ETF 标的套用该模板属预期之内,不再上呈。

探针定义(七条,原样命中、只计数、不判定):Exchange Traded Fund(全称)|(?<![A-Za-z])ETF(?![A-Za-z])(缩写)|commodity pool|[Gg]rantor [Tt]rust|[Ii]nvestment [Cc]ompany|beneficial interest|(?<![A-Za-z])L\.?P\.?(?![A-Za-z])

职责边界:它回报的是「索引 display_name 与原件定性句是否一致」,⚠️ 不回报底层资产类别该填什么。底层资产类别一律按原件定性句逐份实抽,不按日期组预填、不按索引 display_name 套。

首次命中(第九批 PALLon,VGG7001ACL67):索引名 abrdn Physical Palladium Shares ETF,而原件定性句全称 0 命中,逐字写的是 is an exchange-traded product + The Shares represent units of fractional undivided beneficial interest in and ownership of the abrdn Palladium ETF Trust。⭐ 探针当场抓到不一致 —— 这一道有效。

⭐⭐⭐ 两条判读规则(方向不同,须并列读;Ed 2026-10-13 批准进本篇)

Ed 2026-10-13 逐字:「执行者加的那道判读规则批:定性句与索引名不一致时,先查同型先例表,再报结论。这条的价值在它说清了两种错的方向不同:§8.17a 是证据层读错,这次是证据对了但没问它是不是已经被裁过。两条并列进方法篇。」

错在哪一层症状防法
§8.17a证据层 —— 读数本身错把栏目标签/空值声明当成原件断言命中处读回上下文,再下结论
本条结论层 —— 读数对,结论越权把「不一致」这个事实直接当成「所以该改判」这个结论下结论前先查同型先例表,问它是不是已经被裁过

⭐⭐⭐ 判别句(可迁移):一道新探针第一次命中时最危险的不是它漏报,是它的命中被当成了一件新事 —— 不一致是真的,新颖是假的。

实例(本条的触发件,双向都犯过一次):PALLon 的探针读数完全正确,但执行者在简报里把它写成「不是基金份额」,没有先比先例。库内同型先例三条且早有裁定:

件原件定性句逐字现填
ondo-global-markets-gld-lian investment trust that issues shares representing units of fractional undivided beneficial interest in and ownership of the Trust基金份额
ondo-global-markets-iau-licommonly classified and traded as a gold ETF(iShares Gold Trust,持实物金条)基金份额
ondo-global-markets-slv-licommonly classified and traded as a silver ETF(iShares Silver Trust,持实物银条)基金份额

GLD 那条的底层资产细分里本就留着一句专为此写的警告,逐字:「⚠️ 本产品的底层是信托份额,不是信托再往下持有的金条」。而 贵金属 档在库内的 3 条全部是产品自己直接持有实物的件(恒生金 ETF/华夏数字金 ETF/汇丰黄金代币)。

⭐ 据 2026-09-29 定的不穿透原则 ——「分界线不在标的叫什么,在本产品直接持有的是什么」—— PALLon 直接持有的是 abrdn Palladium ETF Trust 的份额,与上三条同型,填 基金份额;三条存量一格不动,门槛② 不归零。

⭐⭐ 附:裁定里的条件句,条件要写全(Ed 2026-10-13 自记)

Ed 2026-10-13 逐字:「一句给我自己记的:裁定里出现「如果有某档就填某档」这种条件句时,条件里漏了「且先例允许」,执行者替我补上了,这是铁律 7 该有的样子。」

⚠️ 故凡裁定取「若存在 X 则填 X」形式,执行者须读作「若存在 X 且先例允许则填 X」;二者冲突时按铁律 3/7 两边都不改、先报告。⭐ 本例中裁定层与执行层犯的是同一个错(事实直接当结论),而拦住它的不是谁更谨慎,是先例表这个外部物。

⭐⭐⭐ 探针判读三句:命中了什么、命中处是什么、哪些命中有区分力(2026-10-13 第十批补第三句,Ed 指定不编号)

Ed 2026-10-13 逐字:「『一张表的命中数不说明它想判的那件事,只有表里能区分的那几项的读数才说明』是探针判读那一族的第三句,前两句是缩写命中不区分内容和表头、三道互不覆盖各有分工;三句管的是同一件事的三个层次,命中了什么、命中处是什么、哪些命中有区分力。」

⚠️ 这三句不是新落点,是同一族的第三层。并列读:

判别句它防的是典型病例
第一句缩写命中不区分内容与表头把栏目标签读成原件断言第八批 USOon「自称 ETF」(§8.17a 同根)
第二句三道(缩写/全称/码形)互不覆盖、各有分工用一道代替三道,漏报PSQon 缩写 0/OKLOon 全称 0 且码形 0
第三句一张表的命中数不说明它想判的那件事,只有表里能区分的那几项的读数才说明把总命中数当成结论第十批 SPCXon 的 PRIV_PATS

第三句的触发件(第十批 SPCXon,教材留档):PRIV_PATS 那组探针用来判「标的是否为非上市私募公司」,实测 3 项命中,而命中的三项全是中性词(在上市与非上市件里同样会出现);真正能区分的五项读数全 0。执行者看见「3 项命中 + 索引 underlying_lei 为 null」,把「索引没有填」读成了「标的没有上市」 —— 事前预判「SPCXon 是非上市私募公司」被原件直接推翻(原件逐字载 Form S-1 (file number 333-296070) 与 Ticker: SPCX.,EDGAR 旁证 EFFECT 2026-06-11/424B4 2026-06-12)。

⭐ 三层的关系:第一句问命中落在哪儿(正文还是表头),第二句问哪几道不能省,第三句问哪几道的读数算证据。前两句都通过了,第三句照样能独立失败 —— SPCXon 的每一处命中都是真的,落点也都在正文里,错只错在拿总数当读数。

⭐⭐ 由此定一条探针设计规则(Ed 2026-10-13 指定,适用于此后所有探针组)

Ed 逐字:「以后立任何一组探针,先标出哪几项是区分项,命中数只对区分项计,中性项的命中只回报不计分,PRIV_PATS 照这个改。」

落法四条:

  1. 每组探针在定义处即分两栏:DISCRIM(区分项)与 NEUTRAL(中性项),立表时标,不在读数时补标;
  2. 计分只算 DISCRIM;NEUTRAL 的命中照实回报、不计入任何判定;
  3. 一组探针若一个区分项都标不出来,它判不了它想判的那件事 → 不立,或改成纯回报型探针(只落档、不进结论);
  4. 回报格式须让两栏各自可见,不得合并成一个总数 —— ⭐ 合并成总数这一步,正是第三句里出错的那一步。

⚠️ 与 §8.18 的分工:§8.18 管「断言永远为真」,本条管「断言不为真也不假,只是答非所问」。两者都让读数看上去有内容,而前者给恒真,后者给无关。

8.18 断言的三种失效(v1.0 合并,2026-10-26)

Ed 2026-10-21 逐字:「§8.18 三侧表到此成形,v1.0 定版时这一族可以合成一节。」「合并时三次现场都留,表只是索引。」
⚠️ 合并的分工:8.18.0 的表是索引(可改写、可缩),8.18.1–8.18.3 是现场(一字不动、一次不删)。现场原文自原 §8.18 本体、§8.18c 反向侧、§8.18c 第三侧及其同日第二例整段移入;唯一改动是原标题行的 # 级别(降为五级以归入本节),标题文字一字未动。
⚠️ §8.18a/§8.18b/§8.18c(检验强度随样本数)/§8.18d/§8.18e 不并入 —— 「都和断言有关」不是合并的理由;合并的理由是失效的方式同属一类。
✅ 机械检查(合并草案 §五 所建议):8.18.1–8.18.3 三节字节数之和 ≥ 合并前三处现场字节数之和 —— 落地时已跑。

8.18.0 索引:三侧对照

侧失效方式输出长什么样现场立于
一断言太松(永远为真)一个 ✅,而什么都没在管§8.18.12026-09-29,Ed 指定进本篇
二配套条件写错,把通过判成不通过一个 ❌,而被测物是对的§8.18.2(三例:一次写错 / 连续四轮 / 单行折叠)2026-10-20 v3 码形探针;2026-10-21 RHJ 索引探针;2026-10-27 zscaler 回读
三归因错:拦截发生了,但不是你以为的那一道拦的一个 ✅(「验过了」),而那道闸从未被执行§8.18.32026-10-21,尺寸闸第一次验法

⭐⭐ 三侧共同点:输出看起来都正常。⚠️ 而第三侧最隐蔽 —— 前两侧至少有一个读数不对,第三侧连读数都对,错的只是谁拦的。

8.18.1 第一侧 · 太松(现场①)

8.18 永远为真的断言等于没有断言(Ed 2026-09-29 指定进本篇)

⭐⭐ 永远为真的断言等于没有断言。

实例(本库自己写出的一行,2026-09-29):本库脚本的原件互证块里写过

assert r['uisin'] in (p['lei_line'] or '') + (p.get('isin_line') or '') \
       or r['uisin'] in p['description'] or True      # ← 恒真

or True 使整个表达式恒为真。这一行跑过、绿了、进了提交,而它什么都没核。 已改为真检查(产品 ISIN 必须在原件首页在场;缩写写法的八条另核 LEI 与底层 ISIN 同段在场)。

⭐ 它是怎么长出来的:这一格在本批有两种情形(缩写写法八条、全称写法两条),一个表达式要同时容纳两种,于是不断往后追加 or。⚠️ 凡断言里 or 超过两支,就要怀疑它是在容纳分支,而不是在核一件事 —— 正确的写法是先分支、再各自断言(本次即改为 if / else 两支各自硬核)。

⚠️ 这条不只管 or True。同族的还有:assert x or not x、assert len(xs) >= 0、把判据写进一个永不为空的集合再判 in、以及在 try/except: pass 里的断言。⭐ 共同特征是:它们的失败分支不可达,因此无法区分「核过且通过」与「根本没核」 —— 这与 §8.10(2)「什么都不打印的 dry-run 等于没跑」、§4「一个不被展开的汇总数和没有这个数是一样的」是同一句话的第三次现身:

⭐⭐ 一个静默的检查、一个恒真的断言、一个不展开的汇总数,三者与「没有检查」在输出上完全同形。

⭐ 正面对照(同一个脚本里的反向断言):CMS 索引对那两条 ETF 的标的 LEI为 null,本库据原件填了值。这个「索引为 null」的前提被写成了断言 ——

assert x['标的 LEI'] is None, \
    r['sym'] + ':索引 LEI 由 null 变为有值 → 须核对 CMS 值与原件值是否一致,不得直接删断言'

⭐ 它平时通过、前提被违反那天会报错,报错文案同时写明届时该做什么(核对,而非删断言)。⚠️ 这与恰恰相反的写法(把预期写成注释)差别只有一句:把预警写成注释与写成断言,差别是它到期那天会不会有人知道。 本批已实测兑现一次 —— 第三批脚本里写下的日期写法预警(COPXon 作 March 26, 2026)在本批到期,被两处硬 assert 当场接住。

实例(2026-10-28,Ed 令记一行):RHJ 新线第一批取件脚本的尺寸闸写成 guard_size(blob, len(blob)) —— 以原件自身为母本,永远通过;第二批写脚本时抓出,母本改为旧索引同一份的 bytes。⭐ 它说明「闸装上了」和「闸有母本」是两件事,与 §8.18.3 尺寸闸第一次验法的归因错同族(Ed)。

8.18.2 第二侧 · 配套条件写错(现场②,两例)

8.18c 反向的那一侧:配套条件写错,会把通过判成不通过(Ed 2026-10-20 收)

§8.18 管的是太松的断言(永远为真 ⟹ 什么都没在管)。2026-10-20 的 v3 定版核查给出了太紧/写错的那一侧:

那次给 v3 写的「配套证据」条件是「伪码须出现在排除集剔除名单里」—— 实跑 ❌。
⚠️ 而 v3 本身是对的:组合式词边界那一支已经先把伪码挡在门外,它根本到不了排除集。

⭐⭐⭐ 判别句(Ed 2026-10-20 收):配套证据条件写错,会把通过判成不通过 —— 方向与「断言太松」相反,而输出上都是一个 ❌。

⭐⭐ 故断言失败时的第一步,是判断失败的是「被测物」还是「断言本身」 —— ⚠️ 两者的输出同形,而处置相反:前者停手上呈,后者改断言并留痕。
⭐ 本例的处置:把配套条件改为断言它真正该断言的那件事(伪码的出处确为本件地址的子串,与「它被哪一道挡住」解耦),并另加一条「排除集在 v3 下 0 处生效」——
因为一道没有对象的防线,与一道不存在的防线,在读数上同形。

⭐⭐⭐ 同日第二例(RHJ 索引探针):配套条件改了四轮,而被测物一直是对的

Ed 2026-10-21 逐字:「⒝ 那四轮配套条件错而被测物一直对,是 §8.18c 反向侧最硬的实证,那句「配套条件连续失败时先问它测的是不是你以为的那件事」进那一节。」

现场:本库脚本抽 RHJ 最终条款索引时,先查出一处真缺陷 ——
标题整体错位一格(在 href 之后找标题,而标题排在 href 前面),
于是每一行都抓到下一件的标题(aerovironment_inc 配 "Alibaba")。
⭐ 判别句(顺带立):一个派生出来的标签若整体错位一格,它在每一行上都与真值并排出现,
读起来像第二个来源在印证第一个。

✅ 改法(取 href 之前那一个)第二轮就对了。而为它写的配套条件(「标题与 slug 同源」)
此后连续失败四次,每一次都是条件自己的毛病:

轮配套条件怎么写的报出来的「不同源」真相
1压成小写字母数字后比前缀Hims &amp; Hers/Kohl&#x27;s/S&amp;P没解 HTML 实体
2解实体后再压Hims & Hers/Johnson & Johnsonslug 把 & 写成 and
3把 & 归一成 andSPDR S&P 500 ETF Trust同一套 slug 对 & 两种写法并存(s_p 而非 s_and_p)
4————✅ 改为只比首个词,四轮到此收口

⛔ 而被测物(slug 抽取)从第 2 轮起就一直是对的 —— 四次红都是断言自己在错。

⭐⭐⭐ 判别句(Ed 2026-10-21 收,本节定稿):当一条配套条件连续失败时,
先问它测的是不是你以为的那件事 —— 否则你会一直去改那个本来就对的被测物。

⚠️ 这与本节开头那条(第 12 批 v3 的「配套证据写错」)是同一侧的两次,而本次更硬:
那次是一次写错,本次是连续四次,⭐ 而连续失败最像「被测物真的有问题」——
红色不会告诉你它是哪一侧的红。

✅ 收口改法本身也是一条通则:配套条件要选那个「只在被测维度上出错才会变」的量。
本例最终选「标题首词 vs slug 开头」——它足以接住整体错位一格
(错位时 Alibaba 会落在 aerovironment_inc 上),⭐ 而对 &/实体/标点的
各种写法天然免疫:⚠️ 前三轮的条件之所以一直红,正是因为它们同时还在测
「两边的标点写法一不一致」——那不是要测的那件事。

第三例(2026-10-27,zscaler 建档回读;Ed 归本侧)

建档后回读报「issuer_license_note 不一致」。该字段为单行文本,Airtable 写入时把 \n\n 折成一个空格(1069 → 1066 字符);旧线 40 条存值同形(MRVL 与本条逐字相同)。⟹ 数据对、回读条件错;按折叠规则修正比较后 66 字段逐字段一致。

Ed 2026-10-27 逐字:「回读条件没考虑单行文本折叠换行那次,错在配套条件、数据对,归 §8.18c 反向侧,它自己归对了。」

⭐ 本例的配套条件错在不知道存储层会改写什么 —— 回读比的是「我送进去的」,而库里存的是「存储层收下后的样子」;两者之差不是数据错,是比较器没把存储规则算进去。

8.18.3 第三侧 · 归因错(现场③)

8.18c 第三侧:「护栏装上了」与「护栏被跑到了」是两件事(Ed 2026-10-21 指定进本族)

Ed 2026-10-21 逐字:「「护栏装上了」和「护栏被跑到了」是两件事,验一道闸的载荷必须只在那一维上出错,这条进 §8.18c 那一族,它和「配套条件写错把通过判成不通过」同一个方向:验证本身也要被验证。」

实证(2026-10-21,尺寸闸的第一次验法):给九支生成器装上尺寸闸之后,为证明它会叫,在真的 splice 生成器里把载荷做坏 —— 用的是那次事故的原形(out = dst.replace('', '# x\n'))。该跑确实 exit=1、文件确实未被改动,而挡住它的是 splice 自己那条「占位符应出现 1 次」的断言(空串 replace 把占位符也打散了,故它先报)。⛔ 尺寸闸根本没被跑到,而我当时把那次拦截记成了「闸拦下的」。

⭐⭐⭐ 判别句(Ed 2026-10-21 收):「护栏装上了」与「护栏被跑到了」是两件事 —— 而一次成功的拦截不告诉你是哪一道拦的;要验一道闸,载荷必须只在那一维上出错。

✅ 改法:换一个通过全部既有检查、只有尺寸不对的载荷 —— 把 splice 复制进去的那一段重复 200 倍。该跑里七段哈希全过、四个占位符各被替换 1 次、四段均逐字可找到,然后由尺寸闸在 13.3 × 处拦下,产物未落盘 ⟹ 闸被真正跑到。

⚠️ 与本族另两侧的关系(三侧同属「验证本身也要被验证」):

侧失效方式输出
§8.18断言太松(永远为真)一个 ✅,而什么都没在管
§8.18c 反向侧配套条件写错,把通过判成不通过一个 ❌,而被测物是对的
本侧归因错:拦截发生了,但不是你以为的那一道拦的一个 ✅(「验过了」),而那道闸从未被执行

⭐⭐ 三侧的共同点:输出看起来都正常。⚠️ 而本侧最隐蔽 —— 前两侧至少有一个读数不对,本侧连读数都对(确实拦下了、文件确实没坏),错的只是谁拦的。
⭐ 故通则(Ed 2026-10-21 指定留):凡声称「某道检查已验过会叫」,须写明那一跑里它是不是最先开口的那一道;做不到就只能说「这条路径被挡住了」,不能说「这道闸验过了」。

8.18.4 三侧共同点与通则

  1. ⭐ 凡声称「某道检查已验过会叫」,须写明那一跑里它是不是最先开口的那一道;做不到就只能说「这条路径被挡住了」,不能说「这道闸验过了」。(Ed 2026-10-21 指定留)
  2. ⭐ 配套条件要选那个「只在被测维度上出错才会变」的量 —— 否则它会同时在测别的东西,而你看不出红来自哪一维。
  3. ⭐ 断言失败时的第一步,是判断失败的是「被测物」还是「断言本身」 —— 两者输出同形,而处置相反:前者停手上呈,后者改断言并留痕。

✅ Ed 2026-10-21 收口:「§8.18 三侧表到此成形,v1.0 定版时这一族可以合成一节。」

⚠️ 合并时须守住的一件事(记在这里,免得到时候只剩一张表):三侧各由一次不同的真失败立起来 ——
§8.18 由恒真断言立;反向侧由 v3 那次配套条件写错立(2026-10-20);本侧由尺寸闸第一次验法的归因错立(2026-10-21)。
⭐⭐ 判别句(给合并那一步用):三侧之所以是三侧,不在它们的说法不同,在它们各有一次自己的实证;
合成一节时若只留那张对照表而丢掉三次现场,这一族就从「实证记录」退回「推演记录」 ——
而 §8.18a 立的正是「推演记录不等于实证记录」。

✅ Ed 2026-10-21 定合并形状:「合并时三次现场都留,表只是索引。」
⟹ 合成一节时的分工写死在这里:⭐ 那张三侧对照表是索引,三次现场是证据 ——
索引可以改写、可以缩,⚠️ 现场一个字不动、一次不删。

⭐⭐⭐ 8.18a 一条纪律的实证记录与推演记录是两回事(Ed 2026-10-11 给第六批的预先要求)

Ed 2026-10-11 逐字:「一个提醒给第六批:它是分组纪律第一次真的会报警的那批,PALLon会被断言接住。接住之后不要只报"断言生效",要把被拒的那一份和它为什么落在区间内部(03-30组五份的ISIN插在03-26组的第17、37、44、48、49位之后)写进简报,让这条纪律第一次有实证记录,而不是只有推演记录。」

背景:Ondo 分组纪律 = 按解析后的原件日期分组取十条,不得按 ISIN 顺序切片。该纪律至今只有推演记录 —— 2026-03-30 组的 5 份 ISIN 落在 2026-03-26 组区间的内部(插在第 17/37/44/48/49 位之后),故按 ISIN 排序切片必然在某一批混入异日期件。

批异日期件混入情况断言的表现
第 4 批EEMon 混入被硬 assert 接住(已实证一次,但当时纪律尚未成文)
第 5 批无⚠️ 错法与正确法输出一字不差,断言全过(零信号,见 SC-10 正面用法节)
第 6 批PALLon 会混入⭐ 本纪律成文后第一次真的会报警
第 7 批REMXon / SQQQon预计同样报警

第六批简报的硬性要求(Ed 预先指定,不得简化):断言接住之后,不得只报「断言生效」,必须写进简报的是 ——

  1. 被拒的那一份是谁(PALLon),以及它的 ISIN 与解析出的原件日期;
  2. 它为什么会落进来 —— 即 03-30 组五份插在 03-26 组第 17/37/44/48/49 位之后这个事实,在第六批的切片窗口上具体落在第几位;
  3. 若按 ISIN 切片会得到什么(混入 1 份异日期件的十条)与按日期分组实际得到什么,两者并列。

⭐⭐ 判别句:一条纪律有推演记录不等于有实证记录 —— 推演说的是「它应该会接住」,实证说的是「它接住了,接住的是这一个」。 ⚠️ 只报「断言生效」等于把一次实证降格成一次推演的确认:读者仍然不知道被接住的是什么,也就无从判断这条纪律的射程够不够。

⭐ 这与本节的关系:§8.18 要求断言的失败分支可达;本条要求失败分支真的被走到那一次,把走过的痕迹留下来。⚠️ 一个失败分支只会被走到有限的几次(分组纪律一共只剩第 6、7、8 批三次机会),那几次的现场记录是这条纪律此后唯一的证据来源 —— 错过就只剩推演。

✅✅ 兑现记录(2026-10-12 第六批实跑,本条自此由推演转为实证)

第六批取件脚本没有只把错法写成注释或只跑正确法,而是在本次运行里真的把错法切片喂给同一组断言函数(CHECKS,与正确法共用一份代码),四条全部真的抛出 AssertionError,报错原文逐字落盘于本库落盘数据:

断言实际报错原文(逐字)
① 十条解析后日期全等 2026-03-26十条中有解析后日期不等于 2026-03-26 的:[('VGG7001ACL67', 'March 30, 2026')]
② 不含 2026-03-30 组本批混入 2026-03-30 组:['VGG7001ACL67'] → 分组退化成了全局 ISIN 序
③ 名单与事前算定一字不差本批名单与事前算定不符:(实得/预期两行十条 ISIN 全文留档)
④ 与前五批无重叠与前五批重叠:['VGG7001ACC68']

被拒件 = PALLon VGG7001ACL67,原件首页逐字 March 30, 2026。 它落进来的机制(实测,非推演):2026-03-30 组五份按全局 ISIN 升序的插入位是 2026-03-26 组第 17/37/44/48/49 位之后,本批窗口是该组第 31–40,⭐ 其中有两个插入位与窗口相干,且相干方式不同:

03-30 件插入位与窗口(组内 31–40)的关系后果
ABP80组第 17 位后在窗口之前窗口整体右移一格 → 回头拉入第五批已取过的 ACC68 MRNAon(组第 30 位落到全局第 31 位)
ACL67 PALLon组第 37 位后在窗口内部直接占掉一格(落在全局第 39 位,ACK84 与 ACM41 之间)

两格被占的净结果是尾部挤出两条:ACN24 PDDon(组第 39)与 ACP71 PFEon(组第 40)本应属本批而未被取到。即一次违纪同时造成三类后果:混入异日期件、重复取件、漏取。

⚠️ 这里有一处容易写错、我初稿写错过的地方:把右移归因给 PALLon 本身。右移是 ABP80 造成的(它在窗口之前),PALLon 只是占格。⭐ 判别句:污染件在不在你取的区间里,和它有没有改变你的区间,是两个问题 —— 落在窗口之前的那些件一个都不会出现在错法名单里,却决定了名单的起点。

⭐⭐⭐ 一次违纪的后果数,比违纪本身更能说明纪律的射程。 推演只预见了「混入 PALLon」这一类;真跑一次才看见另外两类。⚠️ 故 §8.18a 的「写进简报」要求应读作:写的不是「断言接住了什么」,是「不接住会同时坏掉几件事」。

⭐⭐ 本次另立一条(本条的必要补充):「失败分支可达」本身也要被断言。 取件脚本在错法未被全部四条接住时 sys.exit 停止取件 ——

if nfail != len(CHECKS):
    sys.exit('⚠️ 错法未被全部四条断言接住(%d/%d)→ 断言组已退化,停止取件。' % (nfail, len(CHECKS)))

⚠️ 若只跑错法而不断言「它必须失败」,这段演示会在断言组哪天被改坏时静默变成一段恒真的表演 —— 那正是 §8.18 所禁的那种东西,只是换了个位置。⭐ 一段用来证明断言有效的代码,自己也需要一个断言。

⚠️ 剩余机会清点:分组纪律的失败分支还剩第 7 批与第 8 批两次。
⚠️⚠️ 此处原写「第 7 批预计 REMXon/SQQQon 两份同时混入,若只出现一个说明切片窗口算错须停手」—— 该预告已被实算证伪,详见下方订正子节。 实际是混入一份,而窗口没算错。

⭐⭐⭐ 本节下半句:预测错法会混入谁,要拿错法自己的区间去比(2026-10-12 第七批,§8.18a 第一次反咬自己的预告)

Ed 2026-10-12 逐字:「判别句进方法篇,作为§8.18a的下半句,不是新条目。「预测错法会混入谁,要拿错法自己的区间去比」这句的价值在于它是§8.18a第一次反咬自己的预告,这种自反的例子比正面例子更该留。」

第 7 批放行时,Ed 按上面那句预告给了停手条件:「窗口 41 到 50,错法应一次混入两份,报错原文两个 ISIN,只出一个停手」。实算结果 —— 只出一个(ACU66 REMXon),停手条件触发。查清后判定为:错的是预告,不是窗口。

错因(实算,非推演):那条预告是拿正确法的窗口去数插入位得出的,而错法的窗口不在那儿。上游两个插入位各吃掉窗口一格(ABP80→组第 17 位后、ACL67→组第 37 位后),于是「错法全局第 41–50」实际只覆盖 03-26 组第 39–47 位(9 个组内位 + 1 个污染位):

03-30 件插入位按正确法窗口 41–50 判按错法实际跨度 39–47 判实际全局位次
ACU66 REMXon组第 44 位后会混入会混入 ✅47(窗口内)
ACZ53 SQQQon组第 48 位后会混入不会(48 > 47)52(窗口外)

⭐⭐⭐ 判别句(本节下半句):预测错法会混入哪几份,必须拿错法自己的区间去比,不能拿正确法的区间去比。 污染件改变了区间的起点,就同时改变了区间的终点能伸到多远。
⭐⭐ 与本节上半句并读才完整:上半句说「污染件在不在你取的区间里,和它有没有改变你的区间,是两个问题」;下半句说那个改变不只影响谁被混进来,还影响谁够不着 —— 前者看起点,后者看终点。
⭐ 这种自反的例子比正面例子更该留(Ed):§8.18a 立的是「推演记录不等于实证记录」,而被证伪的恰是它自己写在同一张表里的那一格预告 —— 第 4/5/6 批三格是实证,第 7 批那一格是推演。

Ed 同时把停手条件改写成通用条款(此后每批适用):

预告与实证不符即停手,查清错在哪一边再走:错在窗口则重算(不取件),错在预告则按 §8.9 原位订正预告后放行。
⭐⭐⭐ 停手条件的产出不是「不许走」,是「走之前必须说清错的是哪一边」。
✅ 本次为后者 → 本库脚本文件头那一格已原位订正并标明「原为推演,实算后订正」,第 4–6 批的实证标注保留;第 7 批放行取件。
⚠️ 错法实证的失败条数不变(4/4),变的只是断言② 的 ISIN 数量(一个)—— 照实记,不为了凑预告去改断言。

第 8 批的预告按 Ed 指定改为实算值,不再从正确法窗口推:窗口 = 03-26 组第 51–55(该组取尽)。实算错法「全局第 51–55」只覆盖 03-26 组第 48–50 位(3 个组内位 + 2 个污染位)→ 混入 ACZ53 SQQQon + ADB76 TQQQon 两份,重复取 ACY88/ADA93/ADC59,⭐ 而正确法那 5 条(ADD33 UBERon/ADE16 UNHon/ADF80 USOon/ADG63 VRTon/ADH47 XOMon)一条都不在错法结果里 —— 两法交集为空,本系列首次。

⭐⭐⭐ 预告格的书写规范:只用纯文本(Ed 2026-10-20 立为常设)

Ed 逐字:「预告格是机读的,排版是接口的一部分,这句进 §8.18a 的预告格规范:预告格只用纯文本,不加粗不加标记,门禁按字面取。它和「回执只用于定位」是同一类教训,机器读的东西不是给人看的。」

要求落法
预告格里被门禁取值的那几项只用纯文本数字与日期不加粗、不加反引号、不加任何标记;门禁按 re.search(r'取后余 (\d+)') 一类的字面正则取
排版改动等同内容改动⚠️ 改版式前先想一遍门禁的正则 —— ⭐ 把一行加粗与把一行写错,在门禁看来是同一件事
说明性文字可以带标记只要它不在门禁取值的那几项里;⭐ 两者在同一格里,所以必须分清哪几行是机读的

实证(2026-10-20 第 16 批):末批预告格把「取后余 0」写成 取后余 0 ⟹ 门禁取不到该项、落 ③ 态停手。查清是错在预告的写法,不是窗口 —— 按通用停手条款订正预告后重跑放行。
⭐⭐ 族属(Ed 指出):它与「回执只用于定位,读数一律回落盘文件取」是同一类教训 —— 机器读的东西不是给人看的;⚠️ 两处的错法也相同:把一个机读接口当成了一段给人看的文字。

⭐⭐⭐ 本节的完结记法与全系列实证账(Ed 2026-10-20 提前定下,待 2026-07-16 组取尽那一批执行)

Ed 2026-10-20 逐字:「取尽那一批,错法实证的记法既不是「被接住」也不是「无从比对」,记「系列完结,检验对象消失」,并在那一格附一张全系列的实证账:哪几批真失败、哪一批零信号、哪几批无从比对,这张表就是 §8.18a 这条纪律的完整生命周期,以后再开一条有分组的线,这张表是它的样板。」

三态之外的第四种状态(本节此前只有三种):

状态前提本系列的实例
真失败两法不同,断言全部抛错第 4、6、7、8、9 批
零信号两法本可不同,只是这一批恰好同值第 5、10 批(见下表的出处差)
无从比对未取尽的日期组只剩一个 ⟹ 两法在定义上恒等第 11 批起
系列完结,检验对象消失(新)未取尽的日期组变成 0 个 ⟹ 连「只剩一个」这个前提都不存在了2026-07-16 组取尽那一批

⚠️⚠️ 第四种不得记成第三种:「无从比对」的前提是「还剩一个组、而它只剩一个」,完结时连那个组都没有了 —— ⭐ 两者在 nfail = 0 / 4 这个读数上完全同形,区别只在前提里。
⭐ 这是本节「三态在读数上同形、区别在前提」那条判别句的第四次适用,也是最后一次:此后该线再无可比对的对象。

全系列实证账(由本库脚本从落盘证据现算,不从叙述读):

批状态失败条数落盘证据
1–3纪律未立——⚠️ 叙述出处,无证据文件
4真失败——⚠️ 叙述出处,无证据文件(§8.18a 的落盘动作自第 6 批才开始;出处为本库变更记录逐字「会混入 EEMon…当时已被硬 assert 接住」)
5零信号——⚠️ 叙述出处,无证据文件(同上;出处为本库变更记录逐字「按错法与正确法一字不差 —— 错法在本批输出零信号」)
6/7/8/9真失败4/4 / 4/4 / 4/4 / 4/4✅ 各批本库落盘数据
10零信号0/4✅
11/12/13/14无从比对0/4✅
15无从比对0/4✅
16系列完结,检验对象消失0/4✅ 本库落盘数据(末批 7 份,2026-07-16 组取尽 ⟹ Ondo 线 138 份全)

⚠️⚠️ 「零信号」这一栏按出处分两种:有落盘的(第 10 批) / 只有叙述的(第 5 批)。
⭐⭐⭐ 判别句:一行没有落盘出处的账,与一行有落盘出处的账,在表格里长得一样。 故本表把「落盘证据」单列一栏 —— 否则这张账自己就违反了它要记录的那条纪律。
✅✅ Ed 2026-10-20 自订正(逐字,定版):「第 5 批算,列进零信号栏,落盘证据那一栏照实写「叙述出处,无证据文件」。我口述时漏了它,现算的账对,口述的错;这正是那张表要单列「落盘证据」栏的理由 —— 第 4 批和第 5 批是这条纪律生命周期里最早的两批,它们的记录只有叙述没有文件,表里不该为了整齐把这个区别抹掉。」
⭐⭐⭐ 故本表的「零信号」栏为 第 5、10 两批;⚠️ 口述原值(只列第 10 批)留在本库脚本的 ED_SAID 里不删 —— ⭐ 改掉它等于把「现算驳回了口述」这件事也抹掉。
✅ Ed 2026-10-20 追认此处落法:「ED_SAID 留在生成器里不删也对,口述被现算驳回这件事本身是证据。」⭐⭐ 即:一条被驳回的口述,它的价值不在它对不对,在它记录了「现算曾经驳回过一次」 ——⚠️ 删掉它之后,那张账看起来就只是「一开始就算对了」。
⭐⭐ 而「为了整齐抹掉这个区别」正是那种让表更好看、同时让它失去证明力的改动 —— ⚠️ 本表因此把「落盘证据」单列一栏,而不是把那两行删掉或与有文件的那几行合并。
⭐ 样板用法(Ed 指定):以后再开一条有分组的线,这张表是它的样板 —— ⚠️ 连「落盘证据」那一栏一起照搬,因为一条纪律的生命周期里最早的几批,恰恰是最可能没有落盘证据的几批。

✅✅ 本账已定稿(2026-10-20,第 16 批实跑后):生命周期走完一轮 ——
纪律未立(1–3)→ 真失败(4、6–9)→ 零信号(5、10)→ 无从比对(11–15)→ 系列完结(16)。
⚠️⚠️ 四态在 nfail 上两两同形(真失败 4/4;其余三态都是 0/4)⟹ ⭐ 区别全在结论那一行的字面里 —— 账生成器因此靠「结论文字」分类,不靠读数;
若靠读数,零信号/无从比对/系列完结会被合成同一行。
⚠️ Ed 口述那张账里「无从比对」含第 16 批(当时第四态尚未定义),随后他定义了第四态 ⟹ 以后一次为准;两版都留着(口述在生成器的 ED_SAID,定版在 ED_RULED)——
⭐ 判别句:一张账的定版,是它最后一次被裁定时的那个形状,而中间每一版都该留痕。
⭐⭐ 族属(Ed 2026-10-20 指出):这条「取最后一次裁定的形状、中间每版留痕」与 §8.9(错误留痕比干净文档有用)同族 —— ⚠️ 前者管一张账的版本,后者管一个判断的版本,而两者要防的是同一件事:只留最后一版,就无法回答「这个形状是怎么被定下来的」。

✅✅ 本节生命周期的最后一个判别(Ed 2026-10-20 定稿):
⭐⭐⭐ 四态在 nfail 上两两同形,区别全在结论那一行的字面里。
(真失败 4/4;零信号、无从比对、系列完结都是 0/4。)
⟹ 账生成器因此靠结论文字分类,不靠读数 —— ⚠️ 靠读数会把后三态合成同一行;
实证:生成器首版只认旧三态,把第 16 批(系列完结)错分成「零信号」,补第四态后才对。
⭐ 这条判别句同时解释了为什么这条纪律必须把结论写成一行固定措辞:读数不能区分它们,只有那行字能。

落法(Ed 2026-10-20 追认):四态的切换写在预告生成器里、按 remain == 0 现算,不靠执笔人到期那天记得。
⭐⭐⭐ 理由是一句判别句:一条「到那一批要换记法」的要求,若只写在上一批的正文里,到期那天与没写过长得一样。
⭐⭐ 族属(Ed 指出):它与「只写进 stderr 的警告等于没留痕」同族 —— 两者说的是同一类事:一条存在于「将被人读到」这个假设里的要求,与一条不存在的要求,在到期之前完全同形。

⭐⭐⭐ §8.18a 续九:第 14–16 批建档的断言真失败记录与取件新形态(2026-10-20,Ondo 线取尽)

收录依据:Ed 2026-10-11 逐字定的两类 —— 「方法篇只收两类东西,断言真失败的实证记录,和取件里出现的新形态」。本节只收这两类;本轮其余判别句(约二十条)一律留在本库变更记录,待 v1.0 定版时一并整理。

一、断言真失败的实证记录(五件,全部发生在 dry 阶段,无一进入 Airtable)

#断言失败时报的话错在哪里(这一列才是记录的价值)
⒜第 15 批引号按件计数VNQon:引号实测(直 0/弯 4)≠ 事前实算(直 0/弯 1)事前量的串与断言数的串不是同一个:事前量 (the “Fund”)(1 处),断言数 (the “ 前缀(4 处,另命中 Underlying(s)/Issuer/Underlying Index)。⭐ 判别句:事前算定与断言必须数同一个串;数了相近的另一个串时,预期值看起来同样合理,而断言会在正确答案上失败。 ⚠️ 同批另两份(UNGon/URAon)两者恰好都等于 2,故只核那两份时这个错完全看不出来 —— 第三份才暴露它。
⒝第 16 批实体名归一化名单ETNon:本件应归一化后仍不相等,而它折叠为相等('EATON')我在注释里写的理由是错的(「后缀表没把 CORP 与 CORPORATION 认成同一个」)—— 剥后缀是循环的,EATON CORPORATION PLC 与 EATON CORP PLC 两侧都剥到 EATON。⭐ 判别句(第 13 批那条的再一次兑现):一条写在注释里的理由不会被任何检查读到;约束它的只有断言 —— 而这一次是「理由写错 → 名单也跟着写错」被同一条断言抓住。
⒞第 16 批信封「本批全新」DAE3CAEC… 在前十五批里出现过({batch11: 9})→ 「本批全新」这个陈述不成立我按手头标签认人而没现算全线分布。现算后事实更强:本批三个信封无一是新的,且两个隔批重现(DAE3CAEC b11:9 → b12–15 全 0 → b16:3;F49A41EB b11:1+b12:8 → b13–15 全 0 → b16:3)。
⒟第 16 批前批声明名单份数build_ondo_batch11.py 的事前算定名单应 7 条,实得 10那条断言把本批份数当成了每个前批的份数。第 11–15 批每批都是 10、本批是 7,于是它在末批当场失败。⭐ 判别句:一个在五批上都成立的等式,可以是因为两个量恰好一直相等,而不是因为它们是同一个量;换一批两者一分开,它就失败。 ✅ 改法:每个前批的份数从它自己那份脚本里现读(BATCH_N = n)。
⒠第 16 批「中间全 0」的射程(未失败,但射程原本是错的)prev_envelopes() 写的是 rec.get('envelope_ids') or [] —— batch2/batch3 的探针没有这个键,于是它们静默贡献 0 份,而任何「某信封中间全 0」的陈述都会把它们算成「确实没有」。⭐ 与本库脚本首版同一个错(把 batch2–4 的 30 份算成「非美国标的发行人」)。✅ 两处都已改成把缺键也记进「无从比对」。

二、⚠️⚠️ 一件没有任何断言接住的事故(§8.18d 同族,本节收它是因为它说明了检查的边界)

把一段常量按首尾锚切换时,末锚算在了首锚之前:s.index(last) < s.index(first),于是切出的是空串,而 s.replace('', new) 把 new 插在每个字符之间 —— 文件从 160 KB 变成 471 MB,而 replace 自己不报错。

⭐⭐⭐ 判别句(可迁移):一个边界算错的切段操作不会报错,它会成功地做另一件事。 ⚠️ 它与 §8.18d 的差别:§8.18d 说的是错描述没人读,本条说的是错操作成功了。两者的共同点是输出看起来正常(前者是一段通顺的话,后者是一个写成功的文件)。

✅ 改法已落(cut() 助手):切段前断言 start < end,不满足即停手。⚠️ 事故后按「母本不可信则重建」处理:删掉受损文件、由 maker/gen/splice 三支重新生成(全部确定性),未手工修补。

三、取件里出现的新形态(七种,各带回扫范围)

形态实例回扫范围与处置
LEI: N/A 两种字面同批共现第 14 批 QUBTon(带点)+ SEDGon(无点)可比对 98 份(batch1 无探针 10 份、batch2–4 无该键 30 份记无从比对):同批共现只有第 14 批。⭐ 第 13 批立「一个把句点写进串里的常量只认其中一种写法」时两种字面分散在两批上;本批两种同时在场 ⟹ 那条纪律若晚立一批,它要防的那件事会在同一次运行里同时发生两次。
一对引号内部两形第 16 批 EWYon (the "Underlying Index”)(直开弯闭)三种粒度至此各一次:批级(第 15 批三份 146 页件两并存一全弯)/件内(第 14 批 PPLTon、第 15 批 UNGon/URAon)/一对引号之内(本件)。⭐ 判别句:「有两种引号」这句话有三种粒度,而三者的批级读数一模一样 —— 只有按件乃至按串实测才分得开。
逗号后无空格 ⟹ 抽取式多抽第 16 批 ETNon Eaton House,30 Pembroke Road,Dublin 4,Ireland那条按「名字后接 , 或 , 数字」切实体名的正则切出了整条地址(68 字符)。⭐ 判别句:一个依赖「逗号后有空格」的抽取式,在省了空格的原件上不是抽不到,是「多抽」;而「多抽」看起来和「抽到了」一样。 ✅ 末批处置:该件实体名按件直给并断言正则确实多抽(把失效写成可失败的),不改探针(改探针须立版本、带 diff、旧锚不删)。
索引名里的词在原件0 处第 16 批 ENLVon(索引 Enlivex Therapeutics Ltd/原件 Enlivex Ltd.)第 13 批 GLXYon 之后第二例。⭐ 处置照 Ed 2026-10-19「规则不看差异大小」取原件,并断言索引那个词在原件全文 0 处 —— 否则「两名并存」只是一句转述。
LEI 以字母起头第 15 批 VNQon B1HN…、第 16 批 EWYon GR1Q…码形探针字符集本就允许,故不是例外。⚠️ 但一个「看起来不像」的真值与一个假值长得一样,故仍只靠三道实算定性,不靠「像不像」。
三种新标的形态优先股(第 15 批 STRCon)/商品基金 LP 份额(第 15 批 UNGon)/信托份额(第 16 批 ETHAon)不穿透原则六批下来底层横跨加密资产、股票、实物商品、债券、期货、不动产,输出一个字没变。⚠️ STRCon 落 股票与权益 而不因 Perpetual/Variable Rate 落固定收益 —— ⭐ 一个永续的权益与一个永续的债,名字里都有「永续」。
信封隔批重现第 16 批两例(隔三批、隔四批)见下节。

四、⭐⭐⭐ Ed「信封只记不猜」那条裁定的实证(2026-10-20 立,同日第三批后兑现)

Ed 2026-10-20 逐字:「信封方向连续两批猜反,以后信封只记不猜。」

第 16 批现算出两件被推翻的旧陈述:

⚠️⚠️ 两句当时各是一条通过的断言的附带陈述 —— 断言本身只说「它不在本批」,那是真的。

⭐⭐⭐ 判别句(定稿):「它不在本批」是实测,「它止于上一批」是预测 —— 两句话在当批的输出上完全同形,而三四批之后只有后一句会被推翻。

✅ 故第 14–16 批的信封断言全部只针对已发生的事实(本批分布/跨批归属/中间各批全 0),不写任何「止于」「此后不再出现」。⚠️ 第 16 批连「本批全新」都没有,而「本批没有新信封」这件事同样只是实测,不是「此后不会有新信封」。

五、错法实证账:第四态兑现(系列完结)

第 16 批取尽 2026-07-16 组(50+7 = 57 = 组大小),Ondo 线 138/138 全。故错法实证在本批的状态是第四态「系列完结,检验对象消失」——⚠️ 既不记「真失败」(没有错法可犯)、也不记「零信号」(不是没触发)、也不记「无从比对」(不是缺数据)。

⭐ 四态在 nfail 上两两同形,区别全在结论那一行的字面里(已定稿)。全系列账的最终形状:纪律未立 1–3 / 真失败 4,6,7,8,9 / 零信号 5,10 / 无从比对 11–15 / 系列完结 16。


⭐⭐⭐ §8.18a 续十:尺寸闸 —— 一道与内容无关的前置护栏(Ed 2026-10-20 立,2026-10-21 落地并验过)

Ed 2026-10-20 逐字:「三件里最该多记一句的是第三件:切段没报错、文件从 160KB 变 471MB,这一类错没有断言接得住,因为断言都是针对内容的,而这个错是尺寸的。cut() 加 start 小于 end 对,再加一道和内容无关的护栏:生成器的产物大小必须在母本的两倍以内,否则退出。它什么都不理解,只量字节,但正好接住这一类「成功地做了另一件事」。」

一、落地形状

本库脚本:guard_size(text, ref, dst, what) —— 产物字节数须落在母本的 [0.5, 2.0] 倍之间,否则 sys.exit。已接入九支写文件的生成器,且逐支核过它在 open(..., 'w') 的前一行。

二、⚠️⚠️ 立条理由的一次订正 —— 两版都留痕(体例同 ED_SAID,Ed 2026-10-21 指定)

原句(Ed 2026-10-20 口述,立条时的理由,保留不删):
「这一类错没有断言接得住,因为断言都是针对内容的,而这个错是尺寸的。」

订正(2026-10-21,由重放实测得来,非推演):重放那次事故后实测 ——
ast.parse 确实报错(unterminated string literal),ENVELOPES = {/ROWS = [ 也确实都不在了
⟹ 内容类检查看得见它。真正的成因是次序:那一版是先写盘、后 ast.parse,
于是等内容断言开口时,471MB 已经落在盘上了。

✅ Ed 2026-10-21 收下订正并指定此处落法:「执行者改我的理由改对了,我收下:内容检查看得见那个错,问题是它在写盘之后才开口。判别句「一道检查能不能救你,不只看它看不看得见,还看它在写盘前还是后开口」比我原来那句准,用它替换,方法篇里注明原句是我说的、订正是重放实测得来的,和 ED_SAID 留痕是同一种处理。」

⭐⭐⭐ 判别句(定稿,替换原句):一道检查能不能救你,不只看它看不看得见,还看它在写盘之前还是之后开口 —— 写盘之后的检查只能告诉你已经发生了什么。

⚠️ 为什么两版都留(与 ED_SAID 同一个理由):⭐ 一条被实测订正的理由,它的价值不在它对不对,在它记录了「重放曾经驳回过一次」 —— 删掉原句之后,这一节看起来就只是「一开始就想对了」。
⚠️⚠️ 而本例与 ED_SAID 那次方向相反、处置相同:那次是口述被现算驳回,这次是口述被重放修正而结论不变(闸该加,位置更本质)。⭐ 两种都按「原值留痕、新值定稿」落。

⚠️ 故这道闸的位置是本质的(必须在写盘之前),而它仍然「什么都不懂」——⭐ 因为最便宜的前置检查才会被每次都带上。

三、✅ 非平凡性已实测(§8.18 禁恒真断言的要求),而第一次验法本身错了一轮

验法结果
重放「边界算错 → 空串 → replace('', x)」27 ×,闸在写盘前拦下,文件字节数未变
切多了(0.25 ×)拦下
正常改写 1.08 ×/0.92 ×/贴近上限 1.98 ×全部放行
在真生成器里跑到闸(载荷放大 200 倍,⭐ 占位符仍各替换 1 次、四段仍逐字可找到、七段哈希全过)13.3 ×,由尺寸闸在写盘前拦下,产物未落盘

⚠️⚠️ 第一次「在真生成器里做坏」没跑到闸:挡住它的是 splice 自己那条「占位符应出现 1 次」的断言(它恰好也在写盘之前)—— 而我当时把那次拦截记成了「闸拦下的」。
✅ 第二次换成「内容检查全过、只有尺寸不对」的载荷,才真正落在它的射程里。

⭐ 判别句已按 Ed 2026-10-21 指定移入 §8.18c 那一族(与「配套条件写错把通过判成不通过」同一个方向:验证本身也要被验证)—— 见 §8.18c 第三小节。

四、⭐ 顺带:「注释里的规则不约束常量」的第二种位置

第 13 批那条立的是规则写在注释里不算数;第 16 批那次是理由写在注释里不算数(我写「后缀表没把 CORP 与 CORPORATION 认成同一个」——剥后缀是循环的,两侧都剥到 EATON),而名单跟着那个错理由一起写错,被同一条断言驳回。

⭐ 判别句:一条写在注释里的理由不会被任何检查读到;而当名单是按那条理由写的,理由错则名单错 —— 约束它们的仍然只有断言。 至此该条已在规则与理由两种位置上各兑现一次。

⭐⭐⭐ §8.18a 续十一:RHJ 线第一次真失败实证 —— 同序断言在取件之前就失败了(2026-10-28,Ed 指定按 §8.18a 记)

Ed 2026-10-28 逐字:「A4 这次是真失败,按 §8.18a 记,它是 RHJ 线第一次实证。」

断言(预案 §四之二,10-21 立):第二批(n=10)断言「按原件 dated 排序的次序 == 按索引时间戳排序的次序」,不同序即停手改分组依据。

它怎么失败的:没有等到取件。旧索引(本库落盘数据;2026-09 自 196 份原件前 6 页抽 Tokenised Products Programme dated …)已载每份的原件侧日期;与新索引时间戳交叉:原件相对索引 早 96/同日 54/晚 46,跨组逆序对 2751;原定第二批 10 份的原件日期为 12 August ×5、26 June ×5(本库落盘数据)。

处置:停手,未取件;Ed 改定分组键为原件 Programme dated(组内 slug 升序,与 Ondo 线同口径),并加 R-3 第一档对第二档的核:取到的原件日期必须等于旧索引里的日期,不等即停。

⭐⭐ 这次实证与 Ondo 线各次的差别:Ondo 线的真失败都发生在跑断言的时候;本次的失败在断言被跑之前,就由盘上一份已有材料判出。⟹ 一条「等第 N 批才能检验」的断言,检验所需的材料可能早已在盘上 —— 预案写「取件后才知道」时,应先查「是不是已经知道」(SC-13 同形,见 §4.7 SC-13.0 第 9 条)。
⭐ 判别句:索引时间戳记的是「这个地址第一次挂出」,原件日期记的是「现在这个地址上那份文件」—— 地址不变而文件可换,两把尺从定义上就可以反序。(「换版」本身是推断,未检验:九月那 46 份未落盘,比哈希不可行,记「不可检验」。)

现场补记(Ed 2026-10-28 指定入本节):按新依据取回的第二批 10 份,原件 Programme dated 全为 26 June 2026(逐份等于旧索引 10/10),而 A3(原件 − 索引侧,天)为 −4 ×6(索引 Jun 30)、−47 ×4(索引 Aug 12)—— 同一组原件日期,在索引侧分在两处。这正是旧依据用不了的证据。换版推断「不可检验」,照记,不再追(Ed)。

8.18d 正确性检查的盲区:错描述不是错值,而描述只有人读(Ed 2026-10-20 立为常设)

Ed 逐字:「标签错了但不影响任何断言,所以不会被任何检查接住 —— 这一类是「正确性检查的盲区」:它不是错值,是错描述,而描述只有人读。改法从目录名现算对,它把一个靠记忆的动作换成了一个靠路径的动作;以后凡落盘产物里的批次标识,一律从路径或索引现算,不许写死。」

实证:第 14/15 批两份本库落盘数据的首行都印着 batch=ondo-batch13 —— 那个标签是写死的字面值,从第 13 批的脚本复制过来没改。

错值错描述
谁会发现断言、校验、下游计算⚠️ 只有人读到时
本例(无——所有读数都对)产物首行的批次标识
为什么旧检查接不住——⭐ 它不参与任何判定 ⟹ 没有一条断言会因为它错而失败

⭐⭐⭐ 判别句:一个写死的标签不会因为它所在的文件被复制而跟着变,而它错了也不影响任何一条断言 —— 故它不会被任何现有的检查接住。

常设落法(两步,缺一不可):

  1. 现算:凡落盘产物里的批次/批号/窗口标识,一律从路径或索引现算(本例:os.path.basename(OUT)),不许写死。

    ⭐ 这一步的实质是:把一个靠记忆的动作换成一个靠路径的动作 —— 由路径算出来的标签,和路径一起变,不需要有人记得。

  2. 回扫:产物写完后再扫一遍落盘文件,凡出现 batchN 形的 token 必须等于目录名,不等即 sys.exit。

    ⚠️ 只做第 1 步不够:⭐ 「这一次算对了」与「它此后不会被人改回写死」是两件事,而第 2 步是后者的唯一证据。

✅ 非平凡性已实测(§8.18 禁恒真断言的要求):该回扫对已落盘的第 15 批那一份运行时真的失败(报出 ('_template_precheck.txt', 'batch13'))—— ⭐ 即它不是一条永真断言。
⚠️ 已落盘那两份不回改(§8.9 留痕):它们正是这条纪律的实证,改掉就只剩规则没有证据。

⭐⭐⭐ 8.18b 两条断言同时通过而东西是错的:一致性校验与类型校验是两件事(2026-10-12 第六批 PFEon 实证)

第六批 VGG7001ACP71(PFEon)下载下来的文件不是 PDF。它的头四字节是 -----,整件是一个 multipart/form-data 包裹:

boundary    = ------WebKitFormBoundaryLpakzlsZTVFpuehs
part header = Content-Disposition: form-data; name="file"; filename="Final Terms.pdf"
part header = Content-Type: application/pdf
包裹开销    = 前 148 字节 + 后 47 字节
包裹字节 1312704 → 内嵌 PDF 字节 1312509,页数 141

⚠️⚠️ 取件脚本沿用三批的两条断言在这一份上同时通过:len(raw) == 索引 bytes(1312704 两边相等)与 len(pages) == 索引 pages(141 两边相等)。原因是 CMS 发布端给出的 bytes 本来就是包裹后的长度 —— 字节数一致,恰恰证明「我拿到的就是对方那一堆字节」,而对方那一堆字节不是 PDF。

⭐⭐⭐ 判别句(可迁移):字节数相等只证明两次拿到的是同一堆字节,不证明那堆字节是它声称的那种东西。一致性校验与类型校验是两件事,前者再严也不替代后者。 本库此前三批的「双路核对」全是前者。

⚠️⚠️ 唯一的信号本来会被丢掉:pypdf 把 invalid pdf header: b'-----'/incorrect startxref pointer(1)/parsing for Object Streams 三行只写进日志而不抛异常,解析照样成功、页数照样 141。⭐⭐ 一条只写进日志的警告等于没有留痕 —— 留档文件里查不到的证据,在下一轮就不存在。

⚠️⚠️ 同日订正:我的第一版捕获捕的是落点,不是来源(Ed 2026-10-12 指令逼出)

Ed 2026-10-12 逐字:「我补一条不进方法篇、进脚本的要求:把pypdf的警告一律升为异常,不要靠人去读stderr,这次是运气好有人看了。」

照办时实测出一件比指令本身更要紧的事:pypdf 6.17.0 的这三行警告根本不走 stderr,它们走 logging.getLogger('pypdf')。第一版用 contextlib.redirect_stderr 能捕到纯属侥幸 —— 本进程没给该 logger 配 handler,警告落到 logging.lastResort,而 lastResort 恰好写 sys.stderr。

实证(同一份包裹字节,只给 pypdf logger 挂一个 NullHandler):

只要 pypdf logger 挂了任意 handler:stderr 捕获 = ''(页数仍 141)

⚠️ 即只要本进程或任何上游库配置过日志,第一版就会静默返回空串,看上去「这一份没有警告」—— 那是比「只写 stderr」更坏的一种失效:上一版连留痕都是假的。

⭐⭐⭐ 判别句(可迁移):捕获一条警告,要捕在它的来源上,不要捕在它当前的落点上 —— 落点是别人可以改的配置,来源不是。 ⭐⭐ 与本节主判别句并读才完整:主判别句说「只写日志等于没留痕」,这一条说「把日志重定向走一遍也不一定叫留痕,得问你接的是谁的输出」。

✅ 已落地(两脚本同体例,pypdf_trap() + PdfWarningError):handler 直接挂在 logging.getLogger('pypdf') 上并关掉 propagate,任何 WARNING 以上记录即抛异常、中止取件/建档。唯一允许警告的是 unwrap() 里对已判定为包裹的那一次诊断性直读 —— 那一读的目的就是取警告原文。

三项验证实跑(2026-10-12):① 十份实际 PDF 在严格模式下逐份直读 10/10 通过、警告为空;② 包裹字节直读必须抛,抛出的三行与留档逐字一致(现额外带 WARNING: 级别);③ 上述脆弱性实证。⚠️ ③ 这一条必须跑 —— 否则「改对了」和「换了一种写法」在留档里长得一样。

⭐⭐⭐ 再一次订正:验证③ 当日跑一次不够,已做成母本里的固定自检

Ed 2026-10-12 逐字:「验证③不能只跑一次。它现在证明的是旧捕法脆弱,但它真正的用处是守新捕法……一个只在订正那天跑过的测试,和一条只写进日志的警告,是同一种留痕。」

⭐⭐⭐ 判别句(可迁移):一个只在订正那天跑过的测试,和一条只写进日志的警告,是同一种留痕。 两者都「存在过」,都不在下一轮的现场。⚠️ 这与 §8.18 是同一条纪律的第三个位置:§8.18 禁恒真断言,§8.18a 要求失败分支真的被走到,本条要求守护性测试进入每轮的固定路径。

✅ 已落为 selfcheck_pypdf_trap(),在 main() 下载任何字节之前跑,母本的一部分。要点三条:

要点做法不这样做会漏掉什么
双向方向一:干净字节不得抛;方向二:坏字节必须抛只验方向二 → 漏掉「trap 过宽把正常取件全拦掉」;只验方向一 → 漏掉「trap 根本没接上」
夹具自备用 pypdf.PdfWriter 现造一页空白 PDF,再在头部塞 ----- 前缀(与 PFEon 同形状:头无效 + xref 偏移全错)若夹具取自某一批的文件,自检就只能在那一批跑
位置在下载之前main() 第一件事放在取件之后 → 已经拿了一堆不知道有没有警告的字节

⭐ 它守的是一类会「静默失效」的失效:pypdf 换版本、改 logger 名字、或上游谁配了日志,pypdf_trap() 都会变成空捕,⚠️ 而失效的表现恰恰是「一切正常」。自检因此必须把这种情形变成 sys.exit。

自检本身也被验了一次(把 trap 故意挂到 pypdf_RENAMED_IN_SOME_FUTURE_VERSION 上,模拟「pypdf 改了 logger 名字」):自检如期 sys.exit,且那一跑里三行警告原样漏到了 stderr 上没人读 —— 恰好把这条纪律要防的场景演了一遍。⭐ 形状同 §8.18a 的「一段用来证明断言有效的代码,自己也需要一个断言」,这里是一个用来守护捕获的自检,自己也需要被破坏一次来证明它会叫。

落地(三项,本库脚本已实测):

  1. 类型校验:非 %PDF 头的一律进 unwrap(),且只接受 multipart 一种容器;须 inner 完整,并须实证「包裹直读」与「裸 PDF 直读」两路文本逐字相等(本件各 501209 字符,相等=True)—— 相等才能判定不需重抽,否则必须重抽。
  2. ⭐ 双哈希:sha256(所下载字节)与 sha256_pdf(实际 PDF 字节)并记。只留包裹哈希的后果是:CMS 日后把这一份改发成裸 PDF 时,哈希会变而原件一字未改 → 会被读成原件被改过。本件两值不同(99c9c378… vs 748af421…),另九份两值相同,建档脚本对这两种情形各下了一条断言。
  3. 回扫:前六批共 60 份逐份验头,仅此一例。

⚠️ 「须校验容器类型」写进本库字段字典 §2.5.2a 体例属规则条款增 → 触发门槛② 计时归零,执行者不自行加;形状同 §8.17 的码形探针,已编入 v1.0 候选、与 #4 同批上呈。


⭐⭐⭐ 8.18c 检验强度随样本数走,而检验的输出形状不随它走(2026-10-13 第十批 n=1 实测,Ed 批准进本篇)

⭐⭐⭐ 检验强度随样本数走,而检验的输出形状不随它走。

由来:第十批整组只有 1 份(2026-06-09 组 n=1)。这使四个既有检验在定义上恒真 —— 而 §8.18 禁的是恒真断言,于是出现一个表面冲突:是不是该把这四条删掉?⚠️ 不是。 恒真的成因分两种,处置也分两种:

恒真的检验n=1 为什么使它恒真处置为什么这样处置
① 模板法前提(组内模板是否单一)1 份必然 1 版、0 MISS⚠️ 记「无从检验」,不得记为成立;不入九种结果计数它是一个关于组的读数,组里只有一个元素时这个读数没有内容。记为「成立」会污染统计
② 页数齐一1 份与自己必然齐一✅ 仍硬断言它防的不是组内分叉,是索引页数与原件实算页数不符;这一层与样本数无关,n=1 照样能失败
③ 与前批无重叠与前批 ISIN 集合必然不交✅ 仍硬断言同上,它防的是切片窗口算错,n=1 的窗口照样能算错
④ 信封恰好覆盖整批1 份的信封就是它自己✅ 断言保留,但 ⚠️ 不计入「该形状成立次数」断言仍能接住窗口错位;但把它计入成立次数等于用一次恒真给一条纪律加一分

⭐ 两类的分界:问这条检验防的那件事在 n=1 下还在不在。① 防的是「组内多模板」,n=1 下那件事不存在 → 降为「无从检验」;②③④ 防的是「索引与原件不符」「窗口算错」,这些事 n=1 下照样存在 → 断言一字不改。

⚠️ 「无从检验」是第三种状态,不是「成立」也不是「不成立」。把它折叠进前两种,是本条要防的那一步 —— ⭐ 与 §8.18 的关系:§8.18 说恒真断言等于没有断言,本条补一句:恒真的断言该不该留,看它恒真的原因是「它本来就没内容」还是「这一次恰好没有反例」。 前者降级,后者保留。

同族的第二个实例(错法零信号,第 11 批起长期生效):⭐⭐⭐ 当未取尽的组只剩一个时,「按日期分组」与「不按日期分组」在定义上无从区分。 此时错法实证既不成立也不失败,一律记「无从比对」。⚠️ 这不是纪律失效,是检验对象消失 —— §8.18a 要求失败分支真的被走到,而这里连分支都不再分叉;该纪律在第 4/6/7/8 批已有的实证记录就是它此后唯一的证据来源。

附一句同批实测(与样本数无关的部分):⭐ 一次手滑是否容易被发现,与它造成的后果大小无关。 n=1 的重复只有一条、比十条更不显眼,故 ALREADY_APPLIED + refuse_apply() 护栏一字不减,并在入库同会话内补齐、实跑验证已拒。


8.18c(反向侧、第三侧)· 已于 v1.0(2026-10-26)并入 §8.18.2/§8.18.3

原两节及同日第二例的现场原文整段移至 §8.18 合并节,此处只留指针。

⭐⭐⭐ 8.18e · 裁定里含「我去做某个界面动作」时,下一轮必须现读核一次(Ed 2026-10-22 自领)

Ed 2026-10-22 逐字:「第二处是我的账:10-20 我说「ledger_technology 改回隐藏我在界面上做」,没做,意向记成了动作。……规则我自己也领一条:凡裁定里含「我去做某个界面动作」,执行者下一轮现读核一次有没有发生,没发生按未发生记,不按我说的记。」

触发事实:Ed 2026-10-20 裁定里含一句「认定回隐是对的」,执行者把它写进材料的「实态」栏,
记为不出库的实态五项。⚠️ 2026-10-22 现读查出:账本技术实现仍然可见,
界面动作没有发生 —— 实态是四项。

⭐⭐⭐ 判别句(本条立):一次「认定该怎样」与一次「已经那样了」,在记账上长得一样。

⭐⭐ 更准的一句(同日由 Ed 的新规则逼出):一条「我去做」的裁定,在档面上与一条「已经做了」的裁定长得一样 —— 分开它们的不是更仔细地读那句话,是下一轮去现读一次那个东西。

规则(定版)

#要求
①凡裁定文字里含由人在界面(或本库脚本够不到的地方)执行的动作,执行者不得据此改写「实态」类陈述
②下一轮必须现读核一次该动作是否已发生,并把核验方式写明
③没发生按未发生记,⚠️ 不按裁定说的记 —— ⭐ 这一条是 Ed 自己领的,方向是约束裁决层的话在档里的效力
④核验结果两种都要记账:已发生 ⟹ 实态与条文一致;未发生 ⟹ 条文跑在实态前面,另记一行

⚠️ 与既有「实态先于条文」那条的关系(§6.2 的记账行):两者方向相反而同族 ——
前者是做了而没写下来,本条是说了要做而没做。
⭐ 判别句:同一节条文里可以同时有「实态先于条文」和「条文先于实态」两种项,
而它们在条文的字面上完全同形 —— 故落地时须逐项标注哪一种。

8.19 口径升级升的是「核哪几列」,不是「核所有列」(Ed 2026-10-10 指定进本篇)

⭐⭐ 口径升级一直升的是「核哪几列」,没有升成「核所有列」;前者可做且有针对性,后者本库从未做过 —— 不要把前者说成后者。

沿革(对外镜像回读口径的五次升级,每一次都不是想出来的,是那一轮镜像承载了什么东西提出来的)

级核什么由什么提出
①记录条数最早的 165 = 165
②关键字段非空条数条数对而字段可能整列为空
③多选字段值总数⭐ 「非空」对多选字段几乎什么都不保证(2026-09-27)
④按系列切子集那一轮镜像承载的是 Ondo 30 条 authority 两栏的回填,只核全库总数看不出它到没到(2026-09-28)
⑤按档位名核分布v0.9 的 131 条枚举改名在 ①②③ 上一个数都不变 —— 一次纯标签层的改动,只有按标签核才核得到(2026-10-10)

要害:这五级合起来仍然只是「挑出来的那几列」。 本轮回读实际核的是 6 个字段(权属依据类型/权属依据原文/发售国清单/合约地址/托管方类型/所在链)+ 字段数 + 记录数,而镜像有 77 列。

⭐ 挑的理由必须写出来,否则下一轮无从判断挑得对不对。本轮的理由是:它们是本轮及近几轮唯一被写过的列(authority 两栏=本轮回填、档位名=本轮改名、多值两栏=唯一会出现「非空对而值总数错」的那类)。⚠️ 没被写过的列不核,不是因为它们一定对,是因为没有任何本轮动作能让它们变错 —— 这是一个关于动作范围的论证,不是关于数据正确性的论证。

⚠️⚠️ 两种说法差一个量级,绝不可混:

说法真假代价
「镜像的这 6 列与源表一致」✅ 实测为真——
「镜像与源表一致」❌ 本库从未验证过把一个有范围的结论说成无范围的结论

⭐ 判别句:凡回读报「全绿」,必须紧跟一句「绿的是哪几列」;没有那一句的全绿,量的是执行者的信心不是数据的一致性。 这与 §8.18「恒真断言」同族 —— 一个不写明范围的「一致」,和没有核过在输出上同形。

⭐ 为什么不升成「核所有列」:77 列全核在技术上做得到,但它会把回读从针对性检查变成例行全扫,⚠️ 而例行全扫的产出是一个更大的绿、不是一个更强的结论 —— 当每一轮都全绿时,全绿就不再携带信息(§4「一个不被展开的汇总数和没有这个数是一样的」的第四次现身)。⭐ 有针对性的小范围核查,证明力强于无针对性的全范围核查,因为它的每一列都对应一个本轮真实发生过的写入动作。


✅ 2026-10-17:第 ⑥ 级出现,且上表「本库从未验证过」那一格要改。

级核什么由什么提出
⑥77 列逐格全核⚠️ 不是口径自己长出来的,是 Ed 2026-10-13 为 v1.0 候选 #2 指定的一次性基线(逐字「核对是验证不是变更,不触门槛②」)

实测基线:源表 216 / 镜像 216,首字段集合逐值相等;77 列,不符 0(sync_feishu.py --verify,只读)。⟹ 上表 ❌「镜像与源表一致 —— 本库从未验证过」这一格自本日起成立,但只在 2026-10-17 这个时点、且只在下面两条限定之内。

⚠️⚠️ 本节的主张一格没被推翻,因为 ⑥ 级不是例行。Ed 指定的是一次基线,不是每轮全扫。⭐ 故「例行全扫的产出是一个更大的绿」仍然有效 —— 一次性基线与例行全扫在输出上同形,而在证明力上不同:前者是为定版取一个参照点,后者是把参照点当成检查。 ⚠️ 此后常规轮次仍按 ①–⑤ 挑列核,并照旧写明挑的理由。

⚠️⚠️ 限定一:全列核对能证「传输无损」,不能证「映射正确」。 写与核走的是同一个 build_fields(),映射本身若有系统性错(例如某列该取被关联记录的主字段文本却取了 record id),两侧会一致地错、核对照样全绿。⭐ 判别句:用同一个映射既写又核,核得出的是「传输无损」,核不出「映射正确」。 映射正确性只能逐列人读 —— 那是 #2 定版时要补的那一步,不在本次基线里。

⚠️⚠️ 限定二:「两边都空」不计入相符,必须单独一栏。 本次实测两边全空列 4 个(表现费说明/母产品/子产品/账本技术实现)。⭐ 若把两边都空算成通过,一列全空的字段会拿到 216/216 满分,而那个读数不携带任何关于这列对不对的信息 —— 这是「空值相等不是相符」在本库的第四次兑现,前三次是 LEI null 两成因、发行日期留空、索引 ft_dated 大小写盲区。

⭐⭐⭐ 而本节最该补的一条,是 ⑥ 级第一次跑出来的东西:7 列不符、784 格,7 列全部是核对器自己造的。 那 7 列全是数字列(规模数值/最低认购额/管理费率/申购费率/赎回费率/数据完整度/票息率),不符形状全同:源 800.0 / 镜 '800'。实测飞书侧这 7 列 type 确为 2(数字)、formatter 正确 ⟹ 是 records list 接口把数字字段的值回读成字符串,镜像一格没错。

⭐⭐⭐ 判别句:「写入链路无损」与「核对器口径对」是两件事,而核对输出不区分这两者。 ⚠️ 「7 列数字不符」和「飞书真把数字存成了文本」在读数上完全同形,只有去查字段 type 才能分开 —— 一个核对器报出的不符,先验的解释有两个,而其中一个是它自己。

⭐⭐ 由此给本节的主张添一条与原主张同向的新理由:⚠️ 全范围核查的第一次输出,测的是核查器,不是数据。 小范围核查之所以证明力更强,不只因为每列对应一个真实写入动作,还因为列少到可以逐格看懂输出是怎么来的;而 784 格的红,没有人会逐格看,它只会被当成一个结论。


8.20 自我描述的合规,和合规,在文本上同形(Ed 2026-10-19 指定进本篇,Ondo 第 12 批一次编造事故逼出)

⭐⭐⭐ 一段注释声称自己有出处,和它真的有出处,不是同一件事 —— 而这两者在注释的字面上完全同形。

事故:第 12 批取件脚本的 IDX_LEI_BY_ISIN(索引侧 LEI 逐件预期表)初稿,四个有值串是按真实 LEI 的常见前缀(549300…/254900…)凭字形生成的假串,而表头注释写着「来自索引实算,不是推断」。首跑断言在正确答案上把四项全部抓住(下载尚未开始);反查确认这四个串在整本索引里一个都不存在 ⟹ 不是抄错行,是编造。

⚠️ 同表六份 null 当时全对,由该表派生的 HIGH_RISK 名单因此一格没错。⭐⭐⭐ 一张表里只有一半是编的,它的派生物可以照样全对 —— 污染不在下游显形。

⭐⭐ 而编造发生的位置是有规律的:可现算的聚合量(份数、页数、三态分布)没被编,编造落在长到不像会有人去核的随机串上。由此得本节第一条写法侧纪律:

纪律一(⑪):事前算定里凡长随机串 —— LEI/ISIN/哈希/合约地址 —— 一律由脚本现读填入,不得手写。 现读的那一行代码本身就是出处,注释里的「来自实算」则不是。

⚠️ 顺带定清那道断言的真实作用域(此前高估过):预期侧与实得侧同源(都读本库落盘数据)⟹ 它证明不了「索引数据没变」,它能防的只有执行者在转抄这一步出错或编造。本次它正是在这个作用域上生效。⭐ 一个改动的「理由」与它的「作用域」可以不是同一个大小。


同一形状的第二个载体:print。 同日另一个脚本的输出里印着「失败必须进结论,不得只打印一行就放行」这句纪律本身,而退出码是 0 —— 成因是 if nfail: print(...) 与 return 1 写在了两处,后者漏了。

⭐⭐⭐ 一句写在输出里的纪律,不等于那条纪律被执行了。

纪律二(退出码第六个载体,在 Python 层):凡「失败必须进结论」那一行,必须与一处 return 1/sys.exit(1) 写在同一个 if 里。分裂处就是漏点。

⚠️ 前五个载体全在 shell 层(整条命令的最后一个进程决定退出码等),这是第一个在 Python 层的 —— 程序自己打印了失败却 return 0,shell 侧的定版动作封不住它。


同一形状的第三个载体:后台任务回执。 一份自称 completed exit 0 的回执,其落盘尾行是 EXIT_FILE=1 —— 正是上面那次编造事故被抓住的那一跑。成因在回执层:cmd > file 2>&1; echo "EXIT_FILE=$?" >> file 的最后一个进程是 echo,回执量到的是 echo 的 0。

⭐⭐⭐ 若当轮信了回执的 exit 0,那次编造事故就被放行了 —— 红线之所以被抓住,靠的是读落盘文件,不是读回执。

纪律三(回执规则):回执只用于定位落盘文件,读数一律回落盘文件取。对自称成功的回执尤其适用。

⚠️ 一份空回执与「任务根本没产出」在回执上完全同形;回执 .output 的 mtime 记的是任务启动/文件创建时刻,故它只在秒级完成的任务上碰巧等于完成时刻,不可用于给慢任务匹配落盘。⭐ 把现象当成机制写进档,与写对了,在档面上同形(本节这一句是对「对刻法只在秒级成立」的订正:那是现象,mtime 语义才是机制)。

纪律四(⑫):失败跑与重跑不得复用同一落盘文件名,文件名带启动时间戳。 实证:一次 EXIT_FILE=2(相对路径 + CWD 不在仓库)的输出被 1 分钟后启动的同名重跑覆盖,失败证据灭失。带时间戳后覆盖不再可能发生,失败证据不再靠运气保留。

纪律五(Ed 2026-10-28 立,与「失败进退出码」同级):任何网络调用不许没有超时。 实证:RHJ 标的 LEI回填(CBRS/USAR 两条)一次请求无超时,进程挂 22 小时 33 分、CPU 0.13 秒,回执文件为空(stdout 重定向到文件时带缓冲,第一行都没刷出),由人隔天询问才发现;停掉后现读两条两格均空,无半截写入。处置:共用请求函数 v1_pkg1_lei._req 加 timeout=60。

⚠️ 一个没有超时的调用,失败的形态不是报错,是永不返回 —— 它绕开了纪律二,因为根本走不到那一行 return 1。⭐ 判别句:「失败进退出码」只管得住会结束的失败;不会结束的失败,要先由超时把它变成会结束的。

配套(Ed 同日定,执行侧机制,不是写法纪律):「挂 22 个半小时、CPU 0.13 秒」是可机检的签名,不靠人隔天发现 —— 后台任务一律经看门狗(本库脚本)启动:连续 N 分钟无新输出即报警并终止,取件类 30 分钟、回填类 10 分钟;前提是无缓冲输出(python3 -u),否则看门狗看不到进度。

纪律六(Ed 2026-10-28 立):新建文件之前先查同名,同名存在即停。 实证:新线 RHJ 第二批取件脚本初稿与 2026-09-25 旧 Series 线的脚本同名,覆盖了后者(本库变更记录引其为 S011–S020 的出处);写入回报「updated」而非「created」才察觉,由会话记录重建(09-25 原文 + 两次编辑重放,与 09-27 一次读文件全文逐字相同)。
执行者写入工具没有「已存在则拒绝」的开关;它的「覆盖前须读过」检查把同一长会话里一个月前的那次读也算数,这次没有拦住。⟹ 写法侧补:凡新建,先 test ! -e <路径>;同名存在即停下改名或上呈。
结构侧(Ed 同日定):仓库 2026-10-28 纳入 git(首次提交「v1.0冻结后首次纳入版本控制,2026-10-28」);每批建档后提交一次,字典变更单独提交 —— ⭐「旧文件被覆盖」由此从事故降为一条 diff。


核对回执的节奏(Ed 2026-10-19 立,与上面四条同批)

⚠️ 本轮七份迟到回执的核对占去了超过一半篇幅,而已入档读数从头到尾没有被任何一份回执推翻。

先核「它说的那件事现在还在不在」。在,就一行记「已被后续成功跑覆盖,不改档」,然后往下走;只有与落盘矛盾的那一两份值得展开。

⭐ 这些发现本身有价值,但它们的价值已被纪律三、纪律四吸收 —— 此后同类回执不再逐份写入简报。


本节顺带收两句判别句(均由本轮执行者自己连错两轮逼出,错误推定按 §8.9 逐层留痕不删)

  1. ⭐⭐⭐ 「证据不足/不可知」也可以是一个错结论。 它比下错推定安全,但同样不是读数 —— 它是「我没把证据用尽」的另一种外观。⚠️ 「证据确实不足」与「我漏看了一项证据」,在结论的写法上同形。(实例:宣布三份回执归属不可知,而回执自带的描述文本就能直接定下归属。)
  2. ⭐ 一道断言的「通过」要能分辨成三种:前提真的成立/它恰好没被撞到/前提成立得太晚。 第二种的实例是整条 re.I 的作用域差在 101 份语料上始终未被撞到;第三种见 §8.18 一族。

九、本篇引用到的既有通则一览

只列已在文档或本库变更记录留痕、可回查出处的条目。 本库的「铁律」在本库变更记录里没有一张正式的编号汇总表,各条散落在使用现场;本表只收已可逐字引用者,缺编号的不予补全、不予推测。这一缺口本身应记入待办(Ed 2026-09-20:「铁律编号汇总表那条待办继续挂,不补不猜」)。

为什么这张表只收可逐字回查的条目,而不去补全一张完整的铁律表——理由是 §4.7 SC-9 那条撞出来的体例,Ed 2026-09-20 认可:

「格由样本撞出」在通则一层同样成立。 通则不是先验列全的,是被具体的错撞出来一条补一条。

一张先验补全的表会把「尚未被任何一次实践撞出来的条目」和「已经在使用现场用过、可逐字回查的条目」混在同一张表里,而这两者的证据地位完全不同。本表宁可缺,不可齐——缺是可见的,补齐出来的假完备是不可见的。 这与 SC-4(「逐条核完」掩盖样本空间)是同一条纪律:完整的外观本身就是一种误导。

通则出处
核心字段不放推断值(铁律二)本库字段字典开篇;本库变更记录
冻结文档不一致先报告、两边都不改(铁律三)本库变更记录
只填 A/B 级来源支撑的字段(铁律五)本库变更记录
文档优先于口头(铁律七)本库变更记录
取件地图的边界,就是披露义务的边界本库变更记录
取件地图的边界,就是投资者适格性的边界本库变更记录
HTTP 200 不是取件成功的判据本库变更记录
检验只覆盖部分维度时,别把它的结论当全称本库变更记录
核查的质量与检索范围的正确性是两件事本库变更记录
预判不是核查本库变更记录
区分「还没做」与「做不了」本库变更记录
建档的门槛是字段能不能填,不是材料值不值得本库变更记录
不降标准凑格(铁律二与铁律五并列引用所立)本库变更记录
票数一类事实:来源分级与一手核实是两件事,未一手核实须随引随注,并写明解除条件本库变更记录/口径纪律第 4 条
监管允许 ≠ 产品已开放本库变更记录
规则的适用范围由规则自身的条件决定收录标准 §6.8;本库变更记录
两个样本不足以设计一个选项集本库变更记录
选项存在不等于字段能装本库变更记录
载体的整洁度低于数据的安全性本库字段字典 §2.10
「攒批」的判据是「反例是否穷尽」,不是「记录数是否到某个整数」本库变更记录
裁决不等版本:规则的生效与版本号的递增是两件事收录标准 §10.1 末段
冻结令冻的是规则和字段,不冻事实收录标准 §11.2;Ed 2026-09-18 裁定
检索返回「0 条」必须配对照组才算数本库变更记录;本篇 §4.6
法定表格分类可枚举、可否证,关键词名录只能证实本库变更记录;本篇 §2.6
关闭令的适用范围由关闭令自身的理由决定(「规则的适用范围由规则自身的条件决定」的一次适用)本库变更记录;字典 §2.19
所在链记账本身份,不记技术栈本库变更记录
可比的沉默:同框架、同类文件、同位置上 A 写了而 B 没写,B 的「没写」有信息量本库变更记录;本篇 §8.4
链上权属效力第一档有两条进路(记录即权利本身/链上记录构成法定名册),二者同档本库变更记录;本篇 §8.5
模型置信度不感知「资料里没有答案」;流水线须先按证据存在与否分流,再交它判Ed 2026-09-23 立;本篇 §8.7
控制权是「谁有权写这本账」,不是「这本账在哪」 —— 前者不改变链上权属效力的判档Ed 2026-09-07 原话;2026-09-23 复用于 franklin-us 维持第一档
流转性不属于权属轴:禁止转让是 transferability 的事实本库变更记录;本篇 §8.5
留空对「理由是否成立」几乎没有阻力:以「未定」为由留空的,须逐字引出原文、不得转述本库变更记录;Ed 2026-09-20 认可;本篇 §7.2a
格由样本撞出:格子表的格不先验画满,由样本撞出来才补本库变更记录;Ed 2026-09-20 立为体例
凡把裁定转成枚举集匹配的,短成员须单独验其边界,不得默认子串匹配即是词匹配本库变更记录(0円 假阳性记录)
判据独立性:每个字段的取值只能来自该字段自己的原文依据,不得借同一文件其他字段或同类记录的取值推断Ed 2026-09-21 裁定(本库变更记录);首个实证为链上权属效力不按平台走;SC-7 的推广形态,不另给编号
403 判「适格性边界」须两条件:(1) 拒绝有主体自述的法律理由且该自述为 A/B 级;(2) 拒绝的范围与该法律理由的范围一致。只满足其一仍记「未打通」本篇 §2.4(ODX)/§2.3(SG-2);未另立条目
穷尽性检索须前置声明样本空间:报告命中与核查结果之前,先写「本次检索的样本空间是什么、它已知不覆盖什么」;写不出来就不能称穷尽本篇 §4.4(424B2 41 条);SC-4 的操作化,与 SC-9 的 dry-run 同构;未另立条目
偏离定义但结果对,因此永远不会被证伪(SC-11)Ed 2026-09-21 编号;本篇 §4.7 SC-11;首个实证=英文辖区 3 条产品名称(中文)长期留空
没查那个字段,用看起来相关的东西代替(SC-12):结论依赖某字段就去读该字段,不用代理变量;脚本内用 need() 断言字段存在Ed 2026-09-22 编号;本篇 §4.7 SC-12;五实例=拼错的 published(真值收录状态)/用 jurisdiction 代链类型/用产品名称(英文)代产品名称(原文)/用 products 的选项集推 stablecoins 的/用「两 arm 预测相同」代「遮蔽触发了几条」(2026-09-23,交结论前拦住;Ed 同日裁定同号 SC-12,不另编号)。第五实例派生:凡「两组结果相同/差异为零」这类否定性结论,先去数那个使它们本该不同的动作发生了几次——差异为零可以是「没有差异」,也可以是「没有施加差异」。 可用边界:代理变量并非一律禁止(有时目标量无字段可读),判据是有没有一个不经过这个代理变量自己的旁证;有,它是近似,没有,它就是 SC-12。边界(Ed 2026-09-23 逐字):need() 只挡拼错字段名那一半,代理变量那一半靠「直接读目标字段」这条纪律,两者缺一堵一半。派生固定动作:凡写成「请你去点」的待办,它依赖的每个事实都必须当场读出,不得有一个是推定的——待办一旦交出,dry-run 就不在链路上了
动已发布记录分三类,授权形式各不同:改错数(发现即授权)/规则变更导致的机械重填(随版本落地授权,dry-run 核数即可)/改判断(逐条经 Ed 审)Ed 2026-09-21 裁定(D2);✅ 已随 v0.7 落地,写进收录标准 §9.1(2026-09-22);三类首例=规模数值量纲错(一类)/系列 ID映射 60 条与产品名称(原文)回填 96 条(二类,均已 apply)/账本技术实现存量取件(三类,转后台)。⭐ 归类判据是「映射里有没有判断」,不是「动了多少条」
基于样本不足而下的指令,样本量过线后自行失效:执行者可按规矩自行翻转,不必等 Ed 明文撤回。边界已写死——仅当指令自述的理由是「样本不足」时成立;理由是判断/口径/优先级/风险偏好的,样本再多也不失效,等 Ed 撤回;判别锚点是指令自己写下的理由,不是事后归因;没写理由的指令按不自动失效处理Ed 2026-09-21 裁定(D6)并于同日第二轮确认「写死」;首例=P41「ledger_technology 不预扩」在库内技术栈达五种后失效
空值三态只适用于完整度分母内字段;可选字段的空一律读作「未填」、无语义,例外须在该字段定义里写明(现仅字典 #39)。由此可选字段不需要「结构性不适用」机制Ed 2026-09-21 裁定(D9);由账本技术实现公链填法逼出。⭐ 处置方式本身是通则:面对「机制缺失」先问需求是否存在,而不是先补机制
改一个字段的定义时发现另一字段有同构毛病,须一并处理——不一并处理即用新规则给旧毛病背书:「模板里留一处已知的不诚实,整个方案的理由就不成立」Ed 2026-09-21 引执行者原话立为判据(产品名称(英文)清理,63 条)
上呈编号请求时,须把「归哪个系列、为什么」一并写明,不把序列归属当成不言自明Ed 2026-09-21 纠正(§5.2 判「够格编号」时默认它进 SC,后一半判断是悄悄做的)→ 另开 R 系列,编 R-1
没查本库自己的文档就下结论(SC-13 第一层);配套固定动作:凡产生「我好像发现了一条本库没记的事」这个念头,先 Grep methodology.md/changelog.md/field-dictionary.md 三份文档Ed 2026-09-23 编号;本篇 §4.7 SC-13;实证=S100V863。⭐ 该动作由兴奋触发,不由风险触发
给结论补一个合理的因果(SC-13 第二层,Ed 指定单独记):合理的因果不需要是真的,就能被写下来并被后面的人引用;它比错的结论更难发现,因为它替结论准备好了辩护。判别提问:这个因果是我读到的,还是我补上去的?Ed 2026-09-23 编号;本篇 §4.7 SC-13;实证=把「随母体発行登録被取代」写成「随償還终止」。与「整齐是替代物的副产品」同族——都是错误自我伪装的形态,一个伪装成秩序,一个伪装成解释
凡涉及「某件事已不可能/已不可得」的断言,须列出试过的全部通道,否则不成立Ed 2026-09-23 认领并立(原话:「我上一轮直接采纳了『原件已不可取』这个前提并让它写留痕,没有让它先核直链——三层验证里我这层也漏了」)。⭐ 这是 §4.3「检索命中 0 的含义取决于载体覆盖了什么」在裁决层的对应物
错误留痕比干净文档有用Ed 2026-09-23 立;见 §8.9
问题问错了和结论下错了,来源是同一个动作(SC-13 第三层):不该存在的问题与错误的结论都是「该查的地方没查」,前者伪装成谦抑,把查证成本转嫁给裁决层。配套:上呈之前先检索「这个问题是否已有答案」;判别提问=我是在请求裁决,还是在请求代查?Ed 2026-09-23 编号;本篇 §4.7 SC-13;实证=把「22 条是否转 published」列为待裁项,而 v0.7 冻结节写着 published 72 → 94、正好 +22。⭐ 同时收紧上呈门槛的读法:「两种读法」指查完之后仍并存的两种,不是没查之前看起来的两种
披露义务边界有三种形态,并列:① 辖区间的披露义务(UBS)② 辖区间的适格性(ODX)③ 辖区内部的发行方式(NTT-TC 公募/私募)。终局性递减:①对整格有效、②只对某一层、③只对这一只有效Ed 2026-09-23 立(第三形态由 NTT-TC 日本收口逼出);本篇 §2.5。⭐ 把靠后的当成靠前的=拿一只私募债论证整个辖区没有文件
行业清单只能作线索,不能作分母:平台/协会/券商/媒体维护的清单不得用作检索的样本空间,因为没有人被法律要求把自己登在上面;分母的合法性只能来自法定披露义务Ed 2026-09-23 立,为「06A000 否证 Progmat 清单」的一般化;本篇 §2.6.1。两实证=Progmat 清单漏 10 件/JSTOA 自述不完备。⭐ 用清单前先读它的口径自述;德国因无法定分类枚举,整条线不允许以「检索 0 条」为依据下结论
Ed 给出的「法条起点」一律视为线索,不视为事实 —— 须先核现行原文再据以画图Ed 2026-09-23 认领并立(原话:「起点一是我给的,§20 eWpG 今年 2 月已被废止,我引了一条不存在的义务……这正是流程存在的意义」)。⭐ 与上一条认领(「不可能」须列全通道)同属裁决层自我约束;本条实证=德国取件地图第一稿当场拦下错前提。⭐ 第二次兑现(2026-09-24,Ed 再次认领):「§16『必须建在去中心化系统上』是我的记忆错,原文是『防篡改、技术中立』,它逐字核出来的结论对」——上一次是整条法条不存在,这一次是法条存在而要件记错,后者更隐蔽(条号对、章节对、只有要件词错一个)。⭐ 两次都不是靠怀疑给出起点的人撞出的,是靠「无论谁给的起点都要回原件核」这个动作撞出的——这正是这条纪律不需要先判断来源可信度就能生效的原因
签署日、公布日、生效日是三个日期,必须分开记(Ed 原话:「只取一个会算错五天」)—— 与字典 §3.5「月精度填首日」并列,一条管「知道得不够细」,一条管「三个被当成一个」Ed 2026-09-23 立;本篇 §8.3.3。三实证:StoFöG 签署 02-04/公布 02-09/生效 02-10(跨 6 天);DN Group 招股说明书文件日 07-06/BaFin 批准 07-07/起售 07-08(跨 2 天);ZuFinG 签署 2023-12-11/公布 12-14/生效 12-15。⭐ 本条比精度损失危险,正因为它不损失精度——填进去的是原件上白纸黑字的日精度日期,没有任何信号提示取错了那一个。⭐ 第四条轴(2026-09-24 加):同一部法的不同条款可以有不同的生效日——ZuFinG Artikel 35 有四个生效日,管 § 20 eWpG 的 Artikel 16 Nr. 11 落在最晚的 (4)(2025-11-01),只读 Abs. 1 会提前将近两年
检索范围小于问题的范围(SC-14):查的范围比问的范围小,却按问的范围下了结论。配套固定动作=下否定性断言前先写一句「我检索的范围是 X」,再问「问题的范围是不是也只有 X」;不等时或补范围,或把结论缩到 X(写「在 X 内未找到」而非「没有」)Ed 2026-09-24 编号(原话:「和 SC-12『没查那个字段』是近亲但更一般」);本篇 §4.7 SC-14。五实证=BaFin 总览页/eWpG 第 3 章/招股说明书 Legitimierung 一节/用 StoFöG 的 3 项答「自 2021 年起」(漏掉整部 ZuFinG)/读 Artikel 35 Abs. 1 答「这部法哪天生效」(另有三个生效日)。⭐ SC-12 的错留下一个不匹配的对象,SC-14 的错不留下任何痕迹——范围不足在返回结果里长得和「查完了、没有」一模一样,断言字段存在拦不住它。⭐ 判别提问=「我刚才查得很仔细」和「我查的范围够大」是两件事,前者从不蕴含后者
法条文本的来源分级:联邦机关文本是 A 级;私营法条库只作定位用,不作依据 —— 且合并文本管现状,公报原件管时点,两者缺一不可Ed 2026-09-24 立;本篇 §6.6。成立经过= BGBl 2021 原件未打通,替代方案(两份公报原件核出修法链 + 联邦司法部合并文本)经 Ed 认可后提为通则。⭐ 配套实证:合并文本上 § 20 eWpG 只剩一个 (weggefallen),三段制全部来自公报原件里的生效条
口径条款的射程,按它禁的那个动作读,不按它字面的排除项读 —— 字典 §2.20「只看发行文件原话,不看链的技术形态」禁的是用技术形态推权属这个推理动作,不是排除法律条文这一类来源Ed 2026-09-24 裁决(原话:「它排除的是推断,不是排除法律条文——法条是 A 级来源,它能证的那半句(效力)可以引,不能证的那半句(账本在哪)仍只能从发行文件取」)。⭐ 执行者报的是「两条口径打架,请裁哪条优先」,Ed 既不选一条也不改一条,而是指出那条口径的射程一开始就被读宽了——被读宽的是「不看链的技术形态」这半句,它从未说过「不看法条」。这是第三次执行者提的问题在裁决层换了一个层级被解掉(前两次= D9「机制缺失」重判为「需求不存在」、D6 执行者提扩选项而 Ed 收窄定义)。⚠️⚠️ 前提句(Ed 2026-09-24 指定补入,本条不得单独引用):「换层级解题的前提是先把原口径的射程读准,读宽了才需要裁优先级,读准了往往没有冲突——这不是技巧,是先读原文。」⭐ 即:上报「两条规则冲突」之前,先核这两条规则各自管到哪里;多数「冲突」是射程读宽的副产品,不是真冲突。三次实例里执行者都先把某条读宽了才看见冲突
「法定条文」作为权属依据时,必须注明它证到了这个字段的哪一部分 —— 因为法律规定的是一般情形,而字段判的是这一只;发行文件原文与规则推定天然绑定到具体产品上,法条不是Ed 2026-09-24 立,随 basis 新枚举值一并记 v0.8;本篇 §4.7 SC-14 节末与本库德国取件地图草案 §七。⭐ 本轮最该留下的一句:在德国,「法定条文」只能证到「记载即权属」,证不到「记载在链上」——eWpG § 16 Abs. 1 逐字是「auf einem fälschungssicheren Aufzeichnungssystem」,全法 dezentral 零命中,条文技术中立。⭐ 推论:德国的 Kryptowertpapier basis 天然是复合的,两个来源各证一半
一个字段的定义锚必须独立于观察者:把「我从哪个入口查到它」写进字段,是把观察者的位置写进被观察对象。判别提问=换一个人从另一个入口查同一个对象,这个值会不会变? 会变,写进去的就是观察者不是对象Ed 2026-09-24 晚·三 立(原话:「『德国是我们的检索入口,不是产品的属性』是正确的诊断……它和 SC-14 是近亲」);本篇 §4.7 SC-14 近亲条 + §6.7。首例= DAAG 差点把 jurisdiction 填成德国(29 个入口 29 个答案,对象只有一个)。⚠️ 本条比 SC-14 更难自查,因为它不产生任何异常:值是真的、来源是 A 级的、类型也对,唯一破绽「换个入口答案就变」在单次检索里永远看不见
零区分力是样本的性质,不是字段的性质 —— 一个字段在库内 n 次同值,证明的是样本没到,不是字段无用;把前者读成后者,得到的动作是「删掉这个字段」,而正确动作是「等那个样本」。⭐ 字段的价值由它能区分的那个案例定义,不由它尚未区分的那些案例定义Ed 2026-09-24 晚·二 立(原话:「这个填法让三栏第一次同时不同,恰恰是它们存在的意义——三栏同值 97 次不是字段无用,是样本没到」)。成立经过=执行者实测 jurisdiction 与发行方注册地在 n=97 上零分歧,据此报「issuer_jurisdiction 至今零区分力」,被 Ed 再定性。⚠️ 与 SC-14 同构:SC-14 是拿检索范围代替问题范围,本条是拿样本范围代替字段射程,都是拿手里那一段去代替全体
逐字引用只保证转录无误,不保证转录的那句话足以定出一个值 —— 引了原件原文之后,还要再问一句「这句话本身够不够算出这个字段的值」;不够而补了一步,那一步就是推断,按铁律二不得进核心字段。判别提问=把引文和字段值并排放,中间有没有一步是我加的?Ed 2026-09-24 晚·九 裁发行日期判据时逼出。实证= Robinhood 十条发行日期曾填 2026-06-26,内部备注写作「逐字『one Business Day after the publication of these Final Terms』,Final Terms 日期为 6 月 25 日(星期四),次一营业日为 6 月 26 日」——前半句是转录,后半句是推断,两句之间没有任何标记提示读者跨了一道坎,且该记录已发布。⭐ 这条比「留空对理由几乎没有阻力」(§7.2a)更难自查:那一条管的是空格,本条管的是填了值且引文为真的格子——引文为真使它看起来已经过核,核的却是转录而不是推导。⚠️ 相对条款是本条的高发处:原件写了「怎么算」而没写「算的起点」时,二分法「有则填、无则空」会落在中间,条款有,值没有
字段的形状变了,证据没变 —— 当一个值由多重独立理由共同支撑时,推翻其中一重不改变这个值;只有逐重核过、确认全部失效,才可以动它。⭐ 推论:只靠单一理由撑起来的结论,会在前提变动时被误推翻,也会在前提恢复时被误恢复——因为没有第二重理由把它钉住。因此写内部备注时每一重理由必须分开写、各自成句,否则日后字段改了形状,无从判断该不该动值Ed 2026-09-25 裁托管方类型改多选时认可立条。实证= Ondo 十条托管方类型填「未披露」叠了两重独立理由:①单选字段放不下 Alpaca + BitGo 两家;②原件未给任一家的牌照档位(p21 唯一相关句还是否定式「performed by non-BVI regulated providers outside the BVI」)。裁定「改多选」只解决①,②独立成立 → 字段基数变了,本轮二十条的值一个字不动。⚠️ 误判的方向是双向的:若当初只写了①,改多选后会误以为该回填;若只写了②,又会误以为基数问题从未存在。本条与 §7.2a「留空对理由几乎没有阻力」互补——那条管理由够不够,本条管理由拆没拆
上呈门槛筛不出上呈事实本身的错误,唯一防线在取件那一步 —— 门槛只数「有几种读法」,不核「这一种读法的底料是不是真的」;读法数量正好是 1 时它看起来完全满足「结论唯一」,错的是那个 1 本身。配套固定动作=凡进上呈单的事实陈述,必须与原件的某一句逐字对应,对不上的不进上呈单。判别提问=这句话我是从原件读到的,还是从名字、从印象、从「一般来说」推出来的?Ed 2026-09-25 指定记为上呈门槛的第三种情形(前两种=①结论唯一则不上呈 ②查完之后两种读法仍并存才上呈);本篇 §4.7 SC-13 节末。实证= SPCX(Robinhood Series 20):上呈「SPCX 是未上市公司的 A 类普通股」无任何原件依据,Ed 据此下条件句指令「原件写未上市就记未上市」,而原件逐字为「Primary Exchange where the Underlying is listed: Nasdaq Global Select Market.」,164 页检索 not listed/unlisted/private company 零命中。⚠️ 传导链=错误判断进上呈 → Ed 下带前提的指令 → 前提是假的 → 指令空转;空转比做错更难发现,指令在形式上被完整执行,报告也会写「已按指令办」,错误表现为一段无事发生。⭐ 与上上条构成上下两段:那条管有了引文之后还能不能定值,本条管有没有引文——没有引文的陈述连进入那条通则的资格都没有
名称里的组织形式不是原件对产品的定性 —— 主体名称中的 LP/Trust/Inc. 是注册时的法律外壳,底层资产类别要的是原件正文对这只产品说了什么;两者冲突时以正文的定性句为准,名称不参与判断Ed 2026-09-25 裁 Robinhood Series 16(USO)时立并指定保留。实证= United States Oil Fund, LP 名称含 LP,若按名称归类会落到「有限合伙权益」;而原件正文逐字「The ETF is a commodity pool that continuously issues common shares of beneficial interest」,投资政策为原油期货 —— 定性是 ETF/商品池,发行的是受益凭证份额,故底层资产类别填基金份额,底层商品(原油)进底层资产细分。⭐ 与 SLV(iShares Silver Trust)同批同判:名称里的 Trust 也不参与,判据同样来自正文「aims to track the price of silver bullion by holding physical silver bullion」。⚠️ 本条的危险在于名称看起来也是原件上的逐字——它确实是原件上的字,但它是主体的字,不是对这只产品的定性句。⭐ 首次实地适用(2026-09-25 晚·二,Ondo 第二批 IAUon/SLVon):iShares Gold Trust/iShares Silver Trust 名称含 Trust,原件正文逐字为「commonly classified and traded as a gold ETF」/「a silver ETF」,并另设「ETF name / Information on the ETF」栏(Exchange where the ETF is listed: NYSE Arca. Manager: Not applicable. The Trust is passively operated…)→底层资产类别填基金份额,黄金/白银进底层资产细分。Ed 保留该通则的次日即被用上,且用在一个此前未见的发行人身上
范围陈述被扩大范围,处置是补正不是认错 —— 一句带范围限定的陈述(「这 N 份共用 X」),在样本扩大后发现范围更细(「其中 a 份用 X、b 份用 Y」),原句在它自己的范围内从未被推翻,只是不再是最精确的说法。判别提问=新事实是否与原句在原范围内相矛盾? 不矛盾则补正,矛盾才是认错Ed 2026-09-25 指定保留。实证= Docusign 信封:上一轮报「Robinhood 十份共用同一个信封 23B8F388-…」,逐页核过二十份后确认 S1-15 用 23B8F388-…、S16-20 用 F7DC3BA2-…(前缀同为 20260629)——前十份确实共用,原句为真;扩到二十份后换了更细的说法。该信封时间戳原本要证的那件事(证伪「发布日=原件首页日期」)结论与证明力均不变。 ⚠️ 必须与同批的 SPCX 分开读:SPCX 是凭空报了一条原件里没有的事实(认错),本条是报了一条为真但范围可以更细的事实(补正)。⭐ 把补正写成认错,与把认错写成补正,是同一条线上的两个方向的错——前者制造了不存在的不可靠,后者掩盖了真实的不可靠
德国线不允许以「检索 0 条」为依据下任何结论——这是辖区结构决定的,不是本轮的临时谨慎Ed 2026-09-23 立(原话:「它是这个辖区结构决定的,写进格子表的表头」);见本库德国取件地图草案 §五表头。根因=德国没有自己的 06A000(VPInfo 整张 Sondersuche 表单无 <select>,不可按法定分类枚举),候选只能来自行业线索,而行业线索依上一条不能作分母。⭐ 推论:格由样本撞出,在德国是唯一路径——前置条件不是「画好格再找样本」,是「第一个撞出来的样本」

⭐ 本表的收录判据(Ed 2026-09-21 认可):看证据地位,不看撞击次数。

候选的性质入表门槛给不给新编号样本的作用
新观察需多次撞出,单样本不够给构成结论
既有通则的推论一次实证即可——正当性来自被推广的那条,不来自样本量不给(给了等于宣称发现了新现象)只作首个实证,证明推广后的形态现实中真会发生

按「撞了几次」衡量候选,会把两类混成一把尺;本判据以证据地位为尺。这与开篇「格由样本撞出」不冲突:那条管新格子何时画(防先验补全),本判据管已有通则的推论何时登记(防把推论当发现、重复编号)。

上表最后一行即本判据的第一次适用:它只有一个实证样本(Securitize 三件内部分化),按本判据收入本表。

本通则与 §4.7 SC-7 的分工:SC-7 防「别的对象的证据」——词出现在文件里,但说的不是本产品;本通则防「别的字段的证据」——取值出现在同一份文件里,但支撑的不是本字段。合起来是同一句:对象级事实要有对象级证据,其中「对象」既指产品,也指字段。

9.1 本篇哪三处是归纳而非引用

§2.4:403 判「适格性边界」而非「反爬」的两条件:(1) 拒绝有主体自述的法律理由且该自述为 A/B 级;(2) 拒绝的范围与该法律理由的范围一致
§4.4:穷尽性检索须前置声明样本空间:先写「本次检索的样本空间是什么、它已知不覆盖什么」,写不出来就不能称穷尽
§5.2:取件成功三判据:(1) 内容类型与文件签名;(2) 正文里有没有第二个状态码;(3) 同一批请求的响应长度是否可疑地全等

十、本篇的自我限制
  1. 不新立规则。 本篇归纳的三处(§2.4 的 403 判别两条件、§4.4 的样本空间前置声明、§5.2 的取件成功三判据)均已逐处标注「本篇归纳」,并写明其依据的实测;它们不进任何冻结文档,也不产生回填动作。
    • §2.4 与 §4.4 未另立条目;§5.2 另编为 R-1(取件判据)。
    • 2026-09-19/09-20 新增各节的出处:§2.6(06A000 锚点)、§4.7(SC-5/6/7)、§5.3(SC-8)、§7.2a(留空对理由无阻力)、§8.4(可比的沉默)、§8.5(权属轴两条)均出自 Ed 的明文裁定。§4.6(对照组)依据的是 2026-09-04 已写进本库变更记录的方法学要点。
  2. 不修改任何冻结文档,也不修改本库香港取件操作文档。 §3.1 提到该文档 §八的状态已过时,只报告不擅改。
    • ✅ 2026-09-22 已结清(逾期两轮后):Ed 亲自定下 §八 的三句话(v0.7 M4),该文档 §八 标题由「尚未打通的部分」改为「持牌机构名录(已打通,v0.7 M4)」,原内容作留痕保留。
  3. 不做评分、评级、排序、推荐。 本篇涉及的召回率(8.5%)、命中数、覆盖面等,均为检索方法的性能指标,不是产品的指标,不得用于任何产品间的比较。
  4. 不复述覆盖度数字。 本库记录条数与监管口径数字的对外表述一律走收录标准 §11.1/§11.2 的写死句式与占位符,当前数值的唯一权威位置是本库变更记录的「当前口径数值」一行,本篇不落任何具体数值。
  5. 不把「找不到」写成结论。 本篇所有「停止投入」的判断,都附有一份一手证据(对照组页面或主体自述);没有一手证据的,一律记「未打通」而非「不存在」。