elliotjlt/claude-skill-potions/obsidian-base-create
Claude Code and agent skill by elliotjlt/claude-skill-potions
- community
Checking that the SKILL.md file is still in the repository.
Generates Obsidian .base files from natural language descriptions. Translates requests like "show me all active project notes sorted by date" into valid .base YAML with filters, formulas, views, and summaries. Activates on "create base", "make a view", "show me all notes where", "dashboard", or when user wants structured views of their vault.
Install
npx vskill@latest install elliotjlt/claude-skill-potions/obsidian-base-createSKILL.md
Obsidian Base Create
<purpose> Bases bring database-style views to Obsidian — tables, cards, lists, maps — all powered by note frontmatter. The .base format is YAML but the syntax is non-obvious: nested filter logic, formula functions, property references, view configurations. This skill translates what you want to see into working .base files. </purpose>
When To Activate
<triggers>
- User says "create base", "make a base", "new base"
- User says "show me all notes where...", "filter my notes", "dashboard"
- User says "I want a table of...", "list all my...", "view of..."
- User wants to track tasks, projects, readings, meetings across notes
- After vault init when creating starter views
</triggers>
Do NOT trigger for:
- Editing existing .base files (edit directly)
- Simple search queries (use obsidian-vault-search)
- Views that don't depend on frontmatter properties
Instructions
Step 1: Understand What the User Wants to See
<clarify> Map the request to a base configuration:
| Request | View Type | Key Filter | Sort | |
|---|---|---|---|---|
| "All my meetings" | table | type == meeting | date desc | |
| "Active projects" | cards | type == project AND status == active | name asc | |
| "Tasks this week" | table | type == task AND date >= week start | date asc | |
| "Recent notes" | table | (none or date-based) | file.mtime desc | |
| "Reading list" | cards | type == reference AND status == draft | created desc |
Ask if not obvious:
- What properties should show as columns?
- How should it be sorted?
- Table, cards, or list view?
</clarify>
Step 2: Check Available Properties
<properties> Before building filters, check what properties actually exist in the vault:
Common properties from the vault schema (check CLAUDE.md):
type: note, meeting, project, daily, reference, taskstatus: draft, active, completed, archiveddate: YYYY-MM-DDcreated: YYYY-MM-DDproject: project nametags: array of tagsattendees: list (meetings)
Don't create filters on properties that don't exist in the vault. </properties>
Step 3: Build the Base YAML
<build> Base file structure:
Filter operators:
| Operator | Meaning | |
|---|---|---|
== | equals | |
!= | not equals | |
> | greater than | |
< | less than | |
>= | greater or equal | |
<= | less or equal |
Compound filters (AND/OR/NOT):
File metadata properties:
</build>
Step 4: Add Formulas (if needed)
<formulas> Formulas are computed properties that derive values from existing data:
Useful formula functions:
- Date:
now(),today(),date("YYYY-MM-DD"),format(date, "MMM DD"),relative(date) - String:
contains(str, substr),replace(str, old, new),lower(str),trim(str) - Number:
abs(),ceil(),floor(),round() - List:
filter(),map(),join(),sort(),.length - File:
hasTag(tag),hasProperty(prop),inFolder(path),asLink() - Logic:
if(condition, then, else)
The `this` keyword refers to the current row's note. </formulas>
Step 5: Configure View
<views> Table view (best for data-heavy views):
Cards view (best for visual browsing):
List view (best for simple lists):
Multiple views (same base, different perspectives):
Summaries (aggregate values shown at column bottom):
Summary types: average, min, max, sum, range, median, count, earliest, latest, checked, unchecked, empty, filled, unique </views>
Step 6: Write and Verify
<write>
Write the YAML. Then verify by checking the YAML is valid:
Confirm:
</write>
Output Format
NEVER
- Create filters on properties that don't exist in the vault
- Write invalid YAML (always validate)
- Skip checking what properties exist first
- Use complex formulas without explaining what they compute
- Create a base without at least one view configured
- Assume property names — check CLAUDE.md or scan existing notes
ALWAYS
- Check what frontmatter properties exist in the vault first
- Validate the YAML output
- Include at least
file.namein every view's properties - Use descriptive view names
- Explain the filter logic in plain English
- Suggest additional views or formulas that might be useful
Example
User: "Make me a dashboard showing all active projects with their status and last modified date"
<failed-attempts> What DOESN'T work:
- Filtering on
contentor note body — Bases only filters on frontmatter properties and file metadata - Using Dataview syntax (
FROM,WHERE) — Bases has its own YAML syntax, not Dataview - Assuming properties exist — if notes don't have
statusin frontmatter, the filter returns nothing - Complex nested formulas without testing — start simple, iterate
</failed-attempts>
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/obsidian-base-create/SKILL.md
Popularity
- Repository stars
- 55
- Repository forks
- 2
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 7 May 2026, 6 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/elliotjlt/claude-skill-potions/obsidian-base-create)