Harness Noting
approvedby 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.
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
allorany - Exclude files, folders, or tags from a rule
- Check required frontmatter properties
- Check property values, including
equals,contains, andregex - 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 passed1: at least one matched note failed2: 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:
existsnotExistsequalsnotEqualscontainsregex
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:
*wildcardsregex: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.jsmanifest.jsonstyles.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.