AgentSkillsCN

dev-graph-exports

导出Dev Graph UI资产和仪表板数据。当用户要求结构SVG导出、时间线SVG/MP4导出、每次提交的SVG、冲刺关联的视觉效果,或来自Dev Graph API的仪表板/分析JSON时使用。

SKILL.md
--- frontmatter
name: dev-graph-exports
description: Export Dev Graph UI assets and dashboard data. Use when the user asks for structure SVG exports, timeline SVG/MP4 exports, per-commit SVGs, sprint-linked visuals, or dashboard/analytics JSON from the Dev Graph API.

Dev Graph Exports

Generate exportable assets that match the Dev Graph UI.

Quickstart

  • API-only SVG-parity timeline exports: node skills/dev-graph-exports/scripts/export_timeline_segments_svg_parity.js --api http://localhost:8080
  • Dashboard JSON export: python skills/dev-graph-exports/scripts/export_dashboard_data.py --base-url http://localhost:8080

Requirements

  • Dev Graph API running on http://localhost:8080
  • Node.js 18+ available (for SVG-parity renderer; uses global fetch)
  • Dependencies installed in tools/dev-graph-ui:
    • npm --prefix tools/dev-graph-ui install jsdom @resvg/resvg-js
  • ffmpeg available on PATH for mp4/gif exports

Exports

Structure SVG (UI export)

  • Script: python skills/dev-graph-exports/scripts/export_structure_svg.py
  • Output default: exports/dev-graph/structure-graph.svg
  • Optional: --url http://localhost:3001/dev-graph/structure --output <path>
  • Filters: --source-type File --target-type Document --relation-type CONTAINS_CHUNK --max-nodes 250

Timeline MP4 + GIF segments (SVG-parity, API only)

  • Script: node skills/dev-graph-exports/scripts/export_timeline_segments_svg_parity.js
  • Output default: mp4 + gif plus per-commit SVG frames under exports/dev-graph/timeline-frames/
  • The SVG frames are the primary artifacts; raster frames are temporary and removed after encoding.
  • Segments: commits 1-70, 70-200, 200+.
  • Key options:
    • Range: --range-start 0 --range-end 69 (single segment)
    • Segments: --segments "0-69,69-199,199-" (dash with empty end means "to last")
    • Sprint window preset: --sprint sprint-11 (uses /api/v1/dev-graph/sprints/<n> start/end)
    • Single SVG frame (no ffmpeg): --frame-only true --sprint sprint-11 --sprint-frame end --frame-output docs/sprints/sprint-11/_dev_graph_visuals/timeline.svg
    • Single SVG at commit: --frame-only true --frame-commit abcd123 --frame-output exports/dev-graph/timeline-frame.svg
    • Graph density: --max-nodes 0 (default, no limit)
    • Node layout: --show-folder-groups true|false, --focused-view true|false, --size-by-loc true|false
    • Styling: --color-mode folder|type|commit-flow|activity|none, --highlight-docs true|false, --edge-emphasis 0.0-1.0
    • Filtering: --active-folders "backend,frontend", --include-patterns "docs,/\\.md$/"
    • Canvas size: --width 1200 --height 600
    • Auto-fit (zoom out to see full shape): --auto-fit true (default) and --auto-fit-padding 80
    • Auto-fit motion (smooth zoom between frames): --auto-fit-motion true (default), --auto-fit-motion-alpha 0.25
    • Focus around a commit: --focus-commit 120 --focus-window 10 (index) or --focus-commit abcd123 --focus-window 12 (hash prefix)
    • Relaxation (cinematic settling): --relax-ticks-min 180 --relax-ticks-max 520 --relax-ticks-factor 35
    • Data volume: --limit 5000 --max-files 0 (0 means no limit; lets backend return full file lists)
    • Include every file node: --include-all-files true (default)
    • Downscale on failure: --downscale-on-fail true (default), --downscale-factor 0.85 --downscale-retries 3

Per-commit SVG frames

  • Script: python skills/dev-graph-exports/scripts/export_timeline_svgs.py
  • Output default: exports/dev-graph/timeline-frames/
  • Optional: --start 0 --count 20
  • Note: this script is UI-driven (requires the Dev Graph UI running) and requires Python Playwright.

Dashboard data

  • Script: python skills/dev-graph-exports/scripts/export_dashboard_data.py
  • Output default: exports/dev-graph/dashboard/

Notes

  • Timeline exports must use the SVG timeline renderer, not the GL2 timeline view.
  • The SVG-parity exporter uses the Dev Graph API only; UI is not required.
  • Structure export is taken from the main Structure View canvas and reflects current filters.
  • Dashboard exports pull from /api/v1/dev-graph/stats, /analytics, /quality, and /data-quality/overview.
  • Use sprints.json from dashboard exports to link frames and videos to sprint windows.
  • Defaults aim for full-fidelity output; if a segment fails, it will retry at a smaller canvas size.

Other scripts (optional)

  • UI-driven structure SVG export: python skills/dev-graph-exports/scripts/export_structure_svg.py (requires the UI + Python Playwright)
  • UI-driven MP4 export via the Timeline page: python skills/dev-graph-exports/scripts/export_timeline_mp4.py (requires the UI + Python Playwright)
  • Legacy standalone timeline export (non-parity): python skills/dev-graph-exports/scripts/export_timeline_segments_standalone.py (requires matplotlib + ffmpeg)