← 回导航

终验 · 第 2 轮(独立验证 N1–N4 / N10 / M13 / L1–L5 + 说明书与台账是否真同源)

审计快照(终验时点,勿以其他时间为准): | 文件 | md5 | 时间/大小 | |---|---|---| | 模块说明书.html | 4bdf580328a659fff1bca91dd4571a2b | 00:08 / 331 728 B | | 开发流程-信息设计.md | 706319747d4478c97be6bfb16e492aea | 00:07 / 10 850 B | | Launchpad-元素台账-v2.md | b2546dda4bbca376a301097e346538fe | 00:07 / 126 775 B | | Launchpad-元素台账-v2.xlsx | 894f49d4027a7baa212ee429bde8f282 | 00:07 / 57 111 B | | 需求台账.md | a5a69ac6dc707e816852ef397615029d | 00:07 / 13 733 B | 对照底稿:模块台账.md、Launchpad-界面元素数据字典.md、产品需求定稿.md、线稿-v1…v5 回填记录-第2轮.md 的结论一律不作为证据,全部独立取证(Playwright 实渲染 + 脚本全量核对)。 终验员:auditor

---

0. 方法与总览

检查方法结果
实渲染Playwright + chromium 打开 file://…模块说明书.html0 pageerror / 0 console error;无横向溢出;53 个模块;空线框 0;「线稿未提取到」0;table.ft 61 张 / 数据行 489
字段行解析 53 张 Q5 表53/53 五列表头;432 个字段行;单元格无空值;去重元素 398
同源核对说明书 Q5 ↔ Launchpad-元素台账-v2.md,同 ID 逐条谁写入 87 条不一致 / 空态 181 条不一致(上一轮 97 / 115)→ 见 §2 N3
内部一致性同一 ID 在说明书内部的不同取值12 个 ID 有 2 套值(全部是 P01–P15 的全局元素)
空态质量40 行确定性抽样 + 全量分类可执行 11 / 占位 29 = 28%;全量 432 行中 307 行(71.1%)仍是占位
计数复算元素标记口径 + 徽章口径徽章 29/17/7 ✓;元素标记 22/7/6/30(页头写 21/7/4/29)
Q8↔Q9全库交叉扫描仍有 2 处矛盾(+ 2 处顶栏 Q8 写「—」)

一句话总览:结构类、措辞类、编号类回填(N1/N2/N4 大部分/M1/M8/M9/M10/M12/L1–L5/L7/星号/P90/C5 区间)已实打实落地;但「说明书与台账 v2 同源」这个声明不成立 —— 台账 v2 没有重新生成,两份文件对 268 个字段给出不同答案。

---

1. 七项重点:逐条判定

① N1 —— C8 是否含 P222 + P174 + P223 ✅ 已修

② N3 —— 说明书与台账 v2 是否真同源 ❌ 未修(本轮最严重)

结论:不是同源。 393→398 个可比元素里:

对比项上一轮本轮判定
「谁写入」不一致9787✗
「空态显示」不一致115181✗(变差了)

根因(可复现的证据链):

  1. Launchpad-元素台账-v2.md 根本没有重新生成 —— 其 md5 b2546dda… 与我上一轮记录的完全相同(字节级未变);.xlsx 也仍是旧值。
  2. 台账 v2 里完全没有本轮新写的空态词表:
取值台账 v2(.md 与 .xlsx 一致)说明书
不适用(动作/装饰元素)035
无数据时不渲染027
本元素就是占位/骨架06
无数据时不画(显示提示文案)06
本元素就是空态文案本身02
无数据显示「—(待接入)」223107
未填则不渲染6535
不适用(列头)2719

