规则总汇
按首页目录聚类 · 统一格式 · 更新于 2026-04-29
📋 通用规则
工作流程 (11条)
| 编号 | 名称 | 规则内容 | 日期 |
| 001 | 称呼规则 | 称呼用户为"头儿",工作中其他人类不这么称呼 | 03-22 |
| 002 | 单会话模式 | 采用单会话角色扮演模式,不创建子代理 | 03-22 |
| 003 | 输出格式 | 流程图输出为 JSON 格式,供外部软件渲染 | 03-22 |
| 004 | 共享知识库 | 使用本地 Markdown 文件作为共享知识库 | 03-22 |
| 005 | 网站部署 | 所有交付物和展示页面统一发布到 ai.tvpdcar.com | 03-22 |
| 006 | 工作完成确认 | 每次完成一项工作,报告最后加"之前工作已经结束,请发布下一步命令" | 03-25 |
| 007 | 理解确认 | 每次接受命令时先判断是否理解需求,有不懂的及时提问 | 03-25 |
| 008 | 禁止瞎填 | 没有明确数据来源的信息绝对不能编造或猜测。不知道就填"暂无"并注明缺失原因。数据必须标注来源 | 03-29 |
| 009 | TBD 标记规则 | 不能确认的字段填写 TBD。适用于:有无配置、有无配置能力、精度、范围、单位、服务状态 | 03-29 |
| 010 | 数据确认标准 | 填"有"需满足:① 官方文档明确提及 ② 逐条按 id 精确填写 ③ remark 标注来源页码 | 03-29 |
| 011 | 术语统一 | 术语变更必须一次性改完所有涉及文件,禁止分批修改造成不一致 | 04-19 |
技术规范 (5条)
| 编号 | 名称 | 规则内容 | 日期 |
| 012 | JS/CSS缓存破除 | 修改 JS/CSS 文件后必须同步更新引用处的版本参数(如 ?v=YYYYMMDD) | 04-17 |
| 013 | 浏览器API限制 | 依赖外部服务器的浏览器API在国内不可靠,选型时确认可离线或使用国内服务 | 04-19 |
| 014 | 工具网页入口 | 面向头儿的工具必须有网页界面入口,纯命令行工具不可直接推荐 | 04-19 |
| 015 | 禁止使用图标 | 所有网页中不得使用 emoji 或图标符号,一律使用文字 | 04-08 |
| 016 | 小龙虾风格 | 所有网页的 UI 和交互必须使用小龙虾风格(米黄色调,低饱和度,极简图标) | 03-29 |
王秘书工作纪律 (4条)
| 编号 | 名称 | 规则内容 | 日期 |
| 017 | 每次会话必须写日记 | 第一件事:创建/确认今日日记 memory/YYYY-MM-DD.md。不写等于失忆 | 04-19 |
| 018 | 记忆单一入口 | 只维护一套:MEMORY.md(长期)+ memory/ 日记(每日)。禁止维护平行目录 | 04-19 |
| 019 | 启动流程不可跳过 | ① 读 SOUL.md ② 读 USER.md ③ 读今日+昨日日记 ④ 建今日日记 | 04-19 |
| 020 | 定期记录头儿问题 | 每10分钟将头儿的问题记录到日记 | 04-19 |
1. 功能清单
数据填写规则 (2条)
| 编号 | 名称 | 规则内容 | 日期 |
| 021 | 能力清单 | 配置能力清单指"1、配置能力清单_20260206.xlsx"导入的清单 | 03-22 |
| 022 | 功能清单数据填写 | "功能核心流程json"填原子能力名称列表(顿号分隔),"功能完整流程json"填配置能力名称列表。禁止填文件路径 | 04-17 |
字段定义 (19条)
| 编号 | 名称 | 规则内容 | 日期 |
| 023 | 地点 | 固定字段。用户旅程发生的物理位置,不随数据增加而变化 | 04-08 |
| 024 | 用户旅程 | 固定字段。用车全流程8个阶段 | 04-08 |
| 025 | 过程任务 | 固定字段。该旅程阶段下的具体任务 | 04-08 |
| 026 | 利益相关者 | 固定字段。该场景下关联到的用车人:车主、伴侣、儿童、老人、亲友 | 04-08 |
| 027 | 事件 | 该场景的具体用户动作、车辆状态和其他交通参与者的动作与状态 | 04-08 |
| 028 | 环境变量 | 用户与环境数据库中的环境部分,主要是天气和道路环境 | 04-08 |
| 029 | 影响 | 具体的事件与环境对用户完成过程任务造成的影响 | 04-08 |
| 030 | 用户需求 | 用户的具体需求表达 | 04-08 |
| 031 | 素材 | 代表该需求来源的外部链接 | 04-08 |
| 032 | 备注 | 原任务场景字段,补充说明 | 04-08 |
| 033 | 功能名称 | 对应该任务的产品功能命名 | 04-08 |
| 034 | 功能描述 | 该功能的文字说明 | 04-08 |
| 035 | 关联原子服务 | 赵需求的原子服务流程图中用到的配置能力 | 04-08 |
| 036 | 核心工作流 | 赵需求的原子服务流程图 | 04-08 |
| 037 | 关联配置 | 孙架构的完整流程图中用到的配置 | 04-08 |
| 038 | 完整工作流 | 孙架构的完整流程图 | 04-08 |
| 039 | 测试条件 | 验证该功能时的前提条件和测试场景 | 04-08 |
| 040 | 测试指标 | 验证该功能时的评估维度和评分标准 | 04-08 |
| 041 | 关联配置取值范围 | 关联配置只取配置能力清单中的"配置"字段,不含用户与环境数据库 | 04-08 |
2. 功能进度
吴进度 — 项目管理 (11条)
| 编号 | 名称 | 规则内容 | 日期 |
| 042 | 不自动流转 | 头儿对员工内容调整时,不自动进入下一个员工 | 03-25 |
| 043 | 明确指示才流转 | 只有头儿明确表述时才进入下一个员工 | 03-25 |
| 044 | 主动询问 | 认为可以进入下一员工但头儿未指示时,主动询问 | 03-25 |
| 045 | 30 秒心跳报告 | 员工工作中每 30 秒向头儿报告工作状态 | 03-25 |
| 046 | 日志记录 | 记录所有员工每次产出的结论性内容 | 03-25 |
| 047 | 项目总表 | 维护项目总表,含功能名称/描述/配置能力/JSON/流程图 | 03-25 |
| 048 | 交付物存档 | 员工完成交付后立即存档到 output/logs/{project_id}-deliverables.md | 03-29 |
| 049 | 交付物复用 | 后续讨论已存档交付物时直接调用,禁止重新生成 | 03-29 |
| 050 | 存档时机 | 员工交付物传递给下游时同步完成存档 | 03-29 |
| 051 | 原始需求记录 | 项目创建时必须将头儿的原始需求完整记录到交付物存档 | 03-29 |
| 052 | 需求溯源 | 交付物存档中原始需求部分不得留空 | 03-29 |
部署与发布 (6条)
| 编号 | 名称 | 规则内容 | 日期 |
| 053 | 发布检查清单 | ① HTML复制到/web根目录 ② 扁平命名 ③ 链接改同级路径 ④ 更新 progress.html ⑤ 更新 index.html 时间 ⑥ 更新 function-data.js ⑦ curl验证返回200 | 04-19 |
| 054 | HTML扁平命名 | HTML放 /web 根目录,命名 proj_XXX_角色.html,数据底稿放 /web/projects/proj_XXX/ | 04-19 |
| 055 | 页面统一样式 | 背景 #f5f0e8,Header 渐变 #d4c5b0→#b8a992 | 04-19 |
| 056 | 发布后验证 | 用 curl 验证每个新增/修改页面返回200 | 04-19 |
| 057 | Docker容器约束 | 禁止杀 Caddy 等核心进程,配置变更从 docker-compose 层面操作 | 04-19 |
| 058 | Python依赖精简安装 | 先分析 extras 依赖,按需安装核心模块,避免 [all] 超时 | 04-19 |
赵需求 — 需求分析 (19条)
| 编号 | 名称 | 规则内容 | 日期 |
| 059 | 配置能力定义 | 配置能力是用户可实际感知的最小颗粒度单元,定义固定且明确 | 03-22 |
| 060 | 配置能力说明 | 配置能力概念较模糊,讨论时需注意避免歧义 | 03-22 |
| 061 | 最小感知原则 | 用户有感知或有执行需求都是独立的配置能力 | 03-22 |
| 062 | 不描述技术方案 | 配置能力不需要描述实现形式和技术方案 | 03-22 |
| 063 | 时间主线 | 用户移动和动作是时间主线,用户相关配置能力沿用户行为时间线串联 | 03-22 |
| 064 | 因果关系 | 其他配置能力依据严格因果关系连接 | 03-22 |
| 065 | 独立不重叠 | 每个配置能力都是独立的,含义不能重叠 | 03-22 |
| 066 | 纯文字表述 | 流程需增加纯文字表述,图形化表述保留 | 03-25 |
| 067 | 用户感受优先 | 检测天气/光线不是配置能力,"天气不好"/"天气好但昏暗"才是用户感受 | 03-29 |
| 068 | 技术方案括号标注 | 技术方案用括号标注在相应配置能力后面 | 03-29 |
| 069 | 待确认事项 | 信息不足时向头儿提问,确认后再传递 | 03-25 |
| 070 | 配置能力 JSON | 输出仅包含原子能力列表和逻辑关系,不含配置能力和服务状态 | 03-25 |
| 071 | JSON 结构 | 包含 projectInfo、layout、layers、nodes、edges | 03-25 |
| 072 | 节点类型 | 配置能力 type="atom" shape="circle",OR节点 type="or" shape="circleSmall",结束 type="end" shape="rect" | 04-07 |
| 073 | 节点形状 | 配置能力=圆形,OR节点=小圆形(label固定"or"),结束=矩形 | 04-07 |
| 074 | 布局方向 | layout.direction = "LR",所有箭头只能向右 | 04-07 |
| 075 | 逻辑关系 | 连接线上不标注文字。连入左侧默认AND,OR逻辑用OR节点 | 04-07 |
| 076 | 层级定义 | layers 数组定义条件层、执行层、结束层 | 03-25 |
| 077 | 边字段 | 仅包含 id、source/sources、target、logic,不含 label | 04-07 |
钱数据 — 核心匹配规则 (9条)
| 编号 | 名称 | 规则内容 | 日期 |
| 078 | 匹配优先 | 在能力清单中找合适的配置能力匹配 | 03-22 |
| 079 | 允许新增 | 清单中没有合适能力时允许新增 | 03-22 |
| 080 | 参考技术方案 | 按赵需求括号中的方案描述挑选 | 03-22 |
| 081 | 信息不足时提问 | 赵需求给出信息不足时向头儿发问 | 03-22 |
| 082 | 结束报告 | 列表报告匹配的和新增的配置能力 | 03-22 |
| 083 | 相近能力说明 | 列出相近清单能力并说明不选用理由 | 03-22 |
| 084 | 传感器能力 | 环境变化和用户动作需匹配对应传感器能力 | 03-25 |
| 085 | 执行能力 | 需匹配表现环境变化和用户动作的执行配置能力 | 03-25 |
| 086 | 分级匹配(标准流程) | 必须使用分级匹配方法,禁止全量遍历。第一级配置预筛选→第二级关键词精准匹配打分 | 03-25 |
钱数据 — 输出格式 (33条)
| 编号 | 名称 | 规则内容 | 日期 |
| 087 | 单一表格 | 匹配结果和详细说明合并为一个表格 | 03-22 |
| 088 | 不使用删除线 | 禁止使用删除线格式 | 03-22 |
| 089 | 服务状态换行 | 每个服务状态独立一行展示 | 03-22 |
| 090 | 完整显示 | 配置模块、配置类别、配置、配置能力列完整显示,不合并不省略 | 03-22 |
| 091 | Sheet 列 | 必须包含 Sheet 名称列(用户/环境/配置 (2)) | 03-22 |
| 092 | 生效标注 | 生效状态用"✅"图标标注 | 03-22 |
| 093 | 不生效标注 | 不生效状态用"❌"图标标注 | 03-22 |
| 094 | 配置下辖能力 | 一个配置下辖多个能力时每个独立一行 | 03-22 |
| 095 | 表格列顺序 | Sheet→行数→配置模块→配置类别→配置→配置能力→服务状态→单位→下限→上限→生效→其他关联原子能力→来源 | 03-25 |
| 096 | 对齐方式 | 类型/Sheet/行数/来源列居中,其他列向左对齐 | 03-22 |
| 097 | 类型分类 | 类型只保留"触发"和"执行"两种 | 03-22 |
| 098 | 多 Sheet 匹配 | 用户动作从"用户"Sheet,环境变量从"环境"Sheet,传感器从"配置 (2)"Sheet | 03-25 |
| 099 | 配置模块列 | 必须包含配置模块列 | 03-25 |
| 100 | 配置能力类型 | 分"触发"和"执行"两种,与配置模块分类不是同一维度 | 03-25 |
| 101 | 服务状态生效 | "生效"指被挑选出与特定配置能力产生关联,仅在当前功能/项目中有效 | 03-25 |
| 102 | 数据来源 | Sheet、行数、配置模块、配置类别、配置、配置能力、服务状态来自清单 | 03-25 |
| 103 | 服务状态来源 | 从清单"服务状态"或"服务状态 1"列提取 | 03-25 |
| 104 | 生效列 | 用✅/❌标注是否被挑选生效 | 03-25 |
| 105 | 配置类别列 | 在配置模块和配置之间增加"配置类别"列 | 03-25 |
| 106 | 行数定义 | 各 Sheet 内的绝对行数(第 3 行表头,第 4 行起为数据) | 03-25 |
| 107 | 传感器配对 | 每挑选一个环境/用户 Sheet 的配置能力,必须在配置 (2) 中配对传感器 | 03-25 |
| 108 | 列位置定义 | 配置模块=第3列、配置类别=第5列、配置=第8列、配置能力=第15列、服务状态=第21列 | 03-25 |
| 109 | 空白单元格继承 | 空白单元格默认等同于上一个有内容单元格 | 03-25 |
| 110 | 全量服务状态 | 被选中的配置能力所有服务状态都要列出,未生效用❌标注 | 03-29 |
| 111 | 生效配置能力筛选 | 选中的配置能力至少有一个服务状态生效 | 03-29 |
| 112 | 配置能力汇整格式 | 以配置能力为单位汇整,每个配置能力一个独立表格 | 03-29 |
| 113 | 参考上版交付 | 报告时必须读取上一版交付记录,保持格式一致对比变化 | 03-29 |
| 114 | 行数定义修正 | 行数指服务状态在 Sheet 中的绝对行数 | 03-29 |
| 115 | 环境能力传感器配对 | 环境 Sheet 能力必须配对配置中的传感器能力 | 03-29 |
| 116 | 一一对应原则 | 环境/用户能力与传感器能力一一对应 | 03-29 |
| 117 | 来源列 | 标注"现有"或"新增" | 03-29 |
| 118 | 其他关联原子能力 | 双向映射:A 中标注 B,B 中也应标注 A | 03-29 |
| 119 | 服务状态量化范围 | 每个服务状态标注单位、下限、上限。非数值型填"状态",不明确填 TBD | 03-29 |
孙架构 — 核心规则 (10条)
| 编号 | 名称 | 规则内容 | 日期 |
| 120 | 解析配置能力 | 从钱数据的意图-能力对应表中提取原子能力列表 | 03-25 |
| 121 | 确定逻辑关系 | 分析配置能力之间的逻辑关系 | 03-25 |
| 122 | 构建流程图 JSON | 输出含节点、边、逻辑关系的中间表示 | 03-25 |
| 123 | 并列条件 | 同一层条件并列展示,不是层级判断关系 | 03-25 |
| 124 | 无判断框 | 不使用"?"和是否判断,用逻辑直接连接 | 03-25 |
| 125 | 明确人称 | 名称明确"用户"还是"陌生人",不用"某人" | 03-25 |
| 126 | 纯文字表述 | 增加纯文字流程说明 | 03-25 |
| 127 | 节点类型 | 配置能力=圆形,服务状态=圆角矩形,OR=小圆形,执行=水滴形,结束=矩形 | 04-07 |
| 128 | 逻辑表达 | 默认AND,OR用OR节点,连接线不写文字 | 04-07 |
| 129 | 输出格式 | JSON 含 projectInfo、nodes、edges、logic | 03-25 |
孙架构 — JSON 输出格式 (8条)
| 编号 | 名称 | 规则内容 | 日期 |
| 130 | JSON 结构 | 含 projectInfo、conditionLayer、executionLogic、nodes、edges | 03-25 |
| 131 | 条件层 | conditionLayer.type = "PARALLEL" | 03-25 |
| 132 | 执行逻辑 | executionLogic.type = "OR" | 03-25 |
| 133 | 节点字段 | id、type、label、intentId、layer、shape | 03-25 |
| 134 | 节点形状 | 配置能力=圆形,服务状态=圆角矩形,OR=小圆形,执行=水滴形(尖角朝左),结束=矩形 | 04-21 |
| 135 | 边字段 | id、sources(多源点)、target、logic | 03-25 |
| 136 | Mermaid 预览 | 提供 Mermaid 代码供快速预览 | 03-25 |
| 137 | 文字说明 | 提供纯文字流程说明 | 03-25 |
孙架构 — 布局与连线 (19条)
| 编号 | 名称 | 规则内容 | 日期 |
| 138 | 连接线无文字 | 所有连接线不标注文字,仅用箭头表示方向 | 04-07 |
| 139 | 默认AND逻辑 | 连到左侧的连接线默认AND,全部满足才触发 | 04-07 |
| 140 | OR节点 | 小圆形 label="or" 任一输入满足即触发 | 04-07 |
| 141 | 层级位置 | 最上环境层,其次用户层,各自能力仅在本层 | 04-07 |
| 142 | 连接线方向 | 从左向右,箭头只能向右 | 04-07 |
| 143 | 执行节点图形 | 水滴形尖角朝左,连线从尖角连入 | 04-21 |
| 144 | 节点与连线布局 | 左到右排列,连线走 HVH 折线,禁止斜线弧线 | 04-08 |
| 145 | 连线Y轴对齐 | 出入点Y偏差≤5px,路径 HVH | 04-09 |
| 146 | 配置能力尺寸间距 | 宽120px,纵向间距≥60px,横向间距44px | 04-21 |
| 147 | 配置能力同侧布置 | 同一原子服务的关联配置能力全部在同一侧 | 04-21 |
| 148 | 线条规范 | strokeWidth=1 实心直线,禁止虚线点线粗线 | 04-21 |
| 149 | 功能逻辑层高度 | 无高度限制,按节点数量扩展 | 04-09 |
| 150 | 结束节点连接 | 只能与原子服务(圆形)相连 | 04-21 |
| 151 | 连接线保护 | 连线不与节点重叠,主干线不交叉不被覆盖 | 04-21 |
| 152 | 执行节点与服务状态连线 | 执行节点与生效服务状态之间必须有连线 | 04-21 |
| 153 | 服务状态排列 | 纵向单列排列 | 04-21 |
| 154 | 主干线专用通道 | 主干线走独立 y 通道,分支偏离≥30px | 04-21 |
| 155 | 主干与分支共线容差 | 出发/进入时允许在一个节点直径内共线 | 04-21 |
| 156 | 垂直线不重叠 | 垂直段不得在同一x坐标重叠,y范围有交集须各自偏移 | 04-21 |
孙架构 — 自检与优化 (9条)
| 编号 | 名称 | 规则内容 | 日期 |
| 157 | 绘图自检清单 | 每次绘制/修改后用脚本逐条验证全部条目,一条不符即修正并从头重检 | 04-22 |
| 158 | 层级简化 | 7层→3层:环境层、用户层、功能逻辑层 | 04-09 |
| 159 | 连线交叉优化 | 穷举排列方案选交叉点最少的排列 | 04-22 |
| 160 | 主干与分支减少重叠 | 出发后尽快分离,减少重叠段 | 04-22 |
| 161 | 服务状态对称对齐 | 关于配置能力中心 y 对称分布 | 04-22 |
| 162 | 执行节点对齐 | 与所连接的服务状态垂直居中对齐 | 04-22 |
| 163 | 服务状态宽度统一 | 所有服务状态节点宽度 80px | 04-23 |
| 164 | 配置能力与服务状态间距 | 横向间距固定 40px | 04-23 |
| 165 | 服务状态与执行节点间距 | 横向间距固定 40px | 04-23 |
4. 用户与环境数据库
共享配置能力数据库中的规则 049、056、065、073、074。用户动作从"用户"Sheet 挑选,环境变量从"环境"Sheet 挑选,传感器从"配置 (2)"Sheet 挑选。
5. 评测数据库
评测规则 (2条)
| 编号 | 名称 | 规则内容 | 日期 |
| 166 | 测试条件 | 验证功能时的前提条件和测试场景 | 04-08 |
| 167 | 测试指标 | 验证功能时的评估维度和评分标准 | 04-08 |
7. 规则总汇
本页面 · 按首页目录聚类展示所有规则
9. 销售展示指南(ADS + 鸿蒙座舱)
暂无专属规则
10. 用户故事
页面总体结构 (4条)
| 编号 | 名称 | 规则内容 | 日期 |
| 168 | 页面标题格式 | <emoji> <故事名称> — 3D 实景地图 | 04-28 |
| 169 | 整体布局 | 100vh 纵向 flex:Header → 地图(flex:1)→ 底部导航栏 | 04-28 |
| 170 | 背景色 | body 背景 #1a1a1a(深色主题) | 04-28 |
| 171 | 字体 | 'Microsoft YaHei','PingFang SC',sans-serif | 04-28 |
Header (5条)
| 编号 | 名称 | 规则内容 | 日期 |
| 172 | Header 渐变 | linear-gradient(135deg,#c8943c,#a87428) | 04-28 |
| 173 | Header 边框 | 底部 2px solid #d4a84c | 04-28 |
| 174 | Header 标题 | "故事地图",17px 白色文字 + 文字阴影 | 04-29 |
| 175 | Header 布局 | position:relative,内含搜索框(居中)和时钟(右侧),无副标题 | 04-29 |
| 176 | 实时时钟 | 顶栏右侧 11px opacity 0.8,格式 YYYY-MM-DD HH:mm,每 10 秒更新 | 04-29 |
地图 (7条)
| 编号 | 名称 | 规则内容 | 日期 |
| 177 | 地图引擎 | MapLibre GL JS v4 矢量底图 | 04-28 |
| 178 | 底图样式 | OpenFreeMap Liberty,免费无 API Key | 04-28 |
| 179 | 初始视角 | pitch=45° 固定,bearing=0° 固定,不可旋转 | 04-28 |
| 180 | 初始缩放 | zoom 约 13.5,center 为地点地理中心 | 04-28 |
| 181 | 缩放控件 | 不显示缩放按钮,可滚轮/双指缩放 | 04-28 |
| 182 | 3D 建筑层 | fill-extrusion,颜色随缩放插值,高度×3,透明度 0.28 | 04-28 |
| 183 | 抗锯齿 | antialias: true | 04-28 |
出行节点 (8条)
| 编号 | 名称 | 规则内容 | 日期 |
| 184 | 术语统一 | 建筑和道路统称"出行节点" | 04-28 |
| 185 | 标记实现 | DOM Marker,不受 3D 深度测试影响 | 04-28 |
| 186 | 标记图标 | 圆形 36×36px,背景 #FFFACD,双层阴影,内部 emoji 18px | 04-28 |
| 187 | 名称标签 | 图标下方 38px,白底 10px font-weight 600 | 04-28 |
| 188 | 序号角标 | 右上角 16×16px,起点绿 #389848/终点红 #e05050/途经金 #c8943c | 04-28 |
| 189 | 选中高亮 | boxShadow 增强为 0 0 0 3px rgba(255,250,205,0.8) | 04-28 |
| 190 | 左键点击 | 锁定模式:① 显示详情卡 ② 添加到路线 | 04-28 |
| 191 | 右键点击 | 右键点击地图上的建筑图标,取消该途径点(从路线中移除) | 04-29 |
| 192 | 坐标系 | WGS-84 经纬度 | 04-28 |
地点数据 (3条)
| 编号 | 名称 | 规则内容 | 日期 |
| 193 | 数据结构 | id、name、emoji、cat、lat/lng、addr、desc | 04-28 |
| 194 | 分类体系 | 8类:居住、交通、商业、公共服务、教育、娱乐、餐饮、休闲 | 04-28 |
| 195 | 分类颜色 | 居住#d88820 交通#3070b0 商业#c04878 公共服务#389848 教育#d0a020 娱乐#7050b0 餐饮#c03030 休闲#309870 | 04-28 |
搜索功能 (5条)
| 编号 | 名称 | 规则内容 | 日期 |
| 196 | 搜索框位置 | 嵌入顶栏内,absolute 居中(left:50% top:50% transform:translate(-50%,-50%)) | 04-29 |
| 197 | 搜索框样式 | 320px 圆角 8px,白底 + 金色按钮 #c8943c | 04-28 |
| 198 | 搜索服务 | Nominatim API,限中国,中文,最多5条 | 04-28 |
| 199 | 搜索触发 | ≥2字符 400ms 自动触发,或回车 | 04-28 |
| 200 | 搜索结果 | 下拉列表 max-height 200px,点击飞到 zoom 16 | 04-28 |
出行路线卡片(收起) (10条)
| 编号 | 名称 | 规则内容 | 日期 |
| 201 | 卡片位置 | 右侧 right:12px top:80px,宽 200px | 04-28 |
| 202 | 卡片样式 | 白底 圆角8px 阴影 字号11px | 04-28 |
| 203 | 卡片标题 | "出行路线" 12px | 04-28 |
| 204 | 提示文字 | "点击出行节点按顺序添加" 9px 灰色 | 04-28 |
| 205 | 空状态 | "点击出行节点开始" 灰色居中 | 04-28 |
| 206 | 建筑节点项 | 序号角标→emoji+名称→角色标签→悬浮删除按钮 | 04-28 |
| 207 | 道路节点项 | 空心圆形图标 #FFFACD 18×18px 无内嵌图标→距离时间 | 04-28 |
| 208 | 节点间距 | 建筑 padding 6px,道路 padding 4px | 04-28 |
| 209 | 路线信息 | "全程 X.X km · 约 X 分钟" | 04-28 |
| 210 | 操作按钮 | 清空+全景,仅收起时显示 | 04-28 |
出行路线卡片(展开) (18条)
| 编号 | 名称 | 规则内容 | 日期 |
| 211 | 展开触发 | 点击卡片内部空白区域(按钮除外) | 04-28 |
| 212 | 收起触发 | 点击地图区域收起,点击卡片内部不收起 | 04-28 |
| 213 | 展开尺寸 | 宽 calc(100vw - 18vw - 24px),高 calc(100% - 80px - 40px),right:12px top:80px(与收起态上缘平齐) | 04-29 |
| 214 | 展开样式 | 固定定位 z-index 2000,圆角8px,字号14px | 04-28 |
| 215 | 上下两层结构 | 展开后卡片分上下两层:上层=出行节点行(固定60px),下层=功能卡片行(占剩余空间)。两层在同一滚动容器中横向同步滚动 | 04-29 |
| 216 | 节点横向排列 | flex-direction:row,超出横向滚动,滚动条在最下方 | 04-29 |
| 217 | 节点卡片样式 | 圆角矩形白色卡片 180×60px,border 1px #e8e0d5,阴影 0 2px 6px rgba(0,0,0,0.1),margin 0 3px,所有节点UI完全一致 | 04-29 |
| 218 | 建筑节点内容 | 序号(灰色小字内联)+ 名称同行不换行,无emoji,无删除按钮。角色标签(起点/终点/途经)在下方 | 04-29 |
| 219 | 道路节点内容 | 名称为"道路",下方显示距离+时间,无图标,内容垂直水平居中 | 04-29 |
| 220 | 全程信息位置 | 全程距离时间显示在标题"出行路线"同行右侧(route-header flex 布局) | 04-29 |
| 221 | 提示文字隐藏 | 展开时"点击出行节点按顺序添加"隐藏 | 04-29 |
| 222 | 操作按钮隐藏 | 展开时清空/全景 display:none | 04-28 |
| 223 | 图例联动 | 展开时图例隐藏,收起时恢复 | 04-28 |
| 224 | 功能卡片行 | 节点行下方独立的功能卡片区域,每个功能卡片与上方节点一一对齐(同宽180px margin 0 3px),占据节点行与滚动条之间全部空间 | 04-29 |
| 225 | 功能卡片样式 | 背景 #faf8f5,border 1px #e8e0d5,圆角8px,可接收拖拽,空态显示"拖入功能" | 04-29 |
| 226 | 功能标签样式 | 固定 width:100% height:62px,白底 border #e8d8c0 圆角4px。显示功能名称(金色加粗)+ 功能描述(灰色9px 最多3行),悬停展开全部描述 | 04-29 |
| 227 | 功能拖拽 | 从左侧功能清单面板拖拽功能到对应节点下方的功能卡片,可叠加多个。数据来自 function-data.js | 04-29 |
| 228 | 节点与功能对齐 | 节点卡片和功能卡片宽度一致(180px),margin一致(0 3px),padding一致(8px),确保上下一一对齐无累积偏差 | 04-29 |
详情卡片 (3条)
| 编号 | 名称 | 规则内容 | 日期 |
| 229 | 卡片位置 | 路线卡片下方,右侧固定 | 04-28 |
| 230 | 卡片内容 | 名称 13px 加粗 + 分类标签 + 描述 10px + 地址 9px | 04-28 |
| 231 | 显示/隐藏 | 默认隐藏,点击出行节点后 .show | 04-28 |
出行节点图例面板 (5条)
| 编号 | 名称 | 规则内容 | 日期 |
| 232 | 面板位置 | 左下角 left:12px bottom:50px,宽 130px | 04-28 |
| 233 | 面板标题 | "出行节点",可折叠/展开 | 04-28 |
| 234 | 图例项 | 颜色圆点 + emoji + 名称,按分类分组 | 04-28 |
| 235 | 图例点击 | 飞到地点 zoom 16 + 显示详情 | 04-28 |
| 236 | 折叠状态 | 仅标题行,body 隐藏 | 04-28 |
路线规划 (9条)
| 编号 | 名称 | 规则内容 | 日期 |
| 237 | 路线服务 | OSRM 双镜像容灾,单段超时 8 秒 | 04-28 |
| 238 | 分段请求 | 相邻节点对逐段请求 | 04-28 |
| 239 | 路线编码 | Polyline 编码解码 | 04-28 |
| 240 | 预览线 | 绿色虚线 #00c800 线宽3 透明度0.4 | 04-28 |
| 241 | 正式路线线 | 绿色实线 #00c800 线宽7 | 04-28 |
| 242 | 路线箭头 | 白色 V 形 20×20px 间隔 80px | 04-28 |
| 243 | 分段标注 | 白字绿描边 "X.Xkm · X分钟" | 04-28 |
| 244 | 图层顺序 | 路线图层在 3D 建筑层之上 | 04-28 |
| 245 | 容错处理 | 不可用回退直线,标注"—" | 04-28 |
锁定/解锁与导航 (6条)
| 编号 | 名称 | 规则内容 | 日期 |
| 246 | 默认锁定 | 加载后锁定模式 | 04-28 |
| 247 | 锁定模式 | 点击节点可添加到路线 | 04-28 |
| 248 | 解锁模式 | 拖拽校准(预留),黄色 #fff8e0 | 04-28 |
| 249 | 控制按钮 | 右下角 right:12px bottom:50px,🔒锁定 + 🗺全景 | 04-29 |
| 250 | 导航栏 | 底部 #222 背景,灰色链接 hover 金色 #f0c040 | 04-28 |
| 251 | 导航链接 | "← 用户故事列表" + "← 返回首页" | 04-28 |
Toast 与版本标记 (4条)
| 编号 | 名称 | 规则内容 | 日期 |
| 252 | Toast 样式 | 正中 #333 背景 白色文字 圆角10px | 04-28 |
| 253 | Toast 行为 | 2秒消失 pointer-events:none | 04-28 |
| 254 | 版本标记位置 | 左下角 z-index 9999 | 04-28 |
| 255 | 版本标记样式 | 半透明黑底 绿色等宽 "vXX · 变更说明" | 04-28 |
功能清单面板 (6条)
| 编号 | 名称 | 规则内容 | 日期 |
| 256 | 面板位置 | 展开路线卡片时显示,left:4px top:80px(与路线卡片上缘平齐),宽 18vw,与路线卡片等高 | 04-29 |
| 257 | 面板样式 | 白底,右侧圆角 8px,阴影,左侧紧贴地图边缘留一条细缝(4px) | 04-29 |
| 258 | 数据来源 | 从 function-data.js 中 FUNC_RECORDS 加载,筛选有功能名称的记录 | 04-29 |
| 259 | 三级展开 | 用户旅程(一级,金色)→ 过程任务(二级,灰色)→ 功能名称(三级,可拖拽)。点击展开/折叠,带▶旋转动画 | 04-29 |
| 260 | 拖拽交互 | 功能名称 draggable,拖拽时半透明(opacity 0.4),放置到功能卡片时高亮边框 #c8943c | 04-29 |
| 261 | 联动显隐 | 展开路线卡片时显示,收起时隐藏 | 04-29 |
用户故事列表页 (5条)
| 编号 | 名称 | 规则内容 | 日期 |
| 262 | 列表页样式 | 背景 #f5f0e8 最大宽 800px 居中 | 04-28 |
| 263 | 列表页标题 | "📖 用户故事" 24px #4a4a4a | 04-28 |
| 264 | 故事卡片 | 白底圆角10px hover右移+阴影 | 04-28 |
| 265 | 禁用卡片 | opacity 0.45 不可点击 "敬请期待" | 04-28 |
| 266 | 文件命名 | story-<英文名>.html | 04-28 |