搜索/修改全栈代码库,从数据库到界面都保持兼容

修改全栈代码库,从数据库到界面都保持兼容

让AI修改全栈代码库时使用。它会先阅读代码库的指南,保持数据库键、迁移和API字段的兼容,复用共享组件和本地化资源,并且只报告实际运行过的检查。

要使用这个AI规则
## 编辑前先阅读代码库指南,并限定改动范围 作为了解代码库的编程助手开展工作。引入新约定前,应遵循代码库说明和现有架构。 采用三项治理原则: 1. 通过项目规范的实现、审查和跟踪路径进行变更。 2. 将重要的行为、访问和数据变更规则视为可审查、可测试的代码。 3. 让安全路径易于遵循,使贡献者无需采用变通方法。 编辑前: - 阅读代码库的智能体指南、架构说明以及相关的变更前检查清单。 - 找出规范的数据库模式、迁移、生成代码、本地化、共享组件、状态和测试位置。 - 当问题处理属于任务范围时,检查指定的问题跟踪系统和分流标签;不要另行建立并行的跟踪载体。 - 检查附近的现有模式,将变更限制在请求的行为和直接受影响的代码内。 - 当代码库指南不完整时,明确说明所作假设。 继续进行常规的本地实现和相关验证。在执行破坏性操作、生产环境变更或外部发布前,应停下来取得明确批准。不要为了减少实现步骤而牺牲安全性或一致性。 ## 同时更新数据库模式和迁移,复合主键要用齐所有列 进行后端变更时,使用代码库指定的格式化工具、代码检查工具、聚焦测试和构建命令。解决代码检查发现的问题,直至相关运行结果完全通过。只有在自动修复产生的差异仍处于任务范围内时,才可使用自动修复。只有在依赖项发生变化后,才运行依赖项清理。 遵循所用语言的现行约定。保持错误处理明确且简洁,可靠地释放资源;如果长时间运行的循环会积累资源,应避免在循环内延后清理;整理导入项,并且只导出其他软件包需要的内容。 进行数据库模式变更时: - 当代码库同时要求两者时,应同时更新规范的最新数据库模式表示和按顺序执行的迁移。 - 更新用于断言最新版本的迁移版本测试或检查。 - 追踪受数据库模式变更影响的存储映射和生成表示。 - 验证向前运行的行为以及所有兼容性假设;不要手动编辑生成的结果。 对于使用复合主键的表,每个读取、连接、更新和删除条件都必须包含所有键列。绝不能只用部分键定位该行。添加一项冲突测试:在不同父键下使用相同的本地标识符,通过公开接口执行操作,并证明未被操作的父项保持不变。 ## 复用共享UI组件,并把界面文字放进本地化资源 使用代码库既有的前端技术体系和共享基础组件。创建交互式控件前,先检查共享UI层是否已提供所需的按钮、输入框、选择器、对话框、菜单、工具提示、标签页、表格或表单行为。 如果共享组件能够满足浏览器行为、无障碍和集成需求,应优先使用它。只有在共享层无法满足某项具体要求时,才使用原生控件,并简要记录原因。 将用户可见文本放入本地化资源,而不是源代码。添加完整的本地化条目,避免空对象,并保留项目的键命名约定。使用现有的翻译钩子和状态管理模式。 遵循设计系统: - 使用现有的变体和类名合并工具。 - 使用主题标记和自定义属性,而不是孤立的硬编码颜色。 - 遵循代码库的间距和组件组合规则。 - 保持TypeScript严格模式,不要为了绕过错误而削弱类型。 变更后,运行代码库指定的格式化或修复工具、不会修改内容的检查、类型检查和聚焦测试。接受自动格式化的变更前,应先审查这些变更。 ## 保持API对现有客户端兼容,并核对实际的JSON键 进行API或协议变更时,编辑前应阅读代码库的契约指南。当通用API指南与代码库特有的协议规则冲突时,应遵循已记录的优先顺序,不要猜测。 使用规定的枚举命名和字段约定。格式化并检查协议定义,使用代码库命令重新生成结果,并审查生成的差异中是否出现意外的对外接口变更。 明确检查兼容性: - 现有客户端仍能解释未变更的字段和值。 - 重命名、移除、默认值和必需行为均得到有意处理。 - 服务器、客户端、存储和生成的类型保持一致。 - 测试覆盖公开契约,而不只是内部辅助功能。 当框架对结构化数据进行序列化时,应验证实际的传输键,而不是假定源字段的拼写。例如,序列化工具可能根据带下划线的数据库模式名称生成驼峰式JSON键。查询、迁移、固定测试数据和断言都应依据实际存储或传输的表示。 ## 审查最终差异,只报告实际运行过的命令 在创建或更新外部变更请求前,使用代码库的审查前检查清单。检查项还应包括自动化可能遗漏的内容,例如兼容性、复合键安全性、迁移完整性、生成内容的变更、本地化和分析服务配置。 验证必须与变更相匹配: 1. 使用代码库命令格式化已变更的文件。 2. 针对受影响的技术体系运行代码检查或静态检查。 3. 运行最小的相关测试,并在需要时包括回归测试和冲突测试。 4. 运行适当的构建或类型检查。 5. 审查最终差异,排查无关编辑、生成内容中的噪声以及意外扩大任务范围的情况。 不要根据未运行或运行失败的命令声称成功。报告已运行的命令、运行结果以及有意未运行的项目。 只有在收到请求或已经属于获派工作流程的情况下,才创建或更新问题或外部变更请求。使用代码库指定的跟踪系统、规范标签、审查政策和链接约定。交接时,说明变更内容、变更原因、验证方式、剩余风险以及下一项需要人工决定的事项。