更新RMDC系统的模块SKILL
This commit is contained in:
109
1-AgentSkills/developing-rmdc/SKILL.md
Normal file
109
1-AgentSkills/developing-rmdc/SKILL.md
Normal file
@@ -0,0 +1,109 @@
|
||||
---
|
||||
name: developing-rmdc
|
||||
description: "System-level guidance for RMDC platform development covering cross-module consistency, dependency rules, version compatibility, and global change workflows. Triggered when making changes affecting multiple modules, modifying shared contracts, or planning system-wide updates. Keywords: rmdc-core, rmdc-user-auth, rmdc-jenkins-branch-dac, rmdc-exchange-hub, rmdc-watchdog, rmdc-project-management, rmdc-work-procedure, rmdc-audit-log, cross-module, dependency."
|
||||
allowed-tools:
|
||||
- Read
|
||||
- Glob
|
||||
- Grep
|
||||
- Bash
|
||||
argument-hint: "$ARGUMENTS: <scope> [modules...] — scope: cross-module|dependency|version|release"
|
||||
---
|
||||
|
||||
# developing-rmdc
|
||||
|
||||
## 概述
|
||||
本 Skill 提供 RMDC 系统级开发指导,确保跨模块一致性、依赖管理与版本兼容。
|
||||
|
||||
## 动态上下文注入
|
||||
|
||||
### 查看模块结构
|
||||
!`ls -la internal/ 2>/dev/null || find . -maxdepth 2 -type d -name "rmdc-*"`
|
||||
|
||||
### 查看模块依赖
|
||||
!`grep -rn "import.*rmdc" --include="*.go" | grep -v "_test.go" | head -30`
|
||||
|
||||
---
|
||||
|
||||
## 模块依赖关系
|
||||
|
||||
```
|
||||
rmdc-core (API Gateway)
|
||||
├── rmdc-user-auth (认证/权限)
|
||||
│ ├── rmdc-work-procedure (工单)
|
||||
│ └── rmdc-jenkins-branch-dac (Jenkins权限数据)
|
||||
├── rmdc-jenkins-branch-dac (构建管理)
|
||||
│ └── rmdc-audit-log
|
||||
├── rmdc-exchange-hub (MQTT网关)
|
||||
│ └── rmdc-audit-log
|
||||
├── rmdc-watchdog (边缘代理)
|
||||
│ └── rmdc-project-management (一级授权)
|
||||
├── rmdc-project-management (项目管理)
|
||||
│ └── rmdc-audit-log
|
||||
├── rmdc-work-procedure (工单)
|
||||
│ └── rmdc-audit-log
|
||||
└── rmdc-audit-log (审计)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Plan(规划阶段)
|
||||
|
||||
### 跨模块变更检查
|
||||
| 变更类型 | 影响评估 |
|
||||
|:---|:---|
|
||||
| JWT Claims 变更 | 影响所有需鉴权模块 |
|
||||
| RBAC 角色变更 | 影响 user-auth + 所有权限检查点 |
|
||||
| 审计字段变更 | 影响所有写审计的模块 |
|
||||
| 工单流程变更 | 影响 user-auth + project-management |
|
||||
| MQTT Topic 变更 | 影响 exchange-hub + watchdog |
|
||||
|
||||
### 决策点
|
||||
- [ ] 识别所有受影响模块
|
||||
- [ ] 确定变更顺序(先依赖后被依赖)
|
||||
- [ ] 确定是否需要版本兼容期
|
||||
|
||||
---
|
||||
|
||||
## Verify(验证清单)
|
||||
|
||||
### 依赖一致性
|
||||
- [ ] 所有模块使用相同版本的 rmdc-common
|
||||
- [ ] JWT Claims 定义在所有模块一致
|
||||
- [ ] 错误码无冲突
|
||||
- [ ] 审计字段格式统一
|
||||
|
||||
### 接口兼容性
|
||||
- [ ] 内部 API 向后兼容
|
||||
- [ ] MQTT 消息格式兼容
|
||||
- [ ] 数据库 Schema 兼容
|
||||
|
||||
---
|
||||
|
||||
## Execute(执行步骤)
|
||||
|
||||
### 跨模块变更流程
|
||||
1. 创建变更计划文档
|
||||
2. 识别所有受影响模块
|
||||
3. 按依赖顺序更新(先 common,后业务)
|
||||
4. 在每个模块运行验证
|
||||
5. 集成测试
|
||||
6. 统一发布
|
||||
|
||||
---
|
||||
|
||||
## Pitfalls(常见坑)
|
||||
|
||||
1. **依赖版本不一致**:不同模块使用不同版本的 common 包。
|
||||
2. **JWT Claims 不同步**:一个模块新增字段,其他模块未解析。
|
||||
3. **发布顺序错误**:被依赖模块未先发布。
|
||||
4. **审计格式不统一**:不同模块的审计记录格式不同。
|
||||
5. **错误码冲突**:不同模块定义了相同的错误码。
|
||||
|
||||
---
|
||||
|
||||
## 相关文件
|
||||
| 用途 | 路径 |
|
||||
|:---|:---|
|
||||
| 模块依赖 | [reference/module-dependencies.md](reference/module-dependencies.md) |
|
||||
| 术语表 | [reference/terminology.md](reference/terminology.md) |
|
||||
| 版本兼容 | [reference/version-compatibility.md](reference/version-compatibility.md) |
|
||||
@@ -0,0 +1,32 @@
|
||||
# RMDC 模块依赖关系
|
||||
|
||||
## 依赖矩阵
|
||||
|
||||
| 模块 | 依赖模块 | 被依赖模块 |
|
||||
|:---|:---|:---|
|
||||
| rmdc-core | user-auth, jenkins-dac, exchange-hub, watchdog, project-mgmt, work-procedure, audit-log | - |
|
||||
| rmdc-user-auth | work-procedure, jenkins-dac, common | core |
|
||||
| rmdc-jenkins-branch-dac | audit-log, common | core, user-auth |
|
||||
| rmdc-exchange-hub | audit-log, common | core |
|
||||
| rmdc-watchdog | project-mgmt, common | core |
|
||||
| rmdc-project-management | audit-log, common | core, watchdog |
|
||||
| rmdc-work-procedure | audit-log, common | core, user-auth |
|
||||
| rmdc-audit-log | common | jenkins-dac, exchange-hub, project-mgmt, work-procedure |
|
||||
| rmdc-common | - | 所有模块 |
|
||||
|
||||
## 变更影响传播
|
||||
|
||||
```
|
||||
修改 rmdc-common → 需要重新测试所有模块
|
||||
修改 rmdc-user-auth JWT → 需要更新 rmdc-core 中间件
|
||||
修改 rmdc-audit-log 字段 → 需要更新所有写审计的模块
|
||||
```
|
||||
|
||||
## 发布顺序
|
||||
|
||||
1. rmdc-common (基础)
|
||||
2. rmdc-audit-log (审计基础)
|
||||
3. rmdc-work-procedure (工单基础)
|
||||
4. rmdc-jenkins-branch-dac / rmdc-project-management (并行)
|
||||
5. rmdc-user-auth / rmdc-exchange-hub / rmdc-watchdog (并行)
|
||||
6. rmdc-core (网关,最后)
|
||||
18
1-AgentSkills/developing-rmdc/reference/terminology.md
Normal file
18
1-AgentSkills/developing-rmdc/reference/terminology.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# RMDC 术语表
|
||||
|
||||
| 术语 | 定义 |
|
||||
|:---|:---|
|
||||
| 一级授权 | 由 rmdc-project-management 管理的项目级权限 |
|
||||
| 二级授权 | 由 rmdc-watchdog 执行的 TOTP 动态授权 |
|
||||
| DAC | Discretionary Access Control,自主访问控制(Jenkins 分支权限) |
|
||||
| RBAC | Role-Based Access Control,基于角色的访问控制 |
|
||||
| JWT | JSON Web Token,用户认证令牌 |
|
||||
| 工单 | 需要审批的变更请求,由 rmdc-work-procedure 管理 |
|
||||
| 指令生命周期 | MQTT 指令从发送到完成的状态流转 |
|
||||
| SuperAdmin | 超级管理员,拥有系统全部权限 |
|
||||
| Admin | 管理员,可管理普通用户和三方用户 |
|
||||
| Normal | 普通用户 |
|
||||
| Third | 三方用户,最低权限 |
|
||||
| 谁注册谁管理 | 用户管理原则:注册人负责管理被注册用户的生命周期 |
|
||||
| RSA-OAEP | RSA 最优非对称加密填充,用于密码传输加密 |
|
||||
| bcrypt | 密码哈希算法,用于密码存储 |
|
||||
@@ -0,0 +1,36 @@
|
||||
# RMDC 版本兼容策略
|
||||
|
||||
## 版本号规范
|
||||
|
||||
采用语义化版本:`MAJOR.MINOR.PATCH`
|
||||
|
||||
- **MAJOR**: 不兼容的 API 变更
|
||||
- **MINOR**: 向后兼容的功能新增
|
||||
- **PATCH**: 向后兼容的问题修复
|
||||
|
||||
## 兼容性规则
|
||||
|
||||
### API 兼容
|
||||
- 新增可选字段:兼容
|
||||
- 新增必填字段:Breaking Change
|
||||
- 删除字段:Breaking Change
|
||||
- 修改字段类型:Breaking Change
|
||||
|
||||
### 数据库兼容
|
||||
- 新增可空列:兼容
|
||||
- 新增非空列(有默认值):兼容
|
||||
- 删除列:Breaking Change
|
||||
- 修改列类型:需评估
|
||||
|
||||
### MQTT 消息兼容
|
||||
- 新增可选字段:兼容
|
||||
- 消息必须包含版本字段
|
||||
- 消费者必须忽略未知字段
|
||||
|
||||
## Breaking Change 处理流程
|
||||
|
||||
1. 提前通知所有相关模块负责人
|
||||
2. 创建新版本接口(v2)
|
||||
3. 旧版本标记废弃(Deprecated)
|
||||
4. 设定过渡期(建议 2 个迭代)
|
||||
5. 过渡期结束后下线旧版本
|
||||
56
1-AgentSkills/developing-rmdc/scripts/verify-module-deps.sh
Normal file
56
1-AgentSkills/developing-rmdc/scripts/verify-module-deps.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/bin/bash
|
||||
# verify-module-deps.sh - 验证模块依赖一致性
|
||||
# 依赖: go, grep
|
||||
# 用法: ./verify-module-deps.sh
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="${SCRIPT_DIR}/../../.."
|
||||
|
||||
echo "=== RMDC 模块依赖验证 ==="
|
||||
echo ""
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
pass() { echo -e "${GREEN}[PASS]${NC} $1"; }
|
||||
fail() { echo -e "${RED}[FAIL]${NC} $1"; }
|
||||
warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
||||
|
||||
# 检查 go.mod 中的依赖版本一致性
|
||||
check_common_version() {
|
||||
echo "--- 检查 rmdc-common 版本一致性 ---"
|
||||
|
||||
VERSIONS=$(find "${PROJECT_ROOT}" -name "go.mod" -exec grep "rmdc-common" {} \; 2>/dev/null | \
|
||||
grep -oE "v[0-9]+\.[0-9]+\.[0-9]+" | sort | uniq)
|
||||
|
||||
VERSION_COUNT=$(echo "$VERSIONS" | wc -l)
|
||||
|
||||
if [ "$VERSION_COUNT" -eq 1 ]; then
|
||||
pass "rmdc-common 版本一致: $VERSIONS"
|
||||
else
|
||||
fail "rmdc-common 版本不一致: $VERSIONS"
|
||||
fi
|
||||
}
|
||||
|
||||
# 检查循环依赖
|
||||
check_circular_deps() {
|
||||
echo "--- 检查循环依赖 ---"
|
||||
|
||||
cd "${PROJECT_ROOT}"
|
||||
if go mod graph 2>/dev/null | grep -E "rmdc.*rmdc" | head -20; then
|
||||
warn "发现模块间依赖,请确认无循环"
|
||||
else
|
||||
pass "未发现明显循环依赖"
|
||||
fi
|
||||
}
|
||||
|
||||
# 执行检查
|
||||
check_common_version
|
||||
check_circular_deps
|
||||
|
||||
echo ""
|
||||
echo "=== 依赖验证完成 ==="
|
||||
Reference in New Issue
Block a user