← ClaudeAtlas

cm-doc-syncerlisted

文档同步 Skill,开发完成后自动更新 README、.claude/ 配置、specs CHANGELOG,保持文档与代码一致
kingxiaozhe/cm-workflow · ★ 0 · AI & Automation · score 72
Install: claude install-skill kingxiaozhe/cm-workflow
# cm-doc-syncer — 文档同步器 在所有开发任务完成后,自动同步更新项目文档。确保文档和代码保持一致。 ## 触发条件 由 `/cm-ai` 在所有 feature 开发完成后自动调用。 ## 输入 - specs 文件夹路径 - 代码项目路径(可多个) - LESSONS.md 中积累的架构决策 ## 执行步骤 ### 1. 扫描变更 对每个代码项目,先读其 CLAUDE.md「版本控制」字段,按值选变更识别方式(显式分支,不得自行发明): - `remote` / `local` → `git diff {基线}..HEAD` 获取变更文件。基线按序尝试:① 上一份 CHANGELOG 头部记录的 `base-commit`(见步骤 5)→ ② 无则取首个 scaffold/初始 commit → ③ 仍无法确定则按全量文件清单处理,并在输出中注明「基线不明,按全量」 - `none` 或项目无 `.git` → **降级为文件扫描**:遍历源码目录,结合 specs 各 feature 的 tasks.md 勾选项反推本次变更集(与 cm:init 的 none 降级约定对齐) - 字段缺失但有 `.git` → 按 `local` 处理 随后(与版本控制方式无关): - 识别新增的目录、模块、API、数据模型 - 从 specs 的 requirements.md 获取功能描述;requirements.md 缺失 → 该 feature 跳过描述提取并在最终输出中上报「specs 不完整」,不得凭 tasks.md 猜功能描述 - 从 LESSONS.md 获取架构决策和踩坑记录;文件不存在 → 按 0 条处理,不报错不中断 ### 2. 更新 README.md 对每个代码项目的 README 进行精炼更新: **必须覆盖:** - **项目简介** — 一句话说清楚是什么 - **架构概览** — 技术栈、目录结构、核心模块关系 - **快速开始** — 安装、配置环境变量、运行的最少步骤 - **功能模块** — 各模块简述,本次新增的功能标注 - **API/接口** — 关键接口说明(如有后端) - **合约地址** — 部署的合约信息(如有合约) - **部署** — 构建命令、部署方式、环境要求 **原则:** - 精炼,开发者能在 2 分钟内理解项目全貌 - 已有的 README 合理内容保留,只更新/补充变更涉及的部分 - 如项目没有 README → 新建完整版 - 不写废话,不放过时信息 ### 3. 更新 .claude/CLAUDE.md 检查变更是否影响项目结构,保持 ≤150 行: - 新增了目录 → 更新「目录结构」 - 新增了常用命令 → 更新「常用命令」 - 引入了新技术栈 → 更新「技术栈」 - 新增了 rules 文件 → 更新引用列表 ### 4. 更新 .claude/rules/ 检查变更中是否出现了新的模式或约定,按下表判据决定(满足才建,不满足不建,无中间态): | 变更特征 | 动作 | | ---- | ---- | | 新增 ≥2 个路由/接口文件(如 `src/api/**`) | 创建 `rules/backend-api.md` | | 新增 migration 目录或 ORM 配置 | 创建 `rules/database.md` | | 新增 `contracts/**` 或合约框架配置 | 创建 `rules/