narrative-text-visualization

antvis/chart-visualization-skills · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/antvis/chart-visualization-skills --skill narrative-text-visualization
0 commentsdiscussion
summary

This skill provides a workflow for transforming data into structured narrative text visualizations using T8 Syntax - a declarative Markdown-like language for creating data narratives with semantic entity annotations.

skill.md

Narrative Text Visualization Skill

This skill provides a workflow for transforming data into structured narrative text visualizations using T8 Syntax - a declarative Markdown-like language for creating data narratives with semantic entity annotations.

What is T8

T8 is a text visualization solution under the AntV technology stack designed specifically for insight-based narrative text display. Instead of manually constructing DOM elements, you write simple, human-readable syntax that describes your data narrative.

Key Features:

  • LLM-Friendly: The syntax is intuitive and can be easily generated by AI models
  • Declarative & Readable: Write what you want, not how to build it
  • Framework Agnostic: Works with React, Vue, or vanilla JavaScript
  • Standardized Styling: Professional appearance by default
  • Built-in Data Visualizations: Mini charts (pie, line) are native to the syntax
  • Lightweight: Less than 20KB before gzip

Workflow

To generate narrative text visualizations, follow these steps:

1. Understand the Requirements

Analyze the user's request to determine:

  • The topic or data to be analyzed
  • The type of narrative needed (report, summary, article)
  • The key insights to highlight
  • Any specific data sources or metrics

2. Generate T8 Syntax Content

Create narrative text using T8 Syntax following the specification below. The content must include:

  • Proper document structure (headings, paragraphs, lists)
  • Entity annotations for all meaningful data points
  • Appropriate metadata for entities (origin, assessment, etc.)

3. Generate Frontend Code

Create HTML, React, or Vue code to render the T8 content based on user's preferred framework.

4. Validate Output

Ensure:

  • All data is from authentic sources
  • Minimum content length (800 words or equivalent)
  • Proper entity annotations throughout
  • Clear structure and logical flow

T8 Syntax Specification

T8 Syntax is a Markdown-like language for creating narrative text with semantic entity annotations. It makes data analysis reports more expressive and visually appealing.

Document Structure

Headings (6 levels)

Use standard Markdown heading syntax:

# Level 1 Heading (Main Title)
## Level 2 Heading (Section)
### Level 3 Heading (Subsection)
#### Level 4 Heading
##### Level 5 Heading
###### Level 6 Heading

Rules:

  • Each heading must be on its own line
  • Add one space after the # symbols
  • Headings create visual hierarchy in the rendered output

Paragraphs

Regular text paragraphs are separated by blank lines:

This is the first paragraph with some content.

This is the second paragraph, separated by a blank line.

Rules:

  • Paragraphs can span multiple lines
  • Use blank lines to separate distinct paragraphs
  • Text within a paragraph flows naturally

Lists

T8 Syntax supports both unordered and ordered lists.

Unordered Lists:

- First item
- Second item
- Third item

Ordered Lists:

1. First step
2. Second step
3. Third step

Rules:

  • Each list item must be on its own line
  • Add one space after the bullet marker (-, *) or number
  • Lists can contain entities and text formatting

Text Formatting

T8 Syntax supports inline text formatting using Markdown syntax:

Bold Text: This is **bold text** that stands out.

Italic Text: This is *italic text* for emphasis.

Underline Text: This is __underlined text__ for importance.

