Agent skill

Programmer

by QinghongLin in QinghongLin/data2story-skill

Read editor.md, editor.json, analyst.json, and designer.json.

MITAuto-check: notesFrontend & Design

Install Programmer

skills CLI
$ npx skills add QinghongLin/data2story-skill --skill programmer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install QinghongLin/data2story-skill programmer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/QinghongLin/data2story-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/data2story/programmer .claude/skills/programmer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
programmer
GitHub stars
156
Token cost
~1.4k tokens
SKILL.md length
677 words
Files
5 (incl. references)
Skills in repo
31
Repo updated
First seen
Licence
MIT

At a glance

Read editor.md, editor.json, analyst.json, and designer.json.

  • Works in 4 steps: Learn from Past Mistakes → Resolve Chart Data from analyst.json → Build index.html → …
  • Frontend & Design work in your project
  • SKILL.md covers Setup, Step 0: Learn from Past Mistakes, Rules and Step 1: Resolve Chart Data…, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Programmer is an agent skill from QinghongLin/data2story-skill. Read editor.md, editor.json, analyst.json, and designer.json. Resolve chart data from analyst datatables. Build the final index.html with data- traceability attributes. Pure implementation — no editorial or visual decisions, no raw data access.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/component_implementations.json`, `references/data_resolution.json` and `references/layout_rules.json`).

It sits in Frontend & Design. The repository describes itself as: Data Journalist Agent: Transforming Data into Verifiable Multimodal Story. The licence is MIT.

When your agent uses it

  • Frontend & Design work in your project

Example prompts

  • “/programmer”

Requirements

  • Pre-approved tools (allowed-tools): Bash(*), Read, Write, Edit, Glob, Grep

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Learn from Past Mistakes
  2. Resolve Chart Data from analyst.json
  3. Build index.html
  4. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 63a55c1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(*)
    • Read
    • Write
    • Edit
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Programmer loads about 1.4k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 64 tokens; SKILL.md has 677 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash(*), Read, Write, Edit, Glob, Grep

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from QinghongLin/data2story-skill at commit 63a55c1, republished under its MIT licence (© QinghongLin). 677 words, ~1,424 tokens.

Download SKILL.mdSave it as .claude/skills/programmer/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
programmer
description
Read editor.md, editor.json, analyst.json, and designer.json. Resolve chart data from analyst data_tables. Build the final index.html with data-* traceability attributes. Pure implementation — no editorial or visual decisions, no raw data access.
allowed-tools
Bash(*), Read, Write, Edit, Glob, Grep
argument-hint
PROJECT_DIR

Programmer

Your job is faithful implementation. Build exactly what the Editor wrote and the Designer specified. You do not make editorial decisions. You do not make visual decisions. You make them real.

Setup

  • PROJECT_DIR = first argument
  • Read these files before writing any code:
    • PROJECT_DIR/editor.md — verbatim prose for the blog
    • PROJECT_DIR/editor.json — section structure with edt_xx IDs
    • PROJECT_DIR/analyst.json — data findings with ana_xx IDs and data_tables
    • PROJECT_DIR/designer.json — visual specs with des_xx IDs
  • Output: PROJECT_DIR/index.html

You do NOT have access to raw data files. All chart data comes from analyst.json data_tables.

Step 0: Learn from Past Mistakes

Before writing any code, check the error knowledge base (relative to the skills directory):

  1. If ../errors/digest.md exists, read it in full. It is a compact, ranked list of the most frequent errors — one line each. Treat every entry as a rule to follow.
  2. If ../errors/base_css.css exists, you will copy its contents verbatim in Step 2 (see below).
  3. If neither file exists, skip this step.

Rules

  • Copy prose from editor.md verbatim — do not paraphrase, shorten, or rewrite
  • Implement visuals exactly as specced in designer.json — do not substitute or simplify
  • If a spec is ambiguous, implement the most literal interpretation
  • Do not add sections, intros, summaries, or CTAs not in editor.md
  • All numbers in the HTML must come from analyst.json — never compute or approximate values yourself

Step 1: Resolve Chart Data from analyst.json

For every des_xx chart in designer.json, read content.data_source (an ana_xx ID or array), look up that item's data_table in analyst.json, and convert its columns + rows into Vega-Lite inline values. Stat callouts read content.value directly; interactives with a data_source resolve like charts. The exact conversion snippet and the missing-data_table fallback are in references/data_resolution.json.

Step 2: Build index.html

Single self-contained HTML file. No build step, no framework. Allowed CDNs: Vega-Embed, Leaflet.js (plus PDF.js / D3.js where a component needs them).

Base CSS injection — if ../errors/base_css.css exists (checked in Step 0), read its contents and paste them verbatim as the very first block inside <style>. Do not modify, reformat, or omit any rule. This is auto-generated defensive CSS from past error patterns.

Page structure:

  1. Teaser — full viewport, no prose. Implements the teaser spec from designer.json exactly.
  2. Headline + subheadline — appears after the teaser.
  3. Sections — in the exact order from editor.json (edt_01, edt_02, ...). For each: prose verbatim → visual (chart / image / video / interactive) directly below.

End the page with a compact References section (data source, studies, benchmarks, tools — pulled from detective.json). See references_section in references/component_implementations.json.

Show full SKILL.md (269 more words)Show less

Traceability — tag every element with its source IDs. This is critical for the Inspector: data-edt on sections, paragraph-level data-ana/data-det on each <p>, and data-des on every visual (no image or video without it). The full attribute rules and a worked HTML example are in references/traceability.json.

Layout. Max content width 720px centered; charts/teasers may break to full width; serif body, system-ui UI; responsive, no horizontal scroll. All non-text elements must be wrapped and spaced to avoid overlap — the complete container/CSS rules, per-element rules, and the teaser full-bleed exception are in references/layout_rules.json.

Components. Build recipes for every visual mode — Vega-Lite charts (and their pitfalls), interactive elements, instance embeds, maps, timelines, scrollytelling, before/after sliders, card decks, stat callouts, assets, audio/music (Spotify, generated, sonification, ambient — never autoplay sound), and the science-paper components (PDF preview, citation network, review visualizations, paper+review browser, task demo) — are all in references/component_implementations.json.

Step 3: Verify

Before finishing, walk through every section and confirm:

  • All chart divs render with correct data from analyst.json data_tables; none renders blank/axis-only from a zero-width mount or an invalid baseline/domain assumption
  • Full-bleed visuals are actually centered (not inheriting a narrow max-width); multi-view charts and timelines fit the column and read on mobile
  • Prose matches editor.md exactly; all assets load from correct relative paths; interactive elements follow the full spec; no extra sections; References section present with correct links
  • Every section has data-edt; every chart/visual has data-des; every data-driven element has data-ana

Output

PROJECT_DIR/index.html

Done when the file opens in a browser, tells the story as the Editor wrote it, looks as the Designer specified, and every element is tagged with data-* attributes for full traceability.

© QinghongLin, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in skills/data2story/programmer of QinghongLin/data2story-skill.

  • SKILL.md
  • references/component_implementations.json
  • references/data_resolution.json
  • references/layout_rules.json
  • references/traceability.json

Open the folder on GitHubat commit 63a55c1

Compare with similar skills

Programmer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Programmer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Programmer this skillQinghongLin/data2story-skill156—~1.4kAutomated safety check: NotesMIT
Impeccablebestofjs/bestofjs3.1k27 repos~2.6kAutomated safety check: PassMIT
Figma Design System Builderwarpdotdev/warp65k2 repos~4.4kAutomated safety check: PassAGPL-3.0
Tailwindcss Developmentanonaddy/anonaddy4.9k10 repos~865Automated safety check: PassMIT
GSAP ScrollTriggergreensock/gsap-skills16k5 repos~4.6kAutomated safety check: PassMIT
Web Interface Guidelines Reviewervercel-labs/openreview1.7k98 repos~308Automated safety check: PassNone

Similar skills

  • Impeccable

    bestofjs/bestofjs

    A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…

    3.1k GitHub starsUsed in 27 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Tailwindcss Development

    anonaddy/anonaddy

    Always invoke when the user's message includes 'tailwind' in any form.

    4.9k GitHub starsUsed in 10 repos~865 tokens
    Frontend & DesignAuto-check passed
  • GSAP ScrollTrigger

    greensock/gsap-skills

    Teaches an agent how to wire up GSAP's ScrollTrigger plugin for scroll-linked animation, pinned sections and scrub, including the start and end position syntax.

    16k GitHub starsUsed in 5 repos~4.6k tokens
    Frontend & DesignAuto-check passed
  • Web Interface Guidelines Reviewer

    vercel-labs/openreview

    Official

    Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my…

    1.7k GitHub starsUsed in 98 repos~308 tokens
    Frontend & DesignAuto-check passed
  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Frontend & DesignAuto-check passed

More from QinghongLin/data2story-skill

All 31 skills in this repo
  • Inspector

    QinghongLin/data2story-skill

    Run sentence-level traceability verification on a Data2Story blog (verify.py - verifier.json), then emit the in-page Inspector panel (the reader-facing runnable verifier) + the verify/ artifacts…

    156 GitHub stars~3.1k tokensUpdated 3 mo ago
    Auto-check: notes
  • Auditor

    QinghongLin/data2story-skill

    Audit a generated Data2Story blog for build correctness across ALL modalities by ACTUALLY RENDERING it in a real headless browser (when available) — catching blank/0-width charts, broken/oversized…

    156 GitHub stars~6.4k tokensUpdated 3 mo ago
    Auto-check: notes
  • Critic

    QinghongLin/data2story-skill

    Review a finished Data2Story blog against the 5 quality rubric dimensions (visualdesign, narrativepacing, datamethodtransparency, claimdataalignment, insightvalue), score each 1-7 with on-page…

    156 GitHub stars~4.7k tokensUpdated 3 mo ago
    Auto-check: notes
  • Detective

    QinghongLin/data2story-skill

    Research external context for a dataset — domain background, history, related studies, and why this data matters.

    156 GitHub stars~2.4k tokensUpdated 3 mo ago
    Auto-check: notes
  • Inspector

    QinghongLin/data2story-skill

    Run sentence-level traceability verification on a blog, then generate viewer.html with interactive evidence panel.

    156 GitHub stars~697 tokensUpdated 3 mo ago
    Auto-check: notes
  • Data2story Pro

    QinghongLin/data2story-skill

    A skill your agent uses to turn a dataset into a verifiable multimedia blog (a data story / data-driven article / interactive dashboard from a dataset).

    156 GitHub stars~14k tokensUpdated 3 mo ago
    Auto-check: notes

Questions about Programmer

What does Programmer do?

Read editor.md, editor.json, analyst.json, and designer.json. Programmer is an agent skill from QinghongLin/data2story-skill.json.

When should I use Programmer?

Programmer fits situations like: frontend & Design work in your project.

How do I install Programmer in Claude Code?

Run `npx skills add QinghongLin/data2story-skill --skill programmer -a claude-code`. Or copy the skill folder (skills/data2story/programmer in QinghongLin/data2story-skill) into .claude/skills/programmer in your project. Claude Code loads it when a task matches its description.

How do I install Programmer in Codex?

Run `npx skills add QinghongLin/data2story-skill --skill programmer -a codex`. Or copy the skill folder (skills/data2story/programmer in QinghongLin/data2story-skill) into .agents/skills/programmer in your project. Codex loads it when a task matches its description.

Can I use Programmer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add QinghongLin/data2story-skill --skill programmer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/programmer, .gemini/skills/programmer, .github/skills/programmer and .opencode/skills/programmer in your project.

What does Programmer need to run?

SKILL.md names no scripts, command-line tools or credentials: Programmer is instructions for the agent only. Its frontmatter pre-approves these tools: Bash(*), Read, Write, Edit, Glob, Grep.

Does Programmer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Programmer safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Programmer use?

Programmer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Programmer use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.6k tokens, read only when the agent opens those files.

What are the alternatives to Programmer?

Skills that share tags, products or a category with Programmer: Impeccable (bestofjs/bestofjs, 3.1k stars), Figma Design System Builder (warpdotdev/warp, 65k stars), Tailwindcss Development (anonaddy/anonaddy, 4.9k stars) and GSAP ScrollTrigger (greensock/gsap-skills, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Programmer?

QinghongLin (a GitHub user) maintains it in QinghongLin/data2story-skill, which has 156 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on July 5, 2026.

Source: QinghongLin/data2story-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.