From 2d1c7fe347d35fb8d8ece3f56d0b4aa6bdf61d28 Mon Sep 17 00:00:00 2001 From: Ricardo Graca Date: Sat, 16 May 2026 11:55:46 -0300 Subject: [PATCH] add Knowledge Debt Dashboard plugin --- Knowledge-Debt-Dashboard/Knowledge debt.zip | Bin 0 -> 9483 bytes Knowledge-Debt-Dashboard/README.md | 65 ++++++++++++++++++ .../imagens/pkm-dbt-1-.webp | Bin 0 -> 39992 bytes README.md | 4 +- 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 Knowledge-Debt-Dashboard/Knowledge debt.zip create mode 100644 Knowledge-Debt-Dashboard/README.md create mode 100644 Knowledge-Debt-Dashboard/imagens/pkm-dbt-1-.webp diff --git a/Knowledge-Debt-Dashboard/Knowledge debt.zip b/Knowledge-Debt-Dashboard/Knowledge debt.zip new file mode 100644 index 0000000000000000000000000000000000000000..874c33f564f12c91f67dd89d605de74e53d7a361 GIT binary patch literal 9483 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 literal 0 HcmV?d00001 diff --git a/Knowledge-Debt-Dashboard/README.md b/Knowledge-Debt-Dashboard/README.md new file mode 100644 index 0000000..28996cd --- /dev/null +++ b/Knowledge-Debt-Dashboard/README.md @@ -0,0 +1,65 @@ +# 🩺 Knowledge Debt — TriliumNext Plugin + +A **Render Note** dashboard that audits the health of your knowledge base, surfacing notes that have been forgotten, never developed, or left structurally isolated. + +--- + +## What it detects + +| Category | Criteria | +|---|---| +| 🔴 **Orphans** | No other note links to them (no backlinks) | +| 🟠 **Stubs** | Text content between 1–250 characters, no children | +| 🟣 **Empty** | Null or blank content, no children (containers excluded) | +| 🔵 **Old TODOs** | Has a `#todo`-style label, unmodified for > 30 days | +| 🟢 **Abandoned** | No children, unmodified for > 90 days | + +Collection notes and any note acting as a container (i.e. notes with children) are automatically excluded from **Stubs** and **Empty** to avoid false positives. + +--- + +## Installation + +1. Create a new **JS Frontend** note and paste the contents of `knowledge-debt.js` +2. Create a second note (any type) — this will be your dashboard page +3. On the dashboard note, add the relation attribute: + ``` + ~renderNote = + ``` +4. Open the dashboard note and click **▶ Escanear** + +--- + +## Compatibility + +Tested on **TriliumNext** (post-Trilium fork). The plugin auto-detects the internal links table name across different versions (`note_links`, `links`, etc.) and falls back gracefully to relation attributes if no links table is found. All available tables are logged after each scan for debugging. + +--- + +## Thresholds + +All thresholds are defined directly in the SQL queries and easy to adjust: + +```js +// Stubs: notes shorter than this (in raw HTML characters) are flagged +LENGTH(b.content) BETWEEN 1 AND 250 + +// Old TODOs: flagged after this many days without modification +julianday('now') - julianday(n.dateModified) > 30 + +// Abandoned: flagged after this many days without modification +julianday('now') - julianday(n.dateModified) > 90 +``` + +--- + +## Credits + +Inspired by the `attribute-gc` plugin pattern. Built as a companion tool for PKM maintenance workflows in TriliumNext. + +Licensed under MIT. + + +### Screenshot + +![screen capture](imagens/pkm-dbt-1-.webp) diff --git a/Knowledge-Debt-Dashboard/imagens/pkm-dbt-1-.webp b/Knowledge-Debt-Dashboard/imagens/pkm-dbt-1-.webp new file mode 100644 index 0000000000000000000000000000000000000000..45d717424fedb23a03438c2f5b3fa194954159f1 GIT binary patch literal 39992 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index b85774f..a6443f4 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,9 @@ This repository serves as a centralized hub for all these projects. ### Maintenance Tools -* **[Attribute-Garbage-Collector](./Attribute-Garbage-Collector )** - A TriliumNext garbage collector that finds broken, unused, or duplicate attributes, letting you safely preview and delete them individually or in bulk. +* **[Attribute-Garbage-Collector](./Attribute-Garbage-Collector)** - A TriliumNext garbage collector that finds broken, unused, or duplicate attributes, letting you safely preview and delete them individually or in bulk. + +* **[Knowledge-Debt-Dashboard](./Knowledge-Debt-Dashboard)** - A full-page Render Note dashboard that audits your knowledge base for orphan notes, stubs, empty notes, old TODOs, and abandoned notes. ---