xiaohongshu
xiaohongshu
html-reporting-standards
HTML Reporting Standards Skill
Full skill instructions
Version: 1.0.0 Category: Standards Triggers: Creating reports, visualizations, interactive charts
✅ Allowed: Plotly, Bokeh, Altair, D3.js ❌ NOT Allowed: Static matplotlib PNG/SVG exports
| Use Case | Recommended | Why |
|---|---|---|
| General Analysis | Plotly | Easy, feature-rich, pandas integration |
| Statistical Viz | Altair | Grammar of graphics, declarative |
| Real-time Dashboards | Bokeh | Server capabilities, streaming |
| Custom Interactive | D3.js | Maximum flexibility |
| Time Series | Plotly | Excellent time series support |
| Large Datasets | Plotly (webGL) or Bokeh | Performance optimizations |
import plotly.express as px
import pandas as pd
# Load CSV with RELATIVE path
df = pd.read_csv('../data/processed/results.csv')
# Create interactive plot
fig = px.scatter(df, x='time', y='value',
color='category',
title='Interactive Results',
hover_data=['info'])
# Save as HTML
fig.write_html('../reports/analysis.html',
include_plotlyjs='cdn',
config={'responsive': True})
from bokeh.plotting import figure, output_file, save
import pandas as pd
df = pd.read_csv('../data/processed/results.csv')
p = figure(title='Interactive Dashboard')
p.circle(df['x'], df['y'], size=10, alpha=0.5)
p.sizing_mode = 'stretch_width' # Responsive
output_file('../reports/dashboard.html')
save(p)
import altair as alt
import pandas as pd
df = pd.read_csv('../data/processed/results.csv')
chart = alt.Chart(df).mark_point().encode(
x='time:T',
y='value:Q',
color='category:N',
tooltip=['time', 'value', 'category']
).interactive()
chart.save('../reports/analysis.html')
Header
Summary Statistics
Interactive Visualizations
Data Table (optional)
Footer
Reports must work on:
Plotly responsive:
fig.update_layout(
autosize=True,
margin=dict(l=20, r=20, t=40, b=20),
)
# ✅ CORRECT: Relative from report location
df = pd.read_csv('../data/processed/results.csv')
# ❌ WRONG: Absolute path
df = pd.read_csv('/mnt/github/workspace/data/results.csv')
# ❌ WRONG: Hardcoded path
df = pd.read_csv('C:/Users/user/data/results.csv')
from pathlib import Path
def get_data_path(filename, data_type='processed'):
project_root = Path(__file__).parent.parent.parent
return project_root / 'data' / data_type / filename
# Usage
df = pd.read_csv(get_data_path('analysis.csv'))
from plotly.subplots import make_subplots
import plotly.graph_objects as go
fig = make_subplots(
rows=2, cols=2,
subplot_titles=('Time Series', 'Distribution',
'Correlation', 'Summary')
)
# Add plots
fig.add_trace(go.Scatter(...), row=1, col=1)
fig.add_trace(go.Histogram(...), row=1, col=2)
fig.add_trace(go.Scatter(...), row=2, col=1)
fig.update_layout(height=800, showlegend=True)
fig.write_html('../reports/dashboard.html', include_plotlyjs='cdn')
For large datasets (>10,000 points):
# Use WebGL rendering
fig = px.scatter(df, x='x', y='y', render_mode='webgl')
# Or sample for visualization
df_sample = df.sample(n=5000)
fig = px.scatter(df_sample, ...)
Don't commit: Generated HTML reports Do commit: Report generation scripts, templates, CSV data
# .gitignore
reports/*.html
!reports/index.html
See: @docs/modules/standards/HTML_REPORTING_STANDARDS.md
Use this when creating reports, dashboards, or data visualizations.
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience