Skip to content
Back to skills

Flow Anchor Connection

ASecurity

Visual flow connection patterns for generative UI agent workflows. jsPlumb anchor point architecture, connector routing, endpoint management, and dynamic flow diagram generation from agent pipeline state. Sources: jsplumb/jsplumb.

  • 10 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
ai-agentsjavascriptjavanextjsnodeapi

Works with

  • api

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add yanacuti1121/Yana-AI --skill flow-anchor-connection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Flow Anchor Connection?

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

Security grade badge for Flow Anchor Connection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yanacuti1121-flow-anchor-connection/badge)](https://www.skillsdirectory.com/skills/yanacuti1121-flow-anchor-connection)

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: flow-anchor-connection
description: Visual flow connection patterns for generative UI agent workflows. jsPlumb anchor point architecture, connector routing, endpoint management, and dynamic flow diagram generation from agent pipeline state. Sources: jsplumb/jsplumb.
origin: yana-ai — synthesized from jsplumb/jsplumb (MIT), jsPlumb Community Edition
license: Apache-2.0
version: 1.0.0
compatibility: yana-ai >= 1.3.48
---

# /flow-anchor-connection

## When to Use

- Build interactive workflow editor for yamtam agent pipeline configuration
- Render agent-to-agent connections with drag-and-drop in a web UI
- Visualize live data flow between skills in a browser-based dashboard
- Generate connection diagrams from agent state JSON

## Do NOT use for

- Static diagrams without user interaction (use [[mermaid-diagram-generation]])
- Server-side rendering without DOM (jsPlumb requires browser environment)

---

## jsPlumb setup (vanilla JS)

```javascript
import { newInstance, AnchorLocations, ArrowOverlay } from '@jsplumb/browser-ui'

const instance = newInstance({
  container: document.getElementById('canvas'),
})

// Add nodes
const nodeA = document.getElementById('skill-proxy')
const nodeB = document.getElementById('skill-sandbox')

// Connect with an arrow
instance.connect({
  source: nodeA,
  target: nodeB,
  anchors:    [AnchorLocations.Bottom, AnchorLocations.Top],
  connector:  'Flowchart',
  overlays:   [{ type: 'Arrow', options: { width: 10, length: 10 } }],
  paintStyle: { stroke: '#2563eb', strokeWidth: 2 },
})

// Make node draggable
instance.manage(nodeA)
instance.manage(nodeB)
```

---

## Dynamic pipeline from JSON state

```javascript
function renderPipeline(stages: { id: string; label: string }[]) {
  const canvas = document.getElementById('pipeline-canvas')!

  // Create DOM nodes
  stages.forEach(({ id, label }, i) => {
    const el = document.createElement('div')
    el.id          = id
    el.textContent = label
    el.className   = 'pipeline-node'
    el.style.left  = `${50 + i * 200}px`
    el.style.top   = '100px'
    canvas.appendChild(el)
    instance.manage(el)
  })

  // Connect sequentially
  stages.forEach(({ id }, i) => {
    if (i === 0) return
    instance.connect({
      source: stages[i - 1].id,
      target: id,
      connector: 'Straight',
    })
  })
}

renderPipeline([
  { id: 'proxy',   label: 'tool-proxy.sh' },
  { id: 'sandbox', label: 'sandbox-exec.sh' },
  { id: 'audit',   label: 'audit-log' },
])
```

---

## Export connections as JSON

```javascript
function exportConnections(): object[] {
  return instance.getConnections().map(conn => ({
    source: conn.source.id,
    target: conn.target.id,
    type:   conn.connector?.type,
  }))
}
```

---

## Anti-Fake-Pass Checklist

```
❌ jsPlumb requires browser DOM — no Node.js/server-side rendering
❌ manage() not called → nodes not draggable even if connect() works
❌ Container element not positioned (relative/absolute) → connections render at (0,0)
❌ repaintEverything() not called after layout change → connectors don't follow nodes
❌ jsPlumb Community vs Toolkit: very different APIs — don't confuse
❌ SSR frameworks (Next.js) → import jsPlumb only in useEffect, not at module level
```

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.