初始化和增量更新 AI 记忆文件(CLAUDE.md、AGENTS.md、GEMINI.md)。通过交互式选择和差异对比,智能补全记忆项内容。触发条件:当用户提及初始化记忆文件、更新 CLAUDE.md、同步 AI 记忆、init-ai-md 等关键词时主动调用。
View on GitHubclaude-code-marketplace/common-tools/skills/init-ai-md/SKILL.md
February 3, 2026
Select agents to install to:
npx add-skill https://github.com/ruan-cat/monorepo/blob/main/claude-code-marketplace/common-tools/skills/init-ai-md/SKILL.md -a claude-code --skill init-ai-mdInstallation paths:
.claude/skills/init-ai-md/# init-ai-md 技能说明
本技能用于在项目中快速初始化和增量更新 AI 记忆文件。通过**交互式选择**和**差异对比补全**,帮助用户精确管理 AI 记忆文件内容。
## 核心功能
1. **初始化 CLAUDE.md**:检查并创建项目的 AI 记忆文件
2. **交互式选择**:扫描现有内容和可用模板,让用户选择需要的记忆项
3. **差异对比补全**:深度对比文本差异,仅补全缺失内容而非全量替换
4. **多文件同步**:支持同步更新 AGENTS.md 和 GEMINI.md
## 执行流程
### 步骤 1:检查 CLAUDE.md 文件
1. 检查项目根目录是否存在 `CLAUDE.md` 文件
2. 如果不存在:
- 先执行 Claude Code 内部的 `/init` 斜杠命令
- 确保生成的 `CLAUDE.md` 文件以**中文**编写
3. 如果已存在:
- 读取现有内容,准备进行扫描分析
### 步骤 2:扫描分析
1. **扫描目标文件**:
- 提取 `CLAUDE.md` 中所有的**二级标题**(`## xxx`)
- 记录每个二级标题下的内容摘要
- 建立现存记忆项清单
2. **扫描模板目录**:
- 读取 `templates/` 目录下的所有模板文件名
- 按照**数字前缀顺序**排序(如 `01.xxx.md`、`02.xxx.md`)
- 提取每个模板文件内的二级标题
- 建立可用记忆项清单
3. **对比分析**:
- 对比现存记忆项和可用记忆项
- 识别三类情况:
- **缺失**:模板中有但目标文件中没有的记忆项
- **需更新**:标题相同但内容存在差异的记忆项
- **已完整**:内容完全一致的记忆项
### 步骤 3:交互选择
**必须**使用 `AskUserQuestion` 工具与用户交互:
1. **展示扫描结果**:
- 列出当前 CLAUDE.md 中已存在的记忆项(二级标题列表)
- 列出 templates 目录中可用的记忆项
2. **生成选择问题**:
- 使用 `AskUserQuestion` 工具的 `multiSelect: true` 模式
- 将每个可用记忆项作为一个选项
- 选项描述中标注该记忆项的当前状态:
- `[缺失]` - 目标文件中不存在
- `[需更新]` - 存在但内容不完整
- `[已完整]` - 内容已完全一致
- 默认推荐选中状态为`[缺失]`和`[需更新]`的记忆项
3. **询问示例**:
```plain
请选择需要处理的记忆项:
选项:
- 主动问询实施细节 [需更新] - 内容存在差异,将补全缺失部分
- 编写测试用例规范 [缺失] - 将新增此记忆项
- 报告编写规范 [已完整] - 内容一致,无需更新
- 获取技术栈对应的上下文 [需更新] - 缺少部分链接
```
4. **等待用户选择**:
- 用户可多选需要处理的记忆项
- 用户可选择"其他"输入自定义需求
### 步骤 4:差异对比与增量补全
对用户选择的每个记忆项,执行**精细的差异对比**:
1. **逐行对比原则**:
- 深度阅读目标文件中该记忆项的完整内容
- 深度阅读模板文件中该记忆项的完整内容
- 逐行/逐段落进行对比
2. **识别差异类型**:
- **缺失行**:模板中有但目标文件中没有的行
- **缺失段落**:模板中有但目标文件中没有的完整段落
- **缺失子标题**:模板中有但目标文件中没有的三级/四级标题及其内容
- **内容差异**:同一位置但文本不同(需谨慎处理,可能是用户自定义内容)
3. **增量补全策略**:
- **仅补全缺失内容**,不全量替换
- 保持目标文件中已有的自定义内容
- 在合适的位置插入缺失的行/段落
- 保持内容的逻辑顺序和层级结构
4. **示例**:
假设目标文件 `CLAUDE.md` 存在以下内容:
```markdown
## 获取技术栈对应的上下文
### claude code skill
- 编写语法与格式: https://code.claude.com/docs/zh-CN/skills
- 最佳实践: https://platform.claude.com/docs/zh-C