obsidian-bases-b78ada — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited obsidian-bases-b78ada (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
.base file and keep it valid YAML.filters.order and optional grouping or summaries.Prefer Obsidian-native file properties and existing note properties before introducing new frontmatter fields.
file.name, file.basename, file.folder, file.path, file.ext, file.ctime, file.mtime, file.tags, file.links, file.backlinks, file.embeds, and file.properties when they satisfy the request.file.hasTag(...), file.inFolder(...), and file.hasLink(...) for scope filters instead of adding duplicate custom metadata.status, priority, due, category, type, author, pages, or cover unless the user asks for them, the vault already uses them, or the requested view cannot be built from native metadata.Base files use the .base extension and contain valid YAML.
filters:
and: []
formulas:
age_days: '(now() - file.ctime).days'
properties:
formula.age_days:
displayName: "Age (days)"
views:
- type: table
name: "All Notes"
order:
- file.name
- formula.age_daysUse string expressions for simple cases and nested and / or / not objects when the logic needs structure.
filters:
and:
- 'file.ext == "md"'
- file.hasTag("project")filters:
or:
- file.hasTag("book")
- and:
- file.inFolder("Reading")
- 'status != "done"'Prefer global filters for the overall dataset and per-view filters only when one view needs a narrower slice.
Formulas are shared computed properties. Keep them null-safe and easy to read.
formulas:
days_until_due: 'if(due_date, (date(due_date) - today()).days, "")'
day_of_week: 'date(file.basename).format("dddd")'Common rules:
.days, .hours, or another numeric field before rounding.if() instead of assuming every note has the field.formula.X used in properties, order, or summaries must exist in formulas.Supported view types are table, cards, list, and map.
table for sortable indexes and status views.cards for gallery-style browsing with cover or summary fields.list for compact navigation.map only when the vault already has latitude and longitude style properties and the Maps plugin is relevant.Example:
views:
- type: table
name: "Active Tasks"
filters:
and:
- 'status != "done"'
order:
- file.name
- status
- due_date
groupBy:
property: status
direction: ASC
summaries:
due_date: Latest:, #, [, ], {, }, or ,.formula.X unless X is defined in formulas.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.