按照指定要求来修复类型错误、修改代码
- 各种类型修复任务。
- 各种细化的,简单的批处理任务。
- 将 openspec 的一揽子任务拆分细化,多轮多次的让子代理完成代码写法修改。
零、运行类型检查命令,生成完整的错误清单报告
- 运行
类型项目和后台项目的类型检查命令。 - 不需要你处理任何类型错误,只需要按照要求生成报告即可。
- 分类、归纳、并统计类型错误。便于我针对性的处理不同种类的类型错误。
- 将全部的,完整的类型错误,以报告的形式展示出来。
一、处理服务端代码的出现的字段不匹配的类型错误
- 阅读全部
apps/admin/server/**/mock-data.ts的文件。 - 处理全部
mock-data.ts出现的类型报错,使用正确的类型。 - 补全数据,确保每一个
mock-data.ts返回的数据都有 20~40 条左右。 - 不允许你运行任何类型修复命令。只允许你手动阅读文件并逐步处理类型报错。
- 不允许你处理范围之外的文件。
其他要求
- 务必要完整阅读
CLAUDE.md文档的全部规范要求。 - 禁止编写脚本完成批处理任务:
不允许你编写任何 Python、typescript、javascript,或 bash 脚本,完成大批量代码删改之类的任务。你应该阅读文件来完成更改,而不是使用不稳定的,容易带来语法错误的,删改不干净不合理的批处理脚本,来完成任务。
- 主动开启多个后台运行的子代理并行完成任务:
- 请你主动的开启多个独立并行的修改子代理,加快修改任务。
- 你新建的子代理必须是后台运行的子代理。
二、(有部分代码仍旧有问题,需要继续直接使用)针对性修复类型项目出现的中文命名,和中间变量别名
在类型项目中,有很多类型和字段都是中文命名,我需要你按照 .claude\agents\fix-type-error.md 文档的标准,帮我实现兼容类型写法的删减,和中文字段名、类型名,变量名的改换,全部换成英文名。
你的核心任务是:
- 删减并替换掉掉全部
向后兼容的中文类型别名。 - 中文字段名、类型名,变量名的改换,全部换成英文名。
1. 核心准则
- 只做变量替换,将全部中文命名的字段名、变量名、类型名。都换成英文名。
- 删减掉全部多余兼容性类型别名。不允许编写中文类型名作为类型别名。
- 在之前使用别名的地方,直接换成原本的英文类型。
比如这个例子:
import type { PropertyManagementCompanyFormVO } from "@01s-11comm/type";
/** FormVO类型别名 */
export type FormVO = PropertyManagementCompanyFormVO;
export interface PropertyManagementCompanyFormProps {
form: FormVO;
defaultValues: FormVO;
mode?: Mode;
}你需要将多余的别名删除,然后直接换成原本的类型即可:
import type { PropertyManagementCompanyFormVO } from "@01s-11comm/type";
export interface PropertyManagementCompanyFormProps {
form: PropertyManagementCompanyFormVO;
defaultValues: PropertyManagementCompanyFormVO;
mode?: Mode;
}2. 处理范围
- 全部类型项目的类型名,出现中文变量命名的类型,就全部替换掉。
- 全部后台项目的:
- form.ts
- form.vue
- index.vue
- 全部的类型项目和后台项目,检索字符串
FormVO将字符串FormVO这款固定写法的类型别名,全面清退替换掉,换成原本的类型。 - 在后台项目内,全文检索字符串
向后兼容,找到含有向后兼容字样注释的中文类型,将其替换。
3. 处理步骤
务必按照以下的严格顺序,逐步安排处理任务。
- 先处理类型项目出现中文变量命名,全部替换成英文变量名。删减掉兼容性中文类型,和类型重命名导出。
- 然后处理客户端项目的文件,按照以下分类逐步处理替换:
- form.ts
- form.vue
- index.vue
- 先确定清楚,中文命名的类型名,其使用范围有多大,明确清楚稍后替换时需要及时处理的文件,避免出现遗漏的情况。
- 同时的对使用
中文命名类型名的文件,同步的替换成原本的英文命名类型名。务必确保不要出现遗漏的情况。
4. 其他要求
- 务必要完整阅读
CLAUDE.md文档的全部规范要求。 - 禁止编写脚本完成批处理任务:
不允许你编写任何 Python、typescript、javascript,或 bash 脚本,完成大批量代码删改之类的任务。你应该阅读文件来完成更改,而不是使用不稳定的,容易带来语法错误的,删改不干净不合理的批处理脚本,来完成任务。
- 主动开启多个后台运行的子代理并行完成任务:
- 请你主动的开启多个独立并行的修改子代理,加快修改任务。
- 你新建的子代理必须是后台运行的子代理。
三、根据业务路径,检查全部的类型项目的文件命名与文件夹组织模式,是否严格满足业务路径的要求
如果发现不符合要求的,重命名文件。或新建一个导出空对象的 typescript 文件。文件命名风格为小驼峰短横杠风格。
根据业务路径,检查类型项目全部的文件。
四、将错误迁移的表单组件类型和默认表单数据,迁移回到 form.ts 内存储
1. 将形如 xxxDefaultForm 的变量迁移回 form.ts 内
比如这个例子:
// apps\admin\src\pages\operation-team\data-manage\property-management-company\components\form.ts
import { propertyManagementCompanyDefaultForm as defaultFormValues } from "@01s-11comm/type";
/** 默认表单 @description 对外导出用于其他场景使用 */
export const defaultForm = defaultFormValues;在业务路径 operation-team\data-manage\property-management-company 内,对应的 form.ts 错误导入了来自类型项目的 xxxDefaultForm 的变量。形如 xxxDefaultForm 的变量在 form.ts 内本来就不应该拆分到类型项目,而且也不需要被重新命名。你需要按照以下步骤来完成修改:
- 根据
业务路径operation-team\data-manage\property-management-company,去类型项目找到定义propertyManagementCompanyDefaultForm的文件。 - 将
xxxDefaultForm变量,剪切迁移到原本的业务路径的form.ts内,重命名为固定的名称defaultForm,并导出。 - 如果在类型项目内没有找到对外导出的
xxxDefaultForm变量,就用类型项目或form.ts对应的xxxFormVO类型来新建一个defaultForm变量。
最终的正确结果如下:
// apps\admin\src\pages\operation-team\data-manage\property-management-company\components\form.ts
import type { PropertyManagementCompanyFormVO } from "@01s-11comm/type";
/** 默认表单 @description 对外导出用于其他场景使用 */
export const defaultForm: PropertyManagementCompanyFormVO = {
code: "",
name: "",
address: "",
phone: "",
administrator: "",
legalRepresentative: "",
establishmentDate: "",
landmark: "",
communityCount: 0,
companyType: "",
serviceLevel: "",
operationStatus: "",
remarks: "",
};核心准则如下:
- 不允许在
类型项目内出现形如xxxDefaultForm变量的导出。应该剪切恢复至对应的form.ts内。 - 不允许出现多余的变量重命名。
- 每一个
form.ts必须导出一个来自类型项目的xxxFormVO类型约束的defaultForm变量。
2. 处理范围
根据业务路径,检查:
类型项目全部的文件。后天项目全部的 form.ts 文件。
3. 其他要求
- 务必要完整阅读
CLAUDE.md文档的全部规范要求。 - 禁止编写脚本完成批处理任务:
不允许你编写任何 Python、typescript、javascript,或 bash 脚本,完成大批量代码删改之类的任务。你应该阅读文件来完成更改,而不是使用不稳定的,容易带来语法错误的,删改不干净不合理的批处理脚本,来完成任务。
- 主动开启多个后台运行的子代理并行完成任务:
- 请你主动的开启多个独立并行的修改子代理,加快修改任务。
- 你新建的子代理必须是后台运行的子代理。
五、(已完成、已归档)重新调整对 ./form 路径内的模块导出方式
在后台项目中,有很多模块的导出是冗余的,是重新二次导出的,我需要你帮我删除。
核心原则与处理方针
- 在后台项目内所有的
form.ts内,只允许对外导出弹框组件的 props 类型,即形如xxxFormProps的类型,和 固定命名的defaultForm变量。其他变量和类型不允许导出。 - 不允许将
form.ts作为变量和类型的二次中转站。
对于每一个业务路径对应的文件处理步骤
- 首先访问对应业务路径的 form.ts 文件。如果有其他变量和类型在
form.ts内声明,请将这些变量直接剪切移动到对应业务类型的类型项目内。形如xxxFormVo或xxxFormData的类型,和形如xxxxOptions的下拉选择数组,都应该剪切迁移到类型项目内。 - 接着依次访问以下文件,按照要求处理错误:
- form.vue
- index.vue
- 如果其他文件出现了因为从
./form路径缺乏导出的故障,请根据业务路径,从类型项目内导出所缺乏的变量和类型。 - 如果在
类型项目无法找到所需要的类型,就先去类型项目内补充类型和变量。
处理范围
- 后台项目全部的 form.ts 文件。
- 后台项目全部的 form.vue 文件。
- 后台项目全部的 index.vue 列表页文件。
处理案例
以业务路径 dev-team\config-manage\item 举例,这里将 form.ts 当成了二次导出的中转站。这不符合要求。
// apps\admin\src\pages\dev-team\config-manage\item\components\form.ts
import type { ConfigItemFormVO } from "@01s-11comm/type";
import { configItemTypeOptions, itemEnableStatusOptions } from "@01s-11comm/type";
export type { ConfigItemFormVO };
export { configItemTypeOptions, itemEnableStatusOptions };在 apps\admin\src\pages\dev-team\config-manage\item\components\form.vue 内:
// apps\admin\src\pages\dev-team\config-manage\item\components\form.vue
import { ConfigItemFormProps, ConfigItemFormVO } from "./form";在 apps\admin\src\pages\dev-team\config-manage\item\index.vue 内
// apps\admin\src\pages\dev-team\config-manage\item\index.vue
import { type ConfigItemFormProps, type ConfigItemFormVO, defaultForm } from "./components/form";正确处理方式
在 form.ts 内,删除掉全部来自于类型项目 @01s-11comm/type 导入的变量和类型。
在 apps\admin\src\pages\dev-team\config-manage\item\components\form.vue 内:
// apps\admin\src\pages\dev-team\config-manage\item\components\form.vue
import { ConfigItemFormProps } from "./form";
// 直接导入来自类型项目提供的类型
import type { ConfigItemFormVO } from "@01s-11comm/type";在 apps\admin\src\pages\dev-team\config-manage\item\index.vue 内
// apps\admin\src\pages\dev-team\config-manage\item\index.vue
import { type ConfigItemFormProps, defaultForm } from "./components/form";
// 直接导入来自类型项目提供的类型
import type { ConfigItemFormVO } from "@01s-11comm/type";