审计快照(终验时点,勿以其他时间为准): | 文件 | 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
---
| 检查 | 方法 | 结果 |
|---|---|---|
| 实渲染 | Playwright + chromium 打开 file://…模块说明书.html | 0 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 个字段给出不同答案。
---
P218 P219 P220 P221 P222 P174 P223 —— 7 条,P222 已回到列中。P160…P171(12 条,不含 P174),Q1 写「元素 12 个」。/tmp/f-c8.png 可见完整 7 行;P222 空态=「该行不渲染」、P223 空态=「未发币时不渲染」。结论:不是同源。 393→398 个可比元素里:
| 对比项 | 上一轮 | 本轮 | 判定 |
|---|---|---|---|
| 「谁写入」不一致 | 97 | 87 | ✗ |
| 「空态显示」不一致 | 115 | 181 | ✗(变差了) |
根因(可复现的证据链):
Launchpad-元素台账-v2.md 根本没有重新生成 —— 其 md5 b2546dda… 与我上一轮记录的完全相同(字节级未变);.xlsx 也仍是旧值。| 取值 | 台账 v2(.md 与 .xlsx 一致) | 说明书 |
|---|---|---|
不适用(动作/装饰元素) | 0 | 35 |
无数据时不渲染 | 0 | 27 |
本元素就是占位/骨架 | 0 | 6 |
无数据时不画(显示提示文案) | 0 | 6 |
本元素就是空态文案本身 | 0 | 2 |
无数据显示「—(待接入)」 | 223 | 107 |
未填则不渲染 | 65 | 35 |
不适用(列头) | 27 | 19 |
→ 台账 v2 仍是「上一代的规则」,说明书是「这一代的规则」。两份文件由不同版本的函数生成。
开发流程-信息设计.md §4.1 结尾写「这 4 列以 Launchpad-元素台账-v2.md/.xlsx 为权威;模块说明书.html 的 Q5 与它同源生成(同一套规则脚本),两处不得各自手改」。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 个字段里被废弃的那一套。
用更严的判据(Q8 全文出现任何可点动作,包括「次 …」行;生成器只看 Q8 的主行开头)扫描,仍有 2 个:
| 模块 | Q8(原文) | Q9(原文) |
|---|---|---|
C3 · 业务指标卡组 | 主 无(纯展示) 次 点格子 → 展开该指标趋势(待定) | 纯展示,无操作反馈。 |
R5 · Top Holders | 主 无(展示) 次 点地址 → 复制/浏览器 | 纯展示,无操作反馈。 |
另外 2 个顶栏模块的 Q8 写「—」本身是错的(线框里明明有按钮):
| 模块 | 线框(本页内嵌)实画 | Q7/Q8/Q9 |
|---|---|---|
持仓页 · 模块 1 · 顶部导航 | Launchpad Beta 搜索代币… Launch a token 0xABCD…1234 | Q7=未连钱包 → 空态页;Q8=—;Q9=纯展示 |
验证页 · 模块 1 · 顶部导航 | Launchpad Beta 搜索代币… Launch a token Connect 钱包 | Q7=—;Q8=—;Q9=纯展示 |
剩下 7 个「纯展示」模块逐个复核:资产汇总条(纯读数)✅、逐项检查结果(纯读数)✅、验证方激励(三问说明)✅、三步说明(说明)✅、页脚(法务链接)⚠️(链接可点,但不算业务动作,可接受)—— 这 5 个成立;持仓模块1、验证模块1 不成立(见上表)。首页模块 1 的 Q8 是正确的(Launch→发币;Connect→钱包。),说明是同一模块在 4 个页面被复制时没有同步。
开发流程-信息设计.md 第 110 行真实存在 ### 4.1 字段四要素(每个元素必须写清楚的 4 件事):四要素表(类型格式 / 谁写入 / 是否可空 / 空态显示,含「不写的后果」与 P227 示例)+ 结尾的「单一真源」声明。✓审核-缺口清单.md 确有「## 4. 可执行性…(E1–E10)」小节 → 引用不悬空 ✓。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 同类却不同值)。
两种口径的独立复算:
| 口径 | 已定稿 | 有待拍板项 | 有冲突项 | 两项都有 | 恒等式 |
|---|---|---|---|---|---|
| 按模块徽章(互斥) | 29 ✅ | 17 | 7 | — | 29+17+7 = 53 ✅ |
| 按元素标记(本模块 Q5 含 ≥1 条该状态元素,可重叠) | 30 | 22 | 7 ✅ | 6 | 30+22+7−6 = 53 ✅ |
| 页头现在写的 | 29 | 21 | 7 | 4 | 29+21+7−4 = 53(凑巧也成立) |
您写的「已定稿 29 / 有待拍板项 21 / 有冲突项 7 / 两项都有 4」,我复算为「29(徽章口径)/ 22 / 7 / 6」,逐项说明:
模块 3 · Trending Tokens(卡片条):本轮为修 P90(卡片里程碑徽章)把它加进 Q5,而字典里 P90 状态=待拍板(字典:102),该模块因此成为「有待拍板项」。逐页核对我与页头:首页 5 ✓、发币向导 2 ✓、持仓页 2 ✓、验证页 2 ✓、落地页 3 ✓ —— 只有项目页页头写 7、我算 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 —— 但这只是我的假设,规则没有写在页头,无法证实。C1、C5、R4、步骤 ③ 发售方式、步骤 ⑤ 里程碑设置、模块 6 · 我发的(项目方视角)。我试过「徽章 ∩ 元素」「徽章 ∪ 元素」「元素 ∩」等几种组合:6 / 8 / 9 都能算出来,唯独算不出 4。R5 Top Holders 徽章=待拍板、5 个元素却全是已定稿;首页模块 7、落地页模块 5 徽章=已定稿、却各含 1 条待拍板元素),21/7 是元素口径。两者不能相加,页头却把它们放在同一行。建议口径(单一、可复现):页头写成两行 ——
按模块徽章(互斥,合计 53):已定稿 29 · 待拍板 17 · 有冲突 7按元素标记(可重叠):含待拍板元素 22 · 含冲突元素 7 · 两项都有 6| 项 | 结果 | 证据 |
|---|---|---|
| Q7 前缀重复 | 0 | 渲染实测「空态:空态」等 4 类命中 0;Q7 渲染成「空态 :未填 → 整块隐藏」 |
| 验收项 <3 的模块 | 0 | 53 个模块 Q12 条数 min=3 / max=5 |
渲染文本里的 ** | 0 | Playwright 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> |
---
模块说明书.html 页头第 ③ 条;开发流程-信息设计.md §4.1 末段;Launchpad-元素台账-v2.md/.xlsxb2546dda…),其空态词表里零个新取值;说明书却全部是新取值 → 两者由不同版本规则生成。而页头与 §4.1 都声明「以台账 v2 为唯一权威 / 同源生成 / 两处不得各自手改」,把错的那份指成了权威。writer_of/empty_rule;然后跑一次同 ID 比对,必须 0 差异;并把 §4.1 里的 P227 例子换成新值。若反而想以台账 v2 为准,则重生成说明书 Q5 —— 二选一,不可两边都留。(谁写入, 空态) 有 2 套的 12 个:P01 P03 P04 P05 P06 P07 P08 P11 P12 P13 P14 P15。例:P06 Connect 钱包按钮:项目页 M1 = 系统 / 未连钱包时显示;首页/发币/持仓/验证/落地 5 个顶栏 = 设计/运营 / 不适用(动作/装饰元素)P07 已连接钱包地址:项目页 M1 = 系统/链上 / 无数据显示「—(待接入)」;简版顶栏 = 钱包 / 未连时不渲染(后者才符合字典 P07 的「数据来源=链上直读、示例 0xABCD…1234」语义)P15 免责声明文案位:项目页 M2 = 待定 / 待写;落地页页脚 = 设计/运营 / —系统 154 / 系统/链上 23、设计/运营 131 / 设计 33、项目方 39 / 项目方步骤① 10 / 项目方步骤⑤ 4 / 项目方步骤④ 3、系统 + 外部行情 4、系统/链上 + 系统 2、owner 2、钱包 1、待拍板 3、待定 1。系统 + 外部行情 8 / 系统/链上 + 系统 3 / 项目方 + 系统/链上 2 = 13 条)。设计/运营|项目方|系统(链上直读)|系统(计算)|外部行情|用户(输入)|不适用(列头/装饰)|待拍板),全库替换;拼接值拆成单标签。成功:toast 提示 + 状态/数字即时更新;失败:字段级或行内报错 + 原因 + 重试。(文案待细化) ×27、纯展示,无操作反馈。 ×7);Q10 只有 1 种取值(单位/币种:待逐条确认(USD / 代币符号 / ETH);精度:金额 2 位、代币按量级 待定;刷新频率:待定;分页/每次条数:待定 ×34)。模块 6 卡片网格(列表分页)、模块 7 分页 + 页脚(页码)、步骤 ①(简介 ≤160 字、logo ≤2MB)这些现在就能定的模块,Q10 也写「待定」。— 仍是最大桶(165 行 / 38%)。— 分类(不适用(静态文案/列头/装饰) vs 待定),再把数值/状态类(P07/P187/P230-P233/P249-P258/P407/P417/P427/P452/P462/P464)逐条补真值。P208 空态文案 与 P400 空态文案 同类不同值:P400 = 「本元素就是空态文案本身」,P208 = 「—」。建议统一。P464 表格列 说明 自相矛盾:谁写入=「不适用(列头)」但空态=「无数据显示「—(待接入)」」;同类 P133/P413 已是「不适用(列头)」双列一致。---
为什么不是「通过」:本轮把上一轮的结构性、措辞性问题几乎全部清掉了(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% 可执行。
---
Launchpad-元素台账-v2.md + .xlsx,与说明书 模块说明书.html 使用同一条 dict.writer_of()/dict.empty_rule();然后跑一条「同 ID 比对」自检,谁写入与空态差异必须 = 0(当前 87 / 181)。若选择以台账 v2 为准,则改为重生成说明书的 53 张 Q5。开发流程-信息设计.md §4.1 的示例(P227 现值是说明书里的「系统 / 显示「—」+ 说明」,例子却写台账旧值),并在「单一真源」那句后加一句「本句在台账 v2 重生成后由脚本校验」。按徽章:已定稿 29 / 待拍板 17 / 有冲突 7;按元素标记:含待拍板 22 / 含冲突 7 / 两项都有 6。当前页头的 21 与 4 都算不出来(差的模块:模块 3 · Trending Tokens(P90 待拍板 → 21 应为 22)、项目页页头 7 应为 8、「两项都有」4 应为 6)。C3 业务指标卡组、R5 Top Holders 的「次」动作 → Q9 要有反馈);并修 持仓页·模块1、验证页·模块1 的 Q8 = 「—」(顶栏有 Launch/Connect 按钮)。P07 P187 P230-P233 P249-P258 P407 P417 P427 P452 P462 P464 P439 P440 P260 P267 P247 P208;给 — 分类(不适用 / 待定),把 71% 占位降到 50% 以下。P208 与 P400 空态统一;P464 列头双列一致。---
本文件由 auditor 独立产出;只读 模块说明书.html、开发流程-信息设计.md、需求台账.md、Launchpad-元素台账-v2.md/.xlsx、回填记录-第2轮.md、模块台账.md、数据字典、过表、定稿、流程图、线稿-v1…v5,仅写入本文件。(终验用的 Playwright 脚本临时放在 heliosgen-web/ 下,已删除。)