Metadata-Version: 2.2
Name: monogate-graph
Version: 0.1.1
Summary: Evidence/dependency graph toolkit for Monogate-style artifact workflows.
Author: Monogate Research
License: Apache-2.0
Keywords: graph,evidence,dependency,eml
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE

# monogate-graph

`monogate-graph` is an evidence/dependency graph toolkit for Monogate-style
artifact workflows.

`monogate-graph` reads small JSON graph files and emits dependency order, cycle
warnings, blocked-node summaries, critical-path estimates, action queues, and
DOT exports.

The Python import module is `eml_graph`.

It does not certify evidence, prove release readiness, or make public claims.

## CLI

```bash
monogate-graph validate examples/simple_release_gate.json
monogate-graph summary examples/simple_release_gate.json
monogate-graph topo examples/simple_release_gate.json
monogate-graph blocked examples/simple_release_gate.json
monogate-graph action-queue examples/simple_release_gate.json
monogate-graph export-dot examples/simple_release_gate.json
monogate-graph export-dot examples/kernel_observatory_export.json --out /tmp/observatory.dot

# Compatibility alias:
eml-graph validate examples/simple_release_gate.json
```

## Kernel Observatory Integration

Kernel Observatory can export its cards into the `eml-graph` JSON shape:

```bash
python tools/kernel_observatory/observatory.py --build
python tools/kernel_observatory/observatory.py \
  --export-eml-graph /tmp/monogate_kernel_observatory_v0/observatory_graph.json

PYTHONPATH=src python -m eml_graph.cli validate \
  /tmp/monogate_kernel_observatory_v0/observatory_graph.json
PYTHONPATH=src python -m eml_graph.cli action-queue \
  /tmp/monogate_kernel_observatory_v0/observatory_graph.json
```

The example `examples/kernel_observatory_export.json` is a small fixture for the
same export shape. It is intentionally much smaller than the live Observatory
graph.

## Graph Shape

```json
{
  "graph_id": "example",
  "nodes": [
    {
      "id": "tests",
      "label": "Tests",
      "status": "pass",
      "weight": 1,
      "evidence_paths": ["tests/result.json"],
      "risk_flags": []
    }
  ],
  "edges": [
    {"source": "tests", "target": "release", "type": "depends_on"}
  ]
}
```

Edge direction means `target` depends on `source`, so topological order lists
prerequisites first.

## Boundaries

- graph output is planning/evidence structure, not certification.