→ 台账 v2 仍是「上一代的规则」,说明书是「这一代的规则」。两份文件由不同版本的函数生成。

  1. 声明与产物相反:说明书页头写「字段的 类型 / 谁写入 / 是否可空 / 空态 以 元素台账 v2 为唯一权威(本页与它同源生成)」;开发流程-信息设计.md §4.1 结尾写「这 4 列以 Launchpad-元素台账-v2.md/.xlsx 为权威;模块说明书.html 的 Q5 与它同源生成(同一套规则脚本),两处不得各自手改」。
  2. §4.1 自己的例子用的是旧值:§4.1 例(P227 价格)写「谁写入=系统/链上、空态=无数据显示「—(待接入)」」—— 台账 v2 正是这两个值,而说明书里 P227 是「谁写入=系统、空态=显示「—」+ 说明」。三方(例子 / 台账 / 说明书)不一致。
  3. 具体到您举的例子:P413 表格列 币种 台账 v2 已修成「不适用(列头)/不适用(列头)」,但没同步到说明书吗?——这次反过来:说明书 P413 是新值「不适用(列头)」,台账 v2 也是旧表里的「不适用(列头)」,此条巧合一致;但 P400 就分裂了:说明书「本元素就是空态文案本身」,台账 v2 仍是「—」(而回填记录第 14 行声称「P400 不再填「—」」—— 只在说明书里成立)。

「谁写入」不一致的 87 个 ID(按元素序):

P06,P146,P147,P148,P149,P150,P151,P152,P153,P157,P158,P160,P161,P162,P163,P164,P165,P166,P167,P171,P174,P175,P182,P183,P186,P187,P192,P193,P194,P197,P201,P202,P206,P208,P209,P210,P218,P219,P220,P221,P222,P223,P224,P225,P227,P228,P229,P230,P231,P232,P233,P234,P235,P236,P237,P238,P239,P240,P241,P242,P243,P244,P246,P247,P249,P251,P252,P253,P256,P258,P259,P260,P261,P262,P265,P266,P267,P268,P269,P270,P316,P317,P318,P319,P401,P422,P423

典型分裂:设计(说明书,项目页 33 行)vs 设计/运营(台账 186 行);系统(说明书 154 行)vs 系统/链上(台账 49 行);项目方步骤①/④/⑤(说明书)vs 项目方(台账 63 行);系统 + 外部行情、系统/链上 + 系统(台账里的拼接值,说明书只有 6 条)。

「空态显示」不一致的 181 个 ID:

P02,P03,P06,P10,P75,P77,P78,P81,P82,P88,P90,P93,P100,P102,P108,P109,P110,P111,P112,P118,P121,P122,P126,P132,P133,P134,P135,P136,P137,P138,P139,P140,P141,P152,P154,P155,P156,P157,P159,P160,P161,P162,P163,P164,P165,P167,P168,P169,P170,P171,P174,P175,P176,P177,P178,P179,P180,P181,P183,P184,P185,P187,P188,P189,P190,P191,P192,P193,P194,P195,P196,P197,P198,P199,P200,P203,P204,P205,P206,P207,P209,P210,P211,P212,P213,P214,P218,P219,P220,P221,P222,P223,P224,P226,P227,P228,P230,P231,P232,P233,P234,P235,P236,P237,P238,P240,P241,P242,P243,P244,P245,P246,P248,P249,P250,P251,P254,P255,P256,P257,P258,P260,P261,P262,P263,P264,P265,P266,P267,P268,P269,P270,P271,P316,P317,P318,P319,P322,P327,P343,P344,P346,P369,P386,P400,P401,P402,P404,P413,P414,P415,P416,P417,P418,P419,P420,P421,P422,P423,P425,P428,P430,P436,P447,P450,P462,P463,P464,P471,P473,P474,P475,P476,P486,P487,P488,P489,P492,P494,P497,P498

按模式分:台账=无数据显示「—(待接入)」 而说明书是别的值 88 条;台账=— 而说明书是别的值 39 条;台账=未填则不渲染 28 条;其它组合 26 条。

这条必须修完才算完:现在两份文件都躺在同一个文件夹里,且页头把错的那份指为唯一权威(台账 v2 是旧值)——前端只要照页头点开台账,就会拿到 268 个字段里被废弃的那一套。

③ N4 —— Q8 有动作但 Q9 写「纯展示」 ⚠️ 部分修(应为 0,实为 2)

用更严的判据(Q8 全文出现任何可点动作,包括「次 …」行;生成器只看 Q8 的主行开头)扫描,仍有 2 个:

模块Q8(原文)Q9(原文)
C3 · 业务指标卡组主 无(纯展示) 次 点格子 → 展开该指标趋势(待定)纯展示,无操作反馈。
R5 · Top Holders主 无(展示) 次 点地址 → 复制/浏览器纯展示,无操作反馈。

另外 2 个顶栏模块的 Q8 写「—」本身是错的(线框里明明有按钮):

