SuperAPI AI 工具集

remove-feature

编程与开发

查看项目

更新于 10-15 23:42

技能介绍

用途:当用户输入 /remove-feature,或要求“移除 X”功能、功能开关、接口端点、子系统时,用于把该功能从代码库中完整剥离。资料强调两种失败模式:一是残留(无用的依赖、孤立测试、仍被分支读取的旧开关、无用的数据库列、环境变量、IaC 资源、仍在描述已删功能的文档);二是误删共享代码而破坏仍存活的功能。目标是功能消失、存活代码不再引用它、且没有损坏。

主要流程:在 git worktree 中工作,不直接改动主干检出。第一步进入计划模式(只读),依次为:Phase 1 访谈与范围界定,确认功能身份与入口点(路由/页面、CLI 命令、API 端点、UI 组件、定时任务、webhook、开关键)、边界、状态与外部资产(数据库表/列/迁移、环境变量、IaC 资源、第三方配置)、移除形态(硬删除或分阶段)、数据处置(删除还是保留归档),输出一段范围声明。Phase 2 追踪:先做 git 考古(pickaxe、rename 追踪、读取引入 PR 的反向清单),再用调用图排查(对 TS 仓库用类型检查作为待办清单,配合 knip、ts-prune、depcheck、vulture 等死代码工具),并跨所有构件类型做引用 grep,参考 orphan-smells.md 逐类排查。

随后产出 REMOVAL MANIFEST(引入提交、入口点、校验命令、基线状态、DELETE、KEEP、VERIFY REPLACEMENT、HUMAN-GATED),并物化完整待办列表;之后暂停交接,由用户选择在本地执行、切换模型、交给工作流还是就此停止。执行阶段脱离计划模式,按叶子到根的原子提交顺序删除,每步之间保持校验通过;数据库删除、数据清理、环境变量/密钥、IaC 资源与外部控制台配置属于人工确认项,由代理提出而非自行执行。限制:基线为红时必须停止;清单过大应拆分为多次发布。