mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 07:22:49 +08:00
feat(rules): 新增零散规则管理机制
- 新增 .agents/rules/ 目录,存放模块级/场景级独立规则文件 - 新增 ulthon-rules-manager 技能,指导规则的新增/索引/格式 - 新增 ulthon-timer-multi-node 规则文件(从 PROJECT.md 迁移) - AGENTS.md 新增「零散规则」章节,含框架级规则索引表 - PROJECT.md 新增「规则索引」章节,含全量规则索引表 - 命名约定:ulthon- 前缀为框架内置,project- 前缀为使用者业务
This commit is contained in:
@@ -27,25 +27,18 @@
|
||||
|
||||
开发过程中补充的业务规则、团队偏好与临时约束,按条新增。规则应可执行、可复现、可验证。
|
||||
|
||||
> 已迁移为独立规则文件的条目保留引用,不再在此处展开内容。
|
||||
|
||||
### 2026-05-26: 定时任务多节点协调
|
||||
|
||||
新增功能:
|
||||
- 多节点定时任务协调(数据库为主协调中心)
|
||||
- run_type 调度:auto/main/all/manual
|
||||
- 主节点自动选举 + 手动切换
|
||||
- 执行日志记录与查看
|
||||
- 定时任务配置管理 UI
|
||||
- 日志清理命令 `php think admin:timer:log:clean`
|
||||
已迁移至独立规则文件:[ulthon-timer-multi-node.md](rules/ulthon-timer-multi-node.md)
|
||||
|
||||
新增数据表:
|
||||
- ul_system_timer_config
|
||||
- ul_system_timer_log
|
||||
- ul_system_host 新增 is_master 字段
|
||||
## 规则索引
|
||||
|
||||
新增命令:
|
||||
- admin:timer:log:clean [--days=30]
|
||||
本项目的零散规则存放在 `.agents/rules/` 目录下,每条规则一个独立文件。
|
||||
|
||||
新增管理页面:
|
||||
- 定时器配置管理 (/admin/system.timer_config/index)
|
||||
- 定时器执行日志 (/admin/system.timer_log/index)
|
||||
- 主机列表增强(主节点标识、切换主节点)
|
||||
| 规则文件 | 来源 | 作用域 | 说明 |
|
||||
|---------|------|--------|------|
|
||||
| [ulthon-timer-multi-node.md](rules/ulthon-timer-multi-node.md) | 框架 | 定时任务相关 | 多节点协调规则 |
|
||||
|
||||
> 新增/维护规则请参考技能:[ulthon-rules-manager](skills/ulthon-rules-manager/SKILL.md)
|
||||
|
||||
35
.agents/rules/.README
Normal file
35
.agents/rules/.README
Normal file
@@ -0,0 +1,35 @@
|
||||
# 零散规则目录
|
||||
|
||||
本目录存放按模块/场景拆分的独立规则文件,避免全局规则膨胀。
|
||||
|
||||
## 命名约定
|
||||
|
||||
- `ulthon-` 前缀:框架内置规则,框架作者维护
|
||||
- `project-` 前缀:使用者业务规则,开发者维护
|
||||
|
||||
## 文件格式
|
||||
|
||||
每个规则文件包含以下章节:
|
||||
|
||||
```markdown
|
||||
# 规则名称
|
||||
|
||||
> 来源:框架内置(ulthon-)或使用者业务(project-)
|
||||
> 作用域:适用的模块/文件/场景
|
||||
> 触发条件:智能体何时应加载此规则
|
||||
|
||||
## 规则内容
|
||||
(具体的可执行规则)
|
||||
|
||||
## 相关文件 / 相关数据表 / 相关命令
|
||||
(关联的代码路径、配置路径等)
|
||||
```
|
||||
|
||||
## 索引
|
||||
|
||||
- 框架级规则索引:根目录 `AGENTS.md` 的「零散规则」章节
|
||||
- 全量规则索引:`.agents/PROJECT.md` 的「规则索引」章节
|
||||
|
||||
## 管理技能
|
||||
|
||||
新增/维护规则时,参考技能:[ulthon-rules-manager](../skills/ulthon-rules-manager/SKILL.md)
|
||||
33
.agents/rules/ulthon-timer-multi-node.md
Normal file
33
.agents/rules/ulthon-timer-multi-node.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# 定时任务多节点协调
|
||||
|
||||
> 来源:框架内置(ulthon-)
|
||||
> 作用域:定时任务相关模块(TimerConfig、TimerLog、Host)
|
||||
> 触发条件:涉及定时任务开发、多节点部署、主节点选举等场景时加载
|
||||
|
||||
## 规则内容
|
||||
|
||||
- 多节点定时任务协调以数据库为主协调中心
|
||||
- run_type 调度模式:auto / main / all / manual
|
||||
- 支持主节点自动选举与手动切换
|
||||
- 执行日志必须记录,支持查看与清理
|
||||
- 定时任务配置管理通过 UI 管理
|
||||
|
||||
## 相关数据表
|
||||
|
||||
- ul_system_timer_config
|
||||
- ul_system_timer_log
|
||||
- ul_system_host(含 is_master 字段)
|
||||
|
||||
## 相关命令
|
||||
|
||||
- `php think admin:timer:log:clean [--days=30]` — 清理过期执行日志
|
||||
|
||||
## 相关管理页面
|
||||
|
||||
- 定时器配置管理:/admin/system.timer_config/index
|
||||
- 定时器执行日志:/admin/system.timer_log/index
|
||||
- 主机列表增强(主节点标识、切换主节点)
|
||||
|
||||
## 相关技能
|
||||
|
||||
- [ulthon-timer](../skills/ulthon-timer/SKILL.md)
|
||||
126
.agents/skills/ulthon-rules-manager/SKILL.md
Normal file
126
.agents/skills/ulthon-rules-manager/SKILL.md
Normal file
@@ -0,0 +1,126 @@
|
||||
---
|
||||
name: "ulthon-rules-manager"
|
||||
description: "零散规则管理技能。指导智能体在 `.agents/rules/` 目录下新增、维护模块级/场景级规则文件,并同步更新 AGENTS.md 与 PROJECT.md 的规则索引。触发词包括"记录规则"、"新增规则"、"写条规则"、"这个模块有约束"、"记录约束"等。"
|
||||
---
|
||||
|
||||
# 零散规则管理(Rules Manager)
|
||||
|
||||
## 核心概念
|
||||
|
||||
**零散规则**是针对特定模块或场景的约束,不适合放在全局 `AGENTS.md` 中展开。它们存放在 `.agents/rules/` 目录下,每条规则一个独立文件,通过索引被智能体发现和引用。
|
||||
|
||||
**和 Skills 的区别**:Skills 是"按场景调用的工作流说明"(怎么做),Rules 是"特定模块的约束/约定"(不能怎么做 / 必须遵守什么)。
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
.agents/rules/
|
||||
├── .README # 目录说明与格式规范
|
||||
├── ulthon-timer-multi-node.md # 框架内置规则示例
|
||||
├── project-xxx.md # 使用者业务规则示例
|
||||
└── ...
|
||||
```
|
||||
|
||||
## 命名约定
|
||||
|
||||
| 前缀 | 含义 | 维护者 | 约束 |
|
||||
|------|------|--------|------|
|
||||
| `ulthon-` | 框架内置规则 | 框架作者 | 随框架更新分发 |
|
||||
| `project-` | 使用者业务规则 | 开发者 | 不被框架更新影响 |
|
||||
|
||||
文件名使用小写英文 + 短横线,语义清晰,例如:
|
||||
- `ulthon-timer-multi-node.md`
|
||||
- `ulthon-upload-storage.md`
|
||||
- `project-order-stock-lock.md`
|
||||
- `project-wechat-auth.md`
|
||||
|
||||
## 规则文件格式模板
|
||||
|
||||
```markdown
|
||||
# 规则名称
|
||||
|
||||
> 来源:框架内置(ulthon-)或 使用者业务(project-)
|
||||
> 作用域:适用的模块/文件/场景
|
||||
> 触发条件:智能体何时应加载此规则
|
||||
|
||||
## 规则内容
|
||||
|
||||
(具体的可执行规则,每条应可验证)
|
||||
|
||||
## 相关文件
|
||||
|
||||
(关联的代码路径、配置路径等)
|
||||
|
||||
## 相关技能
|
||||
|
||||
(如有对应的 Skill,用相对链接引用)
|
||||
```
|
||||
|
||||
必填章节:`规则内容`
|
||||
按需章节:`相关文件`、`相关数据表`、`相关命令`、`相关技能`
|
||||
|
||||
## 新增规则流程
|
||||
|
||||
### 1. 判断是否需要新增规则
|
||||
|
||||
满足以下条件之一时,应建议新增规则:
|
||||
- 某个模块有独特的开发约束,不适合写在全局 `AGENTS.md`
|
||||
- 开发过程中发现了可复用的约定,值得记录
|
||||
- 用户明确要求"记录这条规则"/"这个模块有约束"
|
||||
|
||||
不满足条件时:
|
||||
- 如果是全局性规则 → 记录到 `AGENTS.md`(需框架作者身份确认)
|
||||
- 如果是项目业务概述 → 记录到 `.agents/PROJECT.md`
|
||||
|
||||
### 2. 确定命名与来源
|
||||
|
||||
- 框架内置规则:`ulthon-{模块}-{场景}.md`
|
||||
- 使用者业务规则:`project-{模块}-{场景}.md`
|
||||
|
||||
### 3. 编写规则文件
|
||||
|
||||
在 `.agents/rules/` 下创建文件,按格式模板填写。
|
||||
|
||||
规则内容要求:
|
||||
- **可执行**:智能体能直接据此行动
|
||||
- **可验证**:有明确的对/错判断标准
|
||||
- **有边界**:明确写出作用域,避免被误用到其他模块
|
||||
|
||||
### 4. 更新索引(必须)
|
||||
|
||||
新增规则后,必须同步更新两处索引:
|
||||
|
||||
**AGENTS.md(框架级索引)**:
|
||||
在「零散规则」章节的索引表中新增一行(仅 `ulthon-` 前缀的规则)。
|
||||
|
||||
**PROJECT.md(全量索引)**:
|
||||
在「规则索引」章节的索引表中新增一行(所有前缀的规则)。
|
||||
|
||||
### 5. 迁移现有内容
|
||||
|
||||
如果规则内容原本记录在 `PROJECT.md` 的「增量规则记录」章节,迁移后应将该章节的对应内容替换为指向规则文件的引用(而非直接删除,保留历史痕迹)。
|
||||
|
||||
## 读取规则
|
||||
|
||||
智能体在以下场景应主动查阅 `.agents/rules/`:
|
||||
|
||||
1. 首次接触项目时,通过 `AGENTS.md` 或 `PROJECT.md` 的索引了解有哪些规则
|
||||
2. 涉及特定模块开发时,查找该模块是否有对应的规则文件
|
||||
3. 用户提到某个模块有特殊约束时,查找对应规则
|
||||
|
||||
## 维护规则
|
||||
|
||||
- 规则内容变更时,同步更新文件内容和索引中的说明列
|
||||
- 规则过期时,标记为"已废弃"或直接删除,并从索引中移除
|
||||
- 框架更新时,只操作 `ulthon-` 前缀的规则文件,不动 `project-` 前缀的文件
|
||||
|
||||
## 索引格式
|
||||
|
||||
索引表统一使用以下格式:
|
||||
|
||||
```markdown
|
||||
| 规则文件 | 来源 | 作用域 | 说明 |
|
||||
|---------|------|--------|------|
|
||||
| ulthon-timer-multi-node.md | 框架 | 定时任务相关 | 多节点协调规则 |
|
||||
| project-order-stock-lock.md | 业务 | 订单模块 | 库存锁定规则 |
|
||||
```
|
||||
23
AGENTS.md
23
AGENTS.md
@@ -47,6 +47,7 @@
|
||||
- `source/` 下各子目录(客户端、大屏端、各类子项目等):若目录下存在 `AGENTS.md`,则该子工程规则以该文件为准
|
||||
- 部署栈模式:`source/stack/` 为模式文件统一目录(含 `default/` 与各模式目录);`default/` 必须与代码库默认行为一致;默认行为相关文件变更时需同步更新 `source/stack/default/` 对应文件
|
||||
- 命令执行环境:执行 `php think` 命令前,需判断当前运行模式(Docker 模式下宿主机可能没有 PHP,不能依赖 `php think` 来检测)。判断方式:检查仓库根目录是否存在 `docker-compose.yaml` — 存在则为 Docker 模式;也可读取 `source/stack/stack.json` 了解所有可用模式及其说明。Docker 模式下所有 `php think` 命令前缀改为 `docker compose exec ulthon_admin`(如 `docker compose exec ulthon_admin php think tools:http:call`);非 Docker 模式直接在宿主机执行
|
||||
- 零散规则:特定模块/场景的约束存放在 `.agents/rules/`(详见「零散规则」章节),新增/维护规则见技能:[ulthon-rules-manager](./.agents/skills/ulthon-rules-manager/SKILL.md)
|
||||
- 权限:基于 `auth` 注解生成节点与鉴权;以角色为中心管理(角色、角色权限、用户角色);命令行使用见技能:[ulthon-permission-cli](./.agents/skills/ulthon-permission-cli/SKILL.md)
|
||||
- 临时文件:智能体在任务中产生的临时文件(脚本、日志、缓存、产物等)统一输出到 `runtime/agents/`(可按智能体/任务再分子目录),不要放在仓库根目录;除非任务明确要求或框架约定位置属于根目录
|
||||
- 调试与验证:优先使用框架内置命令行工具(tools:http:call、tools:db:*、tools:log:*、admin:menu:*、admin:permission:*),不需要借助外部数据库 MCP 或临时脚本
|
||||
@@ -78,9 +79,24 @@
|
||||
- 智能体以“框架作者”身份开发时,如需新增/调整规则,必须先与开发者确认是否记录、记录位置与具体写法,并按确认结果落到对应规则文件。
|
||||
- 智能体以“使用框架的开发者”身份执行任务时,如发现需要记录或调整的项目约束,应更新到对应规则文件(业务侧约束优先记录到 `.agents/PROJECT.md` 的「增量规则记录」章节),并可按开发者要求随时调整。
|
||||
|
||||
## 零散规则
|
||||
|
||||
针对特定模块/场景的约束,不适合在全局展开,存放在 `.agents/rules/` 目录下,每条规则一个独立文件。
|
||||
|
||||
- 命名约定:`ulthon-` 前缀为框架内置规则,`project-` 前缀为使用者业务规则
|
||||
- 管理技能:[ulthon-rules-manager](./.agents/skills/ulthon-rules-manager/SKILL.md)
|
||||
|
||||
### 框架内置规则索引
|
||||
|
||||
| 规则文件 | 作用域 | 说明 |
|
||||
|---------|--------|------|
|
||||
| [ulthon-timer-multi-node.md](./.agents/rules/ulthon-timer-multi-node.md) | 定时任务相关 | 多节点协调规则 |
|
||||
|
||||
> 使用者业务规则索引见 `.agents/PROJECT.md` 的「规则索引」章节。
|
||||
|
||||
## 工作流(Skills)
|
||||
|
||||
Skills 是“按场景调用的工作流说明”,统一以 `.agents/skills/*/SKILL.md` 为准。
|
||||
Skills 是"按场景调用的工作流说明",统一以 `.agents/skills/*/SKILL.md` 为准。
|
||||
|
||||
|
||||
- 技能命名约定:`ulthon-` 前缀为框架内置技能,`project-` 前缀为项目业务技能。新增业务技能时使用 `project-` 前缀。
|
||||
@@ -121,7 +137,10 @@ ulthon_admin/
|
||||
├── database/ # 数据库迁移与种子
|
||||
├── source/ # 主工程外内容统一目录(多端代码/资料/附件/各类子项目)
|
||||
│ └── clients/uniapp/ # uni-app 前端工程
|
||||
└── .agents/ # 智能体技能与规则
|
||||
└── .agents/ # 智能体协作资源
|
||||
├── skills/ # 工作流技能(按场景调用)
|
||||
├── rules/ # 零散规则(按模块/场景拆分)
|
||||
└── PROJECT.md # 项目业务总览与规则索引
|
||||
```
|
||||
|
||||
## 快速命令参考
|
||||
|
||||
Reference in New Issue
Block a user