The review layer: graph-aware review and blast-radius impact over a tropo knowledge graph.
Project description
@vivary/ozone
Status: working (first slice — deterministic review). The optional review layer.
The review layer — the protective filter. Where tropo answers "is each
document valid?", ozone reviews the whole graph: the relationship-level gaps a
per-document check can't see, and the blast radius of a change — everything that
depends on it. A review is graph-aware by construction because ozone reads tropo's
typed graph in-process (one graph implementation, never a fork).
The defining idea: code review and editorial review are the same layer with
different rule packs. This first slice ships the deterministic core — one
structure pack over the Vivary workspace vocabulary, zero dependencies, no LLM.
Medium-specific and semantic ("organize by meaning") review layer on top later;
semantic relatedness is graphify's job, not ozone's core.
Try it locally
python ozone.py review --root <workspace> # findings over the graph
python ozone.py review --root <workspace> --strict # gate mode: exit 1 on warnings
python ozone.py impact <id> --root <workspace> # what depends on <id> (blast radius)
python ozone.py packs # list rule packs
review is advisory by default (exit 0) — a work-in-progress change legitimately
has nothing verifying it yet. Pass --strict to make it a gate (exit 1 when warnings
exist), e.g. pre-merge or in CI. tropo check remains the hard structural gate;
ozone is the relationship/impact review layered on top.
The structure pack
Deterministic, topology-derived findings keyed on a node's workspace folder:
| rule | severity | fires when |
|---|---|---|
change-unverified |
warn | a changes/ node has no verification edge |
change-ungated |
info | a changes/ node has no gates edge |
module-unverified |
info | a modules/ node has no verification edge |
orphan |
info | a node has no edges in or out |
broken-edge |
warn | an edge points at a missing node (tropo check enforces this) |
Render
For a visual of a change's blast radius, reuse tropo's renderer:
python ../tropo/tropo.py view blast <id> --root <workspace> --out impact.html
Requirements
Python 3.11+. Loads the sibling packages/tropo/tropo.py engine in-process (no pip
install needed in the repo); packaged builds depend on the tropo package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vivary_ozone-0.1.0.tar.gz.
File metadata
- Download URL: vivary_ozone-0.1.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3e4f00e9e79265e3786d4d3ce0ac3d3c664dcadf976ed1f6c15448f371b1c34
|
|
| MD5 |
52dbfdc09a64649a56de1798a7347d8c
|
|
| BLAKE2b-256 |
20b976c787cc80cc560fc2da18bfc042bb2b0fed06d03e8a2f0f45ab2c37fa48
|
File details
Details for the file vivary_ozone-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vivary_ozone-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1778fc63bde5769bc39d81ab3a4f306ef00f1535e2c04db1356e15f435c0753d
|
|
| MD5 |
3e85fcd999185e379b69c68c3b819538
|
|
| BLAKE2b-256 |
b862f3e942807a92dc950543806dd4694f47d7e715e3fb42361e4dd3a857118f
|