本文へ移動
cccskills
無料GitHub で公開

dag-visual-editor-design

Design modern, intuitive DAG/workflow visual editors that feel like LEGO, not LabView

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

DAG Visual Editor Design

Design modern, intuitive DAG and workflow visual editors following the LEGO philosophy: snap blocks together simply rather than wire complex ports.

DECISION POINTS

Layout Algorithm Selection

Node Count < 20 AND Simple Flow?
├─ YES → Force-directed layout (React Flow default)
│         • Fast rendering
│         • Good for exploring connections
│
└─ NO → Node Count > 100?
    ├─ YES → Hierarchical (Dagre) + Virtualization
    │        • Set viewport culling
    │        • Lazy load node details
    │
    └─ NO → Branch Factor > 3 per node?
        ├─ YES → ELK Layered Algorithm
        │        • Handles complex routing
        │        • Minimizes edge crossings
        │
        └─ NO → Dagre LR (Left-Right)
                • Standard choice
                • rankdir: 'LR', ranksep: 80

Node Connection Strategy

Data Type Diversity?
├─ Single type (e.g., JSON) → Implicit connections
│   • No handles visible by default
│   • Snap zones on hover
│
├─ 2-3 types → Color-coded handles
│   • Red: Error streams
│   • Blue: Data streams  
│   • Green: Success/completion
│
└─ 4+ types → Bundled connections
    • Group related channels
    • Label bundles clearly
    • Consider type coercion nodes

Editing Mode Selection

User Skill Level?
├─ Beginner → Canvas + Sidebar
│   • Drag nodes from categorized list
│   • Template-based workflows
│
├─ Intermediate → Quick Add (Slash Commands)
│   • Type "/" for node search
│   • Context-aware suggestions
│
└─ Expert → Keyboard First
    • Hotkeys for common nodes
    • Text-based node creation
    • Batch operations

FAILURE MODES

Spaghetti Graph Syndrome

Symptoms: Edges crossing everywhere, impossible to follow data flow, users getting lost Detection: If >30% of edges cross other edges, or users spend >20s tracing a path Fix:

  • Force hierarchical layout (Dagre/ELK)
  • Add intermediate junction nodes to break long connections
  • Implement edge bundling for parallel data flows

Zoom Desert Problem

Symptoms: Pan/zoom feels broken, users can't find their content, minimap unhelpful Detection: Users hitting zoom limits frequently, >5 seconds to locate nodes after navigation Fix:

  • Implement fit-to-view on double-click background
  • Add breadcrumb navigation for nested groups
  • Set proper zoom bounds: min 0.1x, max 3x
  • Show node labels at all zoom levels >0.5x

Handle Ambiguity Confusion

Symptoms: Users connecting wrong ports, type errors, unexpected data flow Detection: >20% connection error rate, frequent undo of connections Fix:

  • Show handle compatibility on hover (green=valid, red=invalid)
  • Add connection preview with data type labels
  • Implement smart handle snapping within 20px radius

Performance Cliff Rendering

Symptoms: Editor freezes with >50 nodes, stuttering during pan/zoom Detection: Frame rate drops below 30fps, render times >100ms Fix:

  • Enable React Flow viewport culling
  • Virtualize node lists in sidebar
  • Debounce layout recalculation (300ms delay)
  • Cache node measurements between renders

No-Feedback Execution Black Box

Symptoms: Users don't know if workflow is running, what failed, or why it stopped Detection: Users asking "is it working?" or clicking run button multiple times Fix:

  • Animate edges during execution (flowing dots)
  • Add node status indicators: idle/running/success/error
  • Show execution time and data throughput
  • Highlight current execution path

WORKED EXAMPLES

Example: Data Processing Pipeline Editor

Scenario: Design editor for CSV → Transform → Database pipeline

Step 1: Choose Layout

  • 5 nodes total, linear flow → Use Dagre LR
  • Set rankdir: 'LR', ranksep: 120 for readable spacing

