Files
agent-workbench/references/design-system.md

7.1 KiB

固定设计系统

assets/dashboard/ 是本项目的实际前端模板,不是截图参考。基于 React、TypeScript、Vite、Tailwind 与官方 shadcn/ui 组件;上游来源、授权和版本以模板内说明和 lockfile 为准。

页面与布局

复用官方 sidebar block 的侧边导航、页头和内容容器,登录复用官方 login block 的表单与组件。维持六个独立路由:

页面 主要问题 内容
总览 现在进展如何? 少量状态统计、当前阶段/阻塞、重要汇报与决策摘要
任务 谁在做什么? 工作包、状态、阶段、目前进度一句话、ETA范围和业务更新时刻
集群 资源和调度是否可用? 节点内存/负载、NFS、Slurm、LSF与故障/采集时间
沟通 我如何询问进度和讨论方案? 固定人类入口的正常聊天、输入框、必要待办和简洁发送提示
决策 哪些事项需要我决定? 卡片展板、方案、影响、选择与提交记录
日志 出过什么问题、恢复了吗? 分级聚合事件、恢复状态、筛选与安全详情

总览不重现所有详情;页面不把数据全部挤在一个长列。窄屏折叠导航,沟通输入和消息列表保持可操作。

颜色和组件

  • 固定 zinc 中性基础与官方 blue 主色,使用模板 CSS 变量;状态色仅表达成功、注意、失败和未知。
  • 不为每个任务生成另一套色板,不用渐变、发光或装饰插画取代信息层级。不在组件内散布临时 hex 色值。
  • 复用 Sidebar、Card、Badge、Button、Input、Textarea、Table、Progress、ScrollArea 等现有组件。新增交互先找已安装组件;确需增加时使用官方 registry/CLI并保留授权。
  • 区分运行状态、任务阶段与验证结论。颜色配文字,未知不使用健康颜色;预计时间有范围和依据。
  • 不写模拟运行数值当作生产内容。空状态说明缺配置、待同步或没有数据,尽量就近给可执行入口。

AI 修改方式

先定位已有页面和数据适配层,复用组件完成需求;只在设计系统确需变化时修改集中 token。业务数据来自当前 API,不能为了套模板保留示例收入、销售图、假用户或无效按钮。

提交前运行锁定依赖构建,并验证六页切换、刷新/返回、沟通会话目标、登录退出、过期/离线状态和窄屏布局。截图和生产数据仅留在私有验收产物,不自动加入公开库。

沟通页的低噪声规则

只显示用户实际输入、面向用户的最终回复及需要行动的简洁提醒。隐藏角色/安全提示封装、JSON事实快照、内部跨会话原始汇报、工具日志和合成验收整轮内容;原始消息、回执、来源和审计不删除。用户自己输入或引用的正文不能因包含“日志/测试/JSON”等关键词而过滤。

页面固定连接人类入口,不显示会话选择、绑定状态说明、原会话跳转或新建会话表单。页头只提供“刷新”,重新读取聊天和必要状态,保留登录、草稿、目标与幂等发送记录,不做浏览器整页重载。正常聊天不堆时间、来源、投递徽标;只在等待或失败时用自然语言提示。

聊天读取独立GET /api/conversation投影视图;原始GET /api/messages继续用于后台审计、桥接和对账。投影通过保存的turn/phase/reply关系隐藏内部或验收轮次;网页封装只有与已保存原输入完整匹配才折叠为原文。重大真实故障显示人类可读摘要,不透出原始事件载荷。首次打开显示最近对话,阅读旧消息时不强制滚到底部。

决策展板

需要用户决定的事项使用卡片展板,不做长日志列表。卡片只展示问题、影响、优先级及状态,点击打开详情抽屉。详情包括背景、问题、推荐与依据、方案说明和真实有依据的期限。可枚举方案使用可点击单选项,默认不选,推荐不视为批准。备注可补充;显式“提交选择”按钮与选择动作分开,失败保留草稿,同一草稿重试复用幂等键。

提交后显示实际选择与结果,权限相关显示“待核实”,不显示“已授权”。采用#/decisions?decision=打开具体卡片;沟通只做一句提醒并链接卡片,不复制全部方案。空状态不加入合成演示决策。既有tasks.decision文本保留只读兼容,不伪造选项。

任务卡的“目前进度”只展示current_progress,不能替换旧标签后仍显示eta_basis。进度实际变化后自动刷新,保留业务更新时间;活跃任务过期显示待更新需核查,完成剩余为0。新增改进单独登记,不沿用旧完成记录遮盖正在进行的工作。

沟通布局将“项目沟通”和简短介绍移入页面标题栏,刷新位于对话右上角。标题栏下聊天占满可用内容区域,消息独立滚动、输入区固定底部,保留必要导航;不触发浏览器全屏模式。桌面与窄屏都需保证输入、发送、刷新可见且不被外层滚动挤走。

日志与通知

日志等级与恢复状态独立:信息蓝色、警告琥珀色、错误浅红、严重实红;处理中中性色、已恢复绿色,都配中文文字。按source/event_id聚合为一条,repeat_count是累计firing上报,界面重复次数显示max(0,count-1)。详情仅安全摘要、影响、处理、下一步、证据和时间,不展示原JSON/工具/推理或私有凭据。支持等级/状态筛选及#/logs?incident=直达详情。

沟通不显示自动短暂故障/恢复轮次;只有持续重大影响或需用户行动时显示一句简报并链接日志/决策。用户主动问故障时的解释保留。计划内或可恢复的短时断连先有界重试,不立即对用户发严重告警。

关注红点

导航红点是“仍值得关注”而非未读或变化计数,颜色同时配可访问的原因说明。按当前页所有有效attention.items聚合,点击页面不清除;服务器撤销后随既有同步取消。页面顶部只放简短原因和具体事项链接(任务支持?task=、决策?decision=、日志?incident=),聊天不再塞内部载荷。多事项分别定位,不用一个全局清零操作。普通心跳或自动恢复不标,恢复/选择完成时清关联项;刷新和重启不得复活已撤销项。

任务三视图与详情

同一任务数据可切换展板、列表、分支,view参数保留选择。展板用于概要,列表便于比较当前进度、阶段、ETA与负责人,分支用于父子拆分、前置依赖和汇总集成关系;明确标注不是Git分支。关系没有登记时如实显示,不补假箭头。多依赖不等于全程串行或全程并行,详情说明可先做部分及等待同步点。

点击任务打开详情,展示目标、范围、负责人/真实会话、当前进度、版本、前置条件、并行部分、同步点、验收条件和集成状态。URL view=board/list/branches、task=可定位,关闭详情只移除task。空/单任务/已完成/多依赖保持一致,过期状态与ETA规则不因切换消失。任务关系与Git分支不混用。