Files
contentm_agent/docs/pm/mcn-shortvideo-agent/ui/DESIGN.md
T

65 KiB
Raw Blame History

MCN 短视频整合营销工作台 · DESIGN.md(V4 · 八条口径落进②段两份与原型)

项目 slug:mcn-shortvideo-agent | ③段(界面交互)第 3a 子步产出 本版是**第 6 步(把用户 2026-10-09~10-10 的八条口径落进②段两份与原型)**的绑定规范。⛔ 不是给 V3 打补丁,是按②段 V4 重出一版。 落点:执行会话/目标-把八条已定口径落进②段两份与原型-fa6e07/ui/DESIGN.md(目标目录内;⛔ 未写域外 docs/pm/)。 判据源:product-planning/references/stage-delivery/SKILL.md(含 §供给 / Gate-1)+ references/execution-runbook.md §2 + references/layouts-tooling.md §5.5。 V4 的口径原文:执行会话/目标-征询GPT对当前七页结构与操作路径的建议-b49e02/用户口径裁决-5条回应.md(2026-10-09)+ 执行会话/目标-分析social-auto-upload项目,用于投放页与发布对象的判断-0ec0a07/用户口径追加-账号是两个概念.md(2026-10-10)。 上一版原型只读对照:执行会话/目标-导航改七项一层并重排功能归属(P8 并入复盘)-fc471a/ui/(V3 原型与 DESIGN.md)。本版沿用其令牌与组件,⛔ 不覆盖 V3 文件。


〇、开工声明(声明制,四字段)

字段 内容
当前段与子步 ③段 / 3a 视觉规范(D0 锚需求 → D1 定调 → Gate-1)→ 3b 原型
主干与挡位 供给=oil-ui-pro(基础层)+ 叠加层(本段自带样式库 design-system-tiaoyue 定调与令牌 + 本段自有判据)。挡位 标准
依据文件 stage-delivery/SKILL.md §供给 + §3a/§3b;execution-runbook.md §2;layouts-tooling.md §0/§1/§5.5;②段 2a-产品功能-新版.md/2b-界面布局-新版.md
产出落点 ui/DESIGN.md(本份)、ui/mcn-workbench.html(3b)、ui/_tools/、ui/_gate_shots/

供给核对(runbook §2.0 · 步 −1,每轮必做)

步 动作 结果
−1 确认 §供给 三处在位 ✅ references/layouts-tooling.md、references/execution-runbook.md 都在位;定调与令牌档在位 1 套 assets/design-systems/design-system-tiaoyue/
−1b 套名与上一版记录比对 ✅ 上一版 DESIGN.md 选定 design-system-tiaoyue,本版沿用同一套(用户 2026-10-07 令「每次设计只选一套」)⇒ 不触发变更清单
−1c 可选档是否动用 ⛔ 未动用 assets/open-design/(随后续口径可选)。它独有的四项(反 AI 味 / 无障碍 / 表单校验 / 动效纪律)本次无逐项数值供给来源 —— 见 §五 缺口 1,⛔ 没有凭感觉编一套顶上

V4 本轮改了什么(六条 · 骨架与令牌一格未动)

  1. P2 选题库:分组控件加一层类型维度(选题/对标线索/评论洞察/数据异动/灵感),与进度(待做/在写/已用)正交;选题行多一列「类型」。⛔ 不新增「待整理」状态。
  2. P2 去掉「灵感速记」板块(骨架 5 → 4 块):随手记本来就是全局可达的框架层入口(顶栏 G-06),写进来的东西落选题库。🔴 顺带订正 V3 遗留的一处文档打架(见 §五 缺口 8)。
  3. P3 资产库:页面职责由「存拆解结果」改成「统一管理」;入库不限页(P2 拆解结果可就地入库)。骨架仍 4 块。
  4. P4 版本管理:展开单位由「账号 × 平台」改成「平台账号」(一个平台账号一版)。
  5. P5 目标选择改成两级:先选内容账号,再勾它下面的平台账号(渠道);数据摘要区由「目标账号数/目标平台数」改成「目标渠道数/覆盖平台数」;各版本块写死「一个平台账号一版(一版一路)」。
  6. P6:画像六维收成画像五维(去掉「平台」这一维),新增「平台账号」板块(骨架 4 → 5 块):平台账号=发布渠道,每条带「平台 + 登录态 + 授权状态」,是内容账号下的子项(1 → N)。🔴 页面数、导航、流转 20 条都不动;业务板块总数仍是 39(P2 −1、P6 +1)。

页型判定(硬前置,SKILL.md §3b)

全部 7 页都是工具型页面。 依据:用户是天天来干活的 MCN 团队,每页都有人在里面完成一件事(决定先处理哪件 / 挑一条选题 / 存一条拆解 / 推一个环节 / 确认一次发布 / 改一份画像 / 写一条归因并核一条记录);没有一页是让人「看一眼就下决心」。 ⇒ 本份零 .eyebrow、零 .lead、零 .hero,且 body.is-marketing 之外的类名一个不设。与②段 2b §二「本产品是工具型页面,不是营销页」一致。


一、设计契约(十二个字段)

1.1 项目级字段

① 主用户:MCN 机构的内容负责人(矩阵级决策)、编导与文案(选题与创作)、剪辑与投放(版本与发布)。依据①段 1c-用户画像.md(零访谈画像 —— 局限已登记在旧版 §四缺口 4,本版沿用)。

② 主操作:逐页唯一,照②段 2b §五 各页「主操作」原样落,本段未改一个(逐页见 1.2)。

③ 必要内容(核对面):②段信息分档表逐页核对,见 1.2。只做落位核对(主屏常驻=零点击可见,可点入=一次点击可达),⛔ 不以它为由增删档位。

④ 重复项的信息量:四个主列表(账号矩阵 / 对标内容 / 资产条目 / 发布记录)是满宽表格,每行除「主标识 + 动作」外都带次级信息,逐页列在 1.2。

⑤ 结构骨架(翻译面):

  • 骨架档:主区 + 侧区。理由:一级导航覆盖 7 个目的地、宽屏 ≥1024;选定套的外壳本身就是「侧栏 + 主区」的应用型外壳,两者同构。
  • 导航层级:一层七项(2026-10-09 按用户口径与 2b V3 §三 重做)。V2 做的是「3 个业务组 + 1 个跨组入口」,本版把层级整个压平:
    • 七项按用户给的先后:首页(P1)/选题(P2)/创作(P4)/投放(P5)/复盘(P7)/账号(P6)/资产(P3,排最后)。
    • ⛔ 零组标、⛔ 零跨组分隔线、⛔ 零第二层。V2 的三个组标(找选题/走创作流水线/看矩阵复盘)与跨组线连同对应 CSS 一起删掉。
    • 项名逐字取用户口径(首页/选题/创作/投放/复盘/账号/资产);页面自己的名字不变(矩阵总览/选题雷达/资产库/创作台/发布中心/账号画像/复盘台)。最要紧的一处:导航叫「投放」,页面仍叫「发布中心」 —— 这一页只管内容发布与排期,⛔ 没有扩功能。
    • 「资产排最后」是硬约束(用户明说);其余六项照用户给的先后。
    • ⚠️ V2 遗留的「组名与短名怎么对应」这项待确认随之作废(组没了);新冒出一个问号:七项是否要另配一套两字短名 —— 现已按用户口径直接用全名,⛔ 本段没替用户起短名。
  • 侧栏形态:药丸浮栏,宽 64px(2026-10-10 用户令「左侧导航改回去」;V5 由 128px 改回设计供给的基准形态,相对 V4 是一处显式改动):
    • 依据:design-system-tiaoyue/SKILL.md 行 95 逐字「左侧栏(app-sidebar,宽 w-16)」⇒ w-16 = 64px;第八轮实测值(栏 64/内衬 3/圆角 100/项 56×78/字 12px-500-行高 16)。
    • V3 那条「按最长项名 2 字 + 徽章 + 余量」的推理不假,但它把栏做成了横排;用户令要的是基准形态 ⇒ 128px 与「图标在左、名字在右」一起推翻。
    • 64px 栏里放不下横排 ⇒ 导航项改成竖排:图标在上(24px)、名字在下(两字常驻,说明走悬停提示)。项 56×78、内衬 3px、圆角 100px(药丸)。
    • 保住选定套的圆角浮栏性格(淡底、1px 淡描边、四周留白、随内容高、在列内垂直居中);⛔ 没有引入第二套配色或第二套圆角 —— 令牌全部来自 design-system-tiaoyue。
    • 品牌名在 64px 里放不下(顶栏已写全称)⇒ 侧栏只留标记并居中,.sidebar .brand-name 隐藏。
    • ⚠️ 几何不在样式库内(§供给 明写「自带样式库实测只到调色板级」)⇒ 栏宽是③段的判断,不是从包里抄的;取值按上条的基准实测值。改一处 --nav-w 即可推翻(见 §七 修订记录 V5)。
  • 每页收口形态(七页统一):页面公共框架(Page Shell) → 业务板块若干(从上到下)。⛔ 本版继续不要上一版那层「功能入口卡」(.sect-nav / .data-cards / .data-card):2b §一第 2 条与 §九第 2 条明令撤掉,它的文字本来就是流转表的副本。跨页入口只留在两处:侧栏(七页一次点击可达)与业务板块内的行级动作(流转表就落在那里)。
  • 密度目标:密集(8–32)。理由:7 页都是一屏要放多行记录的工具型页面,2b P1 要求矩阵与今日待办同时常驻,宽松档放不下。同一页面只取这一档。
  • 块间距 ≥ 块内间距的 2 倍:块间 32px、块内 8/12/16px ⇒ 比值 2.0–4.0 ✅。

