Report Generation
by dglowacki
Generate HTML reports, charts, and dashboards with neo-brutal design. Use for creating GitHub activity reports, Fieldy summaries, Skillz analytics, and other data visualizations.
Skill Details
Repository Files
3 files in this skill directory
name: report-generation description: Generate HTML reports, charts, and dashboards with neo-brutal design. Use for creating GitHub activity reports, Fieldy summaries, Skillz analytics, and other data visualizations.
Report Generation
Generate professional HTML reports with charts, tables, and dashboards using neo-brutal design aesthetic.
Quick Start
Generate a report:
python scripts/generate_html_report.py data.json --template daily-summary --output report.html
Create charts:
python scripts/create_charts.py metrics.json --type bar --output chart.png
Design Principles
Neo-Brutal Aesthetic
All reports follow these design rules:
-
Bold Typography
- Strong, thick fonts (Arial Black, system sans-serif)
- Clear hierarchy with size contrast
-
High Contrast
- Black text on white backgrounds
- Bold borders (3-4px solid black)
- No gradients or shadows (except hard box-shadow)
-
Geometric Layouts
- Grid-based layouts
- Sharp corners, no border-radius
- Consistent spacing
-
Flat Colors
- Solid colors only
- Color palette:
- Primary: #000 (black)
- Background: #fff (white)
- Accent: #f5f5f5 (light gray)
- Success: #4ade80 (green)
- Warning: #fbbf24 (yellow)
- Error: #f87171 (red)
- Info: #60a5fa (blue)
Report Templates
1. Daily Summary
Use for: GitHub activity, Fieldy coaching, general daily reports
Sections:
- Header with title and date
- Summary statistics (grid of metric cards)
- Timeline of events
- Top items (tables)
- Footer with timestamp
Example:
python scripts/generate_html_report.py daily_data.json \
--template daily-summary \
--title "GitHub Daily Activity" \
--output report.html
2. Analytics Dashboard
Use for: Multi-metric dashboards, KPI tracking
Sections:
- KPI cards grid
- Charts (bar, line, pie)
- Comparison tables
- Trends over time
Example:
python scripts/generate_html_report.py analytics.json \
--template dashboard \
--period week \
--output dashboard.html
3. Comparison Report
Use for: Before/after, A/B testing, performance comparisons
Sections:
- Side-by-side comparison tables
- Delta calculations
- Visual indicators (↑↓)
- Summary of changes
Example:
python scripts/generate_html_report.py comparison.json \
--template comparison \
--output comparison.html
4. Leaderboard
Use for: Contributor rankings, performance rankings
Sections:
- Ranked table with badges
- Top 3 highlight
- Detailed metrics per entry
- Trends
Example:
python scripts/generate_html_report.py leaderboard.json \
--template leaderboard \
--output leaderboard.html
5. Timeline Report
Use for: Event sequences, activity logs, chronological data
Sections:
- Chronological event list
- Time markers
- Event categories
- Activity heatmap
Example:
python scripts/generate_html_report.py events.json \
--template timeline \
--output timeline.html
Data Input Format
Generic Report Data
{
"title": "Report Title",
"subtitle": "Report subtitle or date",
"summary": {
"metrics": [
{
"label": "Total Items",
"value": "42",
"change": "+5",
"trend": "up"
}
]
},
"sections": [
{
"title": "Section Title",
"type": "table|list|chart|text",
"data": {}
}
],
"footer": "Custom footer text"
}
Chart Data
{
"title": "Chart Title",
"type": "bar|line|pie|area",
"data": {
"labels": ["Jan", "Feb", "Mar"],
"datasets": [
{
"label": "Series 1",
"values": [10, 20, 15],
"color": "#4ade80"
}
]
}
}
HTML Components
Metric Card
<div class="metric-card">
<div class="metric-value">42</div>
<div class="metric-label">Total Commits</div>
<div class="metric-change positive">+5 ↑</div>
</div>
Table with Styling
<table class="data-table">
<thead>
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Data 1</td>
<td>Data 2</td>
</tr>
</tbody>
</table>
Status Badge
<span class="badge badge-success">Active</span>
<span class="badge badge-warning">Pending</span>
<span class="badge badge-error">Failed</span>
Section with Border
<div class="section">
<div class="section-title">Section Title</div>
<div class="section-content">
<!-- Content here -->
</div>
</div>
Charting
Chart Types
-
Bar Chart
- Compare discrete values
- Horizontal or vertical bars
- Good for rankings, comparisons
-
Line Chart
- Show trends over time
- Multiple series support
- Good for time series data
-
Pie Chart
- Show proportions
- Good for composition breakdown
- Limited to 8 segments max
-
Area Chart
- Stacked values over time
- Good for cumulative metrics
- Shows magnitude and trend
Chart Generation
Uses matplotlib with neo-brutal styling:
import matplotlib.pyplot as plt
# Neo-brutal chart styling
plt.style.use('seaborn-v0_8-darkgrid')
plt.rcParams['axes.edgecolor'] = '#000'
plt.rcParams['axes.linewidth'] = 3
plt.rcParams['font.weight'] = 'bold'
plt.rcParams['font.size'] = 12
plt.rcParams['axes.grid'] = False
Example:
python scripts/create_charts.py data.json \
--type bar \
--title "Commits per Day" \
--output chart.png \
--width 800 \
--height 400
Email Integration
Reports can be embedded in emails using the email-formatting skill:
# Generate report HTML
python scripts/generate_html_report.py data.json --template daily-summary --output report.html
# Embed in email (via email-formatting skill)
python ../email-formatting/scripts/format_email.py \
--template email-report \
--content report.html \
--output email.html
Scripts
generate_html_report.py
Generate complete HTML reports from JSON data.
Usage:
python scripts/generate_html_report.py input.json \
--template [daily-summary|dashboard|comparison|leaderboard|timeline] \
--title "Report Title" \
--subtitle "Optional subtitle" \
--output report.html
Options:
--template: Report template to use--title: Report title--subtitle: Optional subtitle--period: Time period (day/week/month)--output: Output HTML file
create_charts.py
Generate chart images from data.
Usage:
python scripts/create_charts.py data.json \
--type [bar|line|pie|area] \
--title "Chart Title" \
--output chart.png \
--width 800 \
--height 400
Options:
--type: Chart type--title: Chart title--width: Image width (px)--height: Image height (px)--style: Color scheme (default/success/warning/error)
aggregate_data.py
Aggregate and transform data for reporting.
Usage:
python scripts/aggregate_data.py input.json \
--group-by date \
--metrics count,sum,avg \
--output aggregated.json
Options:
--group-by: Field to group by--metrics: Metrics to calculate--filter: Filter expression--sort: Sort field
Integration with Agents
Reporting Agent Workflow
# 1. Gather data from domain agents
github_data = task(agent="code-agent", prompt="Get yesterday's commits")
fieldy_data = task(agent="fieldy-agent", prompt="Get today's coaching data")
# 2. Aggregate data
python scripts/aggregate_data.py combined_data.json --group-by date
# 3. Generate report
python scripts/generate_html_report.py aggregated.json \
--template daily-summary \
--output report.html
# 4. Send via communication-agent
task(agent="communication-agent",
prompt=f"Send report.html to dave@flycowgames.com")
Code Agent (GitHub Reports)
# Generate GitHub activity report
commits = github.get_commits(days=1)
python scripts/generate_html_report.py commits.json \
--template daily-summary \
--title "GitHub Daily Activity"
Fieldy Agent (Coaching Reports)
# Generate Fieldy coaching report
coaching_data = fieldy.get_today_data()
python scripts/generate_html_report.py coaching_data.json \
--template daily-summary \
--title "Fieldy Daily Summary"
Common Report Patterns
Daily Activity Report
- Load yesterday's data
- Aggregate by repository/project
- Calculate key metrics
- Generate timeline
- Create HTML report
- Email to recipients
Weekly Summary
- Load week's data
- Calculate trends (compare to previous week)
- Identify top performers
- Generate charts
- Create dashboard HTML
- Email with executive summary
Performance Comparison
- Load two datasets (before/after)
- Calculate deltas
- Generate comparison tables
- Add visual indicators
- Create comparison report
- Highlight key changes
Styling Reference
See templates/base.css for complete CSS stylesheet.
Key classes:
.container- Main container (max-width, border, shadow).header- Report header (black background).section- Content section.metric-card- KPI card.data-table- Styled table.badge- Status badge.timeline- Event timeline.chart-container- Chart wrapper
Tips
-
Keep it Simple
- Don't overcomplicate layouts
- Stick to neo-brutal aesthetic
- Focus on data clarity
-
Consistent Spacing
- Use 20px/30px/40px spacing units
- Maintain visual rhythm
- Align elements to grid
-
Readable Typography
- Minimum 14px for body text
- Bold for emphasis
- High contrast always
-
Data Density
- Show top 10-20 items max
- Summarize the rest
- Use pagination for long lists
-
Performance
- Inline critical CSS
- Optimize images
- Keep HTML size under 500KB
Related Skills
Xlsx
Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas
Clickhouse Io
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
Clickhouse Io
ClickHouse database patterns, query optimization, analytics, and data engineering best practices for high-performance analytical workloads.
Analyzing Financial Statements
This skill calculates key financial ratios and metrics from financial statement data for investment analysis
Data Storytelling
Transform data into compelling narratives using visualization, context, and persuasive structure. Use when presenting analytics to stakeholders, creating data reports, or building executive presentations.
Team Composition Analysis
This skill should be used when the user asks to "plan team structure", "determine hiring needs", "design org chart", "calculate compensation", "plan equity allocation", or requests organizational design and headcount planning for a startup.
Startup Financial Modeling
This skill should be used when the user asks to "create financial projections", "build a financial model", "forecast revenue", "calculate burn rate", "estimate runway", "model cash flow", or requests 3-5 year financial planning for a startup.
Kpi Dashboard Design
Design effective KPI dashboards with metrics selection, visualization best practices, and real-time monitoring patterns. Use when building business dashboards, selecting metrics, or designing data visualization layouts.
Dbt Transformation Patterns
Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies. Use when building data transformations, creating data models, or implementing analytics engineering best practices.
Startup Metrics Framework
This skill should be used when the user asks about "key startup metrics", "SaaS metrics", "CAC and LTV", "unit economics", "burn multiple", "rule of 40", "marketplace metrics", or requests guidance on tracking and optimizing business performance metrics.
