用途:从 Atomic CRM 代码库中删除一个或多个初始资源(contacts、companies、deals、tags、tasks),并清理其所有引用。操作不可逆,执行前须与用户确认目标,必要时依靠 git 恢复。
主要能力:脚本会校验资源名、删除对应的 src/components/atomic-crm/<resource>/ 文件夹,并打印需要清理的依赖文件清单(不自动编辑这些文件)。资源形态包括独立组件(导入、JSX、路由、菜单、仪表盘组件、root/CRM.tsx 中的 <Resource>)、其他记录上的字段/列、聚合的 nb_<resource>、共享子系统(notes、activity log)、配置属性(taskTypes、dealStages、companySectors)、自定义 dataProvider 方法、JSON/CSV 导入器,以及后端 Supabase 表、视图、RLS、授权、函数与边缘函数。
使用方式:运行 node .claude/skills/delete-initial-resource/delete-initial-resource.ts <resource> [<resource> ...],然后按打印清单和脚本中 dependentFiles 的注释逐个清理依赖文件。删除多个资源时从耦合最深的向外清理,共享文件只清一次。后端需参考 backend-dev 技能,在 supabase/schemas/ 中调整表与视图并生成迁移,例如 npx supabase db diff --local -f remove_<resource>。
验证:运行 make typecheck && make lint,再对 src/ 与 supabase/ 执行 grep -rniE "\b<resource>\b",并单独搜索 nb_<resource>、company_name 和配置属性名。i18n 需两个语言目录同时增删键。若 Supabase 在运行,可执行 npx supabase db reset --local 重放迁移链与 seed.sql。Node 22 下可运行 make test。
限制:脚本只处理前端,后端需手动迁移;不得编辑 supabase/migrations/;依赖文件清单只是指引,最终以 tsc 结果为准;部分共享调用者(如 get_domain_favicon)需先确认再删除。