Obsidian Bases spike — Sanity Check pipeline dashboard
30-min spike per founder greenlight 2026-05-01 17:55 ET. Goal: build a persistent
dashboard the founder sees natively in Obsidian (no Notion round-trip) for the
Sanity Check pipeline. If used, lift the kepano obsidian-bases skill thin. If
not, drop it.
What was written
~/rdco-vault/01-projects/newsletter/sanity-check-pipeline.base— co-located with the content it indexes. Bases is enabled in~/rdco-vault/.obsidian/core-plugins.json("bases": true), so it should render natively.
How the founder finds it in Obsidian
- File explorer →
01-projects/newsletter/sanity-check-pipeline.base→ click to open. - Or open via the Quick Switcher (
Cmd-O) and type “sanity-check-pipeline”. - Optional: right-click the file in the explorer → Add to bookmarks, so it shows up in the Bookmarks sidebar (the bookmarks plugin is already enabled).
- Optional: embed
![[sanity-check-pipeline.base]]into the existing01-projects/newsletter/index.mdso it appears inline when he opens that index.
The base ships with four views, switched via the view tabs at the top of the rendered base:
| View | Purpose |
|---|---|
| Pipeline (default) | Everything in the newsletter folder, grouped by type bucket (Draft → Research Brief → Strategy → Plan → Published Issue → Legacy Article → Social → Product Concept → Other). The full surface. |
| In flight | Drafts + research briefs + strategy + plan only. Day-to-day “what am I working on” view. |
| Published archive | The 21 historical SC issues, sorted by issue number. |
| Cards | Card layout for phone browsing. |
Frontmatter the dashboard depends on
Real fields used (all already present on most files):
type— drives the bucket grouping. Universally present. Values seen:newsletter,strategy,draft,research-brief,article,plan,social,product-concept. Abetvalue also exists onSTRATEGY.md.date— universally present. Used as the date column.issue— only on publishednewsletter-type files (e.g."021","early-01").status— sparsely used (active,draft,exploratory,ready-for-writing). Surfaced where present, dashed otherwise.file.name,file.mtime— file metadata, always available.
The base is self-contained YAML with safe if() guards on the optional fields, so
files missing status or issue still render cleanly.
Frontmatter normalization gaps surfaced
The dashboard works today, but it would get noticeably richer if the founder makes a future pass to standardize:
-
statusis missing on most files — only ~5 of ~50 have it. If we want a real “drafted vs in review vs published” pipeline view (analogous to the Notion content calendar’s Status field —Idea / Outlined / Drafted / Published), every newsletter- adjacent file needs astatusvalue. Today the “In flight” view filters bytypeas a proxy, which is coarser than status would be. -
No publication date distinct from creation date. The
datefield is mostly creation date (e.g.2021-03-04for SC E01). For a pipeline with a “publish when?” column, a separatepublish_datefield on drafts/briefs would be valuable. -
issuenumbering scheme is mixed. Published issues use"000","011"–"021", and"early-01"–"early-09". Sortable as strings but visually ugly. A future normalization could renumber to"E01"–"E09"+"M000"–"M021"or similar. Low priority — only matters in the “Published archive” view. -
typebucket coverage.STRATEGY.mdusestype: strategyplusbet: newsletter— surfaces under “Strategy / Calendar”. Course-notes subfolder content wasn’t sampled; if those files have inconsistent or missingtypethey’ll fall into the “Other” bucket. Easy fix when the founder next touches them. -
tagsandpillarare inconsistent. Some files havetags: [sanity-check, mac, ...], most don’t. If we eventually want a “filter by editorial pillar” view (per the 5-piece canonical-thesis arc inSTRATEGY.md), apillarfield convention would be the enabling change.
None of these block the spike — flagging them for a future founder-driven cleanup pass.
Verdict on lifting the kepano obsidian-bases skill
WAIT-FOR-FOUNDER-FEEDBACK. The skill is small (one ~13KB SKILL.md + a functions
reference) and I’ve already absorbed the syntax to write this base. Lifting it as
a ~/.claude/skills/obsidian-bases/ reference is cheap, but only worth doing if
the founder actually opens this base, finds it useful, and wants me building more of
them (per-bet pipelines, contact dashboards, vault-health views, etc.). If he ignores
this dashboard for a week, the skill lift is wasted overhead. The kepano source URL
(https://github.com/kepano/obsidian-skills/tree/main/skills/obsidian-bases) is
captured here for fast lift if/when the signal comes.
Flag worth attention
The kepano skill’s “this Obsidian version supports Bases” preamble couldn’t be
verified from the help.obsidian.md pages (they’re empty bodies that 404 / require JS).
The vault’s core-plugins.json already has "bases": true, which strongly suggests
the founder’s installed version supports it — but if the base file fails to render
(“unknown extension” or similar), the first thing to check is Obsidian → Settings →
About → Update. Bases shipped in Obsidian 1.9.0 (June 2025) per public release
notes; the founder’s vault config implies he’s already on a compatible version.