"Construct and troubleshoot the repository's sparse and dense graph
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill graph-layers --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Graph Layers?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-graph-layers)More formats (shields.io, HTML) on the badges page.
---
name: graph-layers
description: "Construct and troubleshoot the repository's sparse and dense graph
layers, dynamic or dilated KNN blocks, GENConv aggregation, and reversible
coupling primitives; use this skill for layer-level API and shape questions,
not end-to-end dataset workflows."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# Graph layers
Use this skill for a layer-level design or debugging task. It is a distilled
operating guide, not a source-checkout import recipe. Start with the tensor
layout and graph representation, choose a static or dynamic layer, then run the
small bundled smoke before moving to a real workload.
## Route by task
- For ModelNet40, S3DIS, PartNet, point-cloud data loading, task flags,
checkpoints, or visualization, hand off to the sibling
[point-cloud-workflows](../point-cloud-workflows/SKILL.md) skill.
- For OGB datasets, DeeperGCN benchmark configurations, graph pooling,
partitioning, or RevGNN/RevGAT experiments, hand off to
[ogb-workflows](../ogb-workflows/SKILL.md).
- For PPI data, F1 metrics, and PPI training/evaluation, hand off to
[ppi-workflows](../ppi-workflows/SKILL.md).
- Keep the root skill responsible for installation and broad routing. This
skill can identify dependency failures but does not install packages or run
long training.
## Quick decision procedure
1. **Identify layout.** Use sparse node features `(N, C)` with a PyG
`edge_index` `(2, E)` and optional `batch` `(N,)` for independent graphs;
use dense point-cloud features `(B, C, N, 1)` with dense indices
`(2, B, N, K)`. Do not pass a dense tensor to sparse layers or flatten a
dense batch without preserving graph membership.
2. **Choose graph construction.** Use a supplied `edge_index` when topology is
fixed. Otherwise use `DynConv`/`DynConv2d`, selecting `kernel_size K`,
`dilation d`, and (for dense layers) `knn='matrix'` or the compiled
`torch_cluster` path. Ensure `K*d` does not exceed points per graph.
3. **Choose convolution.** Sparse `GraphConv` supports `edge`, `mr`, `gat`,
`gcn`, and `gin` in the inspected implementation. `sage` and `rsage` are
exposed but are not a supported modern-PyG route; see
[troubleshooting](references/troubleshooting.md). Dense `GraphConv2d` and
`DynConv2d` support `edge` and `mr`.
4. **Choose composition.** Plain blocks transform features, residual blocks
add a same-width scaled skip, and dense blocks concatenate newly produced
channels. Static blocks preserve and return `edge_index`; sparse dynamic
blocks return `(features, batch)`.
5. **For generalized aggregation**, configure `GENConv` and validate the
aggregator, temperature/power parameters, edge encoding, and message
normalization together. See [aggregation and blocks](references/aggregation-and-blocks.md).
6. **For memory-efficient depth**, use a channel-divisible group additive
coupling with deterministic per-group functions, then wrap it with the
reversible wrapper only after a direct forward/inverse round trip passes.
See [reversible](references/reversible.md).
7. Run the safe helper from any working directory:
```bash
python /absolute/path/to/graph-layers/scripts/layer_smoke.py --help
python /absolute/path/to/graph-layers/scripts/layer_smoke.py --tiny
```
Resolve the absolute path in the caller's skill installation; never add a
source checkout to `PYTHONPATH` for this helper.
## Dependency boundary
The core layer behavior depends on a coherent PyTorch, PyTorch Geometric,
`torch-scatter`, and `torch-cluster` installation. The verified inspection
combination was PyTorch 2.11.0+cu128, PyG 2.8.0.post1,
`torch-scatter` 2.1.2+pt211cu128, and `torch-cluster` 1.6.3+pt211cu128, with
`pip check` passing. Treat those versions as evidence, not as a universal pin:
match PyG extension wheels to the installed PyTorch and CUDA/CPU build. A
missing or ABI-incoherent compiled extension is a dependency failure, not a
layer-shape bug. The tiny helper probes these dependencies without importing
repository modules.
Exact benchmark reproduction is intentionally outside this skill. The
repository-era PyG 1.6.3 probe did not import with torch 1.13.1 because of the
removed `torch._six.container_abcs`; use a coherent historical environment for
old-number reproduction and do not infer benchmark equivalence from the modern
smoke.
## References
- [API and shape reference](references/api-reference.md)
- [Aggregation and block choices](references/aggregation-and-blocks.md)
- [Reversible coupling and wrapper contracts](references/reversible.md)
- [Troubleshooting](references/troubleshooting.md)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!