用途:把本地原型中的模拟数据与本地 action hook 替换为 GraphQL 片段、路由查询和后端契约 SDL,使组件改为由 Relay 驱动。
主要能力与用法:先阅读现有 schema、schemaExtensions、GraphQL Client 配置、路由入口、原型数据和本地 action hooks,并遵循项目既有的 graphql 加载与生成产物约定;schema 命名、可空性、连接、mutation payload 与类型化错误可使用 graphql-schema-design 技能。组件层面,保持原型边界,除非组件读取多个实体的字段;每个数据绑定组件对应一个主实体和一个共置片段,使用 GraphQL 客户端中 useFragment 等价物并启用 data masking;关联实体以片段数据传给子组件,不在父组件读取其字段;外壳与数据内容分离。读取层面,用 schema 字段或扩展字段替换每个渲染的 mock 字段,不携带未使用的 mock 字段;由后端掌握真相的计算事实作为 schema 字段,纯展示推导留在客户端;可增长的列表使用连接并把计数放在连接上,关系专属数据放边(如 UserGroupEdge 上的 joinedAt),若关系本身作为主对象渲染则建模为独立节点与连接。操作层面,从原型的本地 mutation 形 hook 出发:schema 已存在该 mutation 则保留调用形态改用 Relay 实现,否则为工作流中每个用户操作新增 schema mutation。契约层面,新字段、类型、订阅与 mutation 直接写入 schema 文件,为每个新增元素写 docstring 说明用例、产品含义、领域知识和空值/错误语义;每个 mutation 使用独立 Input 与 Payload 类型,返回可空变更实体和 errors: [<Mutation>Error!]!,并定义共享 Error 接口、按 mutation 的错误联合与具体错误类型。完成时,将路由查询展开顶层功能片段,运行仓库的 Relay 编译器与 typecheck/build 命令,移除原型 mock 数据与本地假持久化,并用 /graphql-schema-design review 审查扩展文件。限制:资料未提供具体版本、依赖、费用或适用平台信息。