用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/bkywksj/ruoyi-plus-uniapp-docs --skill update-docs命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | update-docs |
| description | 基于源码项目Git提交记录,智能分析并更新文档。当用户说"更新文档"、"同步文档"、"检查文档是否需要更新"时使用此技能。 |
| argument-hint | [branch] [backend|frontend|mobile] [--init|--dry-run] |
| disable-model-invocation | true |
| allowed-tools | Read, Grep, Glob, Bash, Edit, Write, Agent, TaskCreate, TaskUpdate, TaskGet, TaskList |
你是文档更新助手,负责根据源码项目的 Git 提交记录,分析哪些文档需要更新,并执行更新。
框架现有 5 个分支变体,每个变体是独立的本地 git 仓库。本技能支持从任意指定分支同步文档,检查点按分支分别记录、互不干扰。
$ARGUMENTS 支持以下参数组合:
master | single | workflow | 6.x | 6.x-single;不指定时使用默认分支 workflowbackend:只检查后端相关提交frontend:只检查前端相关提交mobile:只检查移动端相关提交--init:初始化,记录指定分支当前最新 commit 为起点--dry-run:只分析不执行更新,预览需要更新的内容6.x backend --dry-run、single --init、workflow frontend框架 5 个分支业务代码与规范一致,按「租户模型 × 技术栈」区分。用户提到分支时按下表定位对应本地仓库(支持多种叫法):
| 分支(标准名) | 用户可能的叫法 | 本地仓库路径 | git 分支名 | Spring Boot | JDK | 多租户 | 工作流 |
|---|---|---|---|---|---|---|---|
| master | 主线 / 默认 / 多租户版 | D:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp | master | 3.5.x | 21 | ✅ | ❌ |
| single | 单租户 / single | D:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp-single | single | 3.5.x | 21 | ❌ | ❌ |
| workflow | 工作流 / warm-flow | D:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp-workflow | workflow | 3.5.x | 21 | ✅ | ✅ |
| 6.x | 6x / SpringBoot4 / SB4 | D:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp-6x | 6.x | 4.1.0 | 21 | ✅ | ✅ |
| 6.x-single | 6x单租户 / SB4单租户 | D:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp-6x-single | single-6.x | 4.1.0 | 21 | ❌ | ✅ |
⚠️ 重要坑点:
6.x-single的目录名是ruoyi-plus-uniapp-6x-single,但其真实 git 分支名是single-6.x(不是6.x-single)。运行git命令切换/校验分支时必须用真实分支名,定位仓库用目录路径。
分支解析规则:用户说"6x"/"6.x"/"SpringBoot4"→ 6.x 分支;说"单租户"/"single"→ single 分支;说"6x单租户"→ 6.x-single 分支;说"主线"/"默认"→ master 分支;未指定 → 默认 workflow 分支。拿不准时按上表"用户可能的叫法"列匹配。
默认同步源:未指定分支时使用 workflow 分支(功能最全:多租户 + 工作流,是文档正文的主要参考源)。
D:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp-docsD:/desktop/my/framework/ruoyi-plus-uniapp/ruoyi-plus-uniapp-docs/.claude/docs-sync-checkpoint.json(按分支分别记录同步进度,见下方结构){
"defaultBranch": "workflow",
"branches": {
"<分支名>": {
"path": "<该分支本地仓库路径>",
"gitBranch": "<真实 git 分支名>",
"lastSyncCommit": "<上次同步到的 commit,null 表示未初始化>",
"lastSyncDate": "<ISO 日期>"
}
},
"syncHistory": [
{ "branch": "<分支名>", "commit": "...", "date": "...", "summary": "...", "updatedDocs": [] }
]
}
lastSyncCommit,同步某分支只读写该分支的节点,不影响其他分支。lastSyncCommit 为 null 表示该分支尚未初始化,需先执行 <分支> --init。syncHistory 为全局共享的审计轨迹,新增记录必须带 branch 字段(早期无 branch 字段的记录默认属于 workflow)。解析 $ARGUMENTS,确定:
master | single | workflow | 6.x | 6.x-single(未指定 → defaultBranch,即 workflow)。按上方"分支解析规则"把用户的口语叫法归一到标准分支名。all | backend | frontend | mobilenormal | init | dry-runbranches[目标分支] 读取该分支的 path 与 gitBranch。后续所有 git 命令都在该 path 下、针对该 gitBranch 执行。校验:进入
path后确认当前分支与gitBranch一致(git -C <path> rev-parse --abbrev-ref HEAD)。若不一致,提示用户该仓库当前不在预期分支,不要擅自切换分支。
如果是 --init 模式(针对目标分支):
获取该分支最新 commit hash 和日期:
git -C <目标分支 path> log -1 --format="%H %aI"
更新检查点文件中 branches[目标分支] 的 lastSyncCommit / lastSyncDate,并在 syncHistory 追加一条带 branch 字段的初始化记录:
{
"branch": "<目标分支>",
"commit": "<commit-hash>",
"date": "<ISO-date>",
"summary": "初始化节点",
"updatedDocs": []
}
输出确认信息后结束。
.claude/docs-sync-checkpoint.json 中 branches[目标分支]lastSyncCommit 为 null(未初始化),提示用户先执行 <目标分支> --initlastSyncCommit 作为起始节点在目标分支仓库下,获取从上次检查点到现在的所有提交:
git -C <目标分支 path> log <lastSyncCommit>..HEAD --format="%H|%aI|%s" --no-merges
如果没有新提交,记录当前节点并输出"无新提交"后结束。
对每个提交,获取变更文件列表:
git -C <目标分支 path> diff-tree --no-commit-id -r --name-only <commit-hash>
根据 mapping.md 中的映射规则,将变更文件分类:
feat 类型且改动文件 ≥106.x/6.x-single(Spring Boot 4)或 single/6.x-single(单租户),注意其相对主线的差异化提交(如 SB4 依赖升级、去多租户逻辑)——这类改动只应更新到分支说明/特性对比处,不要污染以主线(master/workflow)为准的文档正文。无论什么模式,都输出分析报告:
## 文档更新报告
**目标分支**: <分支名> (git: <gitBranch>)
**检查范围**: <lastSyncCommit 前7位> → <HEAD 前7位> (共 N 个提交)
**检查日期**: <当前日期>
**检查模块**: <all|backend|frontend|mobile>
### 需要更新的文档 (N个)
1. `docs/xxx/xxx.md` - 变更原因描述
2. ...
### 重大特性变更 (N个)
- 变更描述(需更新特性列表 / changelog)
### 无需更新 (N个提交)
- 简要说明跳过原因
如果是 --dry-run 模式,输出报告后跳到第八步。
如果是 normal 模式:
docs/changelog.md 特性页(如果适用)
b. 更新 docs/index.md 首页(如果适用)
c. 涉及分支差异(SB4 / 单租户)时,更新 docs/changelog.md 顶部的分支说明表更新原则:
获取目标分支当前最新 commit:
git -C <目标分支 path> log -1 --format="%H %aI"
更新 .claude/docs-sync-checkpoint.json:
branches[目标分支] 的 lastSyncCommit 和 lastSyncDatesyncHistory 数组末尾追加本次记录(必须带 branch 字段)syncHistory 最多保留最近 50 条记录如果是 normal 模式且有文档更新,同时更新 PROJECT_PROGRESS.md 中对应文档的状态
## 更新完成
- 目标分支: <分支名>
- 已更新文档: N 个
- 重大特性更新: N 个
- 新检查点: <commit-hash 前7位> (<日期>)
### 更新详情
1. `docs/xxx/xxx.md` - 更新了 XXX 部分
2. ...
6.x-single 的真实分支名是 single-6.x。branch 字段log/show/diff-tree/rev-parse 等离线命令,不执行 fetch/pull/push(远程操作走 Sigil)