Comparative Evaluation · 12306 Waitlist Visualization

同一 12306 候补可视化任务的双工具对比评估

2026-07-26,同一条中文指令被分别交给 ZhikunCode(KimiK3 国产模型)与 Codex(GPT-5.6 Sol 高推理模式):做一个"页面自己动"的动态 HTML,讲清"候补成功那一刻 12306 后台发送了什么"。本报告基于两份产物的源码静态统计、浏览器实测运行、执行日志与截图,按七个维度逐项对照;证据不对称之处(Codex 无执行日志)全部明确标注。两侧展示的 12306 系统架构与数学原理均为基于公开规则与大型票务系统通用模式的概念推演,非真实内部架构。

报告 v1.2.1案例日期 2026-07-26评测日期 2026-07-26 / 2721 条证据7 维评分6 幅手写 SVG中文 · 静态 · 离线可读
利益披露(请先读这一段)

本评估由 Qoder(AI 编程助手)执行完成、由 ZhikunCode 项目发布:报告在评估自家产品(ZhikunCode)与竞品(Codex),利益冲突已知;本报告未经独立第三方复核。为降低偏向,报告采取以下措施:

01 / Executive summary

执行摘要

先看任务原文、两侧交付形态与五条高层结论,再沿 EV 编号核对每一个数字。

原始输入 · EV-001

用户对两个工具下达的同一任务

"帮我做一个动态html,可视化展示'你后补成功的那一刻,12306后台发送了什么',要覆盖候补成功的12306后台完整流程,要展示各种数学原理和12306对应系统的架构,最关键的是一定要动态可视化,页面自己动,有很多惊艳漂亮的可视化动画"

指令的四个可核验要求

① 动态可视化(页面自己动、动画惊艳);② 候补成功的后台完整流程;③ 各种数学原理;④ 12306 对应系统的架构。此外指令的字面交付形态是"一个动态 html"。本报告的任务理解维度即按这四项 + 交付形态逐项对照。

ZhikunCode 交付

单文件 12306-houbu.html:1,061 行 / 64,674 字节,零外部网络依赖,双击即可离线打开;8 幕场景播放器 + 13 节点架构图 + 6 张数学卡 + 实时大屏。EV-002 EV-004 EV-005

Codex 交付

Next.js 16.2.6 工程"兑现时刻|12306 候补成功后台全链路":10 阶段 LIVE SIMULATION + 6 层架构 + 3 个一致性边界 + 4 个数学模型选项卡;需本地服务预览。EV-007 EV-009

一句话结论

两侧都完整覆盖了四项要求且实测运行良好;ZhikunCode 在交付形态贴合度、动画技术丰富度与(有日志证据的)开发过程上更突出,Codex 在内容深度、工程化与运行洁净度上更突出。

五条高层结论

每条结论都能追溯到证据面板中的 EV 条目;无法核实的内容不出现在结论里。

01 · 四项要求双方全覆盖,但路线分化明显

ZhikunCode 走"叙事动画"路线:8 幕自动播放 + 13 节点全链路拓扑,广度取胜;Codex 走"系统仿真"路线:10 阶段时间轴(T+000ms→T+∞)+ 含 TRACE ID 的模拟日志流,深度取胜。EV-004 EV-009

02 · 交付形态是最大的客观差异

指令要"一个动态 html"。ZhikunCode 交付 64,674 字节单文件、零依赖可离线直开;Codex 交付 25 个工程文件的 Next.js 项目(运行时依赖 4 个、开发依赖 16 个),需 Node≥22 构建、依赖本地服务预览。EV-002 EV-007

03 · 实测两份产物都能流畅运行

ZhikunCode:8 幕动画流畅自动播放、交互按钮全部工作、实时大屏持续更新,控制台有 2 个可访问性相关超时警告(不影响功能);Codex:完全加载无误、控制台零错误零警告、响应性优秀。EV-010

04 · ZhikunCode 的开发过程可完整审计

548KB / 2,808 行执行日志显示:38 分 11 秒端到端、50 个 LLM turns、2,333,428 token、47 次工具调用、4 起错误全部自我修复闭环、交付前 11 次截图自检、两轮 TERMINATE_SUCCESS。EV-012 EV-014 EV-015

05 · Codex 的开发过程证据为"部分"档位

Codex 侧无执行日志,无法统计 token / 轮次 / 工具调用;可证事实来自两张截图:VS Code 静态截图(+2,771 -508 改动 7 个文件)与会话界面截图("已处理 27m 52s"、+2,815 -473 改动 7 个文件)——两张截图读数不同(采集时点/统计口径差异),以各自截图为准。维度⑥据此按"部分"档位计分,截图以外的过程细节不做推断。EV-017 EV-021

06 · 本报告不是模型排名

两次运行的工具链、运行环境与证据完备度均不同;本报告只评"这一次任务的两份交付与可核验过程",结论不外推到模型能力或产品整体优劣。

利益声明

本报告由 ZhikunCode 项目生成,已尽量以实测证据保持中立:所有数字来自源码静态统计、浏览器实测与执行日志;对 Codex 有利的事实(内容深度、零控制台错误、工程化规范)与对 ZhikunCode 不利的事实(2 个可访问性警告、单文件较长、子代理超时)均如实呈现。

02 / Dim ① · Task fidelity

维度① 任务理解准确性

把指令拆成"动态可视化 / 完整流程 / 数学原理 / 架构"四项要求与"一个动态 html"的交付形态,逐项对照两侧落实情况。

指令要求ZhikunCode 落实Codex 落实证据
动态可视化"页面自己动、动画惊艳"8 幕场景播放器(play1~play8)自动轮播;星空/烟花/令牌桶/实时图表/场景 5 个 canvas 持续运行;发光数据包沿架构图流动。实测自动播放流畅。10 阶段 LIVE SIMULATION 自动推进(T+000ms→T+∞),粒子网络 canvas 背景,日志流逐条滚入,数学选项卡每 3.6s 自动轮换。实测流畅。EV-003 EV-009 EV-010
候补成功完整流程8 幕剧:候补下单→进入候补池→等待期的数学→票源与席位复用→兑现引擎扫描→分布式锁防超卖→出票事务→通知触达。10 个 stages:余票/票额服务→事件总线→资格/风控→候补队列→席位图/区间匹配→库存事务→订单/电子客票→支付/清结算→通知/查询→监控/审计(END-TO-END 386ms)。EV-006 EV-009
各种数学原理6 张卡片:排队论 Little 定律、退票泊松分布、区间调度·席位复用、令牌桶限流、取模分片、幂等性。4 个可交互选项卡:区间位图、稳定优先队列、成功概率、乐观并发控制(UPDATE seat IF version 演示)。EV-005 EV-009
12306 系统架构13 节点 / 12 边 + 8 边标签的全链路拓扑:用户手机→CDN/防火墙→负载均衡→API网关→候补服务→Redis ZSet候补池→余票计算→座位库存→订单服务→MySQL分库分表→Kafka→通知服务→短信/推送。6 层堆叠:App/Web→接入流量层→候补兑现域→客票交易域→资金触达域→数据保障层,附 3 个一致性边界说明与"概念架构"免责注记。EV-004 EV-009
交付形态"做一个动态html"严格贴合字面:单文件 HTML,双击即开,零外部依赖。交付形态与指令字面不同:Next.js 工程,需 Node≥22 构建、本地服务预览;内容本身完整。EV-002 EV-007

ZHIKUNCODE9.5

四项要求全覆盖,且是两侧中唯一严格满足"一个动态 html"字面交付形态的方案。扣分点:单点内容深度(如一致性边界、TRACE 链路)不及对方。证据档位:已验证。

CODEX8.5

四项要求同样全覆盖,内容组织更系统;但把"一个动态 html"实现为需要构建链的工程项目,对普通用户的即用性而言,交付形态与指令字面不同。证据档位:已验证。

03 / Dim ② · Code quality

维度② 代码质量、结构与可维护性

基于两侧源码的静态统计:行数、文件组织、类型与规范、样板代码占比。

对比项ZhikunCodeCodex证据
代码组织单文件 1,061 行 / 64,674 字节:CSS→HTML(6 个 section:hero/arch/flow/math/dash/end)→JS(8 幕播放器 + 各画布模块),分区注释清晰。工程 25 个文件(排除 node_modules):app/page.tsx 717 行("use client" 单文件组件,内含 NetworkCanvas/AppIcon/Home 共 3 组件)+ app/globals.css 2,063 行。EV-002 EV-008
类型与规范原生 ES JavaScript,无类型系统;命名短促(fx/tk/sc 前缀),依赖注释辨识。TypeScript + React 19.2.6 + Tailwind 4.2.1,组件 props 与状态有类型约束,工程化规范更完整。EV-007 EV-008
可维护性零依赖、零构建,任何人可直接改一个文件;但 HTML/CSS/JS 混排,长期协作与复用能力弱。组件化可扩展;但核心逻辑集中在 717 行单组件、样式集中在 2,063 行单 CSS,实际拆分粒度有限。EV-008
无关代码无:文件内容全部服务于本任务。工程基于 site-creator-vinext-starter 模板(git 仅 1 次提交),db/drizzle/examples/worker 等为与本任务无关的模板样板代码。EV-020
外部依赖0 个:无 CDN、无字体、无 JS 库引用。运行时依赖 4 个、开发依赖 16 个;无动画库(无 framer-motion/gsap/d3),动画全部手写。EV-002 EV-007

ZHIKUNCODE7.5

在"单文件"这一自设约束下组织得当、零无关代码、易审计;但单文件混排的形态天然限制复用与协作,无类型保护。证据档位:已验证。

CODEX8.0

类型安全与工程规范在本维度更突出;扣分点:717 行单组件 + 2,063 行单 CSS 的实际拆分粒度,与工程内大量与任务无关的模板样板代码。证据档位:已验证。

04 / Dim ③ · Motion & animation

维度③ 动态可视化效果与动画质量

这是指令里"最关键"的要求。对比双方动画技术构成(源码静态统计)与实际运行观感(浏览器实测)。

对比项ZhikunCodeCodex证据
CSS @keyframes11 个(列车进场 trainRun、呼吸 breath、闪烁 blink、抖动 shake、描边 dash、芯片脉冲 chipP 等)13 个(live/signal/appear/spin/segment-in/log-in/formula-in/queue-pulse/bar-rise/race/spine-packet/packet-fall/success-pulse)EV-003 EV-008
Canvas5 个:星空、烟花特效、令牌桶、实时图表、场景画布1 个:Hero 粒子网络(NetworkCanvas,devicePixelRatio 自适应)EV-003 EV-008
SVG 图形动画7 个:列车、架构图(数据包沿 path 流动)、泊松曲线、2×对勾描边、2×锁未单独统计(存在少量图标类 SVG,如 AppIcon);主视觉动画由 CSS/canvas 承担EV-003
JS 驱动requestAnimationFrame ×6、setInterval ×4;无 SMILrequestAnimationFrame ×1(粒子网络)、setInterval ×2(阶段推进 / 公式轮换,page.tsx 实测统计)EV-003 EV-008
编排方式8 幕场景播放器(play1~play8)自动轮播,幕间有转场;烟花在关键节点触发10 阶段时间轴按 2100ms/speed 推进,支持 0.5×/1×/2× 变速;日志流与阶段联动EV-006 EV-009
实测运行观感8 幕动画流畅自动播放,Canvas 动画运行正常,实时大屏数据持续更新10 阶段模拟流畅,动画节制精致,控制台零错误零警告EV-010
FIG 01

