feat: 新增 obsidian 插件族(9 个技能)

- 新增 plugins/obsidian 插件目录,含 9 个 obsidian-* 技能
- 核心技能重构:去除 README.md 分散路由,合并 vault 自动检测
  SOP(.obsidian/ 目录置信度表 + 标准进入动作)到 SKILL.md
- 所有技能 description 精简重写:触发信号 + 边界 + .obsidian/
  联动激活信号,字数从 300+ 压缩至 220-250
- 更新 marketplace.json 追加 obsidian 插件条目

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
SkyJourney
2026-05-01 13:20:31 +08:00
co-authored by Claude Sonnet 4.6
parent f13bd26f59
commit 1e35ee4d9f
11 changed files with 2473 additions and 0 deletions
@@ -0,0 +1,284 @@
---
name: obsidian-plugins
description: 管理 Obsidian 环境配置:核心/社区插件的启用/禁用/安装/卸载、主题切换、CSS snippets 管理、Templates 模板管理、Obsidian 内置命令执行、快捷键查询。触发词:启用插件、社区插件、Obsidian 主题、CSS snippet、Templates、快捷键、hotkey、首次配置 vault。不用于笔记内容 CRUD(obsidian 核心技能)。检测到 .obsidian/ 时与核心技能同步激活。
---
# Obsidian Plugins · 环境配置管理
> Obsidian 的"控制面板":插件、主题、CSS、模板、命令、快捷键。一份技能管完所有环境配置。
---
## 何时使用
- **启用/禁用/安装/卸载**核心或社区插件
- 切换 / 安装 / 卸载**主题**
- 管理 **CSS snippets**(自定义样式片段)
- 管理 **Templates**Obsidian Templates 核心插件的模板文件)
- 查看 / 执行 Obsidian 内置**命令**`obsidian command id=...`
- 查询 / 管理**快捷键**hotkeys
- 切换 **Restricted Mode**(安全模式,禁用社区插件)
## 不用于
- 笔记内容 CRUD → **obsidian** 核心技能
- Frontmatter 管理 → **obsidian-meta**
- Vault 层面同步设置 → **obsidian-history**
---
## 命令速查
### 插件(Plugins
```bash
# 列出
obsidian plugins # 列出所有已安装插件(tsv 默认)
obsidian plugins filter=core # 只看核心插件
obsidian plugins filter=community # 只看社区插件
obsidian plugins versions # 含版本号
obsidian plugins format=json # JSON 输出
obsidian plugins:enabled # 只列启用的
obsidian plugins:enabled filter=community versions format=json
obsidian plugin id=dataview # 某插件详情
obsidian plugin id=<id> # 通过 ID 查询
```
```bash
# 启用/禁用/安装/卸载
obsidian plugin:enable id=daily-notes # 启用核心插件
obsidian plugin:enable id=dataview filter=community
obsidian plugin:disable id=dataview filter=community
obsidian plugin:install id=obsidian-git enable # 安装并立即启用(社区)
obsidian plugin:uninstall id=dataview
obsidian plugin:reload id=dataview # 开发用:重载插件
```
### 安全模式(Restricted Mode
```bash
obsidian plugins:restrict on # 开启受限模式(禁用所有社区插件)
obsidian plugins:restrict off # 关闭
obsidian plugins:restrict # 查询状态
```
### 主题(Themes
```bash
obsidian themes # 列出所有已安装主题
obsidian themes versions # 含版本号
obsidian theme # 当前主题
obsidian theme name="Minimal" # 某主题详情
obsidian theme:set name="Minimal" # 切换主题
obsidian theme:set name="" # 恢复默认
obsidian theme:install name="Minimal" enable # 安装并启用
obsidian theme:uninstall name="Minimal"
```
### CSS Snippets
```bash
obsidian snippets # 列出所有已安装 snippets
obsidian snippets:enabled # 已启用的
obsidian snippet:enable name="compact-tables"
obsidian snippet:disable name="compact-tables"
```
### Templates(核心插件)
```bash
obsidian templates # 列出所有模板
obsidian templates total # 数量
obsidian template:read name="daily" # 读取模板内容
obsidian template:read name="daily" resolve title="2026-04-09" # 解析变量后读取
obsidian template:insert name="meeting" # 插入到当前激活文件
```
> 💡 Templates 插件需要先启用:`obsidian plugin:enable id=templates` 并在设置中指定模板文件夹。
### CommandsObsidian 内置命令系统)
```bash
obsidian commands # 列出所有可用命令
obsidian commands filter=editor # 按前缀筛选
obsidian commands filter=daily # 每日笔记相关命令
obsidian command id="editor:toggle-bold" # 执行命令(触发 Obsidian 内部动作)
obsidian command id="workspace:split-vertical"
obsidian command id="app:go-back"
```
### Hotkeys 快捷键
```bash
obsidian hotkeys # 列出所有快捷键(tsv
obsidian hotkeys format=json
obsidian hotkeys all # 含未绑定快捷键的命令
obsidian hotkeys verbose # 显示是否自定义
obsidian hotkeys total # 数量
obsidian hotkey id="editor:toggle-bold" # 查询某命令的快捷键
obsidian hotkey id="editor:toggle-bold" verbose
```
---
## AI Agent 最佳实践
### 场景 1 · 首次配置检查清单
Agent 第一次进入某 vault,验证基础环境:
```bash
#!/bin/bash
# obsidian-doctor.sh:环境体检
echo "=== Vault 基础 ==="
obsidian vault info=name
obsidian version
echo "=== 核心插件启用状态 ==="
REQUIRED=("daily-notes" "templates" "file-recovery" "command-palette" "backlink" "outgoing-link")
for p in "${REQUIRED[@]}"; do
STATUS=$(obsidian plugin id=$p 2>/dev/null | grep -o 'enabled: true' && echo "✅" || echo "$p 未启用")
echo "$STATUS"
done
echo "=== 社区插件 ==="
obsidian plugins filter=community versions
echo "=== 主题 ==="
obsidian theme
echo "=== 受限模式 ==="
obsidian plugins:restrict
```
### 场景 2 · 为 AI 工作流推荐的最小插件集
```bash
# 启用核心插件(最小集)
obsidian plugin:enable id=daily-notes
obsidian plugin:enable id=templates
obsidian plugin:enable id=file-recovery
obsidian plugin:enable id=backlink
obsidian plugin:enable id=outgoing-link
obsidian plugin:enable id=tag-pane
obsidian plugin:enable id=graph
obsidian plugin:enable id=properties # Obsidian 1.4+ 的属性面板
# 可选:启用 Bases1.9+
obsidian plugin:enable id=bases
```
**推荐社区插件**AI 协作友好):
| 插件 ID | 用途 | 何时需要 |
|---------|------|---------|
| `obsidian-git` | Git 集成 | 永远需要(vault 备份) |
| `templater-obsidian` | 高级模板(JS 可执行) | 动态模板 |
| `dataview` | 查询语言 | 还没迁移到 Bases |
| `tasks` | 高级任务管理 | 重度 GTD 用户 |
| `calendar` | 日历侧栏 | 频繁用每日笔记 |
| `advanced-uri` | URI 命令增强 | 脚本化自动化 |
```bash
# 批量安装
for p in obsidian-git templater-obsidian tasks calendar; do
obsidian plugin:install id=$p enable
done
```
### 场景 3 · 动态调用 Obsidian 内部命令
`obsidian command id=...` 可以执行**任意** Obsidian 命令,相当于 UI 层的自动化:
```bash
# 拆分工作区(左侧文件树 + 右侧编辑)
obsidian command id="workspace:split-vertical"
# 打开快速切换器
obsidian command id="switcher:open"
# 打开命令面板(不常用,因为命令面板本身是交互式 UI)
obsidian command id="command-palette:open"
# 切换 Reading View
obsidian command id="markdown:toggle-preview"
# 折叠所有标题
obsidian command id="editor:fold-all"
```
**发现命令 ID**`obsidian commands | less``obsidian commands filter=<prefix>`
### 场景 4 · 模板驱动的笔记创建
```bash
# 1. 先看有哪些模板
obsidian templates
# 2. 预览模板内容
obsidian template:read name="project-kickoff" resolve title="Alpha"
# 3. 基于模板创建新笔记(通过 create + content
CONTENT=$(obsidian template:read name="project-kickoff" resolve title="Alpha")
obsidian create path="10-Projects/alpha/README.md" content="$CONTENT" open
```
### 场景 5 · CSS Snippet 自动切换(深色/浅色模式)
```bash
# 检测系统时间切换不同的 CSS snippet
HOUR=$(date +%H)
if [ "$HOUR" -ge 19 ] || [ "$HOUR" -lt 7 ]; then
obsidian snippet:enable name="dark-extra"
obsidian snippet:disable name="light-extra"
else
obsidian snippet:enable name="light-extra"
obsidian snippet:disable name="dark-extra"
fi
```
### 场景 6 · 快捷键审计
```bash
# 查自定义过的快捷键(避免冲突)
obsidian hotkeys verbose format=json | jq '.[] | select(.custom == true)'
# 查没有快捷键绑定的命令(发现可以加快捷键的命令)
obsidian hotkeys all format=json | jq '.[] | select(.hotkey == null)'
```
---
## 与其他技能的协作
| 场景 | 链路 |
|-----|------|
| 启用 Daily Notes 前置 | obsidian-plugins → **obsidian-daily** |
| 启用 Bases 前置 | obsidian-plugins`plugin:enable id=bases`)→ **obsidian-bases** |
| 启用 Templates 前置 | obsidian-plugins → **obsidian-daily**daily template |
| 启用 File Recovery 前置 | obsidian-plugins → **obsidian-history** |
| 推荐插件清单 | obsidian-plugins + **obsidian-workflow-pkm** |
---
## 常见陷阱
| 现象 | 原因 | 对策 |
|------|------|------|
| `plugin:install` 失败 | 处于 Restricted Mode | `plugins:restrict off` |
| 社区插件 ID 写错 | 大小写/连字符敏感 | 先 `plugins filter=community` 查正确 ID |
| `command id=...` 无效 | 命令 ID 写错 | `commands filter=<prefix>` 查询 |
| Template 变量未解析 | 没加 `resolve` 参数 | `template:read name=<n> resolve` |
| Templates 插件找不到模板 | 模板文件夹没配 | Settings → Templates → Template folder location |
| 切主题后样式错乱 | 新主题与某 snippet 冲突 | 临时 `snippet:disable` 所有 |
| 社区插件升级后命令失效 | 插件 API 变更 | `plugin:reload` 或重启 Obsidian |
| Restricted Mode 下 agent 脚本报错 | Community 插件全部禁用 | 脚本增加 `plugins:restrict` 检查 |