这个声明
“这个发布是生产可用的”不是一种情绪 — 它是一个逻辑合取,每个条款都由具名的检查器带着公开的通过标准支撑。如果检查器没有运行,该条款就是 FALSE。如果证据过期,证书就是 FALSE。如果检查器本身坏了,证书就是 FALSE。
PR-v1 = C1 ∧ C2 ∧ C3
// 常设,而不是快照:
// 检查器每个发布周期重新运行 · 证据 90 天后过期
// 重发时覆写同一批公开文件 — 一个旧的 TRUE 永远不会赖着不走
每个条款背后是什么
语言的行为与规格说明所说的一致。
spec-lint --strict 失败:100% 已引用。安全的 SuperJ 无法到达未定义行为:没有内存不安全、没有错误分派、没有未证明的逃逸、没有未检查的算术危害。
内存的行为与文档一致 — arena 回收精确且 O(1),栈放置安全,没有任何 SDK 表面的分配行为未被测量。
另有四个条款已建成并报告,但在 PR-v1 中刻意不作为门。一个暗示了自己并不具备的完备性的条款集会是第一个谎言 — 所以分阶段是明确的:PR-v2 加入 C4 ∧ C5,PR-v3 加入 C6。
已建成并报告。自 PR-v2 起成为门。
版本化的常数固定在指定的机器上,武装了 >2× 回归棘轮。自 PR-v2 起成为门。
跨发布的语料库重放。自 PR-v3 起成为门。
让这一页保持诚实的机制。已报告,尚未作为门。
信任问题
问得对 — 自颁发的证书只会和它的激励一样好。六个性质把这一份和新闻稿区分开来。
这个声明的任何部分都不需要你信任我们。证据页面上的每一条命令都可以对着公开语料库复制粘贴运行。如果证书说 FLAT 而你的运行说 LEAK,你就反驳了它 — 在本地、在几分钟内、不必问任何人。一个你能自己反驳的声明,和一个你必须凭信接受的声明,是两种不同的东西。
这张证书是先变成 FALSE、之后才变成 TRUE 的。当 SDK 在语料库下方移动时 — 1.3.6514 的 string 模型重构 — 96 条测试与它们的钉住值矛盾,证书随之折叠,以 FALSE 渲染并具名失败的条款,直到迁移落地。一扇公开拒绝过自己项目的门,才是激励可供检查的门。
每一次报告运行都盖有 {计划修订版、SDK 版本、语料库哈希、git 提交、工具版本}。证书无法漂移离开它的证据:过期证据,或来自不同提交的证据,渲染为 FALSE — 而不是“应该没问题”。
认证活动审计了它自己的仪器,发现了认证可能撒谎的五种方式 — 从未把过门的门、悄悄缩小的分母、只在口头上的覆盖率、没接线的报告层、过期的钉住值。全部修复,并变成了证书现在强制执行的规则。被撤回的声明从不被编辑掉:有一个只追加的更正台账。完整的故事 →
每一张发出的页面都必须带有这不证明什么一节。只列通过项的契约是营销;边界才是让它成为一次测量的东西。如果一张证书页面没有边界一节,把它当作无效。
发布只附带几百字节、指向证据的指针 — 工具链里不捆绑测试代码、验证器或语料库。声明与证据只隔一跳,证据按发布重新生成。没有任何东西以你无法检查的方式被打包。
诚实的部分
每一张证书页面都必须带有它的边界,逐字来自契约。这是我们的。
MerkleTree.computeTreeNative 静默无操作,上游 #6127)— 在报告中作为红行可见,在边界中解释而不是隐藏。零注意事项的证书才是你该怀疑的那一种。反驳它
# 10 秒钟的检查 — 声明此刻是否成立?
$ curl -s https://superj.dev/readiness/PR-v1.json
# 真正的检查 — 自己运行每一道门(约 30 分钟,带出处戳)
$ git clone <认证仓库> # 链接见发布说明
$ python3 scripts/test-report.py
$ python3 tools/readiness-cert.py # 退出码 0 = 声明今天成立
JSON 里任何非 TRUE 的状态,或超出过期规则的 age_days,都意味着声明不再成立。如果 readiness-cert.py 以非零退出,它会打印失败的条款和被打破的目标 — 那份输出就是反驳。存档它,引用它:证书自己的契约说它必须让位。
生命周期
| 事件 | 会发生什么 |
|---|---|
| 检查器每个发布周期重新运行 | 新证据,相同的文件名。 |
| 一个条款变红 | 公开页面在同一 URL 翻转为 FALSE — 没有可以被忘记的归档步骤。 |
| 证据过期(90 天,测试/测量层) | 证书渲染为 FALSE,直到重新签发。 |
| 被钉住缺陷的工单关闭 | 钉住翻转为固定契约断言;红行当天变绿。 |
| 契约增长(PR-v2 = +C4 ∧ C5,PR-v3 = +C6) | 新契约版本,新指针文件;旧的保留自己的状态。 |