65 KiB
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 本轮改了什么(六条 · 骨架与令牌一格未动)
- P2 选题库:分组控件加一层类型维度(选题/对标线索/评论洞察/数据异动/灵感),与进度(待做/在写/已用)正交;选题行多一列「类型」。⛔ 不新增「待整理」状态。
- P2 去掉「灵感速记」板块(骨架 5 → 4 块):随手记本来就是全局可达的框架层入口(顶栏
G-06),写进来的东西落选题库。🔴 顺带订正 V3 遗留的一处文档打架(见 §五 缺口 8)。 - P3 资产库:页面职责由「存拆解结果」改成「统一管理」;入库不限页(P2 拆解结果可就地入库)。骨架仍 4 块。
- P4 版本管理:展开单位由「账号 × 平台」改成「平台账号」(一个平台账号一版)。
- P5 目标选择改成两级:先选内容账号,再勾它下面的平台账号(渠道);数据摘要区由「目标账号数/目标平台数」改成「目标渠道数/覆盖平台数」;各版本块写死「一个平台账号一版(一版一路)」。
- 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 按用户口径与
2bV3 §三 重做)。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 页都是一屏要放多行记录的工具型页面,
2bP1 要求矩阵与今日待办同时常驻,宽松档放不下。同一页面只取这一档。 - 块间距 ≥ 块内间距的 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。
五、缺口与证据边界(⛔ 不假装支持)
- 反 AI 味 / 无障碍 / 表单校验 / 动效纪律的逐项数值判据本次无供给来源 —— 这四项出自 §供给·工艺数值判据的可选档(
assets/open-design/craft/13 份),本轮未动用可选档 ⇒ ⛔ 不凭感觉编一套顶上。本段实际应用的是默认档判据:execution-runbook.md§3.3/§3.4 +layouts-tooling.md§5.5。 - 暗色主题本轮不做 —— 选定套的暗色与亮色是两套独立基线,规则是「要暗色就整套切」。⇒ 本轮只做亮色基线,⛔ 不与暗色混搭。
--warn是本项目追加的第 14 个语义色 —— 选定套亮色基线只有 ok/err,无 warn;而②段 P5 要求软硬两种区分。追加值的对比度实测记在 §六。1c-用户画像.md是零访谈画像 —— 界面里凡涉及「角色能看什么」的判据都基于它,不得对外说成基于用户调研。- 3c GPT 参考版本轮不做 —— 派活单明令「⛔ 不许再向外发送本项目内容」(第②棒曾把产品现状发到站外,属红线动作)⇒ 本轮全部输入只看本地文件,⛔ 不上传、不外发、不用站外模型服务。⇒
3c的「让外部模型独立出一版」这一步本轮按红线停做,并在收尾明示「未取得参考版 ≠ 已通过」。这是红线优先于流程的处置,不是漏做。 - 窄视口实测下限与红档 —— 本轮取证走 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),这次同时动了「撤掉操作区整行」+ 栏宽两件事,首行顶的变化主要来自前者,⛔ 别把这条读反。是否动窄屏断点,仍待用户裁定。 - 规格核对只走本地已测值 —— §六 的实测值全部由
#/selftest与_tools/现算,⛔ 不目测。上一版留档的两处遗留(500×844一屏 −1 行、满宽表格与一屏 ≥6 行不可兼得)本轮重测后如实登记,⛔ 不靠改判据过关。 - ②段那处内部不一致已订正(V3 登记 → V4 关闭) —— V3 登记过:
2b§五 P2 的板块清单把「灵感速记」列为第 5 块,而同页信息分档表把它标成「全局可达(框架层,不占板块)」,两处打架。🔴 V4 按用户口径(选题库容纳「对选题有帮助的任何信息」、随手记仍落选题库)把两处统一:灵感速记不再是板块,P2 由 5 块收成 4 块;现在板块清单与信息分档表一致。骨架总数仍 39(P2 −1、P6 +1)。 - 定时发布本轮挂起(⛔ 不进界面) —— 用户口径逐字(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)。