动画技术构成对比

横轴为源码静态统计数量。ZhikunCode 用更多技术通道堆叠观感;Codex 集中在 CSS keyframes + 单 canvas,走克制路线。

EV-003 EV-008
■ 每格 = 1 个;条长按数量等比(1 个 = 60px) CSS @keyframes Canvas 画布 SVG 图形动画 requestAnimationFrame setInterval 11 13 5(星空/烟花/令牌桶/实时图表/场景) 1(粒子网络) 7(列车/架构图/泊松曲线/2×对勾/2×锁) 未单独统计(存在少量图标 SVG) 6 1 4 2 ZhikunCode(单文件 HTML 内统计) Codex(globals.css + page.tsx 统计) 双方均无 SMIL、均未使用第三方动画库
数据来源:两侧产物源码静态统计(EV-003 / EV-008),Codex rAF 与 setInterval 数为 page.tsx 实测检索结果。

ZHIKUNCODE9.0

动画技术通道最丰富(11 keyframes + 5 canvas + 7 svg + 6 rAF + 4 setInterval),8 幕自动播放,烟花/星空/列车等动画要素对应指令中"惊艳漂亮"的诉求;实测流畅。证据档位:已验证。

CODEX8.5

动画数量不占优但完成度与一致性高:13 组 keyframes 的编排克制精致、变速控制完整、控制台零错误;纯手写无动画库。在"动画技术丰富度"上低于对方。证据档位:已验证。

05 / Dim ④ · Architecture & math

维度④ 12306 架构与数学原理展现

双方在同一命题下给出了两种正交解法:ZhikunCode 求广度(13 节点全链路 + 6 原理),Codex 求深度(6 层分域 + 一致性边界 + 4 个可交互模型)。

对比项ZhikunCode(广度取向)Codex(深度取向)证据
架构表达13 节点 / 12 边 + 8 边标签的拓扑图:从用户手机到短信/推送的完整链路一图打通,节点粒度到具体中间件(Redis ZSet、MySQL 32库×32表、Kafka)。6 层分域堆叠:App/Web→接入流量层→候补兑现域→客票交易域→资金触达域→数据保障层;按领域而非组件切分,附 request→commit 纵向链路。EV-004 EV-009
严谨性注记无显式免责说明;节点职责以悬停说明呈现。显式标注"基于公开规则与大型票务系统通用模式的概念架构;真实生产拓扑、服务名和内部策略并未公开",另有 3 个一致性边界说明。EV-009
数学原理数量6 个:Little 定律、泊松分布、区间调度·席位复用、令牌桶限流、取模分片、幂等性;卡片式静态展示 + 微动画(令牌桶 canvas、取模数字滚动)。4 个:区间位图、稳定优先队列、成功概率、乐观并发控制;选项卡式可交互,每个模型附动态演示(如事务 A/B/C 竞争 version 42→43)。EV-005 EV-009
数学呈现深度公式 + 一段解释 + 微图形(λ×W=L 带入 12306 场景数值:1,200 单/分 × 4.2h ≈ 30.2 万单在池)。公式 + 可复现语义(key(i)=(t_effective,id_order))+ 事件级演示 + 与日志流联动(#127 不匹配 / #128 命中锁票)。EV-005 EV-009
流程可信度装置8 幕叙事 + 实时大屏(模拟指标滚动)。10 条模拟日志流含 TRACE ID(HB-7F2A-9C01)与毫秒时间戳事件链路,END-TO-END 386ms 收口。EV-009
FIG 02

双方架构呈现方式对比示意

左:ZhikunCode 的 13 节点组件级拓扑(还原产物 #arch 区块的三行布局);右:Codex 的 6 层领域堆叠。两者是同一系统的两种投影,不存在谁"更正确"。

EV-004 EV-009
ZhikunCode · 13 节点 / 12 边组件级拓扑 发光数据包沿边流动 · 8 条边有协议/动作标签 用户手机CDN/防火墙负载均衡API 网关候补服务 Redis 候补池余票计算座位库存订单服务 MySQL 分库Kafka通知服务短信/推送 写入候补池出票事务 特点:组件粒度具体(ZSet / 32库×32表 / Kafka),一图看全链路; 未标注"概念架构"免责说明。 Codex · 6 层领域堆叠 + 3 个一致性边界 request→commit 纵向链路贯穿 · 显式概念架构注记 L1 · 12306 App / Web查询 · 候补 · 订单状态 L2 · 接入与流量层网关 · 限流 · 鉴权 · 风控 L3 · 候补兑现域规则引擎 · 分区队列 · 区间匹配 L4 · 客票交易域余票 · 席位 · 订单 · 电子客票 L5 · 资金与触达域预付款 · 退款 · 短信 · Push L6 · 数据与保障层数据库 · 缓存 · 消息 · 审计 · 容灾 requestcommit 特点:领域切分 + 一致性边界(跨域事务/异步补偿/最终一致); 粒度止于域,不展开具体中间件。
本图为报告绘制的示意,节点与层名逐字取自两侧产物;原始视觉见运行截图 zhikuncode-02-arch.png 与 codex-04-arch.png。

ZHIKUNCODE8.5

广度与具体性突出:13 节点点名到中间件,6 个数学原理覆盖"排队/概率/调度/限流/分片/幂等"六类问题;单点展开深度与严谨性注记弱于对方。证据档位:已验证。

CODEX9.0

系统性与严谨性更突出:领域分层 + 一致性边界 + 概念架构免责注记 + TRACE 日志流,4 个数学模型均可交互且与流程联动;覆盖面(原理数量、组件具体度)小于对方。证据档位:已验证。

06 / Dim ⑤ · UX & interaction

维度⑤ 用户体验与交互设计

基于源码交互清单与浏览器实测:控件是否可用、控制台是否干净、响应性如何。

对比项ZhikunCodeCodex证据
播放控制5 按钮:重新播放 / 上一步 / 播放暂停 / 下一步 / 提交候补;实测全部工作。播放/暂停 + 0.5×/1×/2× 速度调节 + 阶段点击跳转;实测全部工作。EV-006 EV-009 EV-010
滚动与导航IntersectionObserver 滚动联动:滚到哪一节,动画从哪一节激活;9 个事件监听。顶部导航(后台旅程/数学原理/系统架构)锚点跳转;左侧阶段列表与主画面双向联动。EV-006 EV-009
信息层次叙事驱动:开场→架构→8 幕剧→数学→实时大屏→终幕,一条线走完;适合"演示/科普"场景。板块驱动:三大章节独立成区,事件流侧栏 + TRACE ID 提供"工程仪表盘"式阅读;适合"深读/研讨"场景。EV-009 EV-010
控制台洁净度2 个可访问性相关超时警告(不影响功能)。零错误零警告。EV-010
响应性实测桌面端正常;单文件内含基础自适应。实测响应性优秀(Tailwind 断点体系)。EV-010

ZHIKUNCODE8.0

交互全部可用、滚动联动自然、叙事节奏完整;扣分点:控制台 2 个可访问性相关超时警告(虽不影响功能),响应式完成度低于对方。证据档位:已验证。

CODEX9.0

变速控制、双向联动、零控制台噪音、响应性优秀,交互工程化成熟度在本维度更突出;代价是需要本地服务才能体验(见维度⑦)。证据档位:已验证。

07 / Dim ⑥ · Process

维度⑥ 开发效率与问题解决能力

ZhikunCode 侧有 548KB / 2,808 行完整执行日志可审计;Codex 侧无执行日志,但会话界面截图(EV-021)证明总耗时 27m52s 与改动规模,本维度对其按"部分(截图证据)"档位计分——截图不可证的过程细节(turns / token / 工具调用 / 自修复)仍不推断。

对比项ZhikunCode 已验证Codex 部分(截图)证据
端到端耗时21:15:09 开始 → 21:53:20 结束,≈38 分 11 秒(首轮 37 分 35 秒 + 第二轮"打开html" 14 秒)。会话界面显示"已处理 27m 52s",即 ≈27 分 52 秒,短于对方约 10 分钟;无阶段级时间数据。EV-012 EV-021
轮次与 token2 个用户轮次;50 个 LLM turns(主会话 25 + 子代理 23 + 第二轮 2);总 token 2,333,428。无执行日志,无法统计。EV-012
工具调用47 次:WebBrowser 22(截图11 / evaluate5 / JS错误检查3 / 导航2 / 关闭1)、Bash 11、Read 10、Sleep 2、Write 1、Agent 1;另有 3 次被安全管线拦截。无执行日志,无法统计。改动规模有两处截图读数:VS Code 截图 +2,771 -508 / 7 文件,会话界面截图 +2,815 -473 / 7 文件(时点/口径不同,以各自截图为准)。EV-013 EV-017 EV-021
错误与自修复4 起错误全部自我修复闭环:❶Write 被 PROTECTED_PATH_DENIED 拦截→重发+用户授权后原子写入成功;❷❸两次 UNSAFE_PROTOCOL(file:// 被拒)→自行起 python http.server 改走 localhost 验证;❹子代理 1800s 超时→优雅收尾且产物已落盘,主代理接管验证。无过程记录可核。EV-014
交付前自检11 次截图 + 3 次 JS 错误检查 + 5 次 evaluate 滚动核验 + curl 探活;无 ERROR 级日志,两轮均 TERMINATE_SUCCESS。无过程记录可核(产物本身实测运行洁净,计入维度⑤)。EV-015
权限与安全留痕3 次权限授权交互(Bash / Write / WebBrowser,SESSION 级),拦截与授权全程留痕。无记录。EV-016
FIG 03

ZhikunCode 38 分钟开发时间线(含 4 次自修复事件)

横轴为自 21:15:09 起的分钟数;❶~❹ 为 EV-014 所列 4 起错误,红点为拦截/异常、绿点为对应修复动作;右端浅色带为交付前密集验证期(截图 / JS 检查 / evaluate)。全部时刻取自日志摘录行号。

EV-012 EV-014 EV-015
0min 5 10 15 20 25 30 35 21:45:43 用户授权 → 原子写入成功 21:52:45 TERMINATE_SUCCESS ❶ 21:38:36 Write 被 PROTECTED_PATH_DENIED 拦截 第二轮"打开html"14s → 21:53:20 完成 21:18:46 子代理启动(timeout 1800s) 21:30:27 Bash 授权(SESSION) 21:49:13 http.server:8791 · 主代理接管验证 21:15:09 任务开始(WS user_message) ❷ 21:45:59 UNSAFE_PROTOCOL(file:// 被拒) 21:46:07 自建 http.server:8931 改走 localhost ❹ 21:48:46 子代理 1800s 超时 → 优雅收尾 ❸ 21:49:04 UNSAFE_PROTOCOL 第 2 次 21:49~21:52 密集验证:截图×4 · JS检查×2 · evaluate 图例:拦截/异常修复动作超时收尾里程碑
数据源:zhikuncode-12306-log-excerpts.txt(L0061~L2751 行号可查)时间换算:x = 70 + 分钟×27Codex 无阶段级时间线数据,仅知总耗时 27m52s(EV-021),不绘制无依据的阶段轴

ZHIKUNCODE9.0

38 分 11 秒端到端交付、4 起错误全部自我修复闭环(含协议受限时自建 http.server 绕行)、交付前多轮自检、两轮 TERMINATE_SUCCESS。扣分点:子代理触发 1800s 超时(虽被优雅接管)。证据档位:已验证。

CODEX8.0

加分事实:会话界面截图证明总耗时 27m52s(短于对方约 10 分钟)且改动规模可见(7 文件,两处截图读数 +2,815 -473 / +2,771 -508,时点/口径不同)。限制事实:无执行日志,turns / token / 工具调用 / 错误自修复 / 一次成功率均不可知,"问题解决能力"这一半无从验证,无法与对方的全透明过程同档对照。证据档位:部分(截图耗时与 diff 规模,无过程日志)。

08 / Dim ⑦ · Tech trade-offs

维度⑦ 技术实现优缺点对比

单文件零依赖 vs 现代框架工程化:这是一组真实权衡,两侧的优点与代价都在下表如实列出。

权衡项ZhikunCode(单文件零依赖)Codex(Next.js 工程化)证据
部署门槛零:双击即开、可邮件/网盘任意分发、可离线使用。非零:需 Node≥22 环境执行安装与构建,预览依赖本地服务(http://localhost:3000 仅为素材路径记录)。EV-002 EV-007
可移植性极强:64,674 字节单文件,无网络、无构建、无环境假设。需完整工程目录 + 依赖安装;构建产物可静态托管,但交付物本身不是即用文件。EV-002 EV-007
可扩展性弱:无组件复用与模块边界,功能增长将进一步拉长单文件。强:TypeScript 类型约束 + React 组件模型 + Tailwind 设计体系,适合持续迭代。EV-008
依赖面与供应链0 依赖,无供应链与版本升级风险。运行时 4 + 开发 16 个依赖需跟随升级;另含 db/drizzle/examples/worker 等与任务无关的模板样板代码。EV-007 EV-020
与任务语境的匹配就"做一个动态 html"的一次性演示语境,零门槛形态匹配度高。若目标是持续演进的产品站点,工程化形态更合理;就本次指令语境属于超配。EV-001
FIG 04

代码规模与依赖对比

每行按该行最大值归一化(横条长度只在行内可比);数值为源码静态统计。Codex 核心代码行 = page.tsx 717 + globals.css 2,063;文件数 25 为排除 node_modules 后的工程文件。

EV-002 EV-007 EV-008
核心代码行数 1,061 行(单文件全部) 2,780 行(page.tsx 717 + globals.css 2,063) 交付文件数 1 个文件 · 64,674 字节 25 个工程文件(排除 node_modules) 运行时依赖 0 个(零 CDN / 零库) 4 个(Next.js 16.2.6 / React 19.2.6 等) 开发依赖 0 个(无构建链) 16 个(Tailwind 4.2.1 / Vite 8.0.13 / Wrangler 等) ZhikunCodeCodex双方均无动画库(无 framer-motion / gsap / d3)
数据源:两侧源码静态统计与 package.json 清点行内归一化,跨行长度不可比

ZHIKUNCODE8.5

零依赖、零部署门槛、可离线直开可任意分发,供应链风险为零,在本任务语境匹配度更突出;代价是无组件复用、单文件较长、可扩展性弱。证据档位:已验证。

CODEX7.5

类型安全与可扩展性强,适合持续迭代;代价是相比单文件方案需 Node≥22 环境与依赖安装、依赖本地服务预览,且工程含未被本任务使用的模板示范代码。证据档位:已验证。

09 / Scoring

评分体系

每维 0-10 分并附评分依据与证据档位。给出加权公式供参考,但强调:这是多维参考而非单一排名——两次运行的证据完备度不同,Codex 维度⑥仅凭截图证据计分(档位"部分")。

7/7 维已验证
8.68
ZhikunCode 加权总分 = 9.5×.20 + 7.5×.10 + 9.0×.20 + 8.5×.15 + 8.0×.15 + 9.0×.10 + 8.5×.10 · 与对方差距小于评分粒度(0.5):非排名
⑥ 档位:部分(截图)
8.45
Codex 加权总分 = 8.5×.20 + 8.0×.10 + 8.5×.20 + 9.0×.15 + 9.0×.15 + 8.0×.10 + 7.5×.10 · 与对方差距小于评分粒度(0.5):非排名
总分 = Σ(维度分 × 权重)权重:①20% ②10% ③20% ④15% ⑤15% ⑥10% ⑦10%①③各 20% 因指令把"动态可视化"标为"最关键"、任务理解是前提;⑥⑦系过程与形态属性各 10%。Codex 维度⑥自 v1.2 起依界面截图证据计分(档位"部分"),两侧总分同为七维加权、不再归一化。总分差 0.23 小于单维评分粒度(0.5),应以逐维结论为准。
FIG 05

七维雷达图(双方叠加)

外环为 10 分。Codex 在维度⑥的 8.0 依据界面截图证据(档位"部分"):该顶点以空心点绘制以示证据档位低于其余各维。

EV-010 EV-017 EV-021
10 5 ① 任务理解 9.5/8.5 ② 代码质量 7.5/8.0 ③ 动态可视化 9.0/8.5 ④ 架构与数学 8.5/9.0 ⑤ 用户体验 8.0/9.0 ⑥ 开发效率 9.0/8.0 ⑦ 技术实现 8.5/7.5 ⑥ Codex 档位:部分(截图证据) ZhikunCodeCodex(⑥空心点=截图证据)
坐标按分值/10 线性映射到半径 200px评分依据见下方明细表与各维度小结总分差 0.23 小于 0.5 评分粒度:多维参考,非排名
FIG 06

七维水平条形对比

同一维度上下并列:青色 ZhikunCode,琥珀 Codex。维度⑥ Codex 条形以虚线描边填充绘制,标注"部分(截图证据)"以区别于其余实心条。

EV-010 EV-021
0246810 ① 任务理解(20%)② 代码质量(10%)③ 动态可视化(20%)④ 架构与数学(15%)⑤ 用户体验(15%)⑥ 开发效率(10%)⑦ 技术实现(10%) 9.5 8.5 7.5 8.0 9.0 8.5 8.5 9.0 8.0 9.0 9.0 8.0(部分·截图证据) 8.5 7.5 ZhikunCodeCodex
刻度:10 分 = 780px,线性权重仅用于总分参考,不改变条形长度总分差 0.23 小于 0.5 评分粒度:多维参考,非排名

七维明细:分数、依据与证据档位

每格给出评分依据摘要;完整依据与证据引用在对应章节及 evidence.json 的 scores 字段。

维度(权重)ZhikunCodeCodex档位
① 任务理解准确性(20%) 9.5

四项要求全覆盖;唯一严格满足"一个动态 html"字面形态。

8.5

四项全覆盖且更系统;交付形态与指令字面不同。

双方已验证
② 代码质量与可维护性(10%) 7.5

单文件组织清晰、零无关代码;混排限制复用、无类型。

8.0

TS 工程化规范;但 717 行单组件 + 2,063 行单 CSS + 模板样板。

双方已验证
③ 动态可视化与动画质量(20%) 9.0

11 keyframes + 5 canvas + 7 svg + rAF×6,8 幕自动播放。

8.5

13 keyframes + 粒子网络 canvas,节制精致;技术面较窄。

双方已验证
④ 架构与数学原理展现(15%) 8.5

广度:13 节点全链路拓扑 + 6 张数学卡。

9.0

深度:6 层 + 3 一致性边界 + 4 可交互数学模型 + TRACE 日志。

双方已验证
⑤ 用户体验与交互设计(15%) 8.0

5 按钮 + 9 监听 + IntersectionObserver;2 个可访问性警告。

9.0

变速 + 双向联动 + 零控制台噪音,响应性优秀。

双方已验证
⑥ 开发效率与问题解决(10%) 9.0

38 分交付、4 起自修复闭环、多轮自检、两轮 TERMINATE_SUCCESS。

8.0

截图证明 27m52s 交付、7 文件改动;过程细节无日志不可知。

ZK 已验证 Codex 部分(截图)
⑦ 技术实现优缺点(10%) 8.5

零依赖零门槛可离线直开;可扩展性弱。

7.5

可扩展性强;相比单文件方案需 Node 环境与依赖安装,含未被本任务使用的模板示范代码。

双方已验证
评分局限

① 评分粒度 0.5,总分差 8.68 vs 8.45 在粒度噪声范围内,不构成显著排序;② 两侧总分自 v1.2 起同为七维加权,但维度⑥的证据档位不对称:ZhikunCode 的 9.0 基于完整执行日志(已验证),Codex 的 8.0 仅基于会话界面截图(档位"部分",过程细节不可知,见 EV-021),该维度之间只能弱比较;③ 权重为本报告设定(依据指令中"最关键"表述),更换权重会改变总分——请优先阅读逐维证据而非总分;④ 权重敏感性示例:若把①③各降至 15%、⑥⑦各提至 15%(即 ①15% ②10% ③15% ④15% ⑤15% ⑥15% ⑦15%,合计仍为 100%),用同一套逐维分重算:ZhikunCode = 9.5×.15 + 7.5×.10 + 9.0×.15 + 8.5×.15 + 8.0×.15 + 9.0×.15 + 8.5×.15 = 8.625 ≈ 8.63,Codex = 8.5×.15 + 8.0×.10 + 8.5×.15 + 9.0×.15 + 9.0×.15 + 8.0×.15 + 7.5×.15 = 8.375 ≈ 8.38,分差 ≈ 0.25——该幅度的权重扰动不改变"分差小于 0.5 评分粒度、不构成显著排序"的结论;⑤ 版本沿革:v1.0/v1.1 时 Codex 维度⑥无任何证据,采用"不计分 + 六维归一化"得 8.50*(不把证据缺口伪装成差评,见附录 H·Q1);v1.2 起依会话界面截图恢复计分为 8.0(档位"部分")——截图能证明总耗时与改动规模,但无法证明过程质量,该分值的不确定度高于其他维度。

11 / Evidence

证据面板

正文中每个 EV 编号都锚定到这里的一张证据卡。结构化数据(含全部指标与评分依据)见同目录 zhikuncode-codex-12306-evidence.json。

共 21 条证据:18 条已验证、1 条受限、1 条部分(截图)、1 条已固定。日志摘录为脱敏版(UUID/会话ID 掩码,未发现凭据)。

打开日志摘录 ↗ evidence.json ↗
EV-001已验证

用户原始指令

两工具收到同一任务;日志行 L0061 记录 WS user_message 原文。

来源
zhikuncode-12306-log-excerpts.txt L0061;完整日志 12306补票.log(548KB/2808 行,本地)
EV-002已验证

ZhikunCode 产物文件

1,061 行 / 64,674 字节,单文件自包含,零外部网络依赖。

来源
源文件已随仓库公开:assets/12306-comparison/artifacts/zhikuncode/12306-houbu.html · SHA256 da6001eff154ce90718c3008d552908f3ddade24c17b4c666538bf237130f737(原件本地留存,与公开副本逐字节一致)
EV-003已验证

ZhikunCode 动画技术统计

11 个 CSS @keyframes、5 个 canvas(星空/烟花/令牌桶/实时图表/场景画布)、7 个 svg(列车/架构图/泊松曲线/2×对勾/2×锁)、requestAnimationFrame×6、setInterval×4、无 SMIL。

来源
对 12306-houbu.html 源码的静态统计
EV-004已验证

ZhikunCode 架构图

13 节点 / 12 边 + 8 边标签:用户手机→CDN/防火墙→负载均衡→API网关→候补服务→Redis ZSet候补池→余票计算→座位库存→订单服务→MySQL分库分表→Kafka→通知服务→短信/推送。

来源
12306-houbu.html #arch 区块源码 + 截图 zhikuncode-02-arch.png
EV-005已验证

ZhikunCode 数学原理 6 张卡片

排队论 Little 定律、退票泊松分布、区间调度·席位复用、令牌桶限流、取模分片、幂等性。

来源
12306-houbu.html #math 区块源码 + 截图 zhikuncode-04-math.png
EV-006已验证

ZhikunCode 交互与结构

5 按钮(重新播放/上一步/播放暂停/下一步/提交候补)、9 个事件监听、IntersectionObserver 滚动联动;8 幕场景播放器 play1~play8;6 个 section(hero/arch/flow/math/dash/end)。

来源
12306-houbu.html 源码统计 + 浏览器实测
EV-007已验证

Codex 工程与依赖

Next.js 16.2.6 + React 19.2.6 + Tailwind 4.2.1 + Vite 8.0.13 + Wrangler;运行时依赖 4 个、开发依赖 16 个;无动画库(无 framer-motion/gsap/d3);工程文件 25 个(排除 node_modules 等)。

来源
本地工程 codexproject/package.json 及工程目录清点
EV-008已验证

Codex 核心代码

app/page.tsx 717 行("use client" 单文件组件,内含 NetworkCanvas/AppIcon/Home 共 3 组件);app/globals.css 2,063 行 / 13 个 @keyframes。

来源
本地工程 codexproject/app/page.tsx、app/globals.css;两文件(连同 layout.tsx、package.json)已随仓库公开:assets/12306-comparison/artifacts/codex/ · page.tsx SHA256 12bdecde156225d88425915b10087362c710dda03aaf03c6be525c47632d8ce8 · globals.css SHA256 fd63e9e08e4f5e8d932530be40186f11c45e794b5da0f99eb9adf67781c9ca56
EV-009已验证

Codex 内容结构

10 个 stages(T+000ms→T+∞ LIVE SIMULATION)、6 层架构 + 3 个一致性边界说明、10 条模拟日志流(含 TRACE ID)、4 个数学模型选项卡(区间位图/优先队列/成功概率/乐观并发)、速度调节与播放控制;页面标题"兑现时刻|12306 候补成功后台全链路"。

来源
codexproject 源码 + 本地预览 http://localhost:3000/#journey 实测(此处 URL 仅为素材路径记录)
EV-010已验证

浏览器实测观察

ZhikunCode:正常加载、8 幕动画流畅自动播放、Canvas 正常、交互按钮全部工作、实时大屏持续更新,控制台 2 个可访问性相关超时警告(不影响功能)。Codex:完全加载无误、控制台零错误零警告、10 阶段模拟流畅、数学选项卡可交互、响应性优秀。

来源
2026-07-26/27 双产物实际运行验证记录
EV-011已验证

ZhikunCode 完整执行日志

548KB / 2,808 行;公开摘录 65 行(脱敏:UUID/会话ID 掩码,全文检索未发现凭据)。

来源
zhikuncode-12306-log-excerpts.txt(本目录);完整日志 12306补票.log(本地留存不公开,SHA256 锚定:4b29a3077009ca028ebfad95fb671a757cff539e9ab2421d106119a45fc03329
EV-012已验证

ZhikunCode 时间与规模

21:15:09 开始 → 21:53:20 结束,≈38 分 11 秒(首轮 37 分 35 秒 + 第二轮 14 秒);2 个用户轮次、50 个 LLM turns(主会话 25 + 子代理 23 + 第二轮 2);总 token 2,333,428。

来源
日志 L0061/L0067、L1497(turns=23, totalTokens=1642716)、L2664(turns=25, totalTokens=629790)及第二轮记录
EV-013已验证

ZhikunCode 工具调用 47 次

WebBrowser 22(截图11/evaluate5/JS错误检查3/导航2/关闭1)、Bash 11、Read 10、Sleep 2、Write 1、Agent 1;另有 3 次被安全管线拦截。

来源
完整日志工具调用清点;摘录可见 L0169~L2719 抽样
EV-014已验证

4 起错误全部自我修复闭环

❶Write 被 PROTECTED_PATH_DENIED 拦截(L0566)→重发+用户授权(L0719)后原子写入成功(L0726);❷❸两次 UNSAFE_PROTOCOL file:// 被拒(L0794、L1597)→自行起 python http.server(L0845、L1649)改走 localhost 验证;❹子代理 1800s 超时(L1496)→优雅收尾且产物已落盘(L1498),主代理接管验证。

来源
zhikuncode-12306-log-excerpts.txt 对应行号
EV-015已验证

ZhikunCode 交付前自检

11 次截图 + 3 次 JS 错误检查 + 5 次 evaluate 滚动核验 + curl 探活(L0889);无 ERROR 级日志,两轮均 TERMINATE_SUCCESS。

来源
zhikuncode-12306-log-excerpts.txt L0889/L0969/L1007/L2122/L2570/L2663 等
EV-016已验证

ZhikunCode 权限授权留痕

3 次权限授权交互(Bash/Write/WebBrowser,SESSION 级),权限拦截与授权全程留痕。

来源
日志 L0388(Bash TOOL_GUARDED)、L0719(Write EDIT_CAPABILITY)等
EV-017受限

Codex 过程证据(受限)

静态截图 codex.jpg(VS Code 集成界面,+2,771 -508 改动 7 个文件)与过程录屏 codex快进版.mp4(24MB,仅证据固定不分析);无执行日志。注:会话界面截图(EV-021)显示 +2,815 -473 / 7 文件——两次截图读数不同(采集时点/统计口径差异),以各自截图为准,本报告不改写任一读数、不做取舍。

来源
对比评测/12306/codex/(本地留存,不公开绝对路径);codex快进版.mp4 SHA256 锚定:6be9305c386786ad106bae830072990827b69b7d75dbc0b46710406f3ad935f5
EV-018已固定

视频证据固定

zhikuncode快进版.mp4(28MB)、codex快进版.mp4(24MB);只列路径与大小,不嵌入、不逐帧分析。

来源
对比评测/12306/zhikuncode/zhikuncode快进版.mp4;对比评测/12306/codex/codex快进版.mp4(均本地留存,不公开绝对路径)。SHA256 锚定:zhikuncode快进版.mp4 cb6f130fb871c50a79058a5fcf94696de1dd9448b7c6510590cc22f5353e2310 · codex快进版.mp4 6be9305c386786ad106bae830072990827b69b7d75dbc0b46710406f3ad935f5
EV-019已验证

运行截图 11 张

ZhikunCode 6 张 + Codex 5 张,均为产物实际运行时拍摄,未做修饰。

来源
assets/12306-comparison/(相对本目录)
EV-020已验证

Codex 工程注记

基于 site-creator-vinext-starter 模板(git 仅 1 次提交),db/drizzle/examples/worker 为模板样板代码与本任务无关。

来源
codexproject git 历史与目录结构核查
EV-021部分

Codex 会话界面截图(耗时与改动规模)

会话界面显示"已处理 27m 52s"(总耗时 ≈27 分 52 秒)与"已编辑 7 个文件 +2,815 -473";文件列表可见 app/globals.css +2,063、app/page.tsx +717、app/layout.tsx +33,与本报告静态统计行数吻合。与 EV-017 的 VS Code 截图读数(+2,771 -508)不同:两次截图采集时点/统计口径不同,以各自截图为准。截图仅能证明总耗时与改动规模,turns / token / 工具调用 / 错误自修复等过程细节仍不可知,故档位为"部分"。

来源
assets/12306-comparison/codex-06-duration.png(操作者提供的 Codex 会话界面截图,2026-07-28 固化入库)· SHA256 91c99ba0f61d6e9178e1a230d77d8b0b4306d78743f02556138a3d1e7d7eb86d

关键源码片段对照:两侧动画各是怎么写的

各摘一段有代表性的动画代码(原样摘录,未改写):左为 ZhikunCode 的烟花粒子 rAF 循环,右为 Codex 的粒子网络 NetworkCanvas。两侧均为手写 canvas 动画、无动画库。

ZHIKUNCODE 12306-houbu.html · L421-436烟花粒子 · rAF 自启动循环
/* ================= 烟花 ================= */
const fx=$("#fx"), fctx=fx.getContext("2d");
let parts=[];
const PAL=["#00e5ff","#ffd54f","#ff4d8d","#ffffff","#7CFC00"];
function burst(x,y,n){
  if(parts.length>140)return;
  for(let i=0;i<n;i++)parts.push({x:x,y:y,vx:(Math.random()-.5)*9,
    vy:-Math.random()*7-1.5,g:.16,life:1,
    dec:.011+Math.random()*.012,c:PAL[i%PAL.length],s:2+Math.random()*3});
}
(function fxLoop(){
  if(!paused){parts=parts.filter(p=>p.life>0);
    for(const p of parts){p.x+=p.vx;p.y+=p.vy;p.vy+=p.g;p.life-=p.dec;}}
  fctx.clearRect(0,0,fx.width,fx.height);
  for(const p of parts){fctx.globalAlpha=Math.max(p.life,0);
    fctx.fillStyle=p.c;fctx.fillRect(p.x,p.y,p.s,p.s);}
  fctx.globalAlpha=1;
  requestAnimationFrame(fxLoop);
})();
CODEX app/page.tsx · L130-146 / L185-196粒子网络 · React useEffect + rAF
function NetworkCanvas() {
  const ref = useRef<HTMLCanvasElement>(null);
  useEffect(() => {
    const canvas = ref.current;
    if (!canvas) return;
    const ctx = canvas.getContext("2d");
    if (!ctx) return;
    let frame = 0, width = 0, height = 0;
    let nodes: { x; y; vx; vy; r }[] = [];
    const resize = () => {
      const ratio = Math.min(window.devicePixelRatio || 1, 2);
      /* …按 clientWidth×ratio 重设画布… */
    };
    /* …draw():节点漂移 + 距离<115px 时连线… */
      frame = requestAnimationFrame(draw);
    resize(); draw();
    window.addEventListener("resize", resize);
    return () => { cancelAnimationFrame(frame);
      window.removeEventListener("resize", resize); };
  }, []);
  return <canvas className="network-canvas" ref={ref} aria-hidden="true" />;
}
摘录说明

右侧 Codex 片段为节选(717 行组件中的 L130-146 与 L185-196,省略处以注释标出且不改变语义);左侧 ZhikunCode 片段为 L421-436 连续原文。两段均可在对应源文件按行号复核。

12 / Method & scope

评估方法与边界声明

说明数据怎么来的、哪些结论说不了,以及本报告的立场声明。

素材内容用途
ZhikunCode 产物12306-houbu.html(1,061 行 / 64,674 字节)——源文件已随仓库公开:assets/12306-comparison/artifacts/zhikuncode/12306-houbu.html(与本地原件逐字节一致,SHA256 见复现与验证 Q&A)源码静态统计 + 浏览器实测
Codex 工程本地工程 codexproject/(Next.js,25 个工程文件;预览 localhost:3000,此处仅为素材路径记录)——核心源文件 page.tsx / globals.css / layout.tsx / package.json 已随仓库公开:assets/12306-comparison/artifacts/codex/源码静态统计 + 浏览器实测
执行日志ZhikunCode:12306补票.log 548KB / 2,808 行(摘录 65 行公开于 zhikuncode-12306-log-excerpts.txt;完整日志不公开,以 SHA256 锚定,见复现与验证 Q&A);Codex:无开发过程审计(仅 ZhikunCode 侧可行)
截图运行截图 11 张(assets/12306-comparison/);Codex 过程静态截图 codex.jpg;Codex 会话界面截图 codex-06-duration.png(EV-021,总耗时与改动规模)实测画面证据 + 维度⑥部分档位计分依据
录屏zhikuncode快进版.mp4(28MB)、codex快进版.mp4(24MB)——不公开,以 SHA256 锚定(见复现与验证 Q&A 与 SHA256SUMS 注释区)仅证据固定,不逐帧分析

已知边界与局限

以下每一条都会限制结论的外推范围,请与评分一起阅读。

  1. 证据不对称:ZhikunCode 侧有完整执行日志,Codex 侧仅有会话界面截图(EV-021)与静态截图(EV-017)。维度⑥对 Codex 按"部分"档位计分:总耗时(27m52s)与改动规模可核,但过程质量(自修复、一次成功率等)仍无证据,任何关于 Codex 开发过程的说法都不得超出截图可证范围。
  2. 单次运行:每个工具只运行了一次,无法区分表现中的稳定成分与随机成分;结论仅针对"这一次交付"。
  3. 配置不同源:模型与推理档位(kimi-k3 / GPT-5.6 Sol 高推理)为操作者提供的配置信息,两侧算力与推理预算不可比。
  4. 评分主观性:维度划分与权重为本报告设定;0.23 的总分差在 0.5 评分粒度内不构成显著排序。
  5. 浏览器环境单一:实测在单一桌面浏览器完成,未覆盖多浏览器/移动端矩阵。
  6. 不评运行时性能:未做帧率、内存、能耗等量化性能测试;"流畅"为目测观察。
  7. 架构为概念推演:两侧展示的 12306 系统架构与数学原理均为基于公开规则与大型票务系统通用模式的概念推演,非真实内部架构;维度④衡量的是"概念呈现的系统性与严谨度",不代表与 12306 真实系统的吻合程度。

复现与验证 Q&A

针对"如何独立核验本报告"的四个实际问题。产物源文件已随仓库公开,全部指标核验不再依赖评估方本机。

Q1 · 产物已公开,如何获取与核验?

两侧产物源文件已随仓库公开于 assets/12306-comparison/artifacts/:zhikuncode/12306-houbu.html(ZhikunCode 交付原件副本,单文件自包含,点击即可在浏览器直接运行)与 codex/ 下的 page.tsxglobals.csslayout.tsxpackage.json(Codex 工程核心源文件副本,浏览器中以文本呈现或下载)。SHA256(可用 shasum -a 256 -c zhikuncode-codex-12306-SHA256SUMS.txt 批量校验):12306-houbu.html da6001eff154ce90718c3008d552908f3ddade24c17b4c666538bf237130f737;page.tsx 12bdecde156225d88425915b10087362c710dda03aaf03c6be525c47632d8ce8;globals.css fd63e9e08e4f5e8d932530be40186f11c45e794b5da0f99eb9adf67781c9ca56;layout.tsx cd61f1ad5b01918e849a58aad6c20edb1b6e192f88ea073bfb5114813fd15743;package.json 985fb194062c2f6cd633517e7b67976d6fd76582c83fca7f4c1f5d7d53428ef8。交叉验证:12306-houbu.html 哈希前 16 位 da6001eff154ce90 与执行日志 L0725 FileVersionTracker 记录的写入哈希一致(见日志摘录),证明公开副本即 2026-07-26 当晚的交付原件。

Q2 · 如何独立核验正文的统计指标?

对公开副本执行一行命令即可,例如:wc -lc assets/12306-comparison/artifacts/zhikuncode/12306-houbu.html(期望 1061 / 64674);grep -c '@keyframes' …/12306-houbu.html(期望 11);grep -c '@keyframes' assets/12306-comparison/artifacts/codex/globals.css(期望 13);wc -l …/codex/page.tsx …/codex/globals.css(期望 717 / 2063)。逐项命令与期望值的完整清单见附录 G。

Q3 · Codex 为什么没有执行日志?其静态分析数据从哪来?

Codex 运行环境未产生本评估可获取的执行日志(评估方仅拿到产物工程、截图与一段录屏),这是证据受限的客观原因而非选择性披露;v1.0/v1.1 期间维度⑥因此不计分、不推断。后续获得会话界面截图证据(EV-021):总耗时 27m52s 与改动规模可核,维度⑥自 v1.2 起按"部分"档位恢复计分,截图以外的过程细节仍不推断。Codex 侧全部静态指标(行数/keyframes/依赖数等)来自对其工程源文件的直接统计——所涉核心源文件现已公开于 artifacts/codex/,任何人可复算。

Q4 · 完整日志与录屏为何不公开?如何确认摘录未被篡改?

完整日志 12306补票.log(548KB/2,808 行)含大量会话内部细节,公开摘录 65 行(≈2.3%)遵循"关键节点全保留、重复请求体折叠、UUID/会话ID 掩码"的规则;两份录屏体积大且含桌面环境信息,仅作证据固定。三者不公开,但以 SHA256 锚定在案(另见 SHA256SUMS 注释区):12306补票.log 4b29a3077009ca028ebfad95fb671a757cff539e9ab2421d106119a45fc03329;zhikuncode快进版.mp4 cb6f130fb871c50a79058a5fcf94696de1dd9448b7c6510590cc22f5353e2310;codex快进版.mp4 6be9305c386786ad106bae830072990827b69b7d75dbc0b46710406f3ad935f5。日后任何一方出示原件,均可凭哈希验证是否与评估时的版本一致。

利益声明

本报告由 ZhikunCode 项目生成,已尽量以实测证据保持中立:全部数字可溯源到 EV 条目;对 Codex 有利与对 ZhikunCode 不利的事实均如实呈现;证据受限处一律标注且不做推断。读者可依据素材清单自行复核。

13 / Conclusion

结论与建议

两份都是合格且各有惊喜的交付。以下按"谁在什么场景更合适"与"各自该改什么"收束。

ZHIKUNCODE8.68

优势场景:"给我一个能直接打开的动态页面"类一次性交付——单文件零依赖、双击即开、可任意分发;动画技术面宽(keyframes+canvas+svg+rAF 混用);开发过程全程可审计、错误自修复闭环。

改进方向:① 清除 2 个可访问性相关警告;② 单文件内做模块化分区(如 <script type="module"> 内聚各画布);③ 补充 Codex 侧那类一致性边界、TRACE 链路的内容深度;④ 避免子代理触顶 1800s 超时的任务切分策略。

CODEX8.45

优势场景:要持续迭代的可视化产品站点——TypeScript 组件化、内容深度(一致性边界/TRACE 日志/可交互数学模型)、运行洁净度(零控制台噪音)都更突出。

改进方向:① 尊重指令字面形态:可另行导出单文件静态版以便直接打开;② 剔除 db/drizzle/examples/worker 等与任务无关的模板样板;③ 拆分 717 行单组件与 2,063 行单 CSS;④ 保留可公开的执行过程记录以消除证据不对称。

选型建议

若你的诉求与本任务相同("给我一个自己会动的 html"),本次实测中 ZhikunCode 的交付形态与动画丰富度更贴合;若你的诉求是长期演进的工程项目,Codex 的工程化路线更合适。总分差 0.23 在评分粒度内——请按你自己的场景对号入座,而非看总分下单。

14 / Appendix

附录:可复核数据全录

把正文中被汇总为"11 个 keyframes""65 行摘录"之类的数字展开成全量清单,便于读者不出本文件即可逐条核对。

附录 A · 双方 CSS @keyframes 全名录

grep -o '@keyframes [a-zA-Z0-9_-]*' 对两侧源文件提取的完整名单,与维度③统计一致(11 vs 13)。

#ZhikunCode · 12306-houbu.html(11 个)Codex · app/globals.css(13 个)
1blink — 光标/指示闪烁live — LIVE 徽标呼吸
2trainRun — 列车进场位移signal — 信号波纹扩散
3breath — 节点呼吸发光appear — 元素淡入上浮
4shake — 抢占失败抖动spin — 加载/齿轮旋转
5rot — 旋转segment-in — 区间段滑入
6dash — SVG 描边推进log-in — 日志行滚入
7chipP — 芯片脉冲formula-in — 公式浮现
8md — 数学卡片微动queue-pulse — 队列位次脉冲
9slide1 — 横向滑动 1bar-rise — 柱状生长
10slide2 — 横向滑动 2race — 事务竞争推进
11nodePulse — 架构节点脉冲spine-packet — 主链路数据包
12packet-fall — 数据包落入
13success-pulse — 成功脉冲

名称为源码原文;破折号后的用途描述为依据选择器上下文与实测画面的概括。ZhikunCode 另有 5 canvas / 7 svg / rAF×6 / setInterval×4 不在此表(见 EV-003);Codex 另有 NetworkCanvas 粒子网络 canvas(见 EV-008)。

附录 B · ZhikunCode 流程 8 幕 × Codex 10 stages 对照

两侧对"候补成功后台完整流程"的分幕/分段方式并不同构,此表按业务语义对齐,供维度④阅读时参照。

业务环节ZhikunCode 8 幕(叙事式)Codex 10 stages(时间轴式)
提交与准入第 1 幕 候补下单Stage 1 余票/票额服务 · Stage 3 资格/风控
入池排队第 2 幕 进入候补池(Redis ZSet)Stage 2 事件总线 · Stage 4 候补队列
等待与概率第 3 幕 等待期的数学(Little 定律 / 泊松)数学章节"成功概率"选项卡(与时间轴并列)
票源产生第 4 幕 票源与席位复用(区间调度)Stage 5 席位图 / 区间匹配(区间位图)
兑现撮合第 5 幕 兑现引擎扫描Stage 5→6 匹配到库存事务
并发防护第 6 幕 分布式锁防超卖Stage 6 库存事务(乐观并发 UPDATE IF version)
出票落库第 7 幕 出票事务(MySQL 分库分表)Stage 7 订单/电子客票 · Stage 8 支付/清结算
通知触达第 8 幕 通知触达(Kafka→短信/推送)Stage 9 通知/查询
观测收尾实时大屏 #dash(持续更新)Stage 10 监控/审计平台(END-TO-END 386ms)

附录 C · EV 证据交叉引用索引

每条证据被哪些章节引用,用于反向核查"每个结论是否有证据、每条证据是否被使用"。

证据主题档位被引用位置
EV-001用户原始指令已验证执行摘要 · 维度①⑦
EV-002ZhikunCode 产物文件已验证执行摘要 · 维度①②⑦ · FIG 04
EV-003ZhikunCode 动画统计已验证维度①③ · FIG 01 · 附录 A
EV-004ZhikunCode 架构图 13 节点已验证执行摘要 · 维度①④ · FIG 02
EV-005ZhikunCode 数学 6 卡已验证执行摘要 · 维度①④
EV-006ZhikunCode 交互与结构已验证维度①⑤
EV-007Codex 工程与依赖已验证执行摘要 · 维度①②⑦ · FIG 04
EV-008Codex 核心代码已验证维度②③ · FIG 01 · 附录 A
EV-009Codex 内容结构已验证执行摘要 · 维度①③④⑤ · FIG 02
EV-010浏览器实测观察已验证执行摘要 · 维度③⑤ · FIG 05/06
EV-011完整执行日志与摘录已验证维度⑥ · 证据面板 · 附录 D
EV-012时间 / turns / token已验证执行摘要 · 维度⑥ · FIG 03
EV-013工具调用 47 次已验证维度⑥
EV-0144 起自修复闭环已验证执行摘要 · 维度⑥ · FIG 03 · 附录 D
EV-015交付前自检已验证执行摘要 · 维度⑥ · FIG 03
EV-016权限授权留痕已验证维度⑥
EV-017Codex 过程证据(受限)受限执行摘要 · 维度⑥ · FIG 05
EV-018视频证据固定已固定证据面板 · 方法与边界
EV-019运行截图 11 张已验证运行截图章节
EV-020Codex 模板样板注记已验证维度②⑦
EV-021Codex 会话界面截图(耗时/改动规模)部分执行摘要 · 维度⑥ · FIG 03/05/06 · 运行截图 · 附录 E

附录 D · 日志摘录内联镜像(65 行,脱敏版)

与同目录 zhikuncode-12306-log-excerpts.txt 内容一致,内联于此以保证本报告单文件离线时证据链仍完整。行号前缀 LNNNN 为原始日志(12306补票.log,548KB / 2,808 行)行号;UUID/会话ID 已掩码,全文检索未发现凭据。红注 ❶~❹ 对应 FIG 03 的 4 起自修复事件。

zhikuncode-12306-log-excerpts.txt · 65 行 ≈ 原始日志 2.3%摘录时间 2026-07-26
── 任务启动与首轮规划 ──────────────────────────
L0061: 21:15:09.639 INFO  WebSocketController - WS user_message: sessionId=***MASKED-ID***, text=帮我做一个动态html,可视化展示"你后补成功的那一刻,12306后台发送了什么",要覆盖后补成功的…
L0067: 21:15:09.665 INFO  WebSocketController - QueryEngine 开始执行: sessionId=***MASKED-ID***, model=kimi-k3
L0068: 21:15:09.666 INFO  QueryEngine - QueryEngine 开始执行: model=kimi-k3, maxTokens=65536, maxTurns=1024
L0070: 21:15:09.676 DEBUG QueryEngine - Turn 1 开始: messageCount=1, model=kimi-k3
L0160: 21:18:39.094 INFO  QueryEngine - Turn 1 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=3, usage=22020
── 子代理启动(承担页面主体构建)─────────────────
L0169: 21:18:46.012 DEBUG ToolExecutionPipeline - Executing tool: Agent (stage 5: call)
L0172: 21:18:46.015 DEBUG AgentConcurrencyController - Agent slot acquired: agent-4d4a86f3 (active: 1, session: 1)
L0173: 21:18:46.016 INFO  SubAgentExecutor - resolveModel: inheriting parent model 'kimi-k3'
L0176: 21:18:46.041 INFO  SubAgentExecutor - Sub-agent agent-4d4a86f3 starting with timeout 1800s (type=general-purpose)
L0177: 21:18:46.042 INFO  QueryEngine - QueryEngine 开始执行: model=kimi-k3, maxTokens=65536, maxTurns=99
L0179: 21:18:46.043 DEBUG QueryEngine - Turn 1 开始: messageCount=1, model=kimi-k3
L0323: 21:27:01.174 INFO  QueryEngine - Turn 1 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=3, usage=32762
── Bash 首次授权(SESSION 级)───────────────────
L0388: 21:30:27.747 INFO  PermissionGrantRepository - Permission grant created: grantId=***MASKED-ID***, kind=TOOL_GUARDED, scope=SESSION, tool=Bash, analyzer=bash-v2
L0395: 21:30:27.760 DEBUG BashTool - Executing command [category=read]: ls ~/Desktop/ | head -20
── ❶ Write 被保护路径拦截 → 用户授权 → 原子写入成功 ──
L0549: 21:38:36.827 DEBUG QueryEngine - BlockStop event: currentToolId=Write_1, currentToolName=Write
L0550: 21:38:36.827 DEBUG QueryEngine - flushToolBlock: toolId=Write_1, toolName=Write, inputLen=63240
L0565: 21:38:36.833 INFO  QueryEngine - Turn 2 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=3, usage=54258
L0566: 21:38:36.844 INFO  ToolExecutionPipeline - Tool Write authorization ended: code=PROTECTED_PATH_DENIED  ← ❶ 拦截
L0697: 21:45:34.817 DEBUG QueryEngine - BlockStop event: currentToolId=Write_2, currentToolName=Write
L0698: 21:45:34.818 DEBUG QueryEngine - flushToolBlock: toolId=Write_2, toolName=Write, inputLen=62972
L0713: 21:45:34.842 INFO  QueryEngine - Turn 3 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=2, usage=75693
L0719: 21:45:43.549 INFO  PermissionGrantRepository - Permission grant created: grantId=***MASKED-ID***, kind=EDIT_CAPABILITY, scope=SESSION, tool=Write, analyzer=file-v1
L0723: 21:45:43.552 DEBUG ToolExecutionPipeline - Executing tool: Write (stage 5: call)
L0725: 21:45:43.579 DEBUG FileVersionTracker - Recorded write: ~/Desktop/project/12306-houbu.html hash=da6001eff154ce90 editor=subagent-agent-4d4a86f3
L0726: 21:45:43.579 DEBUG AtomicFileWriter - Atomic write successful: ~/Desktop/project/12306-houbu.html  ← ❶ 修复闭环
L0728: 21:45:43.583 INFO  ToolExecutionPipeline - Tool Write completed in 8755ms (error=false)
L0757: 21:45:51.511 INFO  QueryEngine - Turn 4 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=3, usage=75882
L0761: 21:45:51.528 DEBUG BashTool - Executing command [category=write]: cp ~/Desktop/project/12306-houbu.html ~/Desktop/12306-houbu.html && ls -lh …
── ❷ file:// 协议被拒 → 自建 http.server 绕行 ────────
L0794: 21:45:59.836 WARN  ToolExecutionPipeline - Tool input validation failed for WebBrowser: UNSAFE_PROTOCOL - Only http:// and https:// protocols are allowed  ← ❷ 拦截
L0798: 21:45:59.838 INFO  QueryEngine - Turn 5 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=1, usage=76029
L0799: 21:45:59.839 DEBUG ToolCallTracker - consecutive errors = 1 (tool=WebBrowser)
L0831: 21:46:07.313 INFO  QueryEngine - Turn 6 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=3, usage=76262
L0845: 21:46:07.326 DEBUG BashTool - Executing command [category=command]: cd ~/Desktop && python3 -m http.server 8931 > /tmp/http8931.log 2>&1 &  ← ❷ 修复闭环
L0889: 21:46:15.448 DEBUG BashTool - Executing command [category=command]: curl -s -o /dev/null -w "%{http_code}\n" http://localhost:8931/12306-houbu.html
L0934: 21:46:26.445 DEBUG PythonCapabilityAwareClient - POST /api/browser/navigate body(107chars): {"action":"navigate","session_id":"subagent-agent-4d4a86f3","url":"http://localhost:8931/12306-houbu.html"}
L0969: 21:46:31.014 DEBUG PythonCapabilityAwareClient - POST /api/browser/get_js_errors body(65chars): {"action":"get_js_errors","session_id":"subagent-agent-4d4a86f3"}
L1007: 21:46:36.297 DEBUG PythonCapabilityAwareClient - POST /api/browser/screenshot body(62chars): {"action":"screenshot","session_id":"subagent-agent-4d4a86f3"}
L1436: 21:48:35.176 DEBUG PythonCapabilityAwareClient - POST /api/browser/evaluate body(126chars): {"action":"evaluate",…,"script":"document.querySelector('#dash').scrollIntoView(); 'ok'"}
── ❹ 子代理 1800s 超时 → 优雅收尾,产物已落盘 ────────
L1496: 21:48:46.064 WARN  SubAgentExecutor - Sub-agent agent-4d4a86f3 timed out after 1800s, attempting graceful shutdown  ← ❹ 超时
L1497: 21:48:46.076 INFO  QueryEngine - QueryEngine 完成: turns=23, stopReason=end_turn, totalTokens=1642716
L1498: 21:48:46.076 INFO  SubAgentExecutor - Sub-agent agent-4d4a86f3 completed gracefully after timeout signal  ← ❹ 优雅收尾
L1501: 21:48:46.077 INFO  ToolExecutionPipeline - Tool Agent completed in 1806991ms (error=false)
── 主代理接管验证;❸ 第二次 file:// 被拒同法绕行 ──────
L1560: 21:48:57.654 DEBUG BashTool - Executing command [category=read]: ls -lh ~/Desktop/12306-houbu.html
L1597: 21:49:04.847 WARN  ToolExecutionPipeline - Tool input validation failed for WebBrowser: UNSAFE_PROTOCOL - Only http:// and https:// protocols are allowed  ← ❸ 拦截
L1606: 21:49:04.849 DEBUG ToolCallTracker - consecutive errors = 1 (tool=WebBrowser)
L1649: 21:49:13.461 INFO  BashTool - Background process started: pid=18085, command=cd ~/Desktop && python3 -m http.server 8791 --bind 127.0.0.1  ← ❸ 修复闭环
L1691: 21:49:18.554 DEBUG PythonCapabilityAwareClient - POST /api/browser/navigate body(138chars): {"action":"navigate",…,"wait_for":"load","url":"http://127.0.0.1:8791/12306-houbu.html"}
L1728: 21:49:22.930 DEBUG PythonCapabilityAwareClient - POST /api/browser/get_js_errors …
L1753: 21:49:24.138 DEBUG PythonCapabilityAwareClient - POST /api/browser/screenshot …,"full_page":false}
── 交付前密集自检(滚动核验 + 分屏截图 + JS 错误复查)──
L2122: 21:51:08.574 DEBUG PythonCapabilityAwareClient - POST /api/browser/evaluate body(281chars): {"action":"evaluate",…,"script":"(() => { const hs = [...document.querySelectorAll('h1,h2,h3')].map(h => ({t: h.textContent.trim().slice(0,20), y: h.getBoundingClientRect().top + window.scrollY})); return JSON.stringify(hs); })()"}
L2213: 21:51:20.195 DEBUG PythonCapabilityAwareClient - POST /api/browser/screenshot …
L2350: 21:51:41.082 DEBUG PythonCapabilityAwareClient - POST /api/browser/screenshot …
L2486: 21:52:02.551 DEBUG PythonCapabilityAwareClient - POST /api/browser/screenshot …
L2570: 21:52:19.131 DEBUG PythonCapabilityAwareClient - POST /api/browser/get_js_errors …
L2613: 21:52:21.733 DEBUG BashTool - Executing command [category=command]: kill 18085
── 首轮成功终止 ────────────────────────────────
L2660: 21:52:45.061 INFO  QueryEngine - Turn 25 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=2, usage=28233
L2663: 21:52:45.062 DEBUG QueryEngine - TerminationStrategy decision: TERMINATE_SUCCESS (turn=25, errors=0, stopReason=end_turn)
L2664: 21:52:45.070 INFO  QueryEngine - QueryEngine 完成: turns=25, stopReason=end_turn, totalTokens=629790
L2666: 21:52:45.075 INFO  WebSocketController - push(message_complete) to principals=1, sessionId=***MASKED-ID***
── 第二轮"帮我打开这个html"(14 秒)─────────────────
L2675: 21:53:06.736 INFO  WebSocketController - WS user_message: sessionId=***MASKED-ID***, text=帮我打开这个html
L2681: 21:53:06.744 INFO  QueryEngine - QueryEngine 开始执行: model=kimi-k3, maxTokens=65536, maxTurns=1024
L2713: 21:53:14.703 INFO  QueryEngine - Turn 1 完成: model=kimi-k3, stopReason=end_turn, contentBlocks=2, usage=32442
L2719: 21:53:14.705 DEBUG BashTool - Executing command [category=command]: open ~/Desktop/12306-houbu.html
L2751: 21:53:20.612 INFO  QueryEngine - QueryEngine 完成: turns=2, stopReason=end_turn, totalTokens=60922
L2753: 21:53:20.612 INFO  WebSocketController - push(message_complete) to principals=1, sessionId=***MASKED-ID***

为控制篇幅,内联镜像省略了日期前缀(均为 2026-07-26)、线程名与包名前缀,并以 折叠重复的请求体字段;未改动任何时间戳、行号、数值与关键字。完整逐字版本以 zhikuncode-12306-log-excerpts.txt 为准。Codex 侧无对应日志可镜像(EV-017)。

附录 E · 六幅 SVG 图表的数据表

正文 FIG 01-06 均为手写内联 SVG;此表给出各图的底层数值与数据来源,兼作无障碍替代文本。

图号标题底层数据来源
FIG 01动画技术构成对比keyframes 11 vs 13;canvas 5 vs 1;svg 7 vs 未单独统计;rAF 6 vs 1(NetworkCanvas);setInterval 4 vs —;SMIL 0 vs 0EV-003 EV-008
FIG 02架构呈现方式对比ZhikunCode:13 节点 / 12 边 / 8 边标签拓扑;Codex:6 层堆叠 + 3 一致性边界EV-004 EV-009
FIG 03ZhikunCode 38 分钟开发时间线21:15:09 开始 / 21:18:46 子代理 / 21:30:27 Bash授权 / 21:38:36 ❶ / 21:45:43 授权写入 / 21:45:59 ❷ / 21:46:07 :8931 / 21:48:46 ❹ / 21:49:04 ❸ / 21:49:13 :8791 / 21:52:45 TERMINATE_SUCCESS / 21:53:20 完成EV-012 EV-014
FIG 04代码规模与依赖对比核心行数 1,061 vs 2,780(717+2,063);文件数 1 vs 25;运行时依赖 0 vs 4;开发依赖 0 vs 16EV-002 EV-007 EV-008
FIG 05七维雷达(双方叠加)ZhikunCode [9.5, 7.5, 9.0, 8.5, 8.0, 9.0, 8.5];Codex [8.5, 8.0, 8.5, 9.0, 9.0, 8.0(部分·截图), 7.5];Codex D6 顶点以空心圆点标注证据档位差异评分体系章节 · EV-021
FIG 06七维水平条形同 FIG 05 数值;维度⑥ Codex 条形以虚线描边 + 半透明填充绘制(长度 8.0/10 = 624px),标注"部分·截图证据"评分体系章节 · EV-021

附录 F · 术语表

报告与两份产物中反复出现的技术与业务术语,按出现顺序整理,供非工程背景读者查阅。

术语解释在本报告中的出现位置
候补购票12306 的排队购票机制:目标车次无票时提交候补订单并预付款,一旦他人退票/改签释放票额或铁路调度加挂车厢,系统按序自动为候补队列兑现出票。两份产物可视化的正是"兑现成功那一刻"的后台链路。全文
CSS @keyframesCSS 动画关键帧规则,声明式定义元素随时间变化的样式序列,由浏览器合成线程驱动,不占用 JS 主线程。维度③ · FIG 01 · 附录 A
CanvasHTML5 位图画布,用 JS 逐帧绘制像素,适合粒子、曲线等大量动态元素;ZhikunCode 用了 5 个,Codex 用了 1 个(粒子网络背景)。维度③ · 源码对照
requestAnimationFrame(rAF)浏览器提供的逐帧回调 API,与屏幕刷新率同步(通常 60Hz),是 canvas 动画的标准驱动方式;两侧的 canvas 动画均由 rAF 驱动。维度③ · 源码对照
SMILSVG 内置的声明式动画标准(<animate> 等),已趋于淘汰;两侧均未使用(各自以 CSS/JS 驱动 SVG)。维度③ · FIG 01
IntersectionObserver浏览器 API,监听元素进出视口,常用于滚动联动与懒加载;ZhikunCode 产物用它做章节滚动联动,本报告的导航高亮也用它实现。维度⑤
Redis ZSetRedis 的有序集合结构,按 score 排序,适合实现"按提交时间排队"的候补池;ZhikunCode 架构图中的候补池节点即标注为 Redis ZSet。维度④ · 附录 B
分库分表把单一数据库水平拆分为多个库/表以承载海量订单写入,路由规则常用"取模分片";ZhikunCode 的 MySQL 节点与数学卡"取模分片"对应此概念。维度④
Little 定律排队论恒等式 L = λW:系统内平均排队人数 = 到达率 × 平均等待时间;ZhikunCode 用它解释候补队列长度与等待时长的关系。维度④ · 截图 03
泊松分布描述单位时间内随机事件发生次数的概率分布;ZhikunCode 用它建模退票到达,即候补票源的产生节奏。维度④
区间位图 / 区间调度把一列车按停靠区间切分、用位图标记每个席位在每个区间的占用状态,使"北京→济南"与"济南→上海"两个候补可复用同一席位;两侧都可视化了这一 12306 核心算法,Codex 称"区间位图",ZhikunCode 称"区间调度·席位复用"。维度④ · 附录 B
令牌桶限流以恒定速率向桶中投放令牌、请求须取得令牌方可通行的限流算法,用于高峰期保护后端;ZhikunCode 以 canvas 微动画演示。维度④
幂等性同一操作执行多次与执行一次效果相同的性质,防止重复扣款/重复出票;两侧分别以数学卡与日志链路呈现。维度④
乐观并发控制不加锁、提交时校验版本号(UPDATE … IF version=N)的并发策略,失败方重试;Codex 以事务 A/B/C 竞争动画演示。维度④ · 截图 codex-03
一致性边界分布式系统中强一致性保证的作用范围说明(边界内事务一致、边界间最终一致);Codex 架构章节给出 3 处此类标注,是其内容深度的代表。维度④
TRACE ID分布式链路追踪中标识一次请求全链路的唯一 ID;Codex 的模拟日志流为每条链路标注 TRACE ID,增强了"后台发送了什么"的可信感。维度④ · 截图 codex-02
"use client"Next.js App Router 指令,声明组件在浏览器端渲染;Codex 的 page.tsx 整体为客户端组件,因此其动画不依赖服务端。维度②
LLM turn代理执行中一次完整的模型调用往返;ZhikunCode 本次任务共 50 turns(主会话 25 + 子代理 23 + 第二轮 2)。维度⑥
子代理(Sub-agent)主代理派生的独立执行单元,承担页面主体构建等子任务;本案例中子代理触发 1800s 超时后优雅收尾、产物已落盘。维度⑥ · FIG 03
TERMINATE_SUCCESSZhikunCode 引擎终止策略的成功判定:本轮无错误且模型自然停止;本任务两轮均为该判定。维度⑥ · 附录 D
PROTECTED_PATH_DENIED / UNSAFE_PROTOCOLZhikunCode 安全管线的两类拦截码:前者阻止向保护路径写文件(需用户授权),后者阻止浏览器工具访问 file:// 等非 http(s) 协议。维度⑥ · FIG 03 · 附录 D
证据档位本报告对每条证据/评分标注的可信级别:已验证(可直接复核的源码统计、日志、实测)、受限(仅有间接或不完整证据)、已固定(仅登记存在性,不用于分析)。全文

附录 G · 复核指引:如何自行验证本报告的每个数字

产物源文件已随仓库公开于 assets/12306-comparison/artifacts/(zhikuncode/12306-houbu.html 与 codex/ 核心源文件),以下命令可直接对公开副本执行;行号、字节数应与正文完全一致。仅完整日志相关条目仍需持有原件方可复核(其 SHA256 已锚定)。

要核对的数字复核方法期望结果
ZhikunCode 1,061 行 / 64,674 字节wc -lc 12306-houbu.html1061 行、64674 字节(wc 行数按换行符计)
11 个 @keyframes(ZhikunCode)grep -c '@keyframes' 12306-houbu.html,全名录用 grep -o '@keyframes [a-zA-Z0-9_-]*'11;名单同附录 A 左列
5 canvas / 7 svg / rAF×6 / setInterval×4grep -c '<canvas' grep -c '<svg'grep -c 'requestAnimationFrame'grep -c 'setInterval'5 / 7 / 6 / 4
Codex page.tsx 717 行、globals.css 2,063 行wc -l app/page.tsx app/globals.css(在 codexproject 目录,或对公开副本 assets/12306-comparison/artifacts/codex/ 执行)717 与 2063
13 个 @keyframes(Codex)grep -c '@keyframes' app/globals.css13;名单同附录 A 右列
运行时依赖 4 / 开发依赖 16查看 package.json 的 dependencies 与 devDependencies 键数4 与 16
工程文件 25 个对 codexproject 目录计数(排除 node_modules、.git、构建产物)25
日志 2,808 行 / 548KBwc -l 12306补票.logls -lh2808 行、约 548KB
总 token 2,333,428日志中三处 QueryEngine 完成行相加:1,642,716(L1497)+ 629,790(L2664)+ 60,922(L2751)2,333,428
耗时 ≈38 分 11 秒L0061 时间戳 21:15:09.639 与末条 21:53:20.612 之差38 分 10.97 秒
动态效果ZhikunCode:双击打开 12306-houbu.html 观察 8 幕自动播放;Codex:在工程目录安装依赖并启动本地服务后访问预览页与维度③⑤及截图一致
本报告零外链对本文件执行 grep -n 'src="http\|href="http\|@import\|<link \|<script src' 无输出(页面内出现的 http 字样均为素材路径文字或日志原文,非资源加载)

附录 H · 评审问答(对预期质疑的正面回应)

整理撰写与复核过程中最可能被问到的问题,避免读者在评论区重复澄清。

Q1 · 为什么 Codex 的⑥(曾)不给 0 分而是不计分?

0 分意味着"证据表明其开发效率极差",而事实是"没有证据"。缺测与差评是两回事:给 0 分会把证据缺口伪装成负面结论,违反客观性红线。v1.0/v1.1 因此记为缺测并把总分按六维归一化;v1.2 起获得会话界面截图(EV-021)后恢复计分为 8.0、档位"部分"——依据的是截图可证的事实(总耗时 27m52s 与改动规模),仍不对无证据的过程细节打分或推断。

Q2 · 两个总分能直接比吗?

只能弱比较。自 v1.2 起两侧总分同为七维加权(8.68 vs 8.45,不再归一化),权重基底相同;但维度⑥的证据档位不对称(完整日志 vs 界面截图),且 0.23 之差小于 0.5 的评分粒度。报告因此在总体判定、评分体系、结论三处反复标注"多维参考而非单一排名"。

Q3 · ZhikunCode 侧自己给自己出报告,凭什么信?

不要求信任,要求复核:全部 21 条证据给出来源路径与日志行号,附录 G 给出逐条重现命令;对 ZhikunCode 不利的事实(2 个可访问性警告、单文件混排、子代理超时、无类型系统)全部写入正文并参与扣分。

Q4 · 为什么不逐帧分析两段录屏来补齐 Codex 的过程证据?

录屏无法可靠还原 token、轮次、工具调用等结构化指标,逐帧解读主观性高、且两段录屏拍摄条件不一致。将其定位为"证据固定"(证明过程存在)比"证据分析"更诚实。

Q5 · Codex 用了工程模板算不算"作弊"?

不算,但需如实记账:模板带来工程化起点优势(计入维度②⑦的优点),同时带来与任务无关的样板代码(计入维度②⑦的扣分),改动量 +2,771 -508(另一时点的会话界面截图读数为 +2,815 -473,见 EV-021)也因含模板而不可直接类比 ZhikunCode 的 1,061 行。

Q6 · "动画惊艳"这种主观感受怎么打分?

拆成可数的客观量(keyframes/canvas/svg/rAF 数量、自动播放机制)加实测运行观察(流畅性、控制台状态),并在正文同时给出双方的美学取向描述(ZhikunCode 繁复热闹 vs Codex 节制精致),不以评审个人口味定分。

Q7 · 模型不同(kimi-k3 vs GPT-5.6 Sol),这算工具对比还是模型对比?

都不纯粹:本报告对比的是"工具+模型+运行环境"的组合在同一任务上的一次表现。方法与边界章节已声明配置不同源、算力预算不可比,结论不外推到任一层面的整体优劣。

Q8 · 为什么报告里出现了 http://localhost 字样还说零外链?

零外链指本文件不加载任何外部资源(无外部 src/href 资源、无 @import、无外链字体)。正文中的 localhost 与 http.server 字样均为"素材路径文字"或日志原文引用,浏览器不会对其发起请求;可用附录 G 最后一条命令验证。

附录 I · 逐维分差解读:每 0.5 分差距背后对应的具体事实

评分表只给出数字;此表把每个维度的分差还原为"到底是哪几件事拉开了差距",避免读者把 0.5 分误读为泛泛的优劣。

维度分差拉开差距的具体事实反向制衡的事实(为何差距没有更大)
① 任务理解9.5 vs 8.5ZK +1.0指令的字面交付形态是"一个动态 html"。ZhikunCode 交付的正是一个可双击直开的 html 文件;Codex 交付的是需要 Node≥22 构建、本地服务预览的 Next.js 工程——四项内容要求两侧都满足,唯独交付形态这一项与指令字面存在实质差异,是本维度 1.0 分差的全部来源。Codex 对"完整流程"的理解更进一步(把流程精确到 T+000ms→T+∞ 的毫秒级时间轴、END-TO-END 386ms 收口),内容组织的系统性反而高于对方,因此仍保有 8.5 的高分。
② 代码质量7.5 vs 8.0CX +0.5TypeScript 类型约束、组件模型与 Tailwind 规范给 Codex 带来结构性优势;ZhikunCode 的原生 JS 无类型保护、HTML/CSS/JS 混排于一个文件,长期维护成本更高。Codex 的实际拆分粒度有限(717 行"use client"单组件 + 2,063 行单 CSS),且工程内含 db/drizzle/examples/worker 等与任务无关的模板样板(EV-020);ZhikunCode 则零无关代码、分区注释清晰,把差距压回 0.5。
③ 动态可视化9.0 vs 8.5ZK +0.5动画技术面宽度:11 keyframes + 5 canvas + 7 svg + rAF×6 + setInterval×4 多技术组合,星空/烟花/列车/数据包流动/实时曲线在 8 幕中持续自动播放,对"页面自己动、动画惊艳"的完成强度更高。Codex 的 13 keyframes + 粒子网络 canvas 虽然手段较少,但编排节制精致、与内容语义结合紧密(日志滚入、柱状生长、事务竞争),且实测零控制台噪音,质量密度不输于对方。
④ 架构与数学8.5 vs 9.0CX +0.5深度差异:Codex 的 6 层架构附带 3 个一致性边界说明与含 TRACE ID 的模拟日志流,4 个数学模型全部可交互(选项卡切换 + 动画演示),系统性与严谨度更突出。ZhikunCode 的 13 节点 / 12 边全链路拓扑覆盖面更宽(从用户手机到短信/推送的每一跳都在图上),6 张数学卡的知识点数量也多于对方的 4 个,广度维度上占优,故差距仅 0.5。
⑤ 用户体验8.0 vs 9.0CX +1.0两项实测事实:其一,Codex 控制台零错误零警告,ZhikunCode 有 2 个可访问性相关超时警告(虽不影响功能);其二,Codex 的变速调节 + 阶段点击 + 选项卡联动比 ZhikunCode 的 5 按钮播放器交互层次更丰富,响应性实测优秀。ZhikunCode 的交互按钮全部工作、IntersectionObserver 滚动联动可靠,且"零门槛直接打开"本身就是一种用户体验优势——但该优势已计入维度①⑦,本维度不重复给分。
⑥ 开发效率9.0 vs 8.0ZK +1.0证据档位不对称下的弱比较:ZhikunCode 的 9.0 基于完整日志的全透明过程(38 分 11 秒、4 起自修复闭环、多轮自检);Codex 的 8.0 仅基于会话界面截图(EV-021)——总耗时 27m52s 短于对方约 10 分钟、改动规模可见是可证的加分事实,但 turns / 工具调用 / 自修复 / 一次成功率全部不可知,"问题解决"这一半无从验证。1.0 分差主要来自过程可审计性的差距,其不确定度高于其他维度。Codex 截图证明的 27m52s 总耗时确实更短,这一事实已计入其 8.0 分;若未来出示完整过程记录且过程质量良好,本维度分差可能收窄甚至反转——这正是档位标注为"部分"而非"已验证"的意义。
⑦ 技术实现8.5 vs 7.5ZK +1.0在"做一个动态 html"的任务语境下,零依赖单文件在部署门槛(零 vs Node≥22)、可移植性(单文件任意分发 vs 完整工程目录)、供应链风险(0 依赖 vs 20 依赖)三项上全部占优。若换成"持续演进的产品站点"语境,Codex 的可扩展性优势会反转本维度的评分方向——这正是结论章节按场景给出双向建议、而不宣布单一赢家的原因。

ZK = ZhikunCode,CX = Codex。本表不引入任何新数据,全部事实均已在正文出现并有 EV 编号支撑;其作用只是把评分表的数字差还原为可复核的事实清单。

附录 J · 本报告自身规格与交付自检记录

本报告以与被评产物相同的标准要求自己:单文件自包含、零外部依赖、可离线打开、可打印。以下为交付前的自检项目与结果,读者可用相同方法复验本报告本身。

自检项方法结果
单文件自包含检查是否存在外部样式表、外链脚本、外链字体、@import 及任何 http(s) 资源加载语句通过 — CSS 与 JS 全部内联;字体栈仅使用系统字体(ui-sans-serif / Songti SC / SFMono 等本机回退链),无网络字体请求
图片相对路径提取全部 img src 与 assets/12306-comparison/ 目录逐一比对文件名与扩展名通过 — 12 个引用与 12 个实际文件一一对应(6 个 zhikuncode-*.png + 3 个 codex-*.jpg + 3 个 codex-*.png),无缺失、无冗余、无大小写偏差
锚点完整性核对导航 14 个章节锚点、21 个 EV 卡片锚点、6 个 FIG 锚点均存在且唯一通过 — 41 个锚点全部可达;EV 卡片带 :target 高亮样式,从正文任意 EV 引用点击可直达并高亮
数据一致性正文、图表、附录、evidence.json 四处出现的同一指标交叉比对(行数/字节/keyframes/token/耗时/评分)通过 — 全部数字与任务实测数据一致;FIG 05/06 的坐标与条长按分值线性换算可复核(10 分 = 半径 200px / 条长 780px)
离线可用断网状态下用浏览器直接打开本文件通过 — 页面完整渲染,仅截图依赖同目录 assets/ 子目录(与报告一并分发即可)
打印样式浏览器打印预览(A4)通过 — 自动切换浅色方案、隐藏导航、图表 SVG 取消最小宽度以适配页宽
响应式900px 与 580px 两档断点下检查栅格塌陷通过 — 双栏对比卡、截图墙、证据网格在窄屏下退化为单栏,表格保留横向滚动
数字禁改红线逐项核对报告中所有统计数字是否与评测原始记录一致,未新增任何推断性数字通过 — 唯二的派生数字(加权总分 8.68 / 8.45)给出完整算式,可由七维分与权重直接验算

报告结构:14 章 / 21 条证据 / 6 幅手写 SVG / 12 张截图 / 10 个附录小节(A~J);配套结构化数据 zhikuncode-codex-12306-evidence.json(meta / metrics / scores / evidence / assets 五段)。本报告与 evidence.json 为本次评估新增文件,未修改任何既有文件。v1.1(2026-07-28):新增前置利益披露、权重敏感性示例、复现与验证 Q&A、架构概念推演免责与页脚披露,公开两侧产物源文件副本(assets/12306-comparison/artifacts/);全部维度得分、总分与 EV 证据数据零改动。v1.2(2026-07-28):纳入 Codex 会话界面耗时截图证据(EV-021),维度⑥恢复计分(8.0,档位"部分"),Codex 总分改为七维加权 8.45(取消六维归一化与星号);其余六维得分、ZhikunCode 各维分与总分 8.68、既有 EV 数据零改动。