/tests
```2. Create pyproject.toml
```toml
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"[project]
name = "pyrite-"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = []
[project.entry-points."pyrite.plugins"]
= "pyrite_.plugin:Plugin"
[tool.hatch.build.targets.wheel]
packages = ["src/pyrite_"]
```
3. Implement entry types
Extend NoteEntry or DocumentEntry
Override `entry_type` property, `to_frontmatter()`, `from_frontmatter()`
Define enum tuples as module-level constants4. Implement validators
Single function: `validate_(entry_type, data, context) -> list[dict]`
Dispatch on entry_type, return `[]` for unrelated types5. Implement plugin class
Set `name` attribute
Implement protocol methods: `get_entry_types()`, `get_validators()`, etc.
Import CLI lazily in `get_cli_commands()` for graceful degradation6. Write tests following the 8-section pattern
7. Install and verify
```bash
pip install -e extensions/ # system
.venv/bin/pip install -e extensions/ # venv (for pre-commit)
python -m pytest extensions//tests/ -v
python -m pytest tests/test_plugin_integration.py -v
```