Validator
Open-source agent skills for building scope-safe Markdown knowledge vaults with deterministic validation and research workflows.
npx -y skills add pariyar07/ariadne --skill validatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 18 stars18 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Validate the structure of an agent-maintained Markdown knowledge vault with deterministic CLI checks for YAML/frontmatter, broken wikilinks, Markdown orphans, scope wiring, and optional Obsidian-compatible view files.
SKILL.md
9.1 KB, as published. Nobody here has run it
Ariadne Validator
Use this skill when the user asks whether a Markdown knowledge vault is structurally valid, navigable, connected, or ready for ongoing agent use.
Tool
Run the bundled validator from the vault root:
/path/to/skills/validator/scripts/validate_vault.sh
Or pass an explicit vault path:
/path/to/skills/validator/scripts/validate_vault.sh /path/to/vault
For a subtree or its schema-v1 research pipeline, pass a vault-relative scope:
/path/to/skills/validator/scripts/validate_vault.sh /path/to/vault --scope "Domains/Product"
/path/to/skills/validator/scripts/validate_vault.sh /path/to/vault --scope "Domains/Product" --profile research
Scoped runs still inventory the whole vault before filtering findings. --scope rejects absolute paths, traversal, missing paths, and files. --profile research requires a scope; it keeps in-scope YAML, broken-link, orphan, and unlinked-Base failures while excluding sibling-origin defects. Descriptor, hub, and routing findings carry explicit governing obligations when an outside origin directly applies to the selected scope.
The shell wrapper checks for Node.js and delegates to validate_vault.js.
Scope Topology Synchronizer
Resolve scripts/sync_scope_topology.js relative to this installed skill. It is the only scope topology mutation authority. --check is always zero-write and reports findings, proposed changes, complete content_write_paths, and plan_hash:
node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --check
node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --check --scope "Domains/Product"
Mutation accepts one exact schema-v1 JSON request:
{"operation_schema":1,"operation":"move","target_scope_id":"alpha","source_path":"Domains/Alpha","destination_path":"Projects/Alpha","normalize_files":[],"allowed_write_paths":["00 Index.md","Agent/Scope Map.md"]}
node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --write --request /path/to/request.json
See ariadne:scope scope-operation-request.md for complete create, adopt, move, set-status, and repair requests. Unknown or inapplicable fields and unsafe paths are refused before writes. Missing or extra authorization is refused exactly as operation is not write-authorized: missing-write-authorization:<path> or unused-write-authorization:<path>. Preview with empty allowed_write_paths, disclose the resulting content paths, obtain current-turn confirmation, then authorize exactly that sorted set.
normalize_files is report-only until a complete normalizer exists. Any requested path produces normalization-deferred, is excluded from effects and content_write_paths, and keeps write mode unauthorized.
Content write paths are user-confirmed vault content. Engine control paths under .ariadne/ and owned temporary files are sealed synchronizer state; they are not listed in allowed_write_paths and must not be edited manually.
An interrupted write reports or preserves an operation ID. Resume or abort only that ID:
node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --resume 00000000-0000-0000-0000-000000000000
node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --abort 00000000-0000-0000-0000-000000000000
Resume validates the sealed authority, identities, hashes, and preconditions before continuing. Abort returns aborted, operation_id, and reconciliation_paths; inspect those evidence paths because content may already have landed. After success, run scoped validation, whole-vault validation, and a second --check; the second check must propose no changes.
Checks
The validator reports:
yaml-okwhen Markdown frontmatter and.baseYAML parse cleanlybroken-wikilinks: Ntrue-orphans-md: Nunlinked-base-files: Nbloat-warnings: Nfor non-fatal navigability drift cueslocal-base-scope-warnings: Nfor non-rootBases/*.basefiles missing afile.inFolder("<scope_path>")filterlocal-agents-inheritance-warnings: Nfor localAGENTS.mdfiles that omit parent/root inheritance or repeat global policy textambiguous-wikilink-warnings: Nfor basename-only wikilinks that resolve to multiple Markdown/Base targetsscope-navigation-warnings: Nfor promoted child scope hubs that are not linked bidirectionally with their parent hubrouting-matrix-warnings: Nfor scope hubs that are not linked from their nearest local or inheritedAgent/Task Routing Matrix.mdbase-scope-formula-warnings: Nfor rootBases/*.basefiles with afile.inFolderscope formula that is missing a branch for a known scope pathresearch-boundary-warnings: Nfor invalid supported boundary descriptors, including unsupported nested schema values, duplicateboundary_idvalues, and multiple canonical descriptors resolving to one normalized realscope_pathresearch-provenance-warnings: Nfor invalid downstream-to-upstream provenance and generated or derivative evidence-family structureprovenance-cycle-warnings: Nfor artifacts in aderived_fromcycleuncompiled-raw-source-warnings: Nfor pending or review-needed sources and compiled sources without a downstream backlinkresearch-hub-warnings: Nfor missing, unqualified, or incorrectly populated descriptor-declared hubs
It discovers .base files recursively, excluding .obsidian and .git paths, and resolves wikilinks to real vault files including Markdown notes, .base files, .canvas files, and attachments.
Every **/Bases/*.base file must have a sibling 00 Bases Index.md that links the Base by relative Markdown link or wikilink. The legacy root Bases/00 Bases Index.md check is still enforced, and the same rule now applies to nested scope Base folders.
Interpretation
A healthy vault should normally report:
yaml-ok
broken-wikilinks: 0
true-orphans-md: 0
unlinked-base-files: 0
bloat-warnings: 0
local-base-scope-warnings: 0
local-agents-inheritance-warnings: 0
ambiguous-wikilink-warnings: 0
scope-navigation-warnings: 0
routing-matrix-warnings: 0
base-scope-formula-warnings: 0
scope-adoption-warnings: 0
scope-contract-warnings: 0
scope-map-warnings: 0
research-boundary-warnings: 0
research-provenance-warnings: 0
provenance-cycle-warnings: 0
uncompiled-raw-source-warnings: 0
research-hub-warnings: 0
Some vaults may intentionally keep raw captures or temporary files lightly linked. If the validator reports issues, inspect whether they are intentional before adding links.
Bloat warnings are not fatal. They are cues that an agent should call out possible navigation drift and suggest a maintenance pass.
Recursive scope-related warnings are non-fatal. Treat them as prompts to tighten local Base filters, reduce duplicated local policy text, disambiguate basename wikilinks, or repair parent/child hub navigation.
Research checks are non-fatal and apply only to type: research-boundary descriptors with scalar research_schema: 1. Schema v1 accepts top-level scalar fields and flat scalar lists ([], inline lists, or block lists); descriptor scalar fields reject list values. Inline lists preserve quoted strings and wikilinks containing commas, while nested objects and lists produce research warnings rather than YAML failures. Supported artifacts require a path-qualified research_boundary link and their type-specific required scalars, lists, enum values, and inquiry sections. Membership follows exact descriptor links, and rollup adds only explicitly declared descendant descriptors. derived_from credits only canonical artifacts inside that allowed descriptor set. These checks make structural claims only; freshness, credibility, and contradiction remain stewardship judgments.
The validator also warns when a large specialized folder may need a local AGENTS.md. Treat that as a prompt to inspect the folder's workflow, not as an automatic requirement.
Repair
- Use
ariadne:navigationfor missing hubs, Base links, and routing issues. - Use
ariadne:maintenancefor broader health-check repair. - Use
ariadne:research-ingestwhen orphaned raw material is research and the target boundary needs confirmation. - Use
ariadne:knowledge-capturewhen orphaned raw material needs compilation.