摘要 本文复盘一个真实案例:一位交通管理领域的产品经理,如何用 AI 助手 WorkBuddy,在约 80 分钟内、经过 5 个版本迭代,把分散在 9 本规范中的车道宽度条文,变成一个 54.8 KB 的单文件 HTML 工具。 文章的重点不是这个工具本身,而是一套可复用的方法:如何提需求、如何投喂专业素材、如何增量迭代、如何要求 AI 自检、以及如何做领域把关。 读者看完应当能够照着做出自己的专业小工具。
你提供领域知识,AI 提供工程实现。 整个过程中,人负责的是「规范条文、数据归属、逻辑纠错」,AI 负责的是「结构化、写代码、做校验」。这个分工跑通了,一个专业工具的产出成本可以从"几天"压到"一小时"。
交通工程师在做道路与交叉口设计、方案审查时,需要频繁查阅车道宽度要求。这些要求散落在多本规范里:
规范 | 覆盖内容 |
|---|---|
CJJ 152-2010 | 城市道路交叉口设计规程 |
CJJ 37 | 城市道路工程设计规范 |
CJJ 193 | 城市道路路线设计规范 |
GB 50647-2011 | 城市道路交叉口规划规范 |
GB 50037 | 城市道路工程设计规范(路段车道宽度) |
JTG B01 | 公路工程技术标准 |
JTG D20 | 公路路线设计规范 |
JTG 2112 | 城镇化地区公路工程技术标准 |
JTG/T 3322—2026 | 公路平面交叉设计规范(2026-10-01 施行) |
而且这些规定不是平面的一张表,而是多维交叉的:
靠人脑记忆 + 翻规范,效率低且易出错。
需求方(本文作者)的第一句话是这样的:
"我想做一个小工具,独立静态网页方式使用。用途是给交通工程师使用,用于道路车道宽度的标准规范要求查询或者计算……还有一些更复杂的情况,是需要进行计算的。"
这句话里包含了三个关键信息,后面被证明都至关重要:
这个约束直接决定了技术选型。对比几种方案:
方案 | 优势 | 问题 |
|---|---|---|
单文件 HTML | 零依赖、双击即用、可内网分发、无需部署、任何人都能打开 | 样式与逻辑需自己写 |
Excel / 计算表格 | 熟悉、易改 | 交互弱、公式易被误改、分发需装 Office |
小程序 / App | 体验好 | 需注册、审核、部署,成本高 |
Web 应用(前后端) | 功能强 | 需服务器、运维,专业工具杀鸡用牛刀 |
对于"给同事用的专业小工具",单文件 HTML 是最优解。这也让 AI 可以一次性生成完整产物,无需多文件工程。
版本 | 触发事件 | 核心变化 | 耗时 |
|---|---|---|---|
v1.0 | 提交一张规范截图 | 4 个 Tab 的基础框架 | ~10 分钟 |
v2.0 | 补充公路交叉口条文 | 新增"公路 / 城市道路"维度,交叉口模块重做 | ~10 分钟 |
v3.0 | 补充非机动车道条文 | 新增非机动车道模块(此处埋了逻辑错误) | ~10 分钟 |
v4.0 | 用户指出逻辑错误 | 非机动车道按"路段 / 交叉口"拆分 | ~10 分钟 |
v5.0 | 补充曲线加宽规则 + 顺序反馈 | 新增弯道加宽计算器;Tab 顺序优化 | ~20 分钟 |
总计约 80 分钟。 其中 AI 的实际工作量(写作 + 校验)远大于此,但对使用者而言,等待与沟通成本就是这 80 分钟。
输入:一张规范摘录的截图(含路段车道宽度表、交叉口车道宽度表、转弯专用车道表),配一句需求描述。


AI 做了什么:
产出:4 个 Tab
Tab | 内容 |
|---|---|
① 路段车道宽度速查 | 设计速度 + 车道类型 → 宽度 |
② 交叉口车道宽度速查 | 场景 → 宽度 |
③ 转弯车道计算器 | 半径 R + 车型 → 宽度(R<25m 走几何验算) |
④ 完整规范速查表 | 所有条文汇总 |
值得注意的设计决策:AI 在处理"转弯专用车道"时,发现规范表格只覆盖了 R≥25m 的情形,于是主动补了一个 R<25m 的几何验算模式(宽度 = 车宽 + 内侧偏移 + 外侧富余),并标注需结合仿真复核。
这是 AI 的加分项:它不只是机械地搬表格,而是发现了规范的覆盖缺口并给出兜底方案。当然,这个兜底方案是否合规,仍需要领域专家判断。
输入:一段较长的文字资料,说明公路与城市道路的差异:
"关于公路交叉口上车道宽度的要求……现行标准规范中公路与城市道路的规定有所不同,且进口道(车辆驶入)与出口道(车辆驶出)的要求也存在差异。"
资料中明确了公路侧的规则,包括一条此前未覆盖的:
"当设计速度大于或等于 40km/h 时,展宽渠化的转弯车道宽度宜采用 3.5 米,同样不宜小于 3.25 米,且不应小于 3 米。"
以及一条重要信息:
"交通运输部已发布新的《公路平面交叉设计规范》(JTG/T 3322—2026),将于 2026 年 10 月 1 日起施行。"