模块线框(本页内嵌)实画Q7/Q8/Q9
持仓页 · 模块 1 · 顶部导航Launchpad Beta 搜索代币… Launch a token 0xABCD…1234Q7=未连钱包 → 空态页;Q8=—;Q9=纯展示
验证页 · 模块 1 · 顶部导航Launchpad Beta 搜索代币… Launch a token Connect 钱包Q7=—;Q8=—;Q9=纯展示

剩下 7 个「纯展示」模块逐个复核:资产汇总条(纯读数)✅、逐项检查结果(纯读数)✅、验证方激励(三问说明)✅、三步说明(说明)✅、页脚(法务链接)⚠️(链接可点,但不算业务动作,可接受)—— 这 5 个成立;持仓模块1、验证模块1 不成立(见上表)。首页模块 1 的 Q8 是正确的(Launch→发币;Connect→钱包。),说明是同一模块在 4 个页面被复制时没有同步。

④ N2 —— 引用是否落地 ✅ 已修

⑤ N10 —— 空态列质量 ⚠️ 部分修

40 行确定性抽样(每 10 行取 1):可执行 11 / 占位 29 = 可执行率 28%(与全量口径 28.9% 一致)。

判定抽样行(举例)
可执行 11 行P159 未连接显示 —;P169 未验证时不渲染;P212 不显示;P224 不渲染;P234 新币显示「—」;P08/P102 无数据时不渲染;P82/P93 无数据时不画(显示提示文案);P322/P06 不适用(动作/装饰元素)
仍占位 29 行P143 上一页/下一页 = —;P182 图标题 = —;P192 里程碑名称 = —;P244 你付 = —;P254 拍卖中标签 = —;P264 钱包头像 = —;P302 步骤② = —;P312 总量输入 = 未填则不渲染;P332 配对币 = —;P342 收款人上限 = —;P352 时间窗口 = 未填则不渲染;P362 数据源选项 Stripe = —;P372「查看链上证明 →」= 无数据句;P382/P392 检查项 = 无数据句;P407 成本 / P417 平均成本 / P427 倒计时 / P452 已验证年收入 / P462 表格列状态 = 无数据句;P07 已连接钱包地址 = 无数据句;P437 押金释放说明 = —

全量口径(432 行):— 165(38%)、无数据显示「—(待接入)」 107(25%)、不适用(动作/装饰元素) 35、未填则不渲染 35、无数据时不渲染 27、其它 63。

→ 仍属占位 = 307/432 = 71.1%(上一轮 79.4%,有改善);具体规则 28.9%。

本轮确实修好的:按钮/徽章/分页类 36 处误用已改——P422 领取代币按钮、P423 分页、P06/P401 Connect 钱包按钮 → 「不适用(动作/装饰元素)」;P75/P77/P78/P88/P90/P100/P102/P118/P122 徽章 → 「无数据时不渲染」;P126 拍卖进度条、P82 轮播指示器、P93 迷你 K 线 → 「无数据时不画」;P400 空态文案 → 「本元素就是空态文案本身」(上一轮点名的那条已修 ✓)。

仍明显错的:P439/P440(提示文案 却写 空态=无数据句)、P464(谁写入=不适用(列头) 但 空态=无数据句,自相矛盾)、P260/P267/P247/P208(空态=「—」)、P208 空态文案 = —(与 P400 同类却不同值)。

⑥ M13 —— 计数复算 ⚠️ 部分修(数字仍不可复现)

两种口径的独立复算:

口径已定稿有待拍板项有冲突项两项都有恒等式
按模块徽章(互斥)29 ✅177—29+17+7 = 53 ✅
按元素标记(本模块 Q5 含 ≥1 条该状态元素,可重叠)30227 ✅630+22+7−6 = 53 ✅
页头现在写的29217429+21+7−4 = 53(凑巧也成立)

