Skip to content
Back to skills

Core Graph Engine

ASecurity

"Guides Meshroom graph, node, attribute, serialization,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
testingpythonbashnodeapi

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill core-graph-engine --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Core Graph Engine?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Core Graph Engine
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-core-graph-engine/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-core-graph-engine)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: core-graph-engine
description: "Guides Meshroom graph, node, attribute, serialization,
  compatibility, cache, execution, and status workflows for agents working with
  .mg project graphs or Meshroom core APIs."
disable-model-invocation: true
metadata:
  disco-role: operating
license: NOASSERTION
---

# Meshroom Core Graph Engine

Use this sub-skill when a task is about Meshroom's in-memory graph model, `.mg` serialization, node/attribute instances, DAG traversal, compatibility nodes, invalidation, cache directories, or local graph execution.

## Read First

- [API reference](references/api-reference.md) for verified `Graph`, `Node`, `Attribute`, graph IO, status, and compatibility objects.
- [Graph workflows](references/graph-workflows.md) for common recipes: create/connect/save/load, import graph content, configure outputs, execute a safe graph, and inspect status.
- [Troubleshooting](references/troubleshooting.md) for compatibility nodes, stale cache, invalid edges, submitted/running conflicts, and chunk failures.

## Route by Task

| Task | Use |
| --- | --- |
| Add nodes, connect attributes, rename/find nodes, compute topological order | [Graph workflows](references/graph-workflows.md#building-and-mutating-graphs) |
| Save/load `.mg` files, save templates, import partial graph content | [Graph workflows](references/graph-workflows.md#serialization-and-templates) |
| Explain `.mg` JSON headers, node version metadata, minimal template serialization | [API reference](references/api-reference.md#graph-serialization) |
| Diagnose `CompatibilityNode`, `UnknownNodeType`, `VersionConflict`, `DescriptionConflict` | [Troubleshooting](references/troubleshooting.md#compatibility-and-upgrades) |
| Understand node status, chunks, preprocess/process/postprocess, cache folders | [API reference](references/api-reference.md#node-status-and-chunks) and [Troubleshooting](references/troubleshooting.md#cache-status-and-chunks) |
| Execute a graph locally or reason about `dfsToProcess` | [Graph workflows](references/graph-workflows.md#execution-order-and-local-compute) |

## Core Mental Model

- A `Graph` is a DAG of node instances connected by edges from output attributes to input attributes.
- Node descriptors live in `meshroom.core.desc`; node instances and valued attributes live in `meshroom.core.node` and `meshroom.core.attribute`.
- A connected input reads from its upstream output. Attribute values participate in UIDs and invalidation unless the descriptor disables invalidation.
- Computation runs by nodes and chunks. `executeGraph` selects nodes that are not already successful, initializes statuses, runs preprocess/chunks/postprocess, and saves the graph before compute.
- Graph files are JSON `.mg` files with a `header` and `graph` payload. Template saves omit default inputs and runtime output/cache details.

## Safe API Skeleton

```python
import meshroom
meshroom.setupEnvironment()
import meshroom.core
from meshroom.core.graph import Graph, loadGraph

meshroom.core.initNodes()
graph = Graph("example")
node = graph.addNewNode("InputString", name="Text_1")
node.string.value = "hello"
graph.save("example.mg")
loaded = loadGraph("example.mg", strictCompatibility=False)
print([n.name for n in loaded.nodes])
```

If you are creating custom node types for this skeleton, route to [node-descriptors](../node-descriptors/SKILL.md) first.

## Decision Points

- Use `loadGraph(path, strictCompatibility=True)` only when compatibility nodes should be a hard failure.
- Use `Graph.configureOutputNodes([...])` only after a graph/template includes `OutputNode` instances.
- Use `dfsOnFinish`/`dfsOnDiscover` for topology inspection; use `dfsToProcess` for compute planning because it skips already successful branches.
- Treat `forceStatus` and `forceCompute` as deliberate overrides. They can clobber useful status/cache evidence.

## Verification Anchors

Native tests that exercise this route include graph ordering, graph IO, compatibility/upgrade, compute status, invalidation, and attribute callback cases. Prefer focused tests over full pipelines:

```bash
pytest tests/test_graph.py -q
pytest tests/test_graphIO.py -q
pytest tests/test_compatibility.py -q
pytest tests/test_compute.py -q
```

Run them from a Meshroom checkout only when doing repository maintenance. For package usage questions, use small synthetic graph snippets instead of requiring the original checkout.

Files in this skill

  • SKILL.md4.3 KB
  • references/api-reference.md6 KB
  • references/graph-workflows.md4.1 KB
  • references/troubleshooting.md2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.