Breaking rewrite
Replace the v0.1 YAML/columns.yaml → JSON Schema design with Django-style Python models.
What changed
- Schema: Python
Modelclasses + field types (TextField,BooleanField,DateField,TagsField,UUIDField,URLField,URLPathField) - Routing:
ROUTES/MODEL_BY_PATHmap directory prefixes to models (longest prefix wins) - CLI:
check/fix/watch(Click)check— validate onlyfix— write missing defaults + applyfield_orderwatch— re-run on.mdchanges (--fixoptional)
- Config: vault
schema.py(or--schema PATH), defaultROOT/schema.py
Removed
columns.yaml/ JSON Schema compilermetadata-enforcer init- Dependencies:
jsonschema,python-frontmatter - Wikilink unwrapping
Install
uv tool install --force git+https://github.com/omarish/metadata-enforcer.git@v2.0.0
# or from a checkout:
make installQuick start
metadata-enforcer check ~/vault
metadata-enforcer fix ~/vault --verbose
metadata-enforcer watch ~/vault --fixSee the README and examples/sample-vault/.