Integrate graph editor libraries
Connects visual graph tools to clean workflow data while preserving editing, layout and component lifecycles.
graph-editor-library-integration
See how it helpsWhen is it useful?
Use when adding custom nodes, auto-layout or controls to an existing node-based editor.
What does it help you do?
- Separates persisted workflow data from temporary dragging and measurement fields.
- Keeps node inputs usable without accidental canvas panning or dragging.
- Applies layout as a deterministic undoable change with appropriate rendering cleanup.
Try asking this
Add auto-layout to our workflow editor while preserving saved JSON, node text selection and a single undo step. Apply layout to a saved graph and undo that layout as one action. Check text editing separately; identifiers and connections must remain unchanged.
Detailed documentation
Read the skill’s original instructions, examples and checks in their authored language.
Show less
Graph Editor Library Integration
Use this skill when integrating or extending a visual node-graph library (such as @xyflow/react / React Flow, @vue-flow/core, @xyflow/svelte, or Rete.js) and graph auto-layout engines (dagre, elkjs).
Adapt to the Existing Graph Engine & Framework
- Keep Domain Workflow State Clean of Library-Internal Runtime Fields:
- Node-graph libraries attach ephemeral measurement and dragging properties (
measured,dragging,selected, internal handle bounds) to node objects. - Maintain a clean adapter boundary between your persisted
WorkflowDefinition+WorkflowLayoutmodel and the library's view-state nodes/edges so internal library fields are never leaked into saved workflow JSON or version hashes.
- Node-graph libraries attach ephemeral measurement and dragging properties (
- Memoize Custom Nodes and Edge Components:
- In React Flow / Vue Flow, wrap custom node and edge renderers (
memo/markRaw) and definenodeTypesandedgeTypesoutside the render function so panning or dragging one node never unmounts and remounts every node on the canvas. - Inside custom node views, mark interactive form inputs (
nodrag,nopan,nowheelclasses) so typing, selecting text, or scrolling a dropdown inside a node does not accidentally drag or zoom the canvas.
- In React Flow / Vue Flow, wrap custom node and edge renderers (
Auto-Layout Engines (Dagre / ELK.js) & Viewport Polish
- Deterministic Hierarchical Layout:
- When auto-arranging a workflow (
TBtop-to-bottom orLRleft-to-right) or inserting a new step via keyboard/button between two connected nodes, compute positions using measured node dimensions viadagreorelkjsinside a single undoable layout transaction.
- When auto-arranging a workflow (
- Accessible Focus & Viewport Navigation:
- Enable keyboard focusability (
nodesFocusable,edgesFocusable,autoPanOnNodeFocus), provide a minimap / fit-view control, and allow clicking a step in the run timeline or validation error list to smoothly center (setCenter/fitView) that node on the canvas.
- Enable keyboard focusability (
Checklist
- Are
nodeTypesandedgeTypesdefined stably and memoized so panning/dragging does not remount custom nodes? - Are interactive inputs inside custom nodes marked with
nodrag/nowheelso editing node fields never drags the canvas? - Are library-internal runtime properties stripped before serializing
WorkflowDefinitionand computing version hashes? - Does auto-layout (
dagre/elkjs) arrange nodes cleanly as a single undoable layout update without altering execution semantics?
Included files 1
SKILL.md
About this skill package
graph-editor-library-integration
graph-editor-library-integration: Build workflow editors and execution models that handle branching, approvals, waits, retries and versioned changes coherently.
Show less
graph-editor-library-integration
graph-editor-library-integration: Build workflow editors and execution models that handle branching, approvals, waits, retries and versioned changes coherently.
Includes the complete skill and its supporting files (1 files). The exact authored scope is preserved below.
Original skill description (source language)
Use when evaluating, integrating, and extending node-graph editor libraries (XYFlow / React Flow, Vue Flow, Svelte Flow, Rete.js) with auto-layout engines (ELK, Dagre) and custom nodes.
Install the skill, review its source and trust settings, then enable it for the relevant project or agent.
Requirements
- Orqestria installed on your computer.
