diff --git a/AGENTS.md b/AGENTS.md index 596b3a6..b825884 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -44,3 +44,186 @@ -Always reply to me in Chinese 文件编码使用 UTF‑8 + + +--- + +# web-amr 项目 AI 编程指导(Vue 3 + Vite + TS + Ant Design Vue + Pinia) + +本指南用于约束 AI 在本项目中新增功能/修复 Bug 的方式,目标是:代码优雅、可维护、可读、符合主流 Vue 生态实践,并与仓库现有风格一致。 + +--- + +## 1. 总体原则 + +1. **先理解再动手** + - 先搜索仓库已有实现(同类页面/组件/Store/接口封装),优先复用现成模式。 + - 不引入新范式/新库,除非明确要求;避免“为了重构而重构”。 + +2. **最小必要改动(Minimal Diff)** + - 只改与需求直接相关的文件和逻辑。 + - 不随意改命名、格式、结构;不顺手修“无关的”问题。 + +3. **分层清晰、职责单一** + - UI 逻辑、业务逻辑、数据访问、状态管理分离。 + - 一个文件/组件只负责一类事情。 + +4. **可读性优先于“聪明”** + - 选择易懂的实现而非炫技。 + - 复杂逻辑拆分为可测试的小函数/Hook/Store action。 + +--- + +## 2. 项目结构与放置规范 + +- 页面:`src/pages/**` + - 每个页面一个文件夹,包含 `index.vue`、子组件、局部 hooks、局部类型。 +- 组件:`src/components/**` + - 复用组件放这里;页面私有组件放页面目录内。 +- 状态:`src/stores/**`(Pinia) + - 全局/跨页面状态必须放 Store。 +- 接口: + - `src/apis/**`:接口定义、类型、路径、参数; + - `src/services/**`:Axios 实例、拦截器、通用请求工具。 +- Hooks:`src/hooks/**` + - 复用的组合式逻辑;页面私有 hooks 放页面目录。 +- 静态资源:`src/assets/**`、`public/**` + +**放置判定:** +跨页面复用 → `components/stores/hooks/apis`;仅当前页面使用 → 页面目录内。 + +--- + +## 3. Vue 组件设计(主流实践) + +1. **Composition API + `