Obsidian base author
Skill 21noises/agent-skills/plugins/obsidian/skills/obsidian-base-author
编写与修改 Obsidian Bases(`.base` 文件),为笔记建立数据库式视图,含筛选、公式、属性显示名、汇总与单个视图的布局。当前工作目录本身就是一个 Obsidian vault。当用户要新建或改动 `.base`,要给笔记做表格、卡片、列表视图,要做阅读清单、索引、仪表盘这类需求时走本 skill。它内置了 Bases 语法、函数的完整参考,以及本仓库约定的命名与单视图规则。触发示例:「给我的任务建一个表格视图」「做一个阅读清单的卡片视图」「按文件夹和标签筛出笔记列成表格」「改一下这个 base 的筛选条件」。From its SKILL.md
npx -y skills add 21noises/agent-skills --skill obsidian-base-authorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 2 commands, including `obsidian bases` and 1 more.
SKILL.md
6.7 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it
你要把一个组织需求落成一份合法、可被 Obsidian 正确渲染的 .base 文件。你不需要判断问题能不能用 base 回答、该不该为它新建 base,你要做的只是想尽一切办法创建符合查询需求的 base 文件。
前置条件
Obsidian 1.12.7 及以上,并已启用 CLI:Settings → General → Command line interface(一次性注册后会生成 obsidian 命令)。若命令报「command not found」,说明 CLI 尚未注册,请如实报告,不要改用其他工具绕开。
命令依赖 Obsidian 应用运行,但不必手动先开;首条命令会自动把它启动起来,可能略有延迟。
关键约定
- 一个
.base文件只放一个视图。 需要第二个视图就新建第二个文件。 - 文件名主体等于视图的
name字段,由「功能词加视图类型词」连写组成。 视图类型词取常用三种的中文说法(表格、卡片、列表),紧跟在功能词之后,不加点号也不加任何分隔符。例如把阅读清单做成卡片视图,存成阅读清单卡片.base,name也写「阅读清单卡片」。这样跑obsidian bases看一眼文件名就能同时认出视图的功能与类型。
由这两条推出的简化:因为只有一个视图,全局 filters 与视图级 filters 的区分失去意义,两者求值时按 AND 拼接。筛选统一写在全局 filters,单个 views 条目只管呈现,即 order、groupBy、limit、视图级 summaries,结构最干净。
工作流
- 先列出已有 base。 跑
obsidian bases列出 vault 里全部.base文件,确认目标文件名不与现有文件冲突。新建的.base一律写到 vault 根的bases目录下。这一步强制,不可跳过。 - 确认数据集与布局。 明确这一个视图要呈现哪些笔记,可按标签、文件夹、属性、日期、文件类型圈定,以及用哪种布局,可选
table、cards、list、map。 - 写
filters(统一放全局)。 用比较运算符与函数表达筛选。注意file.hasTag连带命中嵌套标签,file.inFolder连带命中子文件夹。详见references/filters-and-operators.md与references/properties-and-this.md。 - 按需写
formulas。 计算列写在这里。可能缺失的属性一律用if(prop, ...)做空值保护;两个日期相减得到的是毫秒数,类型为 number,求天数要除以86400000,小时除3600000、周除604800000,结果是数字可直接.round(),没有.days这类字段;公式间引用不得成环。详见references/type-system.md与references/functions-index.md。 - 写
properties与summaries。properties配显示名,summaries定义自定义汇总。默认汇总有 Average、Sum、Median、Earliest、Checked、Unique 等,见references/views-and-summaries.md。 - 组装那唯一的
views条目。name与文件名主体一致,填order定要显示的属性顺序、sort定行的排序,以及groupBy、limit、视图级summaries。凡是要「最近 N 篇」「某序在前」的,必须写sort,只写limit是按默认顺序截断,拿不到想要的那批。视图细节见references/views-and-summaries.md。 - 校验后写入 vault。 必须是合法 YAML;含双引号的公式整体用单引号包裹;含特殊字符的字符串加引号;
order与properties里每个formula.X都要在formulas有定义。引号规则见references/quoting-rules.md,逐项校验见references/validation-checklist.md,具体错误模式见references/下pitfall-开头的各页。 - 自检渲染结果。 跑
obsidian base:query path=bases/<文件名>.base format=md,路径即第 7 步写入的那个,看视图是否真的产出预期行。单视图无须传view=。纯写文件无法预览,这一步是唯一的事实校验。- backlinks 与 properties 引发的豁免。 若自检结果与预期不符,而这个 base 的筛选、公式或
order用到了file.backlinks或file.properties,先怀疑是这两者不随 vault 自动刷新、CLI 读到陈旧索引所致,而不是 base 文件本身有错。判据是:把对这两个属性的依赖排除后,base 在 YAML 语法与查询逻辑上都成立。满足时不要反复改 base 去追这个假错误,把这次不符判为豁免,如实告诉用户自检受索引刷新限制无法确认,并引导用户自己在 Obsidian 里打开这个.base文件查看,应用内是实时数据,以应用内结果为准。
- backlinks 与 properties 引发的豁免。 若自检结果与预期不符,而这个 base 的筛选、公式或
参考文档导航
正文细节全部下沉到 references/,按需求查下表打开对应页面:
| 需求 | 看哪一页 |
|---|---|
| 整体 YAML 形状与五大区块 | references/base-file-schema.md |
| 写筛选条件、运算符 | references/filters-and-operators.md |
属性引用、file 属性表、this | references/properties-and-this.md |
| 类型、日期算术、日期相减得毫秒数 | references/type-system.md |
| 找某个函数(速查签名) | references/functions-index.md |
| 某函数的参数语义与示例 | references/functions-detail.md |
| 视图配置、汇总、默认 summary | references/views-and-summaries.md |
| 引号该用单双引号 | references/quoting-rules.md |
| 写入前逐项校验 | references/validation-checklist.md |
| 字符串含特殊字符报 YAML 错 | references/pitfall-unquoted-special-chars.md |
| 双引号公式报 YAML 错 | references/pitfall-nested-quotes.md |
| 日期相减算不出天数 | references/pitfall-date-subtraction-no-days.md |
| 属性为空时公式崩 | references/pitfall-missing-null-guard.md |
formula.X 静默失效 | references/pitfall-undefined-formula-reference.md |
| 进行中任务表格范例 | references/example-tasks-in-progress.md |
| 阅读清单卡片范例 | references/example-reading-list.md |
| 日记索引表格范例 | references/example-daily-note-index.md |
What ships with it: 17 files
40.1 KB alongside SKILL.md
references/
- base-file-schema.md2.8 KB
- example-daily-note-index.md793 B
- example-reading-list.md825 B
- example-tasks-in-progress.md1.1 KB
- filters-and-operators.md2.7 KB
- functions-detail.md11.3 KB
- functions-index.md5.8 KB
- pitfall-date-subtraction-no-days.md485 B
- pitfall-missing-null-guard.md314 B
- pitfall-nested-quotes.md370 B
- pitfall-undefined-formula-reference.md373 B
- pitfall-unquoted-special-chars.md379 B
- properties-and-this.md3.6 KB
- quoting-rules.md400 B
- type-system.md4.7 KB
- validation-checklist.md737 B
- views-and-summaries.md3.6 KB