Step 2: Design Node Structure

const TransformNode = ({ data }) => (
  <div className="w-64 border-2 border-gray-200 rounded-lg bg-white">
    <div className="bg-blue-50 px-3 py-2 border-b">
      <h3>🔄 Transform Data</h3>
    </div>
    <div className="p-3">
      <div className="text-sm">Filter: {data.filter}</div>
      <div className="text-sm">Sort: {data.sort}</div>
    </div>
    <Handle type="target" position={Position.Left} />
    <Handle type="source" position={Position.Right} />
  </div>
);

Step 3: Connection Logic

  • Single data type (tabular) → One handle per side
  • Show preview of first 3 rows on edge hover
  • Animate data flow during execution

Novice Miss: Would add separate handles for each column Expert Catch: Keeps single connection, shows column mapping in node detail

QUALITY GATES

  • Pan latency <50ms (measure with performance.now())
  • Zoom smoothness: no frame drops during scroll zoom
  • Handle discoverability: New users find connection points within 30s
  • Edge routing: <20% of edges cross other edges in auto-layout
  • Node search: Find any node within 3 keystrokes
  • Execution feedback: Status visible during all async operations
  • Mobile usability: Touch targets ≥44px, pinch zoom works
  • Undo reliability: Can undo/redo any operation without corruption
  • Save performance: Workflow JSON serialization <500ms for 100 nodes
  • Error clarity: Failed connections show specific reason (type mismatch, circular reference)

NOT-FOR Boundaries

Don't use DAG editors for:

  • Text-heavy content → Use document editors instead
  • Real-time collaboration → Use [collaborative-editing] skill for conflict resolution
  • Complex mathematical expressions → Use formula builders instead
  • Timeline-based workflows → Use [gantt-chart-design] for scheduling
  • State machines with loops → Use dedicated state diagram tools

Delegate to other skills:

  • Performance optimization → Use [react-performance-optimization] for >1000 nodes
  • Accessibility compliance → Use [web-accessibility] for screen reader support
  • Animation design → Use [micro-interactions] for execution visualizations

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/windags-skills132026年10月12日 更新

Expert legal research agent for finding and scraping expungement data state by state. Knows authoritative sources, URL patterns, Firecrawl configuration, and 2026 legal landscape.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/windags-skills132026年10月12日 更新

Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion. Covers SAM4D/Point-SAM, human-in-the-loop architectures, and vertical-specific training strategies. Activate on '3D labeling', 'point cloud annotation', 'LiDAR labeling', 'SAM 3D', 'SAM4D', 'sensor fusion annotation', '3D bounding box', 'semantic segmentation point cloud'. NOT for 2D image labeling (use clip-aware-embeddings), general ML training (use ml-engineer), video annotation without 3D (use computer-vision-pipeline), or VLM prompt engineering (use prompt-engineer).

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/windags-skills132026年10月12日 更新

Apply crisis decision-making research to agent routing, uncertainty triage, and coordination failure analysis in time-pressured systems. Use when diagnosing handoff failures, analytical paralysis, or expert judgment under incomplete information. NOT for routine coding, simple CRUD design, or static single-agent tasks with complete information.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/windags-skills132026年10月12日 更新

Use for insight, reframing, contradiction, impasse, and anomaly-driven problem solving when execution effort no longer helps. NOT for routine optimization, error correction, or well-specified tasks with known solution paths.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/windags-skills132026年10月12日 更新

Apply normative BDI reasoning to agents that must detect norms, choose which commitments to internalize, and resolve conflicts by comparing consequences. Use when obligations, prohibitions, or policies collide in autonomous systems. NOT for simple fixed-priority rules, pure constraint satisfaction, or domains where no real normative conflict exists.

日本語の概要は準備中です。原文の説明を表示しています。

curiositech/windags-skills132026年10月12日 更新

curiositech のスキルをすべて見る

このスキルの問題を報告する