⑥ 交互清单:见 §二 表 2.4(逐元素四列)。它是唯一的交互真相源 —— 3b 实测、自检、变异对照都引这一张,⛔ 不另建一份。

⑦ 状态覆盖六项:见 1.3,逐页逐项有结论。

⑧ 组件来源:优先沿用选定套既有组件族,其次自创。⛔ 未参考 teamOnly: true 的族。清单见 §二 表 2.5。

⑨ 响应式行为:

断点 布局怎么变
>1024 侧栏 64px 药丸浮栏常驻(⛔ 宽度不随断点变)+ 主区 minmax(0,1fr)
1001–1024 侧栏仍 64px;两栏分栏与满宽表格都不变;顶栏间距收到 8px;顶栏不折行
901–1000 同上,另:统计条最小宽 132 → 96px(4 格不折行)
821–900 上述继续;另:两栏分栏 .grid-main-side → 单列(右栏被挤到 300px 以下就会折行)
641–820 上述继续;另:统计条、表格列宽由 auto 收窄,主区内衬 32 → 16px
≤640 侧栏变成页头下方一条可横向滚动的标签条(⛔ 不隐藏);导航项在这一档还原成横排小标签(图标+名字一行,⛔ 不竖排)、项高 36px;主区单列

滚动容器:整页不滚、只有主区 .view 滚。高度链三件套必须齐:.app{height:100vh;grid-template-rows:minmax(0,1fr)} + .main{min-height:0;overflow:hidden} + .view{flex:1 1 auto;min-height:0;overflow:auto}。少写一处 ⇒ 整页「滚不动」而不是「不滚」(上一版踩过并留档)。判滚动四个容器都要核:window/html/body/.view。

⑩ 明确拒绝的模式(≥3 条,每条可判定):

1、⛔ 不出现「眉标/大标题/灰色副标题」三段式标题区(判据:DOM 里 .eyebrow / .lead / .hero 三个类名出现次数为 0)。 2、⛔ 不用围合边框假装分组(判据:非控件元素里 border + border-radius 同时出现在同一「分组」用途上 ≥3 次即判不过;结构性容器靠底色差 + 多层阴影分层)。 3、⛔ 不给列表行套框、不给状态上整行底色(判据:行间只用 border-top;状态只出现在 tag 内)。 4、⛔ 不做逐区块入场编排(判据:@keyframes 至多 1 处;过渡只用 transition,⛔ 不用 linear / ease)。 5、⛔ 不可点的东西不长成可点样子(判据:页面里所有 button / [role=button] / .btn* 集合与 §二 表 2.4 的元素列做双向差集,差集为空)。 6、⛔ 不用内联样式表达「选中态」或覆盖「字号」(判据:七页里 [style*=border-color]、[style*=color]、[style*=font-size] 的出现次数都为 0)。选中态全站只有一套画法:.is-on / .is-active(整块浅紫底 + --accent-text + 字重 600);字号只许走 --fs-* 七档。 7、⛔ 页面公共框架不许进板块计数、不许参与功能归属、不许占对象冻结计数(判据:.block 数逐页等于 FROZEN;.page-shell 自身不带 .block / 不带 .block-head h2)。 8、⛔ 辅助入口区不许把流转表再写一遍(判据:每页 .shell-aux 里的 [data-page] 元素 ≤1 个)。