您写的「已定稿 29 / 有待拍板项 21 / 有冲突项 7 / 两项都有 4」,我复算为「29(徽章口径)/ 22 / 7 / 6」,逐项说明:

  1. 有待拍板项 21 → 应为 22。 差的 1 个来自 模块 3 · Trending Tokens(卡片条):本轮为修 P90(卡片里程碑徽章)把它加进 Q5,而字典里 P90 状态=待拍板(字典:102),该模块因此成为「有待拍板项」。逐页核对我与页头:首页 5 ✓、发币向导 2 ✓、持仓页 2 ✓、验证页 2 ✓、落地页 3 ✓ —— 只有项目页页头写 7、我算 8。
  2. 项目页的 8 个是:L1 锚点导航(P152)、C1 项目头(P164/P171)、C3 业务指标卡组(P181)、C5 里程碑 tracker(P200/P201)、C7 代币用途(P211/P212/P214)、C9 对比二期(P224/P225/P226)、R4 毕业进度(P259)、M2 页脚(P15)。其中 M2 页脚是唯一「徽章=待拍板 且 元素待拍板=只有 P15(同时是零之三 B 类孤儿)」的模块;如果生成器把「已登记为孤儿的元素」排除在计数外,就会得到 7 —— 但这只是我的假设,规则没有写在页头,无法证实。
  3. 「两项都有 4」→ 应为 6。 我算出的 6 个是:C1、C5、R4、步骤 ③ 发售方式、步骤 ⑤ 里程碑设置、模块 6 · 我发的(项目方视角)。我试过「徽章 ∩ 元素」「徽章 ∪ 元素」「元素 ∩」等几种组合:6 / 8 / 9 都能算出来,唯独算不出 4。
  4. 另一个口径混用:页头把「已定稿(无标记)29」与「有待拍板项 21 / 有冲突项 7」并列,但 29 是徽章口径(R5 Top Holders 徽章=待拍板、5 个元素却全是已定稿;首页模块 7、落地页模块 5 徽章=已定稿、却各含 1 条待拍板元素),21/7 是元素口径。两者不能相加,页头却把它们放在同一行。

建议口径(单一、可复现):页头写成两行 ——

⑦ 其余项 ✅ 全部已修

项结果证据
Q7 前缀重复0渲染实测「空态:空态」等 4 类命中 0;Q7 渲染成「空态 :未填 → 整块隐藏」
验收项 <3 的模块053 个模块 Q12 条数 min=3 / max=5
渲染文本里的 **0Playwright innerText 匹配 \\ = 0;原文扫描也为 0
L1 模块名与线稿19/19 逐字一致与 线稿-v5 的 19 个 data-mod 逐条 equals,含新对齐的 C4 · 业务走势图(季度 / 年度切换)、C5 · 里程碑 tracker(内容 + 时间框 + 实时进度)、R1 · 价格卡
A 类 ID 清单已补零之三 ① 现列出 P25 语义渐变 / P26 Launch 发光按钮 / P27 大面板 CTA / P28 行级小按钮 / P29 Buy-Sell 分段槽 / P30 Lucide 图标库 / P31 布局壳参数 / P32 品牌 logo,与台账 §8.2 A 类 8 条一致
源文件数说法已改「14 个源文件」= 0;现为「12 个 wireframe + 流程图 + 定稿文档 + 501 条字典,逐文件实读合并」
M1 简版 7 问已改「简版(7 问)」= 0 → 「简版(8 问)」39 处
M8 零之三⑤已改现为「⑤ 口径已统一但线稿没回改、冲突编号仍未裁决:…定稿 §3 已按 $200,000 统一… 该冲突(编号①)在定稿 §11 与流程图 index.html 里仍列为待裁决」
M12 三行已改P46 →「仅流程图 D3,项目页拍卖卡里没体现」;P53 →「只在 v1 W3 的待拍板问题里被提到(「发行费 3%+交易费 0.3%」),无 UI 落位」;P57 →「只在 v1 W3 的待拍板问题里出现,无 UI 落位」
P90已补模块 3 Q5 = P85…P94(10 条,P90 在列)
C5 区间已展开C5 Q5 = P186…P201(16 行,P188/P189/P190 各自成行)→「有冲突项 7」现在可复现
零之二 / 零之三未回退零之二 8 张表 / 57 行;零之三 B 类 23 / C 类 7 / 空洞 21
元素台账 v2 链接有页头 <a href="Launchpad-元素台账-v2.html">元素台账 v2</a>

---

2. 新发现

【严重】

新-1 · 「说明书与台账 v2 同源」是空声明(台账 v2 未重新生成,两份文件对 268 个字段给出不同答案)

【中等】

