AI agent skill · by @huangkiki
Generate Mocs
重新生成 Obsidian 里的目录页 / 导航页(MOC)。 当用户说“更新索引”“更新论文和概念目录”“刷新论文和概念目录”“刷新MOC”时使用。
Archived 2026-10-23 · Source updated 2026-09-15 · License: Apache-2.0. Check the original repository for the latest version.
SKILL.md instructions
# 更新目录页
这个 skill 用于手动补刷 Obsidian 里的目录页 / 导航页(MOC)。
## Step 0: 读取共享配置
先读取 `../_shared/user-config.json`,如果 `../_shared/user-config.local.json` 存在,再用它覆盖默认值。
显式生成并在后续统一使用这些变量:
- `VAULT_PATH`
- `NOTES_PATH`
- `CONCEPTS_PATH`
- `AUTO_REFRESH_INDEXES`
- `GIT_COMMIT_ENABLED`
- `GIT_PUSH_ENABLED`
其中:
- `NOTES_PATH = {VAULT_PATH}/{paper_notes_folder}`
- `CONCEPTS_PATH = {NOTES_PATH}/{concepts_folder}`
- `GIT_PUSH_ENABLED` 只有在 `GIT_COMMIT_ENABLED=true` 时才可能为真
后续步骤统一使用上面的变量。
## 执行步骤
1. 运行概念目录页脚本:
```bash
python3 ../_shared/generate_concept_mocs.py
```
2. 运行论文目录页脚本:
```bash
python3 ../_shared/generate_paper_mocs.py
```
3. 汇报:
- 扫描了多少个目录
- 新建 / 更新了多少个目录页
- 目录页文件写到了哪里
## git 自动化
默认配置下:
- `AUTO_REFRESH_INDEXES=true`
- `GIT_COMMIT_ENABLED=false`
- `GIT_PUSH_ENABLED=false`
只有在 `GIT_COMMIT_ENABLED=true` 时才做 git 操作,并且必须先检查:
1. `VAULT_PATH/.git` 是否存在
2. `git add` 之后是否真的有 staged changes
只有在上面两项都满足时才 commit。
只有在 `GIT_PUSH_ENABLED=true` 且仓库已配置远端时才 push。
## 结果要求
- 目录页生成逻辑必须来自仓库自带脚本,不依赖 `VAULT_PATH/scripts/*`
- 重复运行应保持幂等
- 用户手动运行这个 skill 时,不受 `AUTO_REFRESH_INDEXES` 开关影响