# 重构项目规则

当任务涉及从现有项目重构、迁移或重写前端代码时，应用本文件。

## 目标

- **视觉和交互**：与原项目一致，用户无感知差异
- **代码质量**：更简洁、易维护，符合目标框架规范
- **业务功能**：与原项目保持一致，**不得缺失功能**；重构前后行为等价

## 图片与图标

- 直接使用原项目的图片资源路径，不重新托管或替换
- 可使用 SVG 图片（`<img src="*.svg" />` 或 CSS `background-image`），**禁止使用内联 SVG**（`<svg>...</svg>` 直接写在组件中）
- **若原项目使用了 iconfont 或 IcoMoon 图标，重构时继续使用**，保持图标体系一致；不替换为其他图标方案
- 图标优先使用原项目已有的图标文件（iconfont / IcoMoon / 已有 SVG），必要时可引入 SVG 文件作为独立资源

## 样式

- 布局样式对齐原项目视觉效果，但**只参考原项目效果，不照搬其 CSS**
- 优先使用 **flex 弹性布局**，避免 `float`、复杂 `position`、冗余嵌套
- 避免不合理写法：`!important` 滥用、过深选择器、重复定义
- **组件中禁止使用内联样式**（`style={{ ... }}` / `style="..."`），样式统一放在 CSS Modules、Tailwind 类或样式文件中，便于维护

## 强约束

- 业务功能与原项目完整等价，不得缺失
- 图片使用原项目资源，无内联 SVG；若原项目用 iconfont/IcoMoon 则继续使用
- 样式参考原项目效果但不照搬 CSS，优先 flex 布局，无内联样式
- 对公共 API、路由、事件、埋点、权限、缓存和错误状态建立行为清单，重构前后逐项核对

## 死代码清理

清理未使用代码、导出、样式或依赖时：

- 先建立验证基线，再做清理。
- 使用工具或搜索证据证明候选项无引用。
- 将候选项分为 SAFE、CAUTION、DANGER。
- 仅自动清理 SAFE 项；路由、配置、运行时模板、动态 import 和公开 API 默认视为高风险。
- 每批清理后运行受影响验证命令。
- 若验证失败，先回到最近一批候选项定位，不继续扩大清理范围。

不要把死代码清理与功能重写、视觉调整或依赖升级混在同一个改动里。