Links: Visit [our website](https://example.com) for more information.

Rules:

  • Formatting markers must be balanced (opening and closing)
  • Formatting can be combined with entities
  • Links use [text](URL) syntax where URL starts with http://, https://, or /

Entity Annotation Syntax

The core feature of T8 Syntax is entity annotation - marking specific data points with semantic meaning and metadata.

Basic Entity Syntax

[displayText](entityType)
  • displayText: The text shown to readers
  • entityType: The semantic type of this entity

Example:

The [sales revenue](metric_name) reached [¥1.5 million](metric_value) this quarter.

Entity with Metadata

[displayText](entityType, key1=value1, key2=value2, key3="string value")

Metadata Rules:

  • Separate multiple metadata fields with commas
  • Numbers and booleans: write directly (e.g., origin=1500000, active=true)
  • Strings: wrap in double quotes (e.g., unit="元", region="Asia")

Example:

Revenue grew by [15.3%](ratio_value, origin=0.153, assessment="positive") compared to last year.

Entity Types Reference

Use these entity types to annotate different kinds of data:

Entity Type Description When to Use Examples
metric_name Name of a metric or KPI When mentioning what you're measuring "revenue", "user count", "market share"
metric_value Primary metric value The main number/value being reported "¥1.5 million", "50,000 users", "250 units"
other_metric_value Secondary or supporting metric value Additional metrics that provide context "average order value: $120"
delta_value Absolute change/difference When showing numeric change between periods "+1,200 units", "-$50K", "increased by 500"
ratio_value Percentage change/rate When showing percentage change "+15.3%", "-5.2%", "grew 23%"
contribute_ratio Contribution percentage When showing what % something contributes "accounts for 45%", "represents 30% of total"
trend_desc Trend description Describing direction/pattern of change "steadily rising", "declining trend", "stable"
dim_value Dimensional value/category Geographic, categorical, or segmentation data "North America", "Enterprise segment", "Q3"
time_desc Time period or timestamp When specifying when something occurred "Q3 2024", "January-March", "fiscal year 2023"
proportion Proportion or ratio When expressing parts of a whole "3 out of 5", "60% of customers"
rank Ranking or position When indicating order or position in a list "ranked 1st", "top 3", "5th place"
difference Comparative difference When highlighting difference between two items "difference of $50K", "gap of 200 units"
anomaly Unusual or unexpected value When pointing out outliers or anomalies "unusual spike", "unexpected drop"
association Relationship or correlation When describing connections between metrics "strongly correlated", "linked to", "related"
distribution Data distribution pattern When describing how data is spread "evenly distributed", "concentrated in", "spread across"
seasonality Seasonal pattern or trend When describing recurring seasonal patterns "seasonal peak", "holiday period", "Q4 surge"

Common Metadata Fields

Add these optional fields to provide richer data context:

origin (number)

The raw numerical value behind the displayed text.

Examples:

  • [¥1.5M](metric_value, origin=1500000)
  • [23.7%](ratio_value, origin=0.237)
  • [5.2K users](metric_value, origin=5200)
  • [3 out of 4](proportion, origin=0.75)

Why use it: Enables data visualization, sorting, and calculations

assessment (string)

Evaluates whether a change is positive, negative, or neutral.

Valid values: "positive", "negative", "equal", "neutral"

Examples:

  • [increased 15%](ratio_value, assessment="positive")
  • [dropped 8%](ratio_value, assessment="negative")
  • [remained flat](trend_desc, assessment="equal")

Why use it: Enables visual indicators (colors, icons) for good/bad trends

unit (string)

The unit of measurement for the value.

Examples:

  • [¥1,500,000](metric_value, unit="元", origin=1500000)
  • [150](metric_value, unit="units")

detail (any)

Additional context or breakdown data for chart rendering. Required for certain entity types.

Required for these entity types:

  • rank: Array of numbers representing ranking data
    • Example: [top performer](rank, detail=[5, 8, 12, 15, 20])
  • difference: Array of numbers showing comparative values
    • Example: [gap narrowing](difference, detail=[100, 80, 60, 40])
  • anomaly: Array of numbers highlighting outliers
    • Example: [unusual spike](anomaly, detail=[10, 12, 11, 45, 13])
  • association: Array of {x, y} objects for correlation data
    • Example: [strong correlation](association, detail=[{"x":1,"y":2},{"x":2,"y":4},{"x":3,"y":6}])
  • distribution: Array of numbers showing data spread
    • Example: [uneven distribution](distribution, detail=[5, 15, 45, 25, 10])
  • seasonality: Object with data array and optional range
    • Example: [Q4 peak](seasonality, detail={"data":[10,12,15,30],"range":[0,40]})

Optional for other types:

  • [steady growth](trend_desc, detail=[100, 120, 145, 180, 210])

Data Requirements

Critical: All data must be from publicly authentic sources:

  • Official announcements/financial reports
  • Authoritative media (Reuters, Bloomberg, TechCrunch, etc.)
  • Industry research institutions (IDC, Canalys, Counterpoint Research, etc.)
  • Never use fictional, AI-guessed, or simulated data
  • Use specific numbers (e.g., "146 million units", "7058 units"), not vague approximations

Complete T8 Syntax Example

# 2024 Smartphone Market Analysis

## Market Overview

Global [smartphone shipments](metric_name) reached [1.2 billion units](metric_value, origin=1200000000) in [2024](time_desc), showing a [modest decline of 2.1%](ratio_value, origin=-0.021, assessment="negative") year-over-year.

The **premium segment** (devices over $800) showed *remarkable* [resilience](trend_desc, assessment="positive"), growing by [5.8%](ratio_value, origin=0.058, assessment="positive"). [Average selling price](other_metric_value) was [$420](metric_value, origin=420, unit="USD").

## Key Findings

1. [Asia-Pacific](dim_value) remains the __largest market__
2. [Premium devices](dim_value) showed **strong growth**
3. Budget segment faced *headwinds*

## Regional Breakdown

### Asia-Pacific

[Asia-Pacific](dim_value) remains the largest market with [680 million units](metric_value, origin=680000000) shipped, though this represents a [decline of 180 million units](delta_value, origin=-180000000, assessment="negative") from the previous year.

Key markets:
- [China](dim_value): [320M units](metric_value, origin=320000000) - down [8.5%](ratio_value, origin=-0.085, assessment="negative"), [ranked 1st](rank, detail=[320, 180, 90, 65, 45]) globally, accounting for [47%](contribute_ratio, origin=0.47, assessment="positive") of regional sales
- [India](dim_value): [180M units](metric_value, origin=180000000) - up [12.3%](ratio_value, origin=0.123, assessment="positive"), [ranked 2nd](rank, detail=[320, 180, 90, 65, 45])
- [Southeast Asia](dim_value): [180M units](metric_value, origin=180000000) - [stable](trend_desc, assessment="equal")

For detailed methodology, visit [our research page](https://example.com/methodology).

Using T8 in HTML, React, and Vue

Using in HTML (via CDN)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>T8 Narrative Text</title>
</head>
<body>
  <div id="container"></div>

  <!-- Import T8 from unpkg CDN -->
  <script src="https://unpkg.com/@antv/t8/dist/t8.min.js"></script>
  
  <script>
    // T8 is available as a global variable
    const { Text } = window.T8;

    // Initialize T8 instance
    const text = new Text(document.getElementById('container'));

    // Render narrative text using T8 Syntax
    const narrativeText = `
# Sales Report

This quarter, [bookings](metric_name) are higher than usual. They are [¥348k](metric_value, origin=348.12).

[Bookings](metric_name) are up [¥180.3k](delta_value, assessment="positive") relative to the same time last quarter.
    
how to use narrative-text-visualization

How to use narrative-text-visualization on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add narrative-text-visualization
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/antvis/chart-visualization-skills --skill narrative-text-visualization

The skills CLI fetches narrative-text-visualization from GitHub repository antvis/chart-visualization-skills and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/narrative-text-visualization

Reload or restart Cursor to activate narrative-text-visualization. Access the skill through slash commands (e.g., /narrative-text-visualization) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

User Story & Requirements Generation

Create detailed user stories, acceptance criteria, and feature specs

Example

Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios

Reduce spec writing time by 50%, ensure comprehensive coverage

Competitive Analysis

Research competitors, compare features, identify gaps

Example

Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities

Complete competitive research in 2 hours instead of 2 days

Roadmap Prioritization

Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs

Example

Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale

Make data-driven prioritization decisions faster

Stakeholder Communication

Draft PRDs, status updates, and stakeholder presentations

Example

Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement

Save 3-5 hours/week on communication overhead

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client
  • Access to product documentation and roadmap tools (Jira, Notion, etc.)
  • Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
  • Stakeholder contact information and communication channels

Time Estimate

30-60 minutes to see productivity improvements

Installation Steps

  1. 1.Install product management skill
  2. 2.Start with user story generation for known feature
  3. 3.Progress to competitive analysis: research 2-3 competitors
  4. 4.Use for roadmap prioritization: apply RICE/ICE scoring
  5. 5.Draft stakeholder communications and refine based on feedback
  6. 6.Build template library for recurring PM tasks
  7. 7.Share effective prompts with product team

Common Pitfalls

  • Not validating competitive research—verify facts before sharing
  • Accepting user stories without involving engineering team
  • Over-relying on frameworks without qualitative judgment
  • Not customizing outputs to company culture and communication style
  • Skipping stakeholder validation of generated requirements

Best Practices

✓ Do

  • +Validate research and competitive analysis with real data
  • +Collaborate with engineering when generating technical requirements
  • +Customize frameworks and templates to your company context
  • +Use skill for first drafts, refine with stakeholder input
  • +Document successful prompt patterns for PM tasks
  • +Combine AI efficiency with human judgment and intuition

✗ Don't

  • Don't publish competitive analysis without fact-checking
  • Don't finalize user stories without engineering review
  • Don't make prioritization decisions solely on AI scoring
  • Don't skip customer validation of generated requirements
  • Don't ignore company-specific context and culture

💡 Pro Tips

  • Provide context: company goals, constraints, customer feedback
  • Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
  • Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
  • Use skill for 70% generation + 30% customization to company needs

When to Use This

✓ Use When

Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.

✗ Avoid When

Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.

Learning Path

  1. 1Basic: user stories, feature specs, status updates
  2. 2Intermediate: competitive analysis, prioritization frameworks, PRDs
  3. 3Advanced: product strategy, go-to-market planning, OKR setting
  4. 4Expert: product vision, market positioning, business model innovation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.854 reviews
  • Chen Okafor· Dec 24, 2024

    Useful defaults in narrative-text-visualization — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Alexander Rao· Dec 24, 2024

    We added narrative-text-visualization from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Ira Nasser· Dec 20, 2024

    I recommend narrative-text-visualization for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Alexander Patel· Dec 12, 2024

    narrative-text-visualization is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Sakshi Patil· Nov 19, 2024

    Solid pick for teams standardizing on skills: narrative-text-visualization is focused, and the summary matches what you get after install.

  • Chen Patel· Nov 15, 2024

    narrative-text-visualization is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Charlotte Flores· Nov 15, 2024

    narrative-text-visualization fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Kabir Khan· Nov 3, 2024

    Useful defaults in narrative-text-visualization — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Ama Shah· Oct 22, 2024

    Registry listing for narrative-text-visualization matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Chaitanya Patil· Oct 10, 2024

    I recommend narrative-text-visualization for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

showing 1-10 of 54

1 / 6