该技能属于前端状态建模,旨在让非平凡的 UI 状态变得明确且可测试。其用途是当 UI 行为超过简单的“渲染属性并调用 API”时,通过定义状态形状、转换、派生选择器和异步及错误路径来管理复杂度,特别适用于多步骤、分支、异步和派生状态的 UI 流程。
主要能力包括:定义状态形状;定义事件驱动的状态转换,涵盖错误与重试转换,并在适用时包含取消或重置路径;实现派生选择器或工具;根据仓库模式生成 reducer、状态机或 store 模块;在仓库使用状态单元测试时提供最小测试。它要求渲染组件保持“愚蠢”,即状态模型拥有转换逻辑,UI 仅消费状态并派发事件。
使用方式:输入目标 UI 流程(屏幕或组件)及其状态、触发转换的事件或动作、任何异步边界(如获取数据、防抖、重试、轮询),以及现有状态系统(本地状态、reducer、context、Zustand、Redux、XState 等,优先使用仓库配置)。优先读取仓库配置文件 <repo>/REPO_PROFILE.json。工作流程为:识别最小状态模型;枚举状态与事件(如 idle、loading、success、error、empty 以及编辑、确认、提交等领域特定 UI 状态);实现事件驱动的转换,包含错误、重试、取消和重置路径;保持渲染组件纯展示;使用仓库命令和最小测试进行验证。
适用场景:非平凡的 UI 流程,例如多步骤表单、分支流程、异步数据加载、重试、轮询、派生状态等。
限制:不改变后端逻辑或 API 契约;不擅自引入新的状态库;不做与目标流程无关的大型重构。若流程模糊,会调用询问澄清;若状态复杂度失控,建议拆分为子流程模块;若异步边界情况遗漏,建议使用状态机映射器处理非常复杂的流程。