更新RMDC系统的模块SKILL

This commit is contained in:
zeaslity
2026-02-02 15:06:28 +08:00
parent 93624efdab
commit a02ac14481
89 changed files with 8101 additions and 2417 deletions

View 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) |

View File

@@ -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 (网关,最后)

View 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 | 密码哈希算法,用于密码存储 |

View File

@@ -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. 过渡期结束后下线旧版本

View 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 "=== 依赖验证完成 ==="