Harness Noting

approved

by textcat

This plugin has not been manually reviewed by Obsidian staff. Create scoped note rules and check required properties, headings, filename patterns, folder structures, and vault root entries.

1 stars89 downloadsUpdated 24d agoMIT

Harness Noting

Harness Noting is an Obsidian plugin for checking note structure against scoped rules.

It is designed for AI-assisted note maintenance: rules can be edited in Obsidian, and the same rules can be checked from the command line so an AI agent can read failures and fix notes before finishing.

Features

  • Match notes by exact file, folder, tag, filename text, and frontmatter property conditions
  • Combine scope conditions with all or any
  • Exclude files, folders, or tags from a rule
  • Check required frontmatter properties
  • Check property values, including equals, contains, and regex
  • Check required headings and heading order
  • Check filename patterns with regular expressions
  • Check direct child folder structures, including required subfolders and file patterns
  • Check vault root entries against a configurable whitelist
  • Run all checks from an Obsidian ribbon button
  • Copy a readable check conclusion from the results modal
  • Show Obsidian notices after file changes
  • Run checks from the command line with failure exit codes

CLI

Run from the vault root:

node .obsidian/plugins/harness-noting/harness-noting-cli.js

Check a single note:

node .obsidian/plugins/harness-noting/harness-noting-cli.js --file "path/to/note.md"

Print JSON:

node .obsidian/plugins/harness-noting/harness-noting-cli.js --json

Exit codes:

  • 0: all matched notes passed
  • 1: at least one matched note failed
  • 2: the checker itself failed

Rule Syntax

Property conditions and property checks use one rule per line:

type equals project
tags contains planning
tags regex ^project/[A-Za-z0-9-]+$
updated exists

Supported operators:

  • exists
  • notExists
  • equals
  • notEquals
  • contains
  • regex

Folder Structure Rules

Folder structure rules check every direct child folder under a configured root folder.

Example:

{
  "name": "Project folder structure",
  "rootFolder": "Projects",
  "requiredSubfolders": "Assets",
  "requiredFiles": "Overview.md\n* Plan.md"
}

Required file patterns support:

  • * wildcards
  • regex: regular expressions
  • {{folderName}} as the current folder name

Root Whitelist Rules

Root whitelist rules check only direct children of the vault root.

Example:

{
  "name": "Vault root whitelist",
  "allowedEntries": "Inbox\nProjects\nResources\nArchive\nHome.md",
  "ignoredEntries": ".git\n.obsidian\n.trash\n.DS_Store",
  "ignoreDotEntries": true
}

Installation

Install from Obsidian community plugins after approval, or install manually:

Copy this folder to:

<vault>/.obsidian/plugins/harness-noting

Then enable Harness Noting in Obsidian community plugins.

Release

Create a GitHub release with the same tag as manifest.json's version. Attach these files:

  • main.js
  • manifest.json
  • styles.css

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.