Create dynamic, queryable dashboard views of the Obsidian vault using Obsidian Bases — a native Obsidian feature that turns vault frontmatter into interactive tables, card galleries, and lists. Use this skill when the user says "create a dashboard", "vault dashboard", "show all X as a table", "dynamic view", "create a vault table", "build a content index", "show me all concepts/entities/projects", or wants a structured, auto-updating view of their wiki content. Requires Obsidian 1.8+ (Bases is a core plugin, no external install needed).
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
You are creating a .base file — an Obsidian Bases definition that turns vault frontmatter into a live, queryable view. The .base format is native to Obsidian 1.8+ and requires no plugins.
~/.obsidian-wiki/config (preferred) or .env (fallback) to get OBSIDIAN_VAULT_PATH$OBSIDIAN_VAULT_PATH/index.md to understand what categories and pages exist.base files define database-style views over vault notes. Each file declares:
table, cards, or listfile.* helpers and arithmeticEmbed a .base into any note with ![[MyBase.base]].
Determine:
.base FileThe .base format is YAML. Here are the patterns you'll use:
filters:
- type: folder
folder: concepts
columns:
- property: file.name
title: Page
- property: tags
title: Tags
- property: summary
title: Summary
- property: updated
title: Updated
sort:
- property: updated
direction: desc
view: tablefilters:
- type: tag
tag: "#machine-learning"
columns:
- property: file.name
title: Page
- property: category
title: Category
- property: summary
title: Summary
- property: created
title: Created
sort:
- property: created
direction: desc
view: tablefilters:
operator: and
conditions:
- type: folder
folder: projects
- type: tag
tag: "#active"
columns:
- property: file.name
title: Project
- property: summary
title: Summary
- property: updated
title: Last Updated
view: cardscolumns:
- property: file.name
title: Page
- property: updated
title: Updated
- formula: "floor((now() - updated) / 86400000)"
title: Days Stale
type: number
sort:
- formula: "floor((now() - updated) / 86400000)"
direction: desc
view: tablefile.hasTag("tag") — boolean, true if page has tagfile.inFolder("path") — boolean, true if page is in folderfile.name — the note's filename (without extension)file.path — full vault-relative pathnow() — current timestamp in ms+, -, *, /, floor(), ceil()==, !=, >, <, >=, <=Target path: $OBSIDIAN_VAULT_PATH/_meta/<dashboard-name>.base
Use a slug derived from the dashboard's purpose:
_meta/concepts-index.base_meta/recent-ingests.base_meta/projects-overview.base_meta/stale-pages.baseCreate _meta/ if it doesn't exist yet.
If the user wants the dashboard embedded in an existing note (e.g., index.md or a project overview), add:
## <Dashboard Title>
![[_meta/<dashboard-name>.base]]Ask the user before modifying an existing note.
log.md — Append:
- [TIMESTAMP] WIKI_DASHBOARD name="<slug>" view=<type> filter="<description>"No manifest or index update needed — .base files are live queries, not static content pages.
Tell the user about these if they're not sure what to ask for:
| Dashboard | What it shows |
|---|---|
| Content index | All wiki pages grouped by category, sortable by updated date |
| Entity tracker | All entity pages (people, tools, orgs) with tags and sources |
| Ingestion log | Pages sorted by created date — see what was added recently |
| Stale content | Pages not updated in 30+ days — maintenance view |
| Project overview | All project pages with last-sync date |
| Tag cloud | Pages grouped by tag — see coverage across topics |
| Research tracker | All synthesis pages tagged research — shows research history |
.base YAML is valid and uses correct field names_meta/ with a descriptive sluglog.md updated![[_meta/<name>.base]]) and what Obsidian version is required (1.8+)saski/arnesto
752f690
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.