$npx -y skills add pariyar07/ariadne --skill validatorValidate 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.
| 1 | # Ariadne Validator |
| 2 | |
| 3 | Use this skill when the user asks whether a Markdown knowledge vault is structurally valid, navigable, connected, or ready for ongoing agent use. |
| 4 | |
| 5 | ## Tool |
| 6 | |
| 7 | Run the bundled validator from the vault root: |
| 8 | |
| 9 | ```bash |
| 10 | /path/to/skills/validator/scripts/validate_vault.sh |
| 11 | ``` |
| 12 | |
| 13 | Or pass an explicit vault path: |
| 14 | |
| 15 | ```bash |
| 16 | /path/to/skills/validator/scripts/validate_vault.sh /path/to/vault |
| 17 | ``` |
| 18 | |
| 19 | For a subtree or its schema-v1 research pipeline, pass a vault-relative scope: |
| 20 | |
| 21 | ```bash |
| 22 | /path/to/skills/validator/scripts/validate_vault.sh /path/to/vault --scope "Domains/Product" |
| 23 | /path/to/skills/validator/scripts/validate_vault.sh /path/to/vault --scope "Domains/Product" --profile research |
| 24 | ``` |
| 25 | |
| 26 | 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. |
| 27 | |
| 28 | The shell wrapper checks for Node.js and delegates to `validate_vault.js`. |
| 29 | |
| 30 | ## Scope Topology Synchronizer |
| 31 | |
| 32 | 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`: |
| 33 | |
| 34 | ```bash |
| 35 | node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --check |
| 36 | node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --check --scope "Domains/Product" |
| 37 | ``` |
| 38 | |
| 39 | Mutation accepts one exact schema-v1 JSON request: |
| 40 | |
| 41 | ```json |
| 42 | {"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"]} |
| 43 | ``` |
| 44 | |
| 45 | ```bash |
| 46 | node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --write --request /path/to/request.json |
| 47 | ``` |
| 48 | |
| 49 | See `ariadne:scope` [scope-operation-request.md](../scope/references/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. |
| 50 | |
| 51 | `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. |
| 52 | |
| 53 | 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. |
| 54 | |
| 55 | An interrupted write reports or preserves an operation ID. Resume or abort only that ID: |
| 56 | |
| 57 | ```bash |
| 58 | node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --resume 00000000-0000-0000-0000-000000000000 |
| 59 | node /path/to/skills/validator/scripts/sync_scope_topology.js /path/to/vault --abort 00000000-0000-0000-0000-000000000000 |
| 60 | ``` |
| 61 | |
| 62 | 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. |
| 63 | |
| 64 | ## Checks |
| 65 | |
| 66 | The validator reports: |
| 67 | |
| 68 | - `yaml-ok` when Markdown frontmatter and `.base` YAML parse cleanly |
| 69 | - `broken-wikilinks: N` |
| 70 | - `true-orphans-md: N` |
| 71 | - `unlinked-base-files: N` |
| 72 | - `bloat-warnings: N` for non-fatal navigability drift cues |
| 73 | - `local-base-scope-warni |