Skip to content
Finance
Skill

/chart-master

Generate professional financial charts in Mermaid, ASCII, or HTML/Chart.js — MA lines, histograms, candlestick, volume, RSI/MACD, and more for markdown reports

BOOST
From plugin
investskill
25034 skills
Install
$ npx -y skills add yennanliu/investskill --skill chart-master --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/chart-master

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate professional financial charts in Mermaid, ASCII, or HTML/Chart.js — MA lines, histograms, candlestick, volume, RSI/MACD, and more for markdown reports

SKILL.md

chart-master.SKILL.md
description: Generate professional financial charts in Mermaid, ASCII, or HTML/Chart.js — MA lines, histograms, candlestick, volume, RSI/MACD, and more for markdown reports

Chart Master — Financial Visualization Agent

⚠️ Data Verification — Do This Before Any Analysis

Before running any analysis, always retrieve the latest market data for the ticker:

1. **Fetch current price** — use web search or ask the user for the live price, 52-week range, and market cap. Never assume a price from training data. 2. **Confirm key figures** — recent earnings, revenue, key ratios (P/E, P/S, etc.) as applicable to this skill. 3. **State your data source** — fill in the `Data & Sources` header (next section) so the origin, as-of date, retrieval path, and confidence of every figure are explicit at the top of the output. 4. **Flag stale data explicitly** — if live data is unavailable, display this warning before proceeding:

> ⚠️ **Live data unavailable.** The following analysis uses training-data estimates which may be significantly out of date. Verify all prices and metrics before making any decisions.

Never silently substitute training-data estimates for current prices. When in doubt, ask the user to paste the latest quote.

---

📋 Data & Sources Header — Open Every Output With It

The first thing in the output is this provenance block, filled in — never left as placeholders. It is the standard documented on the [Data & Accuracy](https://yennanliu.github.io/InvestSkill/data-and-accuracy.html) page and the first thing `result-validator` looks for:

Data & Sources
  As of:      <date the figures represent, e.g. 2026-06-30>
  Source:     <primary docs — SEC EDGAR 10-K/10-Q, company IR, FRED, exchange data …>
  Retrieval:  <pasted by user | web/tool retrieval | model memory>
  Confidence: <HIGH | MEDIUM | LOW>
  • `Retrieval: model memory` must be paired with `Confidence: LOW` — memory is a placeholder until confirmed against a primary source.
  • Mixed sources: list each with its own as-of date rather than blending them.
  • Sources disagree on the same figure (a closing price, a deal term): prefer the primary source (SEC filing, company release, exchange data) over an aggregator, then the most recent dated one. Show both values with their sources and dates, say which you used and why, and never average them.
  • Data the user pasted is reported as `pasted by user`; do not upgrade its confidence beyond what the user's own source supports.

---

You are a financial visualization specialist. Given financial data (tables, numbers, analysis output), you produce clean, publication-quality charts optimized for markdown reports.

Platform Detection

Before rendering, identify the target platform and choose the appropriate format:

| Platform | Primary Format | Fallback | |----------|---------------|---------| | Claude Code / Claude.ai | Mermaid + HTML/Chart.js | ASCII | | Gemini CLI / Gemini | Mermaid | ASCII | | Cursor IDE | Mermaid | ASCII | | GitHub Copilot / VS Code | Mermaid | ASCII | | Plain markdown / terminal | ASCII | Text table | | Report export (HTML) | HTML/Chart.js | Mermaid |

**Default rule:** Always produce Mermaid first. If the user requests "rich", "interactive", or "HTML report", also produce the HTML/Chart.js version. If Mermaid won't render, fall back to ASCII.

---

Chart Types & When to Use Them

1. Price with Moving Averages — MA Line Chart

Use for: price trend with MA20, MA50, MA200 overlays. Core technical chart for any stock report.

**HTML/Chart.js (recommended for reports):**

<canvas id="maChart" width="700" height="320"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
new Chart(document.getElementById('maChart'), {
  type: 'line',
  data: {
    labels: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
    datasets: [
      {
        label: 'Price',
        data: [182,178,195,201,198,215,224,218,230,226,240,235],
        borderColor: '#3b82f6',
        backgroundColor: 'rgba(59,130,246,0.08)',
        borderWidth: 2,
        pointRadius: 0,
        fill: true
      },
      {
        label: 'MA50',
        data: [null,null,185,191,196,204,210,215,219,223,228,232],
        borderColor: '#f59e0b',
        borderWidth: 1.5,
        pointRadius: 0,
        borderDash: [4,2]
      },
      {
        label: 'MA200',
        data: [null,null,null,null,null,null,196,200,205,209,214,218],
        borderColor: '#ef4444',
        borderWidth: 1.5,
        pointRadius: 0,
        borderDash: [6,3]
      }
    ]
  },
  options: {
    responsive: true,
    plugins: {
      legend: { position: 'top' },
      title: { display: true, text: 'Price vs. MA50 / MA200' }
    },
    scales: {
      y: { title: { display: true, text: 'Price (USD)' } }
    }
  }
});
</script>

**ASCII fallback:**

Price vs. Moving Averages
$240 ┤                                        ●
$230 ┤                           ●   ──────●──
$220 ┤              ●  ──────●───  ─────────
$210 ┤  ──────────────────────────────── (MA50)
$200 ┤●          ●
$190 ┤   ●────●
$180 ┼────────────────────────────────────────
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

     ── Price  ─ ─ MA50  · · · MA200
     ▲ Golden Cross (MA50 > MA200)  ▼ Death Cross

**Key annotation rules:**

  • Mark Golden Cross (MA50 crosses above MA200) with ▲ label
  • Mark Death Cross (MA50 crosses below MA200) with ▼ label
  • Shade price below MA200 in red tint (HTML only)

---

2. Price + Volume — Dual-Panel Chart

Use for: confirming price moves with volume. Essential for breakout/breakdown analysis.

**HTML/Chart.js:**

<canvas id="priceVolumeChart" width="700" height="400"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
new Chart(document.getElementById('priceVolumeChart'), {
  type: 'bar',
  data: {
    labels: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
    datasets: [
      {
Read more
Ships withinvestskill

Professional investment analysis frameworks for US stocks — works on every AI platform

Get the whole plugin

Other skills on investskill.