AI 做了什么:
经验:这一轮的关键在于,用户提供的资料自带了维度信息(公路/城市道路、进口/出口、新建/改建),AI 得以直接把它映射为界面上的选项组。资料的结构化程度,直接决定了产出的结构化程度。
输入:非机动车道的详细条文,明确区分城市道路与公路两套体系:
城市道路(CJJ 37):单条基本宽、合并设置 ≥2.5m、专用道单向 3.5/双向 4.5m、有效通行单向 1.5/双向 3.0m、交叉口进口道 2.5m 与内部通行空间 3.0m。
公路(JTG B01 / JTG 2112):单条自行车 1.0m、三轮 2.0m、四级公路混行 4.0/5.0m、城镇化合并 2.0/3.0m。

AI 做了什么:新增非机动车道模块,支持道路类型切换 + 场景切换。
出问题的地方:AI 把这个模块整体塞进了 ② 交叉口车道综合查询 这个 Tab 里。
这是一个典型的"就近归类"错误:因为当时正在改交叉口模块,AI 就把新数据挂到了最近的那个模块上,而没有判断数据本身的适用场景。
过程中还发生了两个技术小事故(AI 自行发现并修复):
.html 后缀 → 重命名修正alert:'...' 误写成 alert='...'(赋值语句)→ 语法错误,修正后通过校验用户输入(原文):
"非机动车道的宽度,你全放在了【交叉口车道综合查询】这个tab里,这是存在逻辑错误的。路段上也会有非机动���道的,这部分你没考虑"

这是一次高质量的领域纠错。 用户没有说"改一下位置"这种模糊指令,而是直接指出错误本质:非机动车道不止存在于交叉口,路段上同样有。
AI 的修正:把非机动车道按部位拆分——
部位 | 归属 Tab | 场景数 |
|---|---|---|
路段 | ① 路段车道宽度速查 | 城市道路 6 + 公路 6 |
交叉口 | ② 交叉口车道综合查询 | 城市道路 3 + 公路 3 |
同时做了视觉区分:Tab1 切到非机动车道时,结果卡片整体转为粉色主题,避免与机动车道结果混淆。
数据结构也相应改为二维组织:
这一轮的教训最重要,见第 4.5 节。
输入:曲线加宽的完整规则,包括两条公式和两张查表:
以及加宽缓和段的要求:
"如果道路本身设有缓和曲线或超高缓和段,加宽缓和段长度通常与之相同。如果都没有,加宽缓和段长度需按渐变率(如 1:15)计算,且不得小于 10 米。"

AI 的判断:这是"曲线加宽",与直线车道宽度是两套逻辑,必须独立成 Tab,不能并入任何既有模块。(吸取了 v4.0 的教训)
产出的 Tab ⑤ 弯道加宽计算器:
几个关键处理:
接着是一轮交互反馈:
"它熟悉'计算器',它的tab的顺序应该放在第4位,你现在是放在最后,这个不太顺畅,请修改。"
顺序调整为:① 路段查询 ② 交叉口查询 ③ 转弯车道计算器 ④ 弯道加宽计算器 ⑤ 完整规范速查表。两个计算器相邻,速查表收尾。