⑪ 验收标准(可观察可判定):

  • 七页各自可达(#/p/p1 … #/p/p7 直接打开都渲染出该页内容,不是空壳)。
  • 表 2.4 每一行的「触发 → 反馈」都真发生过,无死按钮。
  • 六态在每一页都能被看到(正常 / 加载 / 空 / 错误 / 禁用 / 无权限)。
  • 宽视口 1440×900 与窄视口各留截图,横向溢出为 0。
  • 页面上每个可点元素都能在表 2.4 里查到;表里没有的可点元素为 0。

⑫ 明确拒绝的「编造」:界面上不出现「示例 / 示意图 / 未接入 / 待核实」这类制作说明;也不把机器结论说成人已认可(如把「疑似原因」写成「已确认原因」)。

1.2 逐页字段(页面职责 / 主操作 / 必要内容落位 / 重复项信息量)

页 页面职责 主操作(唯一) 必要内容的落位核对 重复项的次级信息
P1 矩阵总览 让内容负责人在 1 分钟内决定今天先处理哪一件 挑一件待办并进到那一件事 账号矩阵、今日待处理=零点击可见;异常值、本月最好、全局检索=一次点击可达 账号行=账号名 + 今日该发/已发/效果 + 异动标
P2 选题雷达 让编导在 3 分钟内找到一条能做的选题 把一条选题推进下一步 对标监控概览、对标内容、选题库=零点击可见;评论区洞察=一次点击可达;随手记=全局可达(框架层,⛔ 不占板块) 对标行=标题 + 账号 + 倍数 + 时间;选题行=选题 + 类型 + 来源 + 状态
P3 资产库 让编导在 2 分钟内把资产条目管到位、或引用一条去创作(⛔ 入库不限页,本页是统一管理的地方) 管好一条 / 引用一条 分区切换、资产条目=零点击可见;单条详情、引用入口=一次点击可达 条目行=条目摘要 + 出处 + 草稿/已入库 + 采集时间
P4 创作台 让编导在一条内容上把当前环节推到下一环节 推进到下一环节 创作流程、当前环节工作区、AI 产出与采纳、当前内容上下文=零点击可见;资产引用、版本管理、录制卡片与画板=一次点击可达 版本行=vN + 语义名 + 时间 + 当前标记
P5 发布中心 让投放确认发出这一批版本 确认发布 检查结果、各版本与逐版编辑、确认发布=零点击可见;目标选择、发布记录=一次点击可达 版本行=内容账号·平台账号 + 字数 + 检查结论(一版一路)
P6 账号画像 让内容负责人改好并保存一个内容账号的画像,并管好它下面的平台账号(渠道) 保存这一份画像 画像五维、账号列表=零点击可见;平台账号、记忆条目、关联内容=一次点击可达 账号行=账号名 + 平台账号数 + 内容数;平台账号行=平台 + 登录态 + 授权状态;记忆行=日期 + 来源 + 一句话
P7 复盘台 让内容负责人确认归因并写回这个账号,顺带核销一条发布记录 确认归因并回写 / 核销一条记录 表现数据、归因结论、确认与改判、待复盘项、回写目标提示、发布记录、对账核对区=零点击可见;历史复盘、单条溯源、商单与收支=一次点击可达 待复盘行=内容 + 发布账号 + 发布日 + 数据到没到;记录行=内容 + 确认人 + 时间 + 版本 + 状态

1.3 状态覆盖六项(逐页给结论)

判据源:SKILL.md 铁律 2 的六态清单。⚠️ 逐项数值判据出自供给可选档 craft/state-coverage.md,本轮未动用可选档 ⇒ 该项本次无供给来源,故只给「有没有、长什么样」的结论,不编阈值。

页 loading empty error success disabled 无权限
P1 ✅ 矩阵数据加载中(骨架行) ✅ 还没接入账号(给「去账号画像建第一个账号」) ✅ 数据源不可用(显时间戳 + 重试) ✅ 默认态 ✅ 无可处理项时待办区禁用并说明 ✅ 非管理员看利润字段时的遮罩说明
P2 ✅ 拉取对标中 ✅ 监控名单为空(给「录一个对标号」) ✅ 拉取失败(退路=手工录入) ✅ 默认态 ✅ 未选账号时「转入创作」禁用 ✅ —(不适用:本页对所有角色开放)
P3 ✅ 条目加载中 ✅ 该分区还没有条目(给「去拆解一条」) ✅ 读取失败(重试) ✅ 默认态 ✅ 无出处条目「入库」禁用(门禁) ✅ —(不适用)
P4 ✅ 环节生成中 ✅ 该环节还没产出(给「开始这一步」) ✅ 本步失败(保留已产出 + 重试该步) ✅ 默认态 ✅ 文案与封面缺一,「进检查态」禁用(封面缺只提示;F6 守卫) ✅ —(不适用)
P5 ✅ 检查中 ✅ 还没有可发布的版本(回 P4) ✅ 检查自身失败 ⇒ 按不过处理(fail-closed) ✅ 无硬拦、可发 ✅ 有硬拦项时「确认发布」禁用 ✅ 未授权账号的版本标「无发布权限」并禁用该版
P6 ✅ 画像加载中 ✅ 还没有画像(给「建画像」) ✅ 保存失败(保留编辑内容) ✅ 保存成功提示 ✅ 只读角色时字段禁用 ✅ 非本人负责账号:可看不可改
P7 ✅ 读数据中 ✅ 还没有可复盘的内容 ✅ 数据读不到 ⇒ 转手工录入表现 ✅ 回写成功提示 ✅ 未确认归因(confirmed 未置)时「回写」禁用(F10 前置开关) ✅ —(不适用)
P7 后半(原 P8) ✅ 记录加载中 ✅ 还没有发布记录 ✅ 读取失败(重试) ✅ 核销成功 ✅ 未选中记录时「核销」禁用 ✅ 利润列对非管理员隐藏(列级遮罩)

口径:disabled 与 无权限 是两件事 —— 前者是「当前条件不满足」(自己能解开),后者是「角色不允许」(自己解不开)。界面文案分开写,⛔ 不拿「不可用」一句话糊过去。 🔴 V4 追加:P6 的「平台账号」块逐行给「登录态 + 授权状态」(状态标),未登录/未授权时行内动作改成「去登录」。它落在六态的 disabled 里(条件未满足、自己能解开),⛔ 不新造第七种态。


二、令牌表

2.1 三层结构(primitive → semantic → component)

组件层只引语义层,语义层只引 primitive;⛔ 无孤立 token。

2.2 色值(来源=选定套 design-system-tiaoyue 亮色基线 · 9 页 clipper 实测)

语义 token 值 用途
--paper #faf9f5 页面底(暖白纸感)
--surface #ffffff 面板 / 卡片底
--surface-soft #f7f6f1 次级面(表头、只读块、侧栏组标底)
--ink #1a1a18 主文字
--ink-mute #57564f 次级文字
--ink-faint #8a887f 三级文字 / 占位 / 组标(⛔ 只用于非正文)
--line #e7e5dc 分隔线(行间 border-top)
--line-soft #efeee7 更弱的分隔(块内)
--accent #9E4CFF 主强调色(品牌紫)
--accent-text #963dff accent 当文字时用这一档
--on-accent #FFFFFF 主色上的文字
--ok #3d7a4f 成功态
--err #b4453a 错误态
--warn #8a5a00 提醒 / 异常值 / 软劝。本项目追加:选定套亮色基线没有 warn 档,而②段 P5 要求「硬的拦住、软的只提醒」要有两种可见区分 ⇒ 新增一档并登记实测对比度

强调色允许位置:① 主按钮填充底;② 侧栏当前项与分段控件选中项的整块浅底;③ 链接文字(用 --accent-text);④ 焦点环。⛔ 不允许出现在页面大背景、卡片底、图标填充(除主按钮内图标)、任何渐变。全屏面积 ≤5%。

禁止:⛔ 无紫→粉渐变;⛔ 无装饰性发光;⛔ 状态色只用红/绿/黄三系,不做装饰。

2.3 几何 · 字体 · 间距 · 字阶 · 高度层级 · 脚手架

项 值 来源 / 说明
字体 "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "Noto Sans SC", sans-serif 选定套实测:源站 @font-face 为 0 条,走系统字体栈
标题字体(展示体) "Songti SC", "Noto Serif SC", "Source Han Serif SC", "SimSun", Georgia, serif(正文仍走黑体栈);字重 ≤600 沿用上一版方案 A:宋体标题 + 黑体正文=两族对照,符合「字族 ≤2–3」。⛔ 未用 Inter / Roboto / system-ui 关键字
等宽数字 font-variant-numeric: tabular-nums 所有数字列,防刷新抖动
圆角 大容器 24px/面板 16px/行与小件 14px/输入框 9px/按钮 26px(药丸) 全部取自选定套
间距 · 主刻度 4 / 8 / 16 / 24 / 32 / 64 供布局。块间用 32,块内 8/12/16
间距 · 微网格 2 / 4 / 6 / 8 / 12 仅供按钮内衬、徽章内衬、图标间隙
块间距 / 块内间距 32 / 8–16 ⇒ 比值 2.0–4.0 判据要求 ≥2 ✅
字阶定值表(七档) --fs-12 12 / --fs-14 14 / --fs-16 16 / --fs-18 18 / --fs-20 20 / --fs-24 24 / --fs-30 30 相邻差 2/2/2/2/4/6 全部 ≥2 ✅;每档只一个定值
高度层级(每层多层叠层) L1(行/内嵌):0 1px 1px rgba(26,26,24,.03), 0 2px 6px -2px rgba(26,26,24,.06)
L2(面板):0 1px 2px rgba(26,26,24,.04), 0 8px 20px -12px rgba(26,26,24,.14), 0 18px 40px -18px rgba(26,26,24,.10)
L3(浮层):0 2px 4px rgba(26,26,24,.05), 0 14px 32px -12px rgba(26,26,24,.18), 0 32px 64px -24px rgba(26,26,24,.16)
每层 ≥2 层叠层 ✅
布局脚手架 侧栏 64px 药丸浮栏(随内容高、列内垂直居中)+ 主区 minmax(0,1fr);主数据块走满宽表格(.ds-table.tbl-dense);两栏分栏 .grid-main-side 宽比 1.35fr : .9fr 骨架档=主区+侧区,已落到具体列宽
容器与对齐锚点 主区左右内衬 32px;表格与块标题左锚点同一条线;数字列右对齐且右锚点对齐块右内衬 判据要求「对齐锚点」写明
浮层 居中面板,宽 min(560px, calc(100vw - 32px)),内衬 24px;只有一个可见关闭出口(右上 ×);遮罩与 Esc 也可关,但不计为可见出口 满足 Gate-3「可见关闭出口唯一」

2.4 交互清单(唯一交互真相源 · 四列)

通用规则(适用于下面所有浮层):每个浮层只有一个可见关闭出口(右上 ×,ID X-close);遮罩点击(X-mask)与 Esc 也能关,但不视为可见出口;关闭后焦点回到触发它的那个按钮,Tab 只在层内循环。下表不逐浮层重复这三条。

ID 元素 触发 反馈 何时不可点
G-05 侧栏七个功能项(一层七项,一项一页;⛔ 无组标、⛔ 无第二层) 点击 切到该页(hash 变、主区重绘);当前项转整块浅紫底 + --accent-text + 600 从不可点
G-06 顶栏「随手记」 点击 打开随手记浮层,焦点进输入框 从不可点
G-08 两处「假设」徽章(P1 页头 / P7「商单与收支」块头) 点击 打开假设浮层(逐条给复核人 / 时机 / 落点) 从不可点
X-close 各浮层右上 × 点击 关闭浮层;焦点回触发它的按钮 从不可点
X-mask 浮层遮罩(层外空白区) 点击 关闭浮层;焦点回触发它的按钮 没有浮层时不渲染
SP-01…SP-07 各页页面标题行右侧的 icon 按钮(页面级动作:刷新本页数据;⛔ 不另起一行) 点击 提示「已刷新本页数据」;不改数据 从不可点
STATE-NORMAL 状态面板 ·「回到正常内容」 点击 该页回 ok 态,主操作恢复 仅在非 ok 态出现
STATE-RETRY 出错态 ·「重试一次」 点击 提示已重试(示意);不改数据 仅在 error 态出现
STATE-GO 空态 ·「去〈某页〉」 点击 跳到该页;面板关 仅在 empty 态且该页定义了去处时出现
R-01 随手记浮层 · 输入框 输入 内容非空时「保存」由禁用转可用 从不可点(可输入)
R-02 随手记浮层 · 保存 点击 写入选题库「待做」;提示 1.5s 后消失;浮层关闭 输入为空时 :disabled
R-03 随手记浮层 · 取消 点击 关闭,不写入;焦点回触发按钮 从不可点
A-01 假设浮层 · 两处假设条目 展示 只读,逐条给复核人 / 时机 / 落点 不适用(只读,非控件)
P1-01 今日待处理项(每条) 点击 跳到该待办所属的页(选题类→P2、在写→P4、待审→P5、待复盘→P7、待核销→P7 的记录区) 从不可点
P1-02 账号矩阵行名 点击 跳到 P6 并选中该账号(传 accountId) 从不可点
P1-03 账号矩阵行 ·「看复盘」 点击 跳到 P7 并选中该账号的待复盘内容(传 accountId) 该账号没有可复盘内容时禁用
P1-04 异常值提示条目 点击 跳到 P2 并带 filter=异常值 定位(传 benchmarkId) 无异常值时整块显示空态
P1-05 本月最好的一条 点击 跳到 P7 的该条复盘 无数据时禁用
P1-06 全局检索 · 输入框 输入 结果列表按关键字过滤;无结果显示空态行 从不可点(可输入)
P1-07 全局检索 · 结果项 点击 跳到该结果所属的页;关键字清空 无结果时不渲染可点项
P2-01 监控概览 ·「低粉爆款」数 点击 筛选对标内容列表(只看爆款) 数为 0 时禁用
P2-02 监控概览 ·「异常值」数 点击 筛选对标内容列表(只看异常) 数为 0 时禁用
P2-03 对标内容行 ·「发起拆解」 点击 跳到 P3 并带 benchmarkContentId(预填原文与出处) 从不可点
P2-04 评论区洞察 · 展开/收起 点击 展开子区并开始抓取(显示抓取中) 从不可点
P2-05 评论区洞察 ·「抓取评论」 点击 进入抓取中 → 出候选选题列表 抓取中时禁用
P2-06 候选选题 ·「采纳」 点击 该条进选题库「待做」;候选行标为已采纳 该条已采纳时禁用
P2-07 候选选题 ·「忽略」 点击 候选行标为已忽略(可恢复) 该条已忽略时禁用
P2-08 选题库 · 进度 tab(待做/在写/已用) 点击 列表切换成该进度组 从不可点
P2-09 选题行 ·「转入创作」 点击 建/切当前 Content 并跳到 P4;选题转「在写」(流转 8) 未选账号时禁用(行内说明)
P2-10 选题行 ·「拆解」 点击 跳到 P3 并把该选题当素材 从不可点
P2-12 选题库 · 类型 tab(全部/选题/对标线索/评论洞察/数据异动/灵感) 点击 列表按该类型过滤(与进度维度正交,两个维度的筛选同时生效) 从不可点
P2-AUX 辅助入口区 ·「开始创作」 点击 跳到 P4(不带条目,落在当前内容上) 从不可点
P3-01 分区切换 tab(角度/结构/开场白/标题) 点击 条目列表换成该分区 从不可点
P3-02 条目行 点击 右区显示单条详情(原文 / 出处 / 草稿标记) 从不可点
P3-03 单条详情 ·「入库」 点击 无出处条目被门禁挡并说明原因;有出处的转「已入库」 无出处或原文缺失时禁用(门禁)
P3-04 引用入口 ·「引用到创作台」 点击 跳到 P4 并把该条目加进资产引用区(流转 9) 从不可点
P4-01 创作流程 · 七个环节(逐项) 点击 切到该环节;只许回退到已完成的环节 未到达的后续环节禁用
P4-02 当前环节工作区 · 内容输入框 输入 「开始这一步」由禁用转可用 从不可点(可输入)
P4-03 当前环节工作区 ·「开始这一步」 点击 生成中 → 产出写进「AI 产出与采纳」(⛔ 不进正文) 输入为空时禁用
P4-04 资产引用 ·「从资产库拿一条」 点击 展开选择器;选中后收进引用区并显示来源 资产库为空时禁用并说明
P4-05 资产引用 ·「移除引用」 点击 从引用区移除该条 引用区为空时不渲染
P4-06 「推进到下一环节」 点击 当前环节 +1;流程与工作区跟着变 文案与封面缺一、进检查态时禁用(封面缺只提示;F6 守卫)
P4-07 AI 产出与采纳 ·「采纳」 点击 机器产出并入本环节正文 无未裁决产出时禁用
P4-08 AI 产出与采纳 ·「驳回」 点击 正文不变;产出标为已驳回 无未裁决产出时禁用
P4-09 AI 产出与采纳 ·「改后再用」 点击 保留人的版本;产出标为改后再用 无未裁决产出时禁用
P4-10 AI 产出与采纳 ·「中断生成」 点击 停掉本步生成 仅在生成中出现
P4-11 版本管理 ·「按平台账号展开」 点击 母版展开出多版本(每个版本绑一个平台账号,一个平台账号一版,F7) 未到成稿态时禁用
P4-12 版本管理 · 版本行「切为当前版」 点击 该版标为当前版;当前内容上下文的版本号跟着变(F8) 该版已是当前版时禁用
P4-13 录制卡片与画板 ·「生成卡片」 点击 成稿态生成一张卡片(F14) 未到成稿态时禁用
P4-14 录制卡片与画板 ·「同步到画板」 点击 卡片落到画板,可打开 还没有卡片时禁用
P4-AUX 辅助入口区 ·「查账号口径」 点击 跳到 P6 并选中当前账号(流转 11) 从不可点
PICK-ASSET 资产选择器 · 单条 点击 收进引用区并显示来源;浮层关 已引用过的不渲染可点项
P5-01 目标选择 · 展开/收起 点击 展开两级目标选择(内容账号 → 它下面的平台账号) 从不可点
P5-02 目标选择 · 内容账号项 点击 勾选/取消该内容账号;连它下面的平台账号(渠道)一起增删,版本列表跟着变 从不可点
P5-03 目标选择 · 平台账号项(渠道) 点击 勾选/取消一个平台账号;版本列表跟着增删一版(一版一路) 从不可点
P5-04 各版本 · 版本 tab(逐版) 点击 右区换成该版内容 从不可点
P5-05 版本内容编辑框 输入 「保存本版」由禁用转可用;标为「已改」 从不可点(可输入)
P5-06 版本内容 ·「保存本版」 点击 该版内容更新;检查结果跟着重算(回到未检) 无改动时禁用
P5-07 检查结果 ·「复检」 点击 检查中 → 出结论(硬拦 / 软劝 / 通过) 检查中时禁用
P5-08 「确认发布」 点击 打开二次确认浮层 有硬拦项时禁用;无版本时禁用
P5-09 二次确认 ·「确认发出」 点击 写发布记录(复盘页的记录区出现一条);提示成功(流转 14) 从不可点
P5-10 二次确认 ·「取消」 点击 关闭浮层,不发;焦点回触发按钮 从不可点
P5-11 发布记录 · 记录行 点击 跳到 P7 并定位该记录 从不可点
P6-01 账号列表项 点击 切换右区画像 从不可点
P6-02 画像五维字段(定位/风格/受众/偏好与红线 + 长期记忆,共 5 个输入) 输入 「保存画像」由禁用转可用 非本人负责账号时禁用(改由角色判定)
P6-03 「保存画像」 点击 保存成功提示;未保存时离开给提示 无改动时禁用
P6-04 记忆条目 · 展开/收起 点击 展开记忆列表(只追加,不可编辑) 从不可点
P6-05 关联内容行 点击 跳到 P4 的该条内容 无关联内容时整块空态
P6-06 平台账号行 ·「去登录/重新授权」 点击 该行登录态与授权状态一起转「已登录 · 已授权」 从不可点
P6-07 平台账号 ·「加一个平台账号」 点击 该内容账号下多一个平台账号,初始「未登录 · 未授权」 从不可点
P7-01 待复盘项 点击 右区换成该条的表现数据 从不可点
P7-02 表现数据 ·「手工录入」 点击 数据读不到时的降级入口,展开输入 数据已读到时不渲染
P7-03 归因结论 · 文本 输入 「采纳这条归因」由禁用转可用 从不可点(可输入)
P7-04 确认与改判 ·「采纳这条归因」 点击 confirmed 置真 ⇒ 「确认归因并回写」转可用(前置开关) 归因为空时禁用
P7-05 确认与改判 ·「驳回」 点击 标为已驳回;回写按钮保持禁用 归因为空时禁用
P7-06 确认与改判 ·「改后再用」 点击 标为改后再用;回写按钮保持禁用 归因为空时禁用
P7-07 回写目标提示 ·「确认归因并回写」 点击 回写到当前账号画像:记忆 +1;显示回写目标(流转 17) 未采纳归因(confirmed 为假)或未选账号时禁用
P7-08 历史复盘 · 展开/收起 点击 展开历史复盘结论 从不可点
P7-09 发布记录行 点击 右区换成该条的对账详情 从不可点
P7-10 单条溯源 · 展开/收起 点击 展开溯源:从记录回到内容与版本 从不可点
P7-11 对账核对区 ·「核销」 点击 二次确认 → 该条标「已核销」 未选记录时禁用;记录未「已发布」时禁用
P7-12 商单与收支 · 展开/收起 点击 展开收支条目(F12 标 P2/Deferred) 从不可点
CHECKOUT-OK 核销二次确认 ·「确认核销」 点击 该条标「已核销」;提示成功;浮层关 从不可点
CHECKOUT-CANCEL 核销二次确认 ·「取消」 点击 关闭浮层,不核销;焦点回触发按钮 从不可点

⚠️ 「可见关闭出口」与「决策型关闭」是两件事:每个浮层的中性关闭出口只有一颗 ×(X-close),恰好 1 个;「取消」这类带决策语义的按钮也能关层,但它不是「找出口」用的,单独登记(R-03 / P5-10 / CHECKOUT-CANCEL)。⛔ 不把两类混成一个数。

表外可点元素必须为 0 —— 自检里有一条逐集合做双向差集的检查(#/selftest 自动跑)。

⚠️ A-01 不是控件:它是假设浮层里的只读展示行,列出来是为了「假设有两处、逐条给复核人/时机/落点」这件事在清单里看得见 ⇒ 不进实现清单(原型里的 IMPL 表),自检也不拿它去点。

⚠️ V1 撤销的 7 个 ID 与 V2 再撤 5 个:V1 撤 G-01…G-04(一级组)/G-07(账号切换器)/G-09(演示开关)/G-11(收起侧栏)。V2 因「功能入口」那一层整体撤销,再撤 card() 相关的 data-page 用法;因「全局检索」从浮层改为 P1 的业务板块,撤掉检索浮层与其 S-01/S-02(改由 P1-06/P1-07 承担)。⛔ 撤销一个 ID 时必须同时把它的 DOM 删掉,否则判据「页面上每个 data-act 都在清单里」会报红。

⚠️ V4 撤 1 个、新增 3 个:V4 因「灵感速记」不再是 P2 的业务板块(随手记本就有全局入口 G-06,那个页内按钮是重复),撤 P2-11;新增 P2-12(选题库的类型维度 tab —— 选题库现在两个正交维度:进度 P2-08 + 类型 P2-12)与 P6-06/P6-07(平台账号的登录授权与新增,对应 P6 新板块)。⛔ 三个新 ID 的 DOM 必须同时在页面上,否则判据「清单里每个 ID 都在页面上出现过」会报红。清单共 90 个 ID(V3 是 88)。

2.5 组件规格(来源:选定套既有组件族)

组件 规格(具体值) 来源
按钮 · 主档 高 40px,内衬 12/20,字号 16px,字重 600,圆角 26px,底 --accent,字 --on-accent 选定套 --btn-*;字号 16 + 600 是必须的(#FFFFFF 压 #9e4cff 只有 4.26:1,须走大字线 3:1)
按钮 · 次档 高 40px,内衬 12/20,字号 14px,字重 500,圆角 26px,底 --surface,描边 1px --line,字 --ink 同族
按钮 · 弱档(文字) 高 32px,内衬 6/12,字号 14px,圆角 26px,无底无描边,字 --accent-text 同族
卡片 · 密卡 内衬 16px,圆角 16px,底 --surface,L1 阴影 同族
卡片 · 宽松卡 内衬 24px,圆角 24px,底 --surface,L2 阴影 同族
输入框 高 36px,内衬 12/10,圆角 9px,字号 14px,底 --surface,描边 1px --line 同族
徽章 / 状态标 高 22px,内衬 2/8,字号 12px,圆角 999px,无描边,底为对应状态色 8% 叠加 同族
侧栏(.sidebar) 药丸浮栏:宽 64px、内衬 3px、圆角 100px、底色 color-mix(in srgb, var(--ink) 5%, transparent)、描边 1px color-mix(in srgb, var(--ink) 12%, transparent);高度随内容、align-self:center 在 64px 列里垂直居中;品牌只留标记并居中(.sidebar .brand-name 隐藏) 形态与宽度取自选定套 .app-sidebar(w-16 ⇒ 64px)+ 第八轮实测值(栏 64/内衬 3/圆角 100);V5 由 128px 改回基准形态(理由见 §1.1 ⑤)
侧栏导航项(.nav-item) 竖排:宽 56px(=栏内容宽)、高 78px、内衬 8/0、圆角 999px、图标在上 24px、名字在下 12px/500/行高 16、图标与名字间距 6px;名字两字常驻(说明走悬停提示 title 与读屏 aria-label);计数徽章悬在项右上角;项间 gap 2px;hover 只换底色(--tfast),⛔ 不移位、⛔ 不加阴影 形态照选定套 nav-item(药丸、只换色);V5 因栏收到 64px 由横排改竖排(实测值:项 56×78、字 12px-500-行高 16)
侧栏当前项(.nav-item.is-active) 整块浅紫底 color-mix(in srgb, var(--accent) 10%, var(--paper)) + 字色 --accent-text + 字重 600(⛔ 不用单侧色条、⛔ 不用描边变黑) 与 §1.1 ⑩ 第 6 条「选中态只有一套画法」一致
页面公共框架(.page-shell / .page-shell-title / .page-shell-stats / .page-shell-aux) 标题区:h1 + 一行说明;本页页面级动作 = 标题行右侧的 icon 按钮(.btn-icon + .shell-refresh,靠 margin-left:auto 右对齐;例:刷新本页数据;⛔ 不另起一行);统计区用 .stat-item(白底 + 1px --line + 圆角 16px + 内衬 12/16,值 20px/600 + tabular-nums,标签 12px --ink-mute);辅助入口区最多一个入口。⛔ 这一层不带 .block / 不带 .block-head h2 落 2b §四:它不算板块数、不参与功能归属、不占冻结计数。V5 撤掉原「操作区」那一行 —— 页面级动作改挂标题行右侧
满宽表格(.ds-table.tbl-dense) 容器 .panel + .table-wrap(overflow-x:auto);表头 12px/600 --ink-mute + 下边框 1px --line;行内衬 4/8、行间 border-top 发丝线、单元格 vertical-align:middle + nowrap 密度契约(一屏 ≥6 行)逼出来的紧凑档
栏内表(.ds-table.tbl-side) 两栏栏内的列表:内衬同上,但 ⛔ 不套 nowrap 同上,只在窄栏里用
行级微按钮(.btn-micro) 高 22px、内衬 0/8、字号 12px、圆角 999px、无底、字色 --accent-text、:disabled 时透明度 .45。⛔ 表格行里不许用 32px 的 .btn-sm 同上
分段控件(.seg / .seg-item) 容器 gap 4px + 可换行;项高 32px、内衬 0/12、圆角 999px、描边 1px --line、白底;选中项 .is-on =整块浅紫底 + --accent-text + 600 + 描边转 --accent 选中态统一
表单字段(.field) 字段块间距由 .field + .field{ margin-top:16px } 出 统一
表格当前行(.cell-name.is-on) 当前行的行名转 --accent-text(选中态在表格里的落法,⛔ 不写内联 color) 统一
两栏分栏(.grid-main-side) 宽比 1.35fr : .9fr;左=上下文/列表,右=产出/动作/详情;主数据块仍满宽。≤900px 落单列 沿用
图标(唯一出口 navSvg(page,size)) viewBox 24 / fill:none / stroke:currentColor / stroke-width:2 / 圆头圆角;尺寸只有两个用法:侧栏 24px、≤640px 的 16px;颜色只有一处 --accent-text(当前项走 currentColor) 沿用

同屏主档按钮 ≤1(多步流程每步 ≤1):P1 无主档、P2/P3/P4/P5/P6/P7 各 1 个 ✅(P7 前后两半各有一个推进动作,但同屏只出当前上下文那一个) 实底底色 ≥2 种:主档 --accent、次档 --surface、状态标(ok/err/warn 三色 8% 叠加)✅


三、两处假设的显式标注(⛔ 不当已确认需求用)

②段 2b §七 标了两处骨架受限(第 1 条 P1 形态 / 第 2 条 P7 第 10 板块「商单与收支」)。本轮尚无用户结论 ⇒ 按②段给的默认读法做,并在本份与原型里显式标注:

# 受影响处 假设内容 本轮默认读法 复核人 复核时机 结论落点
假设 1 P1 的形态 矩阵级视图是否真需要(1a 待复核第 5 条 + A1) 按「需要矩阵级视图」做:P1 = 矩阵总览,5 个板块全在。若复核为「不需要」,P1 降为「单账号今日」,只留第 1、4 板块,矩阵列表下移到账号切换 主会话转用户 ②段收口时一次性过 2b §七 + §五 P1;本轮落 ui/DESIGN.md 本节 + 原型 P1 页头的「假设」徽章
假设 2 P7 后半段第 4 板块「商单与收支」(原 P8 的第 4 板块) 商单对账进不进第一版、收支口径是否内容级(1a 待复核第 6 条 + A3) 按「进第一版但属 P2、可整块缺」做:第 4 板块渲染出来但标「可点入 + 假设」,展开后给一句「本块依赖未复核项」。它前面那 3 块(发布记录/单条溯源/对账核对区)不受影响 主会话转用户 同上 2b §七 + §五 P7;本轮落 ui/DESIGN.md 本节 + 原型 P7 后半段第 4 板块标题行的「假设」徽章

原型的兑现方式:两处各在自己的板块标题同行右侧挂一个「假设」徽章,徽章本身可点(G-08)—— 点开后逐条给出复核人 / 时机 / 落点。⛔ 假设既没有被当已确认需求写死,也没有被编出答案。


四、Gate-1 方向门自检(硬闸,结果写在本份末尾)

逐条结论在 §八(十七行,含本轮现取的实测依据);逐视口表在 §6.1。


五、缺口与证据边界(⛔ 不假装支持)

  1. 反 AI 味 / 无障碍 / 表单校验 / 动效纪律的逐项数值判据本次无供给来源 —— 这四项出自 §供给·工艺数值判据的可选档(assets/open-design/craft/ 13 份),本轮未动用可选档 ⇒ ⛔ 不凭感觉编一套顶上。本段实际应用的是默认档判据:execution-runbook.md §3.3/§3.4 + layouts-tooling.md §5.5。
  2. 暗色主题本轮不做 —— 选定套的暗色与亮色是两套独立基线,规则是「要暗色就整套切」。⇒ 本轮只做亮色基线,⛔ 不与暗色混搭。
  3. --warn 是本项目追加的第 14 个语义色 —— 选定套亮色基线只有 ok/err,无 warn;而②段 P5 要求软硬两种区分。追加值的对比度实测记在 §六。
  4. 1c-用户画像.md 是零访谈画像 —— 界面里凡涉及「角色能看什么」的判据都基于它,不得对外说成基于用户调研。
  5. 3c GPT 参考版本轮不做 —— 派活单明令「⛔ 不许再向外发送本项目内容」(第②棒曾把产品现状发到站外,属红线动作)⇒ 本轮全部输入只看本地文件,⛔ 不上传、不外发、不用站外模型服务。⇒ 3c 的「让外部模型独立出一版」这一步本轮按红线停做,并在收尾明示「未取得参考版 ≠ 已通过」。这是红线优先于流程的处置,不是漏做。
  6. 窄视口实测下限与红档 —— 本轮取证走 CDP 声明式视口(Emulation.setDeviceMetricsOverride),实测到 390×844;逐视口表(§6.1)现含 390×844 一档,⛔ 不写「已测 375」这种没测过的。🔴 V5 整表 16 档全量重跑:不达标由 3 档降到 2 档 —— 只剩 500×844(P1 5 行)与 390×844(P1 2 行);560×900 的 P1 由 5 行升到 6 行、该档转绿(逐视口:不达标 2 / 共 16)。P1 首行顶逐档下移 43~52px(669…822 → 626…779),行数逐档上升(宽屏 7 → 8~9 行,390×844 由 0 → 2 行;P2 由 12 → 14 行、390×844 由 5 → 6 行,也过线)。⇒ 两处改动各自兑现:① 页面级动作不再独立占一行(省掉「按钮 32px + 下边距 12px」)⇒ 首行顶直接下移 ~44px;② 侧栏 128 → 64px ⇒ 主区宽 64px、满宽表格列更宽 ⇒ P2 行数上升。⚠️ 这与 V2/V3「侧栏宽度对首行顶没有影响」不矛盾 —— 那两次只动栏宽(184→128px),这次同时动了「撤掉操作区整行」+ 栏宽两件事,首行顶的变化主要来自前者,⛔ 别把这条读反。是否动窄屏断点,仍待用户裁定。
  7. 规格核对只走本地已测值 —— §六 的实测值全部由 #/selftest 与 _tools/ 现算,⛔ 不目测。上一版留档的两处遗留(500×844 一屏 −1 行、满宽表格与一屏 ≥6 行不可兼得)本轮重测后如实登记,⛔ 不靠改判据过关。
  8. ②段那处内部不一致已订正(V3 登记 → V4 关闭) —— V3 登记过:2b §五 P2 的板块清单把「灵感速记」列为第 5 块,而同页信息分档表把它标成「全局可达(框架层,不占板块)」,两处打架。🔴 V4 按用户口径(选题库容纳「对选题有帮助的任何信息」、随手记仍落选题库)把两处统一:灵感速记不再是板块,P2 由 5 块收成 4 块;现在板块清单与信息分档表一致。骨架总数仍 39(P2 −1、P6 +1)。
  9. 定时发布本轮挂起(⛔ 不进界面) —— 用户口径逐字(2026-10-10 07:56):「后续具体做投放功能的时候在说」。⇒ 本段不写定时发布:⛔ P5 不加「定时设置」块、⛔ 不加状态、⛔ 不改流转。登记在②段 2a §九 第 7 项与 2b §十 第 7 项,真做投放功能时再议。

六、数值取证登记(自检 + 工具实测回填,⛔ 非目测)

本表由 3b 阶段现算回填,数据源:#/selftest(DOM 取值 + 真实像素)+ _tools/ 八个脚本。⛔ 一个数都不许拍脑袋。 Gate-1 方向门的逐条结论 + 实测依据在 §八(全文结尾,⛔ 不在这里再抄一遍)。 此处只放一条 DESIGN.md 独有的登记:逐视口表(自检全文、27 条变异、四条反向变异、八条改动明细见 ui/3b-实测记录.md;两处冲突以 3b-实测记录.md 为准)。

6.1 逐视口表(16 档;契约:一屏可见行数 ≥6 / 900px 高,layouts-tooling.md §1,⛔ 不分档)

P1 顶 = P1「账号矩阵」首行距视口顶的像素。全部走 CDP 声明式视口(只连 9223 已有实例)。

视口 自检 P1 首行顶 行距 P1 行数 P2 行数 顶栏 侧栏 判定
1440×900 80/0 626px 31px 8 14 49px 64×606 ✅
1280×900 80/0 626px 31px 8 14 49px 64×606 ✅
1024×900 80/0 626px 31px 8 14 49px 64×606 ✅
1000×900 80/0 626px 31px 8 14 49px 64×606 ✅
960×900 80/0 626px 31px 8 14 49px 64×606 ✅
920×900 80/0 626px 31px 8 14 49px 64×606 ✅
901×900 80/0 626px 31px 8 14 49px 64×606 ✅
900×900 80/0 618px 31px 9 14 49px 64×606 ✅
840×900 80/0 618px 31px 9 14 49px 64×606 ✅
820×900 80/0 618px 31px 9 14 49px 64×606 ✅
768×900 80/0 618px 31px 9 14 49px 64×606 ✅
700×900 80/0 618px 31px 9 14 49px 64×606 ✅
640×900 80/0 671px 31px 7 12 49px 640×53 横滚标签条 ✅
560×900 80/0 686px 31px 6 12 49px 560×53 横滚标签条 ✅
500×844 79/1 686px 31px 5 ❌ 10 49px 500×53 横滚标签条 ❌
390×844 79/1 779px 31px 2 ❌ 6 49px 390×53 横滚标签条 ❌

绿 14 档 / 红 2 档(run_viewports.py:逐视口:不达标 2 / 共 16)。行距在所有档恒为 31px、行高齐(差 ≤2px)⇒ 红只出在 P1 首行顶太高(626 → 779px)。

🔴 V5 重跑(整表 16 档全量重算,⛔ 不是沿用 V4 的数):run_viewports.py 输出 逐视口:不达标 2 / 共 16。两处改动各自兑现:① 页面级动作不再独立占一行 ⇒ 首行顶逐档下移 43~52px(669…822 → 626…779),宽屏行数 7 → 8~9;② 侧栏 128 → 64px ⇒ 主区宽 64px,满宽表格列变宽,P2 行数由 12 升到 14、560×900 的 P1 由 5 行升到 6 行 ⇒ 该档转绿。

⚠️ 与 V2/V3「侧栏宽度不影响首行顶」不矛盾:那两次只动栏宽(184→128px),这次同时动了「撤掉操作区整行」+ 栏宽两件事;首行顶的变化主要来自前者,⛔ 不要把这条读成「栏宽这回就有影响了」。

⚠️ 390×844 能测 ≠ 达标:它是契约要求留档的第二个视口,帧已出(PNG 尺寸当场比对通过),P1 装下 2 行、P2 6 行(P2 已过线)。

🔴 本轮未动窄屏断点,⛔ 也没有为了让数好看改判据;剩余两档(500×844 / 390×844)仍如实登记,是否动窄屏断点待用户裁定。


七、修订记录

轮次 改了什么 为什么
V2 初版(2026-10-09) ①导航由「一层八项平铺」改回「3 个业务组 + 1 个跨组入口」,侧栏由 64px 药丸浮栏加宽到 184px 带组标圆角浮栏;②新增页面公共框架(Page Shell)一层(标题区/数据摘要区/页面操作区/辅助入口区),并写明三条硬规则(不计板块数、不参与功能归属、不占冻结计数);③撤销「功能入口」那一层(.sect-nav / .data-cards / .data-card 与 card() 全部删除);④骨架按新版 39 块重排:P4 由 5 → 6、P7 由 5 → 6、P2 第 3 块注明可点入子区;⑤对象冻结:每个业务板块带 data-obj;⑥P7「确认与改判」落为回写的前置开关(confirmed 为假时回写禁用);⑦P4 版本管理承担 F7/F8、录制卡片与画板承担 F14;⑧撤销检索浮层(全局检索改为 P1 业务板块) 按新版 2a/2b 重做第 4 步。逐条依据:2b §三/§四/§一第 2 条+§九第 2 条/§九第 8–15 条/§五(39 块);2a §一第 2 条、§三 F7/F8/F14、F10
V2 复核棒(2026-10-09) ①新增 3b-实测记录.md(自检 77 项全文、变异 20/20、三条骨架反向变异、16 档逐视口、四条改动明细);②本份补 §6.1 逐视口表 + §八 Gate-1 加「实测依据」列;③_tools/ 补齐到 8 个脚本(新增 tab_close.py,cap.py/grab_selftest.py 改单标签复用);④_gate_shots/ 补到 17 张视口帧 第 4 步只差「闸门取证 + 台账上报」。⛔ 未重做界面:原型仅动 4 处(自检重入死循环守卫 / 「功能入口层残留」判据改八页逐页查 / hashchange 守卫回退 + 注释 / check_skeleton.py 判据由「互为前缀」收紧为「剥注解后严格相等」),几何与骨架一格未动
V3 本轮(2026-10-09,用户令) ①P8 记录与对账整页并入 P7 复盘台:pageP8 删除、四个板块接进 pageP7、动作 ID 由 P8-01…04 改 P7-09…12、FROZEN 的 p7 由 6 块改 10 块、PAGES 由八页收成七页;②导航压成一层七项(首页/选题/创作/投放/复盘/账号/资产,资产排最后):删 NAV_GROUPS/NAV_CROSS 与 .nav-group/.nav-group-label/.nav-cross 及其 ≤640 规则,改 NAV 数组 + renderNav();③侧栏由 184px 收窄到 128px,侧栏品牌名隐藏(顶栏已写全称),.nav-item 内衬 0/12 → 0/8;④功能 ↔ 板块一一对应做成机检:FN_HOME(功能→归属页)+ FN_MAP(页→板块→功能)+ 自检 5b-3 双向查;⑤自检新增 3a-0 页集合正好七页、3a/3b 重写为「一层七项、零组标、项名与顺序照用户口径」;⑥renderSelftest() 的兜底分支改成吐可读输出(原来崩了就不带 #selftest-out,取证工具全瞎) 按用户口径改导航层级与 P8 归属,并同步 2a/2b V3。逐条依据:2b §〇/§三/§五 P7/§六 第 6·14·18 条/§九;2a §二/§三 F12·F13/§四/§十。⚠️ 侧栏收窄是③段的判断(几何不在样式库内):184px 的唯一理由是容下组名,组名撤掉后该理由消失 ⇒ 可推翻,改一处 --nav-w 即回退
V4 本轮(2026-10-10,八条口径) ①P2 选题库加「类型」维度:第二个 .seg(全部/选题/对标线索/评论洞察/数据异动/灵感)+ 选题行加「类型」列,与「进度」正交(新 ID P2-12;TOPICS 逐条补 type);②P2 删掉「灵感速记」板块(骨架 5 → 4 块),随手记只留全局入口(撤 P2-11);③P3 职责改「统一管理」,页面副标题与分档对齐,入库不限页;④P4 版本管理展开单位由「账号 × 平台」改「平台账号」(按钮文案、说明、P4-11 实现与提示同步);⑤P5 目标选择改两级:数据由 targets:{accounts,platforms} 改 {accounts,channels},新增 PLATS(平台账号=渠道,带登录态/授权状态),摘要区「目标渠道数/覆盖平台数」,各版本块写死「一个平台账号一版(一版一路)」,P5-02/P5-03 改为「内容账号连带渠道一起增删」;⑥P6 画像六维 → 画像五维(删「平台」这一维与 PROFILES 的 平台 字段),新增「平台账号」板块(骨架 4 → 5 块,新 ID P6-06/P6-07),账号行次级信息改成「平台账号数」;⑦FROZEN/OBJ_MAP/FN_MAP 三表同步(总数仍 39);⑧本份 §1.2/§2.4/§五/§6.1/§八/§九 全量同步 按用户 2026-10-09~10-10 的八条口径改②段两份并重做原型。逐条依据:2b §〇/§一/§五 P2·P3·P4·P5·P6·P7/§九;2a §一 第 2·4 条/§二 对象字典/§三 F2·F4·F7·F9·F13/§九。⛔ 页面数、导航一层七项、流转 20 条、令牌与几何一格未动;⛔ 定时发布按用户口径挂起,本轮不落
V5 本轮(2026-10-10,用户令两处) ①侧栏改回设计供给的基准形态:--nav-w 由 128px 改 64px,内衬 8 → 3px、圆角 24 → 100px;.nav-item 由「图标在左、名字在右」改竖排(图标在上 24px、名字在下 12px/500/行高 16、项 56×78、名字两字常驻,说明走悬停提示),计数徽章改悬右上角;≤640 的横滚标签条跟着改回横排小标签。②刷新按钮改 icon 并挪到页面标题行右侧:撤 .page-shell-ops 那一行与 SP_LABEL 七条文案,改 .btn-icon + .shell-refresh(margin-left:auto 右对齐,语义走 title/aria-label「刷新本页数据」);P4 同步。③自检新增 3b-2 侧栏基准形态、3b-3 页面级刷新=标题行 icon 两条判据;变异新增 M25/M26/M27(27 / 27 全过、基线回绿)。④2b §四 撤销「页面操作区」并同步七页框架行;本份 §1.1⑤/⑨/§2.3/§2.4/§2.5/§五 6/§6.1/§八/§九 全量同步 按用户 2026-10-10 两条口令:① design-system-tiaoyue/SKILL.md 行 95「左侧栏(app-sidebar,宽 w-16)」⇒ w-16 = 64px + 第八轮实测值;②「刷新按钮用 icon 按钮就行,一般和小标题一行、右对齐」。⛔ 导航项名与顺序、页数、每页板块、流转契约、其余任何交互一格未动

八、Gate-1 方向门自检(硬闸)

结论列=本轮(V5)的判定;实测依据列=本轮现取的证据(自检项名 / 脚本名 / 变异编号 / 实测像素),⛔ 不是目测。全量证据见 ui/3b-实测记录.md。 V3 比 V2 多两行(第 13、14 行):V3 的两条主判据(页集合与导航层级、功能 ↔ 板块一一对应)各自单列,⛔ 不并进邻行糊过去。 V4 比 V3 多一行(第 15 行):那一轮的主判据是「八条口径落进骨架」。 V5 比 V4 多一行(第 16 行):本轮的主判据是「侧栏回基准形态 + 刷新改 icon 挂标题行」,单列一行;⛔ 不借用第 2/13 那几行的旧结论糊过去。

# 检查项 结论 依据 实测依据(2026-10-09 复核棒现取)
1 设计契约十二字段 ✅ 过 §一 十二字段全填,无空、无「待定」;重复项逐页列了次级信息
1b 页型判定 ✅ 过 §一 自检「工具型纪律:零 .eyebrow / 零 .lead / 零 .hero」PASS;「@keyframes 共 0 处」PASS
2 结构骨架(翻译面) ✅ 过 §1.1 ⑤ 骨架档=主区+侧区(给了理由);②段分档表每条信息都有落位(§1.2 逐页核对)
2b 骨架未漂 ✅ 过 §1.2 _tools/check_skeleton.py 正向 PASS:七页 39 块与 2b-界面布局-新版.md §五 逐页逐位一致;自检「骨架冻结:七页 39 个板块…逐位一致」PASS;反向变异 M4(塞板块)/M19(改页标题)/M22(页面表多一页)各报红
3 状态覆盖 ✅ 过 §1.3 六态逐页有结论;自检「六态 × 七页 = 42 个组合全部渲染出内容」PASS;disabled 与 无权限 分开写
4 令牌表 ✅ 过 §2.2/§2.3 自检实测对比度:--warn 对 surface = 5.93:1、--accent-text = 4.76:1、--ink-faint = 3.55:1(三条均过契约)
4b 字阶定值表 ✅ 过 §2.3 七档各一个 px(12/14/16/18/20/24/30),相邻差 ≥2;自检实测在用 5 档:12/14/18/20/24
4c 高度层级 ✅ 过 §2.3 L1/L2/L3 每层 ≥2 层叠层;自检「无单层死黑重阴影」PASS
4d 布局脚手架 ✅ 过 §2.3 侧栏 64px + 主区 minmax(0,1fr);自检实测 1440×900:侧栏 64×606px、顶栏 49px、主区 clientH 851 / scrollH 1392
5 组件规格 ✅ 过 §2.5 按钮三档+卡片两档+输入框+徽章均为具体值;自检「首屏同屏主档按钮 ≤1 个」PASS
6 反 slop ✅ 过 §2.2 无紫→粉渐变;标题走展示体;强调色填充实测最高 0.52%(契约 ≤5%,在创作台)
7 拒绝清单 ✅ 过 §1.1 ⑩ 共 8 条,每条带可判定判据(≥3 ✅);其中第 6/7/8 条由自检「组件口径」「Page Shell」「辅助入口区」三条判据 + 变异 M15 看住
8 token 引用完整性 ✅ 过 §2.1 三层结构;组件层只引语义层、语义层只引 primitive;无孤立 token
9 分档兑现 ✅ 过 §1.2 常驻=零点击可见、可点入=一次点击可达;档位未被本段改动(P7 前后两半合页后逐条重核)
10 供给核对 ✅ 过 §〇 选定套 design-system-tiaoyue,与上一版一致(沿用同一套)
11 对象冻结(本项目追加) ✅ 过 §1.1 ⑩ 7 自检「七页 39 个业务板块各带一个核心业务对象,取值全在 11 对象字典内」PASS;变异 M17 报红
12 Page Shell 不占板块(本项目追加) ✅ 过 §1.1 ⑩ 7 自检「七页各恰好 1 个,且都不带 .block / 不带 .block-head h2」PASS;逐页 .block 数 = FROZEN
13 页集合与导航层级(本项目追加,V3 新立) ✅ 过 §1.1 ⑤ 自检「页集合正好七页,且与骨架表逐项相同(⛔ 页集合里没有 P8)」PASS +「导航一层七项…零组标 / 零跨组线」PASS +「导航七项与用户口径逐字一致、顺序相同…(资产排最后)」PASS;变异 M21(塞回组标)/M22(P8 复活)/M16(项名漂移)各报红
14 功能 ↔ 板块一一对应(本项目追加,V3 新立) ✅ 过 §1.1 ⑤ 自检 5b-3「功能 ↔ 板块一一对应:14 条功能各自落到归属页的板块上,39 个板块每个至少挂一条功能(无悬空、无孤立)」PASS;变异 M23(归属漂移)/M24(悬空功能)各报红
16 侧栏回基准形态 + 刷新改 icon(本项目追加,V5 新立) ✅ 过 §1.1 ⑤ / §2.5 / 2b §四 ① 自检「侧栏基准形态:64px 药丸浮栏、导航项 56×78、图标在上(24px)名字在下(两字常驻);≤640 回横滚标签条」PASS;② 自检「页面级刷新:七页各 1 个 icon 按钮挂在页面标题行右侧(无文字、带 title/aria-label),⛔ 不再独立占一行」PASS;③ 变异 M25(栏宽回退)/M26(导航项横排回退)/M27(刷新又独立成行)各报红;④ 变异对照 27 / 27 全过、基线回绿;⑤ 逐视口 16 档整表重跑:不达标由 3 档降到 2 档(560×900 转绿),P1 行数逐档上升
15 八条口径落进骨架(本项目追加,V4 新立) ✅ 过 §〇 / §1.2 / §2.4 ① 骨架冻结「七页 39 个板块…逐位一致」PASS(P2 由 5 收 4、P6 由 4 增 5,一减一加);_tools/check_skeleton.py 正向 PASS;② 自检「页集合正好七页」「导航一层七项」「功能 ↔ 板块一一对应」三条全 PASS ⇒ 口径改的是页内构成,页集合/导航/流转一格未动;③ 交互清单 90 个 ID「无悬空、无未登记、0 死控件」PASS(撤 1 新增 3 已同步);④ 变异对照 24 / 24 全过、基线回绿;⑤ 逐视口 16 档整表重跑,不达标仍 3 档(与 V3 逐格同值 —— 未动被量的块)

⇒ Gate-1 二十一行全过。 唯一未达线的是密度契约(窄屏两档:500×844 / 390×844,均为 P1 一屏不足 6 行),它属 3b 实测的登记项、⛔ 不属 Gate-1 门 —— 见 §6.1 与 3b-实测记录.md §八。


本份是原型的绑定规范:原型只许引本份登记的 token。

九、说人话自评(本轮改动的文字部分;判据源 humanizer-zh,五维各 10 分)

维度 分 说明
直接性 10 §1.1 ⑤ 一上来就说清「64px 从哪来」——先引 SKILL.md 行 95 的 w-16,再给实测值;§五 缺口 6 把「红档从 3 降到 2」放在句首
节奏 8 规范体裁、表格为主,改动段已补叙述,⚠️ 弱项未变
信任度 10 逐视口整表重跑后如实写出「还剩 2 档不达标」,并把「为什么这次栏宽似乎起作用了、与 V2/V3 不矛盾」当场解释掉;两档红照旧留着不粉饰
真实性 9 Gate-1 第 16 行挂的是本轮现取证据(判据名 / 变异 27-27 / 16 档重跑);正文数(64×606、626→779px、绿 14 红 2)都可由本份与 3b-实测记录.md 当场复核
精炼度 8 新增只落在 §1.1⑤/§2.5 两处 + §七 一行 + §八 一行;但 §五 缺口 6 与 §6.1 说明确实又长了一点
总分 45 / 50 门槛 ≥45 ⇒ 压线过;扣分点仍全在「节奏 / 精炼度」两行(规范体裁,叙述段天然少)

全量实测与两处改动的现象/根因/证据见 ui/3b-实测记录.md(该份自评 47/50)。