Converts analyzed data into Mermaid charts and Markdown tables for report visualizations. Activates when the user wants to create charts, visualize data, add diagrams, or asks 'show me this as a graph.' Covers bar, line, pie, Gantt, and flowchart types with automatic type selection based on data characteristics.
From founder-osnpx claudepluginhub thecloudtips/founder-os --plugin founder-osThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Transform analyzed data into visual representations using Mermaid chart syntax and Markdown tables. Select the chart type based on data characteristics, render syntactically correct Mermaid blocks, and position visualizations to maximize reader comprehension. Mermaid is the exclusive charting engine -- chosen for native compatibility with GitHub, Notion, and Markdown renderers. Never generate image files, SVGs, or external dependencies. Every visualization must be a self-contained Mermaid code block or Markdown table.
Select exactly one chart type per visualization. When multiple types could apply, prefer the first type below that satisfies all conditions.
Select when data compares discrete categories against a numeric measure -- categorical X axis (product names, regions, quarters) and numeric Y axis (revenue, count). Use for ranking, comparison, or relative magnitude across 2 to 12 groups. Typical: revenue by product, headcount by department, tickets by category.
Select when data represents parts of a whole summing to a meaningful total. Use for composition and proportion with 2 to 8 segments. Exceeding 8 segments makes pie charts unreadable -- switch to bar or aggregate into "Other". Exclude any segment below 3% of the total. Typical: budget breakdown, time allocation, portfolio by industry.
Select when data tracks a metric over sequential or temporal intervals. Use for trends, growth patterns, and trajectory with 3 to 50 data points. Fewer than 3 points lack trend significance -- use a callout or table instead. Typical: monthly revenue, weekly active users, sprint velocity over time.
Select when data describes tasks or events with start dates and durations. Use for timelines, schedules, parallel workstreams, and duration comparison. Typical: project phases, roadmaps, sprint plans, campaign calendars.
Select when data describes a process, decision tree, or data flow. Use for showing how inputs transform through sequential or branching steps. Typical: approval workflows, pipelines, customer journeys, decision trees.
Use these exact patterns. A single syntax error breaks the entire chart.
xychart-beta
title "Sales by Quarter"
x-axis ["Q1", "Q2", "Q3", "Q4"]
y-axis "Revenue ($K)" 0 --> 500
bar [120, 230, 340, 450]
title in double quotes.x-axis array and bar array must have equal length.y-axis label: "Revenue ($K)", "Count".y-axis at 0; set ceiling to a round number 15-25% above the max value.xychart-beta
title "Monthly Users"
x-axis ["Jan", "Feb", "Mar", "Apr"]
y-axis "Users" 0 --> 1000
line [200, 450, 600, 800]
xychart-beta block with equal-length arrays. Use bar for absolute values, line for a secondary metric.pie title "Revenue by Product"
"Product A" : 45
"Product B" : 30
"Product C" : 25
title appears on the same line as pie, in double quotes."Label" : value (space-colon-space).gantt
title "Project Timeline"
dateFormat YYYY-MM-DD
axisFormat %b %d
section Planning
Requirements gathering : plan1, 2025-01-06, 14d
Architecture design : plan2, after plan1, 10d
section Development
Backend implementation : dev1, after plan2, 21d
Frontend implementation: dev2, after plan2, 18d
Integration testing : dev3, after dev1, 7d
section Launch
Staging deployment : launch1, after dev3, 3d
Production release : launch2, after launch1, 2d
dateFormat YYYY-MM-DD and axisFormat (%b %d or %b %Y).after <task_id> for sequential dependencies instead of hardcoding dates.Nd for N days. Group tasks into section blocks. Keep labels under 30 characters.flowchart TD
A["Raw Data Input"] --> B{"Data Format?"}
B -->|CSV| C["Parse CSV"]
B -->|JSON| D["Parse JSON"]
B -->|Notion| E["Query Notion API"]
C --> F["Validate & Clean"]
D --> F
E --> F
F --> G["Generate Report"]
TD for process flows, LR for data pipelines.["text"] rectangle, {"text"} diamond, (["text"]) stadium, [["text"]] subroutine.-->|label|. Keep node text under 40 characters. Limit to 15 nodes maximum.Evaluate data structure before selecting a chart:
| Chart Type | Max Points | When Exceeded |
|---|---|---|
| Bar | 12 categories | Show Top N or aggregate into "Other" |
| Pie | 8 segments | Merge smallest into "Other" |
| Line | 50 points | Aggregate to coarser interval |
| Gantt | 20 tasks | Group into summary phases |
| Flowchart | 15 nodes | Collapse sub-processes |
When aggregating, state the method in surrounding text (e.g., "Top 10 by revenue", "Minor categories combined into Other").
Use Markdown tables instead of charts when:
---:), left-align text (:---).| Product | Revenue ($K) | Growth (%) | Status |
|:--------------|-------------:|-----------:|:----------|
| Product A | 450 | 12.3 | Growing |
| Product B | 320 | 5.1 | Stable |
| Product C | 180 | -2.7 | Declining |
| **Total** | **950** | **6.2** | |
When combining chart and table for the same data, place the chart first for overview and the table second labeled "Exact figures:" for precision.
Do not chart a single value. Produce a callout block instead:
> **Total Revenue (Q3 2025):** $450K -- up 12% from Q2
A chart adds no information when every value is the same. Use a callout: "All five regions reported identical revenue of $200K."
Mermaid xychart-beta has limited negative support. For bar/line charts, set y-axis range to span below minimum and above maximum (e.g., y-axis "Profit ($K)" -100 --> 300). If rendering fails, fall back to a table. Never include negatives in pie charts -- filter them out and note the exclusion.
Apply suffix scaling when values exceed 6 digits:
Apply the same factor to every value. Never mix scaled and unscaled values.
When all values are below 1.0, multiply by 100 and display as percentages when semantically appropriate. Otherwise use raw decimals with range 0 --> 1.
When Mermaid syntax cannot be validated or a known renderer limitation applies:
<!-- Chart rendering not supported; table fallback used --> above the table.