Status
Visual audit pass landed 2026-05-03. Tag taxonomy is the controlled vocabulary (38 → 11 active tags). 5 MOCs exist for Frontend, KB, Tests, History, Compliance. The Index has a Maps of Content section pointing to all five.
Plugins are per-vault
The DBPOC-Vault has no community plugins installed as of 2026-05-03 (verified via
.obsidian/plugins/directory absence). Even though Charts, Dataview, Excalidraw, and Templater appear “INSTALLERAD” in Obsidian’s plugin browser, that flag reflects another vault — likely AI-GEMMA4-POC. To enable them here:
- Open Obsidian with this vault (
~/Documents/DBPOC-Vault/)- Settings → Community plugins → Browse → install Charts, Dataview, Excalidraw, Templater into THIS vault
- Enable them
Until that’s done, the Dashboard uses native mermaid (xychart-beta + pie + flowchart) for every panel — works in stock Obsidian. The
Wiki/Charts/*.json,Wiki/Bases/*.base, and Dataview/Excalidraw blocks documented in Dashboard Data Sources are dormant fallbacks that activate when the corresponding plugin lands.
Visual and structural rules for this vault. Pair with Wiki Conventions (filename / frontmatter / heading rules) and Lint Checklist (per-edit mechanical checks). The full visual audit and tag-taxonomy build was deferred when the responsible agent was interrupted; this is a working stub derived from the conventions already in use across the 98 notes.
Frontmatter
Every note opens with:
---
tags: [domain]
updated: YYYY-MM-DD
---tagsis a YAML list, never a comma-string.updatedis ISO date, no time, bumped only when the note’s content changes.- Optional:
aliases: [Alt Name]if the note has a real alternate name. - Optional:
cssclasses: [dashboard]for special-render notes.
Heading rules
- Zero or one H1 per note. Title is implicit when frontmatter
tagsand the filename are descriptive. - No skipped levels (H2 follows H2, not H4).
- Same-kind notes use the same H2 set. Examples:
- History era notes:
## Span,## Commits,## Significance,## Cross-references - Frontend section notes:
## Purpose,## File,## Props,## Backend,## Gotchas - Test suite notes:
## Files,## What it covers,## Fixtures,## Gaps
- History era notes:
Callout vocabulary
| Type | When |
|---|---|
> [!note] | Plain expository sidebar |
> [!info] | FYI, dashboard KPI strip semantic anchor |
> [!tip] | Pointer (“Start at Dashboard”) |
> [!success] | Verified-fixed claim (“RoPA gate confirmed at workers.ts:62”) |
> [!warning] | Real risk: hardcoded secret, destructive script, broken behavior |
> [!danger] | Production-impacting bug or compliance gap |
> [!example] | Foldable code/diagram demonstration. Use [!example]- for collapsed-by-default |
> [!abstract] | Definition or summary block at top of a note |
> [!quote] | Last-updated footer or external citation |
> [!todo] | Outstanding work, missing canvas, deferred decision |
> [!chart] | Wraps a Charts-plugin fenced block |
Foldable variants: > [!note]- (collapsed) and > [!note]+ (expanded). Use - aggressively on the dashboard so the page is short on first paint.
Code blocks
- Always include a language hint:
ts,tsx,sql,bash,sh,yaml,json,mermaid,chart,dataview,base. - Long blocks (>30 lines) get a one-line preface and a closing remark.
- Mermaid sources for the dashboard live under
Wiki/Mermaid/; inline copies inWiki/Dashboard.mdcite the source file with “Edit there, not here.”
Tables
- Header row required.
- Column count ≤ 5 in body notes; the dashboard KPI strip is the one intentional exception (5 cols).
- Standardize column order across same-kind notes. Test notes:
File | Lines | Covers | Notes. - Centre-align KPI numbers with
:---:.
Wikilinks
- Title-case
[[Note Name]], no.mdextension. - Alias with pipe:
[[Note Name|alias]]. - Section embed:
[[Note Name#heading|Heading]]. - Block embed:
![[Note Name]](whole note) or![[Note Name#heading|Heading]](one section). - Convert bare URLs in body text to
[label](url). Wikilink inside the vault, Markdown link to the outside.
Tag taxonomy (controlled vocabulary, finalised 2026-05-03)
Audit collapsed 38 distinct tags down to 11 in active use. Total tag occurrences across 99 notes: 110.
| Tag | Count | When to use |
|---|---|---|
process | 24 | Wiki conventions, lint, MOCs, dashboard, style guide, anything meta |
frontend | 17 | kundkort SPA, sections, hooks, charts, UI primitives, auth |
enrichment | 14 | Pipeline sources (Crawlee, Firecrawl, Maps, Domain Discovery), scoring, name validation |
kb | 13 | KB legal subproject (architecture, content, chat, UI, settings) |
test | 10 | Test strategy, per-suite docs, coverage gaps |
compliance | 8 | GDPR, RoPA, opt-out, Article 14, reklamspärr, Bisnode, blocklists |
architecture | 6 | System overview, stack, pipeline, repo layout, diagrams |
scripts | 5 | Import / archive / backup / debug / one-off scripts |
operations | 5 | Local dev, autoresearch loop, experiment results, known issues |
data | 5 | Bolagsverket import, SCB import, schema, schema migrations |
dashboard | 3 | The dashboard itself + its layout + data-source spec |
Reserved (vocabulary defined, currently unused in Wiki/):
adr— for ADRs (live in repodocs/adr/, not in vault)diagram— forWiki/Mermaid/*.md(currently those files have no frontmatter)history— covered implicitly via theHistory X Erafilename pattern; retain for future history notes
Rules:
- A note has 1–3 tags. The first is the primary domain; the rest are secondary if they materially apply.
- Do NOT invent new tags. Add to the controlled vocab via Style Guide edit + retroactive sweep.
- Status / lifecycle (
superseded,deprecated,proposed) is expressed in the note body callout (> [!warning],> [!todo]), not in tags.
MOC pattern
Maps of Content (MOCs) are landing pages for a category — one note that opens with a “Start here” callout and groups its category’s notes by sub-theme. Each MOC links to its child notes; child notes do NOT need to link back (the graph view shows the relation).
MOCs in use (created 2026-05-03):
- Frontend MOC — 17 notes, grouped by Pages / Sections / Charts / Hooks / Auth / UI primitives / Build
- KB MOC — 13 notes, grouped by Architecture / Content / Chat / UI / Compliance
- Tests MOC — 10 notes, grouped by Strategy / By area / Verified bugs
- History MOC — 12 notes, grouped by Top level / Eras
- Compliance MOC — 8 notes, grouped by Legal basis / Mechanisms / See also
Threshold for creating a new MOC: a tag exceeds 8 notes AND the topic has clear sub-themes. Smaller categories live in Index only.
Dashboard rendering rules
- Five-column KPI strip is a Markdown table, not five callouts. Reading view stacks consecutive callouts vertically; tables are the only horizontal-row construct that survives.
- Charts plugin blocks (
```chart) do not render inside table cells in Reading view. The Coverage Health section is four sequential[!chart]callouts, not a 2x2 grid. Documented decision in Dashboard Layout Spec. - Compliance section defaults to
> [!warning], never> [!success]. A dashboard that opens “all green” trains complacency. - Eye flow: triage signal above the fold (KPI → Pipeline → Coverage), Compliance as closing verdict, Quick links last.
Chart contrast convention (mermaid, dark theme)
Mermaid’s default theme renders dark-blue bars on a near-black Obsidian background — they were nearly invisible. Every chart in the vault must override themeVariables with the high-contrast palette below. Documented after a 2026-05-03 readability fix.
Bar / line / area (xychart-beta) — embed in the chart’s frontmatter config::
theme: base
themeVariables:
xyChart:
backgroundColor: "transparent"
titleColor: "#ffffff"
xAxisLabelColor: "#e5e7eb"
xAxisTitleColor: "#e5e7eb"
xAxisTickColor: "#94a3b8"
xAxisLineColor: "#94a3b8"
yAxisLabelColor: "#e5e7eb"
yAxisTitleColor: "#e5e7eb"
yAxisTickColor: "#94a3b8"
yAxisLineColor: "#94a3b8"
plotColorPalette: "#38bdf8, #f472b6, #facc15, #34d399, #a78bfa, #fb923c, #f87171, #22d3ee, #c084fc, #4ade80, #fbbf24"Pie — use the inline “ directive:
Palette intent: sky-blue (#38bdf8) for neutral metrics, green (#34d399) for healthy / covered, red (#f87171) for problems / untested, amber (#facc15) for warnings. Single-series line charts default to sky-blue. Always keep backgroundColor: "transparent" so the callout’s background shows through.
What this guide does not yet cover
- Excalidraw canvas conventions (see Dashboard §Architecture for the planned canvas — operator action to create)
- Vault-graph hygiene rules (which notes should be hubs, which should be leaves) — defer until the vault doubles in size
- Note retention / archival rules (when a note becomes stale, what happens to it)
See also
- Wiki Conventions — filename, heading depth, frontmatter mechanics
- Lint Checklist — per-edit mechanical checks
- Dashboard — landing page that demonstrates these rules
- Dashboard Layout Spec — design rationale for the dashboard
- Dashboard Data Sources — where every dashboard number comes from