Skip to content

Knowledge dashboard

A DataviewJS dashboard shows a query with your notes. The Knowledge dashboard shows the state of your knowledge system — an ops console. It reads live from the knowledge model and, crucially, every panel proposes a recommended next action (no dead dashboards).

Opening it

Run "Show knowledge dashboard" from the command palette, or click Open next to Knowledge dashboard in Settings → ZettelFlow → Zettelkasten toolkit. It updates automatically (debounced) as the vault changes.

The three panels

Everything is a composition of existing State-layer functions — the dashboard invents no metric.

Connectivity

  • Connected — notes with at least one edge (degree ≥ 1).
  • Orphaned — fully isolated notes (degree === 0). (Distinct from the "no incoming" primitive.)
  • Unresolved — notes with a dangling outgoing link (its target isn't in the vault).
  • Each is shown as a count and a % of the vault. Recommendation: connect the orphaned notes (opens the slip-box health pane), or "everything is connected".

Knowledge debt

  • The Knowledge Debt score (0–100) and its severity band (low / medium / high), from the #159 debt engine. Recommendation: reduce debt (opens the health pane), or "no debt — clean".

Today

  • To processfleeting notes awaiting processing.
  • Contradictionscontradicts edges to resolve.
  • Connections to make — the top morning discoveries (#163).
  • Open questions — unanswered questions across the vault (#167).
  • Recommendation: the single most-pressing of these (priority: contradictions → questions → to-process → connections), opening the matching pane; or "all clear".

Every panel recommends

The pure aggregate buildKnowledgeDashboard(model) returns panels where each panel structurally carries a recommendation (a token + the count it concerns), so a dead panel is impossible. The view maps each recommendation token to the surface where you act on it — the evidence map, open questions, morning discoveries, or slip-box health.

DataviewJS interop

This ships as a native sidebar view; the existing DataviewJS (dv) interop is untouched. Exposing a read-only zf.dashboard() to DataviewJS (so you can embed these metrics in a note) is a planned follow-up — the pure aggregate is already the single source.

Architecture

buildKnowledgeDashboard(model)                    (pure, Obsidian-free, unit-tested)
  → { panels: [{ key, metrics, recommendation }] }   composes debt (#159), discoveries (#163),
                                                       openQuestions (#167), byState, edgesByType
KnowledgeDashboardView (ItemView) + KnowledgeDashboardComponent (show-knowledge-dashboard, no hotkey)
  reads the KnowledgeIndex model → buildKnowledgeDashboard; renders 3 panels
  each recommendation row opens its target view via activateSidebarView; writes nothing