添加AGENTS.MD

由oMo/init-deep和GPT5.3codex生成
This commit is contained in:
Linkon
2026-03-21 01:52:07 +08:00
parent 517ce1e6bd
commit 3d5724dbd7
4 changed files with 186 additions and 12 deletions
+61 -12
View File
@@ -1,15 +1,64 @@
# Agent Collaboration Rules
# 项目知识库(SecScore
## 分支定位
- 当前分支(`SecScore-tauri`)主要用于推进 Tauri 版本开发与维护。
- 不以 Electron 版本作为该分支的实现目标。
**生成时间:** 2026-03-21 01:41:11
**分支:** `tauri-dev`
**基线提交:** `517ce1e`
## 提交规范
- 每次代码改动都必须使用中文 `commit message`
- 完成提交后必须推送到远程仓库对应分支(`git push`)。
## 概览
## 执行流程
1. 完成代码修改
2. 自检并确保可构建/可运行。
3. 使用中文提交信息执行 `git commit`
4. 立即执行 `git push` 推送远程。
SecScore 当前主线为 Tauri 桌面应用:前端 `React + TypeScript + Vite`,后端 `Rust + Tauri + SeaORM`
仓库中存在 `old-ss/`(Electron 历史代码),默认按遗留参考处理,不作为本分支主实现目标
## 目录结构
```text
.
├── src/ # 前端 UI、状态与共享逻辑
├── src-tauri/ # Rust/Tauri 后端与数据库
├── old-ss/ # 历史 Electron 代码(遗留)
├── scripts/ # 本分支启动脚本(如 tauri-dev)
└── .github/workflows/ # 构建/发布流程
```
## 去哪里找
| 任务 | 位置 | 说明 |
| -------------------- | ------------------------------------ | ----------------------------------------- |
| 前端入口与全局初始化 | `src/main.tsx` | 注入 `window.api`、日志桥接、平台标识 |
| 主应用路由与页面容器 | `src/App.tsx` | 页面切换、权限与流程协调 |
| Tauri 启动入口 | `src-tauri/src/main.rs` | 仅调用 `secscore_lib::run()` |
| 后端命令注册总线 | `src-tauri/src/lib.rs` | `invoke_handler` 注册命令与初始化流程 |
| 数据库连接/同步核心 | `src-tauri/src/commands/database.rs` | 复杂热点文件,改动需重点回归 |
| 前端构建配置 | `vite.config.ts` | `@` 别名、端口 `1420`、排除 `old-ss` 扫描 |
| Tauri 构建配置 | `src-tauri/tauri.conf.json` | `beforeDevCommand`、窗口/打包/插件设置 |
## 关键约束
- 当前开发目标:优先 Tauri 版本;不要把 Electron 新功能落在主线目录。
- 提交信息使用中文;提交后需推送远程(按仓库现有协作约束执行)。
- 包管理器默认使用 `pnpm`(注意:`src-tauri/tauri.conf.json``before*Command` 当前仍为 `npm run ...`)。
- 代码风格以配置文件为准:`.editorconfig``eslint.config.mjs``.prettierrc.yaml`
## 反模式
- 不要在 `src-tauri/src/commands/database.rs``src/components/Home.tsx` 等超大文件里继续堆叠新职责;先拆分再扩展。
- 不要将 `old-ss/` 作为新功能主实现目录。
- 不要绕过静态检查直接交付(至少通过 `lint``typecheck`)。
## 常用命令
```bash
pnpm install
pnpm dev
pnpm tauri:dev
pnpm lint
pnpm typecheck
pnpm build
pnpm tauri:build
```
## 分层文档
- 前端细则:`src/AGENTS.md`
- Tauri/Rust 细则:`src-tauri/AGENTS.md`
- 遗留目录边界:`old-ss/AGENTS.md`
+32
View File
@@ -0,0 +1,32 @@
# 遗留目录说明(old-ss
## 作用域
本文件仅说明 `old-ss/` 的边界:该目录为 Electron 历史实现,默认仅作参考。
## 目录定位
- `old-ss/src/main/`:历史主进程实现。
- `old-ss/src/renderer/`:历史渲染层实现。
- `old-ss/src/mobile/`:历史移动端实验实现。
- `old-ss/src/preload/`:历史预加载桥接实现。
- `old-ss/src/shared/`:历史共享内核与规则引擎。
## 工作边界
- 当前主线开发默认不在 `old-ss/` 落新功能。
- 仅在“迁移对照、行为回溯、数据兼容核对”场景读取本目录。
- 若必须修改本目录,请在变更说明中标记“遗留修复”。
## 反模式
- 不要把新业务逻辑先实现到 `old-ss/` 再回迁。
- 不要把 `old-ss/` 的旧模式直接复制到 Tauri 主线。
- 不要把 `old-ss/` 构建问题当作主线发布阻塞项。
## 参考命令(仅遗留排查)
```bash
pnpm --dir old-ss install
pnpm --dir old-ss dev
```
+47
View File
@@ -0,0 +1,47 @@
# 后端知识库(src-tauri
## 作用域
本文件仅约束 `src-tauri/`Rust + Tauri)后端实现。
## 关键入口
- `src-tauri/src/main.rs`:二进制入口,调用 `secscore_lib::run()`
- `src-tauri/src/lib.rs`:应用装配中心(`setup``invoke_handler`、托盘/窗口、数据库启动)。
- `src-tauri/src/state.rs`:全局状态容器。
## 模块分层
- `src-tauri/src/commands/`Tauri IPC 命令边界层。
- `src-tauri/src/services/`:业务服务层(鉴权、设置、主题、数据等)。
- `src-tauri/src/db/`:连接、迁移、实体与仓储。
- `src-tauri/src/models/`:模型与 DTO。
## 后端约束
- 新命令必须在 `commands/mod.rs` 导出,并在 `lib.rs``invoke_handler` 注册。
- 命令层优先做参数校验与权限校验,业务细节下沉至 `services/`
- 涉及数据库结构或同步策略变更时,必须同步审阅 `db/migration.rs``commands/database.rs`
- 变更 `board`/SQL 查询相关能力时,优先白名单策略,避免扩散动态 SQL 风险面。
## 后端反模式
- 不要在 `commands/database.rs` 继续堆新职责;优先拆分为更小模块。
- 不要把 UI 或前端状态逻辑迁入 Rust 命令层。
- 不要绕过统一状态容器直接创建长期悬挂资源。
## 后端验证
在仓库根目录执行:
```bash
pnpm lint
pnpm typecheck
pnpm tauri:build
```
CI/发布场景还需参考:`.github/workflows/build.yml`
## 说明
- 当前 `src-tauri/tauri.conf.json``beforeDevCommand`/`beforeBuildCommand` 使用 `npm run ...`,与仓库默认 `pnpm` 并存;修改构建链路时请同步评估。
+46
View File
@@ -0,0 +1,46 @@
# 前端知识库(src
## 作用域
本文件仅约束 `src/` 前端实现,不覆盖 `src-tauri/` Rust 后端规则。
## 核心入口
- `src/main.tsx`:前端启动、`window.api` 注入、日志桥接、平台 class 注入。
- `src/App.tsx`:主流程编排(权限、页面路由、同步流程)。
- `src/preload/types.ts`:前后端 API 类型契约(改动需双端联调)。
## 关键目录
- `src/components/`:主 UI 组件(含多个大文件热点)。
- `src/contexts/`:全局上下文与服务注入。
- `src/services/`:前端服务封装。
- `src/shared/`:共享内核与自动评分规则引擎。
- `src/i18n/`:国际化文本。
## 前端约束
- 新增功能优先复用已有模式:`Context + Service`,避免平行新架构。
- 变更 `src/preload/types.ts` 时,必须同步核对后端命令与参数。
-`Home.tsx``Settings.tsx``BoardManager.tsx` 等超大组件的改动,优先拆分子组件/Hook,避免继续膨胀。
- 避免把后端业务判断塞入前端 UI;业务规则优先落在 `src-tauri/`
## 前端反模式
- 不要在组件内重复实现同一业务规则(统一收敛到 service/shared)。
- 不要直接写“魔法字符串”调用后端接口,统一走类型化 API。
- 不要绕过 `i18n` 直接硬编码用户可见文本。
## 前端验证
```bash
pnpm lint
pnpm typecheck
pnpm build
```
若改动涉及界面交互流程,再执行:
```bash
pnpm tauri:dev
```