Build visual workflow, pipeline, and flow-based UIs with React Flow (@xyflow/react). Use for ANY request involving visual workflows, AI pipelines, node-based editors, connected steps/nodes, DAG editors, automation flows, or graph-based UIs where items are connected with edges. Triggers on keywords like "workflow", "pipeline", "flow", "nodes connected", "visual AI", "steps feed into", or any description of a process with connected stages/nodes. (project)
From schema0-devnpx claudepluginhub schema0/ai-agent-plugins --plugin schema0-devThis skill is limited to using the following tools:
references/api/reactflow-component-and-components.mdreferences/architecture/production-zustand-store-and-shell.mdreferences/examples/custom-nodes-edges-and-core-workflows.mdreferences/hooks/reactflow-hooks.mdreferences/migration/imports-and-setup.mdreferences/patterns/editor-interactions.mdreferences/patterns/layout-grouping-and-validation.mdreferences/patterns/persistence-theming-testing-and-collab.mdreferences/types/reactflow-types-and-utilities.mdPrerequisite: This skill requires a schema0 template project. Before using, ensure
CLAUDE.mdexists in the project root and read it for project rules and conventions.
Use this skill for production React Flow work. Keep SKILL.md for invariants only. Load reference files only as needed.
@xyflow/react (not reactflow).import { ReactFlow, ... } from '@xyflow/react' (no default ReactFlow import).@xyflow/react/dist/style.css (or @xyflow/react/dist/base.css for custom theming).ReactFlow is a named export, not a default export.node.measured?.width / node.measured?.height.node.width / node.height are for fixed dimensions, not measured dimensions.parentId (not parentNode).onReconnect, reconnectEdge, and edgesReconnectable (not onEdgeUpdate, updateEdge, edgesUpdatable).positionAbsoluteX / positionAbsoluteY in custom node props (not xPos / yPos).nodeLookup in internal store selectors (not nodeInternals).screenToFlowPosition (not project) for screen-to-canvas coordinates.getNodesBounds(nodes, { nodeOrigin }) with an options object.type AppNode = ...) for TypeScript safety.nodes, edges, and flow actions). Avoid useNodesState / useEdgesState except for prototypes.ReactFlowProvider whenever hooks are used outside the <ReactFlow /> subtree.nodeTypes, edgeTypes, and defaultEdgeOptions outside React components to avoid re-render loops.<ReactFlow /> stable (useCallback or equivalent stable references).toObject, restore, viewport restore) in store/actions or dedicated modules.useNodes() / useEdges() inside custom nodes; they trigger broad re-renders.useNodesData, useHandleConnections, or useStore selectors for targeted subscriptions.references/migration/imports-and-setup.mdreferences/architecture/production-zustand-store-and-shell.mdreferences/examples/custom-nodes-edges-and-core-workflows.mdreferences/api/reactflow-component-and-components.mdreferences/hooks/reactflow-hooks.mdreferences/types/reactflow-types-and-utilities.mdreferences/patterns/editor-interactions.mdreferences/patterns/layout-grouping-and-validation.mdreferences/patterns/persistence-theming-testing-and-collab.md