mirror of
https://github.com/SECTL/SecScore.git
synced 2026-07-19 06:04:22 +08:00
添加AGENTS.MD
由oMo/init-deep和GPT5.3codex生成
This commit is contained in:
@@ -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`
|
||||
|
||||
@@ -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
|
||||
```
|
||||
@@ -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` 并存;修改构建链路时请同步评估。
|
||||
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user