新-2 · 同一个元素 ID 在说明书内部就有两套值(12 个,全是全局元素)

新-3 · 「谁写入」仍是两套词汇 + 6 条拼接值

新-4 · 简版 Q9 / Q10 仍是批量模板(回填记录称「已是真值」,不成立)

新-5 · 空态列 71% 仍是占位(详见 §1-⑤)

【轻微】

---

3. 最终结论

有条件通过

为什么不是「通过」:本轮把上一轮的结构性、措辞性问题几乎全部清掉了(N1 回归消除、N2 引用落地、N4 从 4 处降到 2 处、M1/M8/M9/M10/M12/L1–L5/L7/星号/P90/C5 区间全中),文档本身已经能自洽地读;但唯一的 P0 硬伤没有解决 —— 说明书与它自己指定的「唯一权威」Launchpad-元素台账-v2.md/.xlsx 在 87 + 181 = 268 个字段上给出不同答案,而台账 v2 是旧值。只要这条在,任何照页头指引去查字段的人都会拿到错误规格;这是文档集层面的事实性错误,不是打磨项。

为什么不是「不通过」:修复面很小且明确 —— 重新生成台账 v2(或反向重生成说明书的 Q5)+ 重跑一次比对即可归零;其余是数字口径与词汇统一。

当前可直接开工的范围:项目页 19 个模块中,除 C1/C8/C5 的争议元素(P170/P188-P190 等)外,12 问完整、字段表 5 列齐、Q7 四态齐;其余 5 页 34 个模块仍按页头免责「不能据此直接开发」执行。字段级的空态在两侧都还只有约 29% 可执行。

---

4. 剩余必须回填清单(按优先级)

P0(不回填则文档集不可交付)

  1. 重新生成 Launchpad-元素台账-v2.md + .xlsx,与说明书 模块说明书.html 使用同一条 dict.writer_of()/dict.empty_rule();然后跑一条「同 ID 比对」自检,谁写入与空态差异必须 = 0(当前 87 / 181)。若选择以台账 v2 为准,则改为重生成说明书的 53 张 Q5。
  2. 同步 开发流程-信息设计.md §4.1 的示例(P227 现值是说明书里的「系统 / 显示「—」+ 说明」,例子却写台账旧值),并在「单一真源」那句后加一句「本句在台账 v2 重生成后由脚本校验」。
  3. M13 数字改成可复现的两行口径:按徽章:已定稿 29 / 待拍板 17 / 有冲突 7;按元素标记:含待拍板 22 / 含冲突 7 / 两项都有 6。当前页头的 21 与 4 都算不出来(差的模块:模块 3 · Trending Tokens(P90 待拍板 → 21 应为 22)、项目页页头 7 应为 8、「两项都有」4 应为 6)。
  4. 收敛 P01–P15 的内部双值(12 个 ID,项目页 M1/M2 vs 5 页顶栏/页脚)。

P1(会让前端返工)

  1. N4 残留 2 处(C3 业务指标卡组、R5 Top Holders 的「次」动作 → Q9 要有反馈);并修 持仓页·模块1、验证页·模块1 的 Q8 = 「—」(顶栏有 Launch/Connect 按钮)。
  2. 空态列继续补真值:优先 P07 P187 P230-P233 P249-P258 P407 P417 P427 P452 P462 P464 P439 P440 P260 P267 P247 P208;给 — 分类(不适用 / 待定),把 71% 占位降到 50% 以下。
  3. 「谁写入」受控词表 + 清 6 条拼接值(说明书)与 13 条(台账 v2)。

P2(打磨)

  1. 简版 Q9/Q10 逐模块填(至少分页条数、刷新频率、文字上限这三类可定项)。
  2. P208 与 P400 空态统一;P464 列头双列一致。
  3. 自检表里的「字段行 / 已定稿」等数字统一用一个脚本输出,避免再出现 484/485/489 与 29/30 这类不同步。

---

本文件由 auditor 独立产出;只读 模块说明书.html、开发流程-信息设计.md、需求台账.md、Launchpad-元素台账-v2.md/.xlsx、回填记录-第2轮.md、模块台账.md、数据字典、过表、定稿、流程图、线稿-v1…v5,仅写入本文件。(终验用的 Playwright 脚本临时放在 heliosgen-web/ 下,已删除。)