ts-paper-data

Writes data-aware paper sections from real experimental results with audited numbers and matplotlib figures.

1.1k|19|Updated Jun 18, 2026
One-click install
npx skills add https://github.com/Spark-To-Paper-Skills/spark-to-paper-skills --skill ts-paper-data-spark-to-paper-skills
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ts-paper-data
Source: https://github.com/Spark-To-Paper-Skills/spark-to-paper-skills/tree/main/skills/ts-paper-data
Command: npx skills add https://github.com/Spark-To-Paper-Skills/spark-to-paper-skills --skill ts-paper-data-spark-to-paper-skills

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, matplotlib, and includes scripts (resource) and references (resource) components.

What problem does it solve? When a research proposal arrives with real measured results (CSVs, JSON, pasted tables, or numbers in prose), proposal-mode writing forbids numbers and cannot report them. This Skill inverts that mode: it reads the user's actual data, fills result tables with real measured values in past tense, and machine-checks that no number in the paper is fabricated. ## Core Features & Use Cases - Schema-agnostic data reading: Accepts results in any form (CSV, JSON, Markdown/LaTeX tables, prose numbers) and consolidates them into a results.facts.json ground-truth file with no fixed schema. - Evidence-grounded section writing: Fills LaTeX result tables and writes abstract, experiments, analysis, conclusion, and limitations sections in past tense using only real measured numbers, with TBD/null handling for missing metrics. - Number-audit gate: Runs draft_lint.py to flag any decimal or percent in prose not traceable to results.facts.json, enforcing machine-checked honesty before proceeding. - Publication-style results figures: Provides a matplotlib toolkit (plot_results.py, plot_style.py) that renders numerically exact results plots as PNG plus born-vector PDF using a semantic color house style. - Use Case: A user submits a paper draft with a CSV of benchmark scores; the Skill extracts the real HOTA/IDF1 values, fills the main results and ablation tables, writes the experiments section in past tense, and generates vector results figures. ## Quick Start Activate data-aware mode by providing your proposal together with your real experimental results file so the paper sections and result tables are written from the actual measured numbers.

Frequently Asked Questions about ts-paper-data

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a paper from real experimental results instead of a proposal?

Provide your measured results alongside the proposal so the router sets results_mode to data_aware. The Skill reads the data in any form, writes results.facts.json as ground truth, fills the LaTeX result tables, and writes all result-bearing sections in past tense with the real numbers.

What data formats can I provide for experimental results?

You can provide results as a CSV file, JSON, a Markdown or LaTeX table, or numbers written directly in the proposal prose. There is no fixed results schema; the data is read and judged directly, then consolidated into results.facts.json.

How does the number audit prevent fabricated results in the paper?

The draft_lint.py script flags any decimal or percent in the prose that does not appear in results.facts.json as a suspicious_number, and reports missing_results_facts if the facts file is absent. The audit must return ok:true before writing proceeds, and fixes must correct the prose rather than invent data.

Can matplotlib results figures be exported as editable vector files?

Yes, plot_results.py saves both a PNG and a vector PDF for every results figure, with pdf.fonttype 42 so text stays selectable and editable. The figure stage embeds the PDF via an extension-less includegraphics, skipping raster vectorization entirely.

What happens when a metric was never measured or is unavailable?

A metric measured but unavailable is recorded as the sentinel TBD, and a cell never run is null, rendered as a dash in tables. The writing rules require staying silent about unavailable evidence, and plots show a gap rather than a fabricated point.