Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,11 @@ See [`docs/registry-schema.md`](docs/registry-schema.md) for what the registry a
(and what it does not), and [`docs/plugin-descriptor-schema.md`](docs/plugin-descriptor-schema.md)
for the `plugin.yaml` descriptor that each plugin repository provides.

To register a new plugin, open a PR adding it to `registry.yaml`.
To register a new plugin, open a PR adding it to `registry.yaml`. After editing it, run:

```bash
uv run scripts/generate_registry.py
```

and commit the resulting changes to `README.md` and `registry.json` — CI rejects the PR if they
drift from `registry.yaml`.
7 changes: 7 additions & 0 deletions docs/registry-schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,10 @@ overlapping rule ID ranges across plugins and reserved ranges — are checked se
validation does when it finds a violation. CI runs both, then regenerates `README.md` and
`registry.json` and fails on any drift (`git diff --exit-code`), so the generated files can never
go stale relative to `registry.yaml`.

Contributors editing `registry.yaml` should run the same generator locally before opening a PR,
so the regenerated files are already part of the diff instead of failing CI:

```bash
uv run scripts/generate_registry.py
```
Loading