textcat109 downloadsCreate scoped note rules and check required properties, headings, filename patterns, folder structures, and vault root entries.
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.
all or anyequals, contains, and regexRun 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 failedProperty 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:
existsnotExistsequalsnotEqualscontainsregexFolder 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 nameRoot 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
}
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.
Create a GitHub release with the same tag as manifest.json's version.
Attach these files:
main.jsmanifest.jsonstyles.css