OKF Reviewer
approvedby Tijs van Erp
Review side panel for OKF documents: record human verification events, set lifecycle status and stale-after dates. - This plugin has not been manually reviewed by Obsidian staff.
OKF Reviewer
An Obsidian plugin that adds a review side panel for OKF (Open Knowledge Format-style) documents — notes whose frontmatter carries a type. It lets a reviewer record verification events, set a lifecycle status, and manage a stale_after review date, all written straight to the note's frontmatter.
Features
Review panel
- Opens automatically in the right sidebar when the active note is an OKF document (has a non-empty
typein its frontmatter), and stays inactive — without touching the note — for non-OKF or malformed-frontmatter notes. - Shows the document's current review state: verification events, status, and stale-after date, with a tier badge (Unverified / Machine-confirmed / Human-reviewed) and a Due for review flag once
stale_afterhas passed. - Mark verified records a
verifiedevent as{ by: <reviewer identity>, at: <now> }. It appends alongside any existing events from other actors (a single object promotes to an array on the second event), but overwrites theatin place if that reviewer identity already has an event, instead of piling up duplicates. - Each verification event can be individually revoked; the
verifiedkey is removed entirely once the last event is gone. - Status control sets/clears
draft,stable, ordeprecated. - Stale after control sets an absolute date via a native date picker, or via 30/90/180/365-day presets, or clears it.
- All edits are written immediately via Obsidian's
processFrontMatter; a failed write shows a Notice and the panel reverts to the persisted state — body text and unrelated frontmatter keys are never touched.
File explorer markers
Each OKF document's entry in the file explorer is annotated with three independent signals:
- Text color — authorship/provenance, from
generated.by: green if human-authored, blue if machine-authored, left uncolored if unknown. - A trailing dot — verification status: green (human-reviewed) or blue (machine-confirmed), or red if the document is due for review (this overrides the verification color, but never the text color).
- A lifecycle-status decoration on the label text, from
status: a muted[DRAFT]suffix for drafts, a strikethrough for deprecated, nothing for stable. Unknown, missing, or malformed statuses leave the label plain — the file name itself is never modified (the suffix is a separate decoration element).
Green/blue/red are tuned separately for light and dark themes to keep sufficient contrast in both; the status decoration inherits the entry's existing color, so it works in both themes as-is. Labels update within a second of a status change (panel edit, frontmatter edit, or external write) and are removed cleanly when the plugin is disabled.
Settings
In Settings → OKF Reviewer:
- Reviewer identity — the
human:<id>actor recorded asbyon Mark verified (defaulthuman:reviewer).
That's the only setting. Status and stale-after have no configurable defaults — status is a row of buttons that just reflects whatever's already set, and stale-after has its date picker plus 30/90/180/365-day preset pills right in the panel, so a settings-level default would just be one more place to look instead of one less click.
Frontmatter contract
| Key | Shape | Notes |
|---|---|---|
type | non-empty string | required for the plugin to treat a note as an OKF document |
verified | { by, at } or a list of those | by is free text; a human:<id> prefix marks it as a human event |
status | draft | stable | deprecated | optional |
stale_after | YYYY-MM-DD | optional; a past date means the document is due for review |
generated.by | free text | optional, read-only to this plugin; drives the file-explorer text color |
Installation
This plugin isn't in the community plugin store. To install it manually:
- Copy this folder into your vault's
.obsidian/plugins/okf-reviewer/. - Reload Obsidian (or run
npm run buildfirst if installing from source). - Enable OKF Reviewer in Settings → Community plugins.
Development
npm install # install dependencies
npm run dev # esbuild in watch mode
npm run build # type-check (tsc) + production bundle
npm run lint # eslint (eslint-plugin-obsidianmd)
npm test # vitest — unit tests for the pure frontmatter/marker logic
src/okf.ts and src/markers.ts are plain TypeScript with no Obsidian imports, so the frontmatter mapping and file-explorer marker rules are covered by npm test independent of a running vault. Everything else (main.ts, panel.ts, settings.ts, explorer.ts) is Obsidian-API glue, validated manually in a live vault.
License
0BSD — see LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.