Skip to content
Back to skills

Graph Layers

ASecurity

"Construct and troubleshoot the repository's sparse and dense graph

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
datapythonbashnodedebuggingapi

Works with

  • api

Security analysis

A100/100

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

Scanned September 8, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Graph Layers?

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

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

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: 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)

Files in this skill

  • SKILL.md4.6 KB
  • references/aggregation-and-blocks.md4.6 KB
  • references/api-reference.md5.8 KB
  • references/reversible.md4.6 KB
  • references/troubleshooting.md5.5 KB
  • scripts/layer_smoke.py5.6 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.