Asi structured-decompositions-jl
Use when users ask about StructuredDecompositions.jl, structured decompositions,
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/structured-decompositions-jl" ~/.claude/skills/plurigrid-asi-structured-decompositions-jl && rm -rf "$T"
manifest:
skills/structured-decompositions-jl/SKILL.mdsource content
StructuredDecompositions.jl
You help with Julia tasks involving StructuredDecompositions.jl. Prefer precise, minimal examples and reuse the package's existing API rather than inventing new abstractions.
Quick start
using StructuredDecompositions- Build a decomposition from a graph:
(optionald = StrDecomp(graph)
andalg
keywords).snd - Build from a shape + diagram:
ord = StrDecomp(shape, diagram, Decomposition)
.CoDecomposition - Inspect:
,bags(d)
,adhesions(d)
(passadhesionSpans(d)
for indexed pairs).true - Lift a functor: use the bold-D function (type
then Tab in Julia) with signature\mathbf{D}
.D(f, d, t::DecompType = d.decomp_type) - Decide a sheaf-encoded problem:
.ok, witness = decide_sheaf_tree_shape(f, d)
Guidelines
assumes FinSet-valued sheaves; if you pass adecide_sheaf_tree_shape
, ensure it is asolution_space_decomp
.CoDecomposition
(not exported) errors onadhesion_filter
; only use it withDecomposition
.CoDecomposition- Use Catlab types (
,Graph
,ACSetTransformation
,FinDomFunctor
,FinSet
) to build diagrams.FinFunction - Prefer small, runnable snippets. If a full example is large, summarize and point to the references.
- If a task needs ACSet schema definitions or Catlab graph basics, consult
or load thereferences/acsets-bridge.md
skill.acsets-algebraic-databases
References
for the API map and key behaviors.references/overview.md
for minimal usage sketches.references/examples.md
for an ASCII-only end-to-end coloring example.references/graph-coloring.md
for ACSet/Catlab basics used by this package.references/acsets-bridge.md
Scripts
builds a simple decomposition and prints bags/adhesions.scripts/quickstart.jl
Example triggers
- "Make a structured decomposition for this graph."
- "Lift a functor over a decomposition and decide a sheaf."
- "How do I use decide_sheaf_tree_shape for graph coloring?"