# 创建与修改低保真流程

适用：把需求画成 UX、补齐分支、修改页面或审查交互的 Agent。只需理解已有 UX 或设计视觉稿时，先读 [读取与使用指南](reading-guide.md)。工具操作与数据格式见 [Agent 指南](agent.md)。

## 什么是好的低保真

低保真可以省略装饰，不能省略会影响判断的交互信息。目标是让另一位人或 Agent 能解释：谁为了什么进入、看见什么、能做什么、动作改变了什么，以及如何完成或退出。按任务需要覆盖状态，不为了凑齐清单增加无关页面。结构检查通过是必要依据，不代表设计已合理或用户已确认。

| 规则 | 必须交代的内容 | 核对方式 |
| --- | --- | --- |
| 目标明确 | 用户是谁、当前目标、入口、前置条件、完成的可观察结果；首期范围与不在本期的内容 | 能用一条具体任务串起主要路径 |
| 关键页面齐备 | 决策、输入、选择、必要确认、处理反馈、结果及相关恢复入口；弹窗／局部状态不必一律拆整页 | 每个必要步骤都有页面、已说明的页面状态或明确的待完善项 |
| 字段完整 | 当前任务所需的输入和展示字段，字段标签、含义、必填／选填、初始值／无默认值、可选范围／格式、校验时机、错误文案、可编辑性及保存后的用途 | 不依赖“一个表单”等占位词猜出字段；示例值与默认值分清；未定规则标待确认 |
| 动作有定义 | 主要／次要操作、可见与可用条件、禁用原因、目标或状态变化；返回、关闭、取消各自保留或丢弃什么 | 每个可点击控件都能对应数据中的动作，或明确标注暂不模拟 |
| 状态可区分 | 按相关性补齐首次／已有内容、空、加载、无效输入、处理中、成功、失败等状态；有权限或外部依赖时说明允许／拒绝／不可用 | 页面备注列出相关状态，关键状态有样例或可体验路径；不要求每种状态都新建页面 |
| 路径能闭环 | 入口到结果、结果后的去向；取消不悬空；失败可重试、返回、改选或结束；处理中如何退出及再进入 | 成功、取消和关键失败各走一遍。闭环不等于所有页面必须返回首页；有意结束可标 terminal: true |
| 数据前后一致 | 新建／编辑／删除后哪里变化，返回与重进时输入／选择／结果的保留规则，重试或连续点击是否重复执行 | 从上游进入下游，再返回或换入口，显示和动作与已声明状态一致 |
| 边界和决策清楚 | 已确认规则、示例假设、待确认政策、暂不模拟的行为分别说明；复用同一术语和交互含义 | 未知不能靠 Agent 自行补成收费、权限、保存、删除等确定承诺；相同操作的行为变化要有依据 |

### 字段如何写清楚

例如“创建项目”不能只画一个输入框和“确定”。需要交代项目名称、说明等实际字段，以及：什么必填、空值时提示什么、点击保存之后去哪里、取消是否产生项目、失败后输入是否保留。具体长度限制或命名政策应来自需求，不因为示例就推成其他产品的统一规则。

当前通用渲染器支持标题、正文、占位、备注、动作，以及 field 输入、select 下拉、choice 单选列表／卡片网格、toggle 开关；相邻动作可用 inline 并排。优先使用这些常规模式组织页面。字段需有标签和必填性，输入与选择绑定独立状态；提交动作显式设置 validate: true。用状态文本展示变化，备注中补齐业务校验、异常与恢复规则，不添加任意 HTML、样式脚本或领域运行时。

复杂检索、任意数量集合、设备权限与真实服务等不在通用原型中自动实现；可用有界样例和明确状态表达路径，并如实记录覆盖边界。不能靠修改适配器或仅更换 adapter 标签完成迁移。

可在页面的 note 或 note 内容块中按以下顺序记录，避免发明新的必填文件格式：

- 字段：名称／含义／必填性／初始值／格式与校验／错误反馈／保存用途。
- 状态：进入条件／可用操作／退出与数据保留。
- 决策：已确认规则／示例假设／待确认／暂不模拟。

面向产品使用者的文案放在画面中；设计解释、政策疑问与模拟边界放在画面外的备注。关键字段必须能从完整页面和备注查到，不能藏在聊天记录里。

## 工作顺序

