AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The plotting skill provides a structured approach to creating data visualizations from query results. It emphasizes factual, neutral chart generation suitable for reports, presentations, or exploratory analysis. The skill prioritizes dependency-free HTML/CSS/JavaScript/SVG for interactive charts, while supporting local Python libraries like matplotlib, seaborn, or Plotly for static or specialized requirements. It includes strict guidelines on chart selection, labeling, and integrity to ensure artifacts remain clear and reusable.
What it does
- Generates interactive charts using plain HTML, CSS, and JavaScript.
- Creates static report-ready exports using Python plotting libraries.
- Applies standardized formatting for titles, axes, and legends.
- Saves underlying data as CSV files alongside generated charts.
- Provides a structured metadata sidecar for report-ready assets.
- Enforces factual labeling and neutral design standards.
When to use it
- When visualizing time-series trends, distributions, or category comparisons.
- When creating evidence-based artifacts for reports or presentations.
- When performing exploratory data analysis that requires visual confirmation.
- When you need a self-contained, offline-compatible interactive chart.
Advantages
- Produces consistent, brand-agnostic visual artifacts.
- Ensures charts remain understandable outside of the immediate conversation.
- Reduces dependency on external network resources for interactive charts.
- Maintains data integrity through mandatory CSV exports.
- Provides clear guidance on avoiding common visualization pitfalls.
Usage examples
- “Plot daily active users over the last 30 days by region.”
- Generates a line chart showing daily active users per region, saved as an interactive HTML file with an accompanying CSV of the source data.
- “Create a distribution chart of order values for the last quarter.”
- Produces a histogram or box plot representing the order value distribution, including factual axis labels and a source caption.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/cline/plotting/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip plotting.zip -d .agents/skills
Documentation by Cline
Plotting
Create charts when they make the analysis easier to understand or when the user requests a report/presentation artifact.
First goal: create a useful local plot artifact from a bounded query result. Do not turn a plotting request into a dashboard, presentation builder, or broad report unless the user explicitly asks for that.
When to plot
Plot for:
time-series trends
before/after comparisons
segment comparisons
distributions and percentiles
funnels
presentation/report assets
Avoid plotting when the metric definition or query is still uncertain unless the chart is clearly labeled exploratory.
Do not show charts too early by default when doing exploratory analysis if the metric, population, time window, or grouping could bias interpretation. Prefer one concise clarification question or an explicitly labeled exploratory chart.
Plot intent contract
Before generating a plot, know or infer:
chart type
x-axis
y-axis / primary metric
grouping, color, or breakdown dimension
time window and filters
source query/model/table
audience: exploratory, report-ready, presentation/blog asset, or quick internal check
If the mapping is obvious from the user's request or the result shape, proceed and state the inferred mapping in the response. If multiple reasonable mappings exist, ask one concise clarification question before plotting. For report-ready or presentation assets, confirm ambiguous choices before generating.
Keep simple plotting requests lightweight. Do not ask an exhaustive questionnaire when the user has already provided enough context.
Default chart selection
Use these defaults unless the user asks otherwise:
| Result shape | Default chart |
|---|---|
| date/time + one numeric metric | line chart |
| date/time + one numeric metric + one low-cardinality category | multi-line chart colored by category |
| category + one numeric metric | sorted bar chart |
| ordered funnel/stage + count or rate | ordered bar or funnel-style chart |
| numeric distribution | histogram or box plot; ask if the intended distribution view is unclear |
| multiple numeric metrics | ask which metric to emphasize unless one is clearly primary |
For high-cardinality categories, choose a bounded top-N only when the ranking metric is clear. Default to top 5 for multi-line time series and top 10 for bar charts. State the top-N rule in the caveats.
Choose the chart based on analytical intent, not only result shape:
Trend over time: line chart, small multiples, slope chart, or indexed trend.
Compare categories/rankings: sorted bar, dot plot, or lollipop.
Part-to-whole: stacked bar/area only when composition is the point; avoid pie/donut except for very simple cases.
Distribution: histogram, box plot, violin, strip/beeswarm, or percentile summary.
Relationship: scatterplot, heatmap, or connected scatter when order matters.
If the intended message is unclear, ask one concise question such as: "Should this emphasize absolute volume, trend shape, ranking, composition, distribution, or relationship?"
Complexity limits for the first pass
Use one x-axis and one primary y-axis by default.
Use at most one grouping/color dimension by default.
Avoid dual-axis charts unless explicitly requested.
Avoid dense legends, many small multiples, or complex multi-measure charts in the first pass.
Prefer basic line and bar charts for MVP plotting.
For interactive MVP plotting, do not default to Plotly. Prefer plain HTML/CSS/JavaScript/SVG unless the user requests a specific charting library or the interaction would be unreasonably complex to implement cleanly.
Include uncertainty/error bars only when the query explicitly provides uncertainty values or the user asks for them.
If a chart would need substantial transformation or statistical modeling, explain the needed transformation before generating it.
Avoid common chart traps:
Do not create spaghetti charts. If a time-series chart has too many lines, overlapping lines, or hard-to-read labels, reduce to top-N, highlight a subset, facet into small multiples, or ask what to focus on.
Do not use a log scale as the automatic fix for one dominant series. Use log scale only when multiplicative/rate-of-change comparison is the intended message, and label it clearly.
Do not use dual axes to compare unrelated metrics. Use separate panels, normalization, percent change, or another chart type.
Do not use 3D, rainbow palettes, radial bars, radar charts, or pie/donut charts by default for business/reporting assets.
Chart standards
Use a clear, factual title and subtitle.
By default, chart text should explain what is plotted, not interpret what it means.
Label axes with units, but avoid repeating the same unit in title, subtitle, axis title, and panel labels.
Prefer a 0 baseline for y-axes, especially for counts, volumes, revenue, rates, proportions, and comparison charts unless there is a strong analytical reason to do otherwise.
Compact large y-axis tick labels so charts remain readable, such as
250,000to250k,1,200,000to1.2M, and3,400,000,000to3.4B.Keep axis titles explicit about the metric and units even when tick labels are compacted, such as
Daily active users,Revenue (USD), orTokens.Use date formatting appropriate to the grain.
Annotate known events, releases, data-quality caveats, or specific values only when they help the reader understand the encoding/context.
Include source/model and caveat note in a caption or adjacent text.
Prefer consistent, restrained colors over default rainbow palettes.
Save chart files locally and report their absolute paths.
Factual chart text policy:
Do not use interpretive/takeaway headlines by default. Avoid titles such as "X dominates," "Y collapsed," "A drives B," "Z is recovering," or "conversion is weak" unless the user explicitly asks for a takeaway chart or presentation narrative.
Default title pattern:
<metric> by <dimension/grouping>or<metric> over time by <grouping>.Good:
Daily orders by regionGood:
Revenue by plan and productAvoid by default:
Mobile dominates order volumeAvoid by default:
Enterprise plan drives revenue
Use the subtitle/caption for factual context: time window, grain, filters, top-N rule, current-day exclusion, aggregation, and whether values are counts, rates, currency, or percentages.
Keep interpretive analysis in the surrounding written response, not embedded in the chart, unless requested. The chart should remain reusable as a neutral evidence artifact.
If a user asks for a slide/report "headline" or "takeaway," still keep claims mechanically checkable: name the metric, comparison basis, population, and time window. Prefer
Top two plans account for 62% of revenueoverTop two plans drive revenue.Annotations should be factual labels, not conclusions. Prefer
May 13 highorRelease dateoverbackfill spike,collapse, orrecoveryunless that cause is verified.Alt text and metadata should be factual descriptions of the chart contents and encodings. Put caveats and interpretation in separate
caveatsor analysis fields.
Title, axis, and legend checklist:
Title: identifies the plotted metric and primary dimension/grouping; no unexplained conclusion verbs.
Subtitle: adds time window, grain, filters, and top-N/coverage rules when needed.
X-axis: labeled unless the tick labels and title/subtitle make the dimension unambiguous, such as obvious calendar years; do not make readers guess.
Y-axis/value scale: labeled with metric and unit, such as
Orders,Revenue (USD),Active users, orShare of users (%).Legend/direct labels: identify what color, line style, marker, or panel represents. Prefer direct labels when they fit; otherwise keep the legend outside the data region and ordered to match the visual order.
Caption/source note: includes source table/model, freshness/current-day exclusion if relevant, important filters, top-N truncation, and scale caveats such as independent axes or log scale.
Chart integrity rules:
Bar charts must start their value axis at zero.
Line charts do not always require a zero baseline, but for report-quality count/volume charts, prefer zero-anchored axes unless there is a clear reason not to. If using a nonzero axis, disclose it or make the design choice obvious.
When comparing absolute magnitudes across groups, prefer shared axes/scales.
When the goal is per-series trend readability and one group dwarfs the others, prefer small multiples or indexed trends over a single shared-axis line chart.
If using independent y-axes in small multiples, make that choice explicit through panel design/context and preserve magnitude context with totals, averages, or summary labels.
If one series is more than roughly 5-10x larger than the others, do not default to a single multi-line shared-axis chart. Consider small multiples, split panels, indexed trends, or asking whether the user cares about absolute volume or trend shape.
Labeling and annotation rules:
Prefer direct labels, end labels, or panel titles over legends when practical.
Keep legends outside the data region and order legend entries to match the chart order.
Use annotations sparingly to label a known event, data-quality caveat, notable value/outlier, or how to read an uncommon chart. Do not annotate interpretive conclusions by default.
Do not add reference lines such as means unless they support the question or improve interpretation.
Accessibility/reporting rules:
Use high-contrast text and avoid relying on color alone when distinctions are important.
Use plain language in titles, labels, notes, and caveats.
Keep enough context for the chart to be understood outside the conversation: metric, grain, time window, filters, source, and caveats.
Visual style
Default to a clean, neutral style that reads well in any report. This skill is brand-agnostic; do not apply any organization's branding unless the user asks.
Plain HTML/CSS/JavaScript/SVG interactive artifact on a white or off-white background.
Dark, high-contrast text.
A clean sans-serif font stack, such as
system-ui, Inter, or similar.A small, restrained, consistent palette (about 4-6 colors); avoid rainbow defaults.
Title left-aligned when supported.
Legend above or to the right, not overlapping the data.
Clear axis labels with units, e.g.
Orders,Cost (USD),Active users.Date ticks matched to grain: daily, weekly, or monthly.
Chart dimensions suitable for reports: about 1000x600 for HTML/static exports unless the user requests otherwise.
If the user or project has its own brand palette and fonts, use those. Otherwise the neutral defaults above are fine. Do not invent "official" brand colors for an organization.
Optional: Cline brand tokens
A ready-made token set is bundled at styles/cline-chart-tokens.css (self-contained CSS custom properties: palette, fonts, backgrounds, and chart dimensions) encoding the Cline web brand (cline-web). It is entirely optional and provided as one example, use it if you want that look, or swap in your own tokens. If you reference it but cannot load the exact tokens in another environment, say the style is an approximation. Do not add Cline (or any other) branding to charts by default.
Artifact contract
Every successful plotting run should save the underlying data and the chart locally.
Default artifact location:
artifacts/data-analyst/<descriptive-slug>/Use the current workspace as the base directory. Create the directory if needed. Report absolute paths in the final response.
Preferred outputs:
CSV of the underlying plotted data.
Plain HTML/CSS/JavaScript/SVG interactive chart for exploratory interactive artifacts.
PNG when requested or useful for reports/presentations and static export dependencies are available.
Plotly/Vega/ECharts/etc. HTML only when the user asks for that library, the chart needs library-specific features, or custom vanilla SVG would be disproportionately complex.
Optional metadata/notes file for report-ready assets.
If the user explicitly asks for a PNG and static export dependencies are unavailable, install them in a local workspace virtual environment when reasonable instead of hand-rolling rasterization. Prefer:
python3 -m venv .venv-plotting
.venv-plotting/bin/python -m pip install plotly kaleido pandasIf dependency installation is impossible, save the CSV and explain what chart would have been generated. Do not create low-quality manual SVG/PNG renderers as a fallback for report assets.
For report-ready assets, consider saving a small sidecar metadata file such as chart_metadata.json with:
{
"title": "...",
"alt_text": "...",
"chart_type": "...",
"data_source": "...",
"metric": "...",
"grain": "...",
"time_window": "...",
"filters": ["..."],
"caveats": ["..."],
"generated_files": ["..."]
}Use this response shape after plotting:
Chart: /absolute/path/chart.html
Data: /absolute/path/data.csv
Mapping:
- chart type: ...
- x: ...
- y: ...
- color/group: ...
Source:
database.model_or_table, query, or artifact path
Caveats:
time window, filters, top-N rule, freshness, exploratory/report-ready statusRecommended implementation
For interactive exploratory charts, prefer a self-contained vanilla artifact:
Plain HTML/CSS/JavaScript/SVG with the bounded aggregate data embedded as JSON or CSV.
Include the necessary interaction directly in vanilla JS: legend/filter toggles, hover tooltip, click details, metric/view toggles, share vs count normalization, small multiples, etc.
Avoid external network/CDN dependencies by default; the artifact should work when opened locally/offline.
Keep the chart code simple and inspectable. Do not build a broad dashboard unless the user asks for it.
Use local Python/charting libraries in this order when a static export, report asset, or specialized chart is more appropriate:
Matplotlib/seaborn for static PNG/SVG report assets.
Plotly PNG export when Plotly/Kaleido are already available or explicitly requested.
Plotly/Vega/ECharts/etc. for interactive HTML only when the user asks for that library or vanilla SVG would be a poor fit.
CSV output only if plotting is not feasible.
For bounded aggregate analytics data, a self-contained vanilla HTML/CSS/JavaScript/SVG chart is usually the preferred interactive artifact. Prefer this over Plotly-by-default and over low-quality static fallbacks when the user wants exploration and the data volume is small enough to embed safely.
Recommended features for self-contained interactive HTML/SVG charts:
Embed only aggregate, non-sensitive plotted data.
Use inline SVG for marks, axes, gridlines, labels, and accessibility text.
Provide hover and keyboard-focus tooltips for datapoints.
Include useful controls such as metric selector, y-axis scale selector, label toggle, or segment/highlight toggles only when they aid exploration.
Include source/caveat captions visible next to the chart.
Include the underlying data table when practical.
Provide CSV/SVG download buttons when browser security context allows them.
Keep the artifact usable offline and avoid external network/CDN dependencies unless the user explicitly wants them.
Prefer custom SVG marks over canvas when axes, labels, tooltips, legends, and click targets need to remain easy to inspect and modify.
Add lightweight summary metrics or a details table when they materially improve exploration.
Always keep the underlying data artifact, such as CSV or query output, when generating a chart.
Prefer a small local script or a clearly structured HTML file over ad hoc shell one-liners when generating a chart so the mapping, style, file paths, embedded data, and dependencies are easy to inspect.
Before returning a chart artifact, inspect or validate the rendered output. Reject and fix charts with clipped captions, missing legends, labels running off canvas, unreadable axes, confusing log ticks, misleading baselines, or badly compressed series. If one series dwarfs the rest, consider small multiples, split panels, indexed trends, normalization, or a clearly labeled log scale depending on the analytical intent.
When possible, open or read the actual image artifact before finalizing. Do not rely only on code inspection.
Interactive HTML validation
Before reporting an interactive HTML artifact as complete:
Validate that expected controls, labels, source notes, and embedded data are present in the generated file.
If the file contains inline JavaScript, extract
<script>blocks and runnode --checkwhen Node is available.Watch for generator escaping bugs, especially literal newlines inside JavaScript string literals, unescaped backticks in template literals, and manually concatenated JSON. Prefer
json.dumps/equivalent for embedded data.If the artifact is generated by a script, fix the generator and regenerate the artifact. Do not only hand-patch the generated HTML unless the generator is also updated or clearly marked obsolete.
For local interactive HTML, note that opening via
file://can restrict downloads, object URLs, module imports, or other browser features. If relevant, include local serving instructions such as:
cd /path/to/artifact-directory
python3 -m http.server 8000Then open http://localhost:8000/chart.html.
Smoke-test query for plotting changes
Use a bounded query like this as a basic plotting smoke test against any daily aggregate table you have. Adapt the table and column names to your schema. It should produce a multi-line or small-multiple time-series chart with the date on x, a count metric on y, and a low-cardinality category as the color/group dimension. Save both CSV and a plain HTML/CSS/JavaScript/SVG interactive artifact.
WITH top_categories AS (
SELECT category
FROM analytics.daily_events
WHERE event_date >= today() - 30
AND event_date < today()
AND category IS NOT NULL
AND category != ''
GROUP BY category
ORDER BY sum(event_count) DESC
LIMIT 5
)
SELECT
event_date,
category,
sum(event_count) AS events,
uniqExact(user_id) AS active_users,
round(events / nullIf(active_users, 0), 2) AS events_per_active_user
FROM analytics.daily_events
WHERE event_date >= today() - 30
AND event_date < today()
AND category IN (SELECT category FROM top_categories)
GROUP BY event_date, category
ORDER BY event_date, events DESCExpected plot contract for this query:
chart type: start with a multi-line chart only if the top categories are comparable in magnitude; otherwise prefer small multiples or ask whether the user wants absolute volume or trend-shape comparison
x:
event_datey:
eventscolor/group:
categorysource:
analytics.daily_eventscaveats: last 30 complete days; top 5 categories by total event count
Files
- ATTRIBUTION.mdAdded by AutoGineer842 B
- LICENSELicence file added by AutoGineer10.5 KiB
- SKILL.md19.1 KiB
- styles/cline-chart-tokens.css2.2 KiB
LICENSE
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to the Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by the Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding any notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
Copyright 2026 Cline Bot Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python, Needs Node.js
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Cline
- Publisher
- Cline (Official)
- Source
- cline/skills · skills/data-analyst/skills/plotting · commit 2637846
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Cline.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download plotting.zip