指标 | 数值 |
|---|---|
交付物 | 单个 HTML 文件,54.8 KB |
Tab 数 | 5 |
覆盖规范 | 9 本(CJJ 152 / CJJ 37 / CJJ 193 / GB 50647 / GB 50037 / JTG B01 / JTG D20 / JTG 2112 / JTG/T 3322—2026) |
交互维度 | 道路类型 × 部位 × 建设条件 × 设计速度 × 车型 × 场景 |
计算能力 | 转弯车道(含 R<25m 几何验算)、曲线加宽(公式法 + 查表法)、加宽缓和段 |
数据校验 | 45 条用例全部通过 |
运行方式 | 双击打开,无需安装、无需联网 |
这一节是本文的核心。以下五条方法,全部来自本次实战,可直接复用。
不要这样写:
"帮我用 Vue + Tailwind 写一个响应式页面,用 flex 布局,数据用 JSON 组织……"
应该这样写:
"我想做一个小工具,独立静态网页方式使用。用途是给交通工程师使用,用于道路车道宽度的标准规范要求查询或者计算。"
原因:你可能并不清楚该用什么技术栈,而 AI 清楚。约束你真正关心的东西(运行方式、使用者、用途),把技术决策交给 AI。
如果需要特定技术约束,单独点明即可,例如:
本案例中,素材经历了三种形式,效果都很好:
素材形式 | 用法 | 效果 |
|---|---|---|
截图 | 直接粘贴规范摘录的截图 | AI 能识别表格并结构化,适合"起始素材" |
文字条文 | 直接粘贴规范原文或整理后的要点 | 信息密度最高,适合"增量补充" |
Markdown 表格 | 用手打或转换的表格 | 数值最不易出错,适合"精确数据" |
强烈建议带上规范编号(如 CJJ 37、JTG D20)。好处:
一个实用技巧:如果资料很长,可以在开头加一句定位,例如:
"以下是我查到的关于非机动车道宽度的要求,也请你补充到这个工具里面"
这句"定位语"能让 AI 立刻把新素材与既有结构对齐。
本案例 5 个版本,没有一次是"推倒重来"。每轮用户的表述都是增量的:
为什么增量迭代更有效:
但要注意:增量迭代的前提是上一轮的结构是对的。如果发现结构性问题(如 v4.0 的场景),就要果断要求重构,而不是继续往上加。
这是本案例中最容易被忽视、但价值极高的一环。
AI 在本次开发中自发做了三轮校验:
① JS 语法校验(每次改完都做)
→ 捕获了 alert= 笔误这类会导致整个脚本失效的错误。
② 数据录入校验(v5.0) 把 HTML 中的加宽表格数据提取出来,用 45 条断言逐格比对:
→ 确保手写表格时没有输错数字、区间判定(左开右闭)正确。
③ Tab 映射校验(调序后)
你可以直接要求 AI 做这些校验,见第 5 节的模板。
v4.0 暴露的问题值得单独讨论。
AI 为什么会犯错? 因为它在处理"非机动车道"这批新数据时,把它挂到了当时正在编辑的模块(交叉口)上。这是"就近归类"的惯性,而非对业务的理解。
这类错误的特征:功能能跑、数据没错、但归类错了。代码层面完全看不出问题,只有领域专家能发现。
如何防范? 在补充数据时,主动说明适用范围。对比一下:
表述方式 | 效果 |
|---|---|
"以下是非机动车道宽度的要求,请补充到工具里" | AI 自由归类,可能放错位置 |
"非机动车道在路段和交叉口都有要求,路段上是……,交叉口是……,请分别放到对应的 Tab" | AI 直接按正确维度组织 |
结论:AI 生成的是高质量初稿,但结构性的判断必须由你来把关。当 AI 新增了一个模块时,花 30 秒问自己一句:"这个东西只存在于这个场景吗?"
以下模板均来自本实战,可直接复制改编。
给想自己维护或二次开发的人。
单个 HTML 文件,三段式:
无外部依赖,无 CDN 引用,离线可用。
所有规范数值都抽成数据对象,与渲染逻辑分离:
好处:修改规范数值不需要碰任何渲染代码。新规施行时,只改数据即可。
每个复杂模块配一个 sync 函数,控制哪些输入项可见:
好处:界面随选择动态精简,工程师不会被无关选项干扰。
规范表格中的"—"(不适用)不能简单存 0 或空:
三种"非正常"状态在界面上给出不同的警示文案,而不是静默返回空值。这是专业工具与玩具的区别。
# | 坑 | 表现 | 根因 | 避坑方法 |
|---|---|---|---|---|
1 | 数据归属错误 | 非机动车道全被塞进"交叉口"Tab | AI 把新数据挂到当前编辑的模块 | 补充数据时主动说明适用场景;新增模块后自查"它只存在于这个场景吗" |
2 | 规范覆盖缺口 | 规范表只到 R≥25m,更小的半径没数 | 规范本身不覆盖 | 让 AI 标注缺口并给兜底方案(如几何验算),同时提示需复核 |
3 | "—"被当空值 | 某车型在小半径无加宽值 | 数据录入时简单填 0 或空 | 显式存 null,界面给出"该车型不宜采用此半径"的警示 |
4 | JS 语法笔误 | 对象字面量里写 alert= 而非 alert: | 手写长数据结构时出错 | 每次改完必须做语法校验(见模板 4) |
5 | 表格数值录错 | 手打 45 个数值,任一都可能错 | 人工转录 | 写断言脚本逐格比对原表,含边界值 |
6 | 文件名笔误 | 写文件漏了 .html 后缀 | 疏忽 | 写完后 ls 确认 |
7 | 极限值无警示 | 2.80m 是极限值,界面上与普通值无异 | 未区分合规等级 | 用颜色分级:绿=一般、黄=偏严、红=极限需专项论证 |
本工具目前的边界与扩展可能:
方向 | 说明 | 需要补充什么 |
|---|---|---|
进口道展宽段长度计算 | 基于排队长度的公式 | 排队长度计算公式与参数 |
地方标准叠加层 | 部分省市有更细的地方标准 | 地方标准条文 |
公交港湾站台尺寸 | 与公交专用道配套 | CJJ 相关条文 |
多车道组合配置 | 内外车道差异化宽度 | 组合规则 |
参数记忆 | localStorage 记住常用项目参数 | 无需额外规范 |
结果导出 | 导出计算书 / 截图留档 | 无需额外规范 |
待确认的数据(已在工具中标注为参考值):
回顾这 80 分钟,真正耗费人的不是"写代码",而是三件事:
而那些真正耗时的苦活——结构化、写交互、调样式、做校验、反复修改——全部交给了 AI。
这就是这类协作的价值所在:它不替代你的专业知识,而是把你的专业知识放大成可交付的产品。
如果你手头也有一堆"散落在规范里、每次都要翻"的知识,不妨试试用同样的方法,把它变成一个工具。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。