1. **建立任务边界。** 阅读当前需求与项目概览，定位已有页面和当前修订。新项目先写清目标、入口和完成条件；有关键歧义再询问，其他未知可明确标记并继续草案。
2. **先主路径，再补相关分支。** 确定必要的页面／局部状态，列字段与动作。按实际需求考虑取消、输入错误、无数据、权限拒绝、失败重试等；不机械添加登录、支付或授权。
3. **局部改动。** 先读受影响页面和关联动作／条件／前后路径；保留页面与内容块 ID。共享动作会影响其他入口，需回看相关页面；新增页或改共享逻辑时才使用完整项目。
4. **检查候选修改。** 单页或完整项目检查不保存。修正结构错误；逐条处理流程提醒。若无出口是正常结束，说明结束含义后标 terminal；不要为了消掉提醒添加无意义连线。
5. **保存后体验。** 实际点击主路径、取消和关键失败恢复，以及受影响的相邻入口。检查状态和数据保留，不只看连线。能力未支持或尚未验证时写出范围，不当成已通过。
6. **交付下一位读者。** 说明项目／修订、预览入口、涉及页面 ID、变更和已体验路径；区分未覆盖、待确认和暂不模拟的部分。更新本项目中的备注与样例，让下一位 Agent 无需通读原聊天。

## 交付前自检

- 用户能从入口到达本次任务的明确结果吗？关键步骤和字段有缺失吗？
- 每个主要按钮的前置条件、反馈、去向和数据变化都说清楚了吗？
- 取消／返回／关闭、失败后重试或退出有明确语义吗？
- 已完成必要的结构检查和实际路径体验，并如实区分未验证部分了吗？
- 下一位视觉或开发 Agent 能按页面 ID 找到完整内容、状态及待定项吗？

自动检查只识别已实现的规则（见 agent.md）；它不会替你判断必要字段是否齐全、业务分支是否遗漏或体验是否合适。不要把这份质量清单的全部条目声称为机器已自动验收。

## 应用类型

先确认项目是手机、平板、桌面应用还是网页；手机固定竖屏，其余固定横屏，不再询问或配置方向。从概览读取 `display`，未配置时为手机竖屏。每个项目所有页面共用画面设置。仅在创建时确认 `manifest.display`，创建后必须保留原类型，不通过局部变更、完整保存或导入修改包更改，见[格式参考](agent-reference.md#project-display-type)。

横屏不能只是把手机正文拉宽：按任务用现有 row、grid、group、列表行及固定区域组织信息，保持主操作和导航可见。应用类型决定设计尺寸和外框，不自动重排，也不代表已完成多端适配；不要用当前预览缩放后的文字大小决定正式视觉字号。

## 页面骨架与组件选择

优先使用 [通用组件](components.md) 表达真实操作位置：top 导航、滚动正文、bottom 主操作／Tab Bar。把图片与文字组织成卡片或列表行，点击对象本身；不要再放“点图片进入详情”解释按钮。弹层通过 present/dismiss 保留原页；分段切换、展开、分页用同页状态。集合使用 repeat 与稳定项目键，避免逐项手写分支。每项异步行为说明加载、进度、空态、失败、重试和取消，区域阻塞必须保留恢复操作。

核对滚动时顶部与底部的固定关系、最后一项是否被遮挡、键盘焦点、弹层 Esc／遮罩／取消和原数据保留。可取消表单使用独立草稿字段，关闭不是自动撤销。使用完整组件示例验证结构后再应用到项目；禁止为项目定制运行代码。

异步系统任务（如连接、上传、处理）使用 `flow.tasks`，通过同页状态展示 loading 与恢复，不要把后台过程画成手机页面；外部突发环境事件（如断连、超时）使用 `flow.events` 并声明取消任务与恢复路径。异常分支通过情境 `taskResults` 预设，手机原型画面内不要堆砌临时模拟按钮。

## 用例与验证边界

对修改涉及的主路径、取消、错误恢复和数据保留，可按 [行为用例格式](behavior-guide.md) 添加 flow.testCases。在独立会话运行，交付用例 ID、修订、通过／失败步骤及未覆盖路径。使用 blockId 指向真实用户入口，不为方便测试把模拟结果塞进产品页面。测试失败不能通过删除断言、放宽期望或改成任意状态赋值来消除，需求变化时应同时说明期望改变的依据。

结构合法、指定行为用例通过、浏览器实际可操作、用户确认是不同证据。用例无声明、未运行或只覆盖正常路径时，应明确说明范围，不声称流程已完整闭环。
