seb1n/report-generation
Generate professional reports — sprint retrospectives, financial summaries, analytics dashboards, and incident postmortems — from structured data with templates, charts, and multi-format output.
npx skills add https://github.com/seb1n/awesome-ai-agent-skills --skill report-generation
This skill enables an AI agent to produce polished, data-driven reports from structured input. The agent accepts data in JSON, CSV, or API response format, applies a report template, generates narrative insights alongside tables and chart specifications, and outputs the final report in Markdown, HTML, or PDF. It supports common report types including sprint retrospectives, financial summaries, analytics dashboards, and incident postmortems.
sprint_retrospective, financial_summary, analytics_dashboard, incident_postmortem, and weekly_status. Each template defines the section order, required data mappings, chart types, and tone (analytical for financial reports, constructive for retros, urgent for postmortems). Users can customize templates by overriding sections, adding fields, or changing the visual theme..md file with tables and chart code blocks. For HTML, wrap the Markdown output in a styled template with CSS for print-friendly rendering. For PDF, convert the HTML version using a headless browser or a tool like Puppeteer or WeasyPrint. Ensure charts render correctly in all formats and that tables don't break across pages in PDF.{{quarter}}), confirm that insights are supported by the numbers, and check that the report length matches the expected range for its type. Deliver the report with a brief summary of what was generated.Provide the agent with the report type, source data, any customization preferences, and the desired output format. The agent returns a complete, formatted report.
Prompt format:
~~~
Generate a [report type] report.
Data source: [path to JSON/CSV file, or inline data]
Time period: [date range or sprint number]
Template: [built-in template name or "custom"]
Output format: [markdown / html / pdf]
~~~
Input data (JSON):
~~~json
{
"sprint": {
"number": 14,
"start_date": "2026-01-27",
"end_date": "2026-02-07",
"goal": "Ship checkout flow redesign and analytics instrumentation"
},
"velocity": {
"committed": 34,
"completed": 29,
"previous_sprints": [31, 28, 33, 30]
},
"stories": {
"total": 12,
"completed": 10,
"carried_over": 2,
"carried_over_items": [
"CHECKOUT-142: Edge case handling for international addresses",
"ANALYTICS-89: Cross-domain tracking for subdomain events"
]
},
"what_went_well": [
"Checkout redesign shipped 2 days early",
"Zero P1 bugs in production release",
"Effective pairing sessions between frontend and backend teams"
],
"what_could_improve": [
"Sprint scope increased mid-sprint with 3 unplanned tickets",
"QA bottleneck on Thursday caused idle time for 2 developers",
"Standup meetings ran over 15 minutes on 3 of 10 days"
],
"action_items": [
{ "owner": "Priya", "action": "Add a mid-sprint scope freeze policy" },
{ "owner": "James", "action": "Schedule a dedicated QA window on Wednesdays" },
{ "owner": "Dana", "action": "Timekeeper rotation for standups" }
]
}
~~~
Output (Markdown report):
~~~markdown
Sprint dates: January 27 – February 7, 2026
Sprint goal: Ship checkout flow redesign and analytics instrumentation
Sprint 14 delivered 85% of committed story points (29 of 34), slightly below
the team's rolling average velocity of 30.5. The primary sprint goal was
partially met: the checkout redesign shipped ahead of schedule, but two
analytics stories carried over due to mid-sprint scope changes and a QA
bottleneck. Zero P1 bugs were introduced, reflecting strong code quality.
| Metric | Sprint 14 | 4-Sprint Average |
|----------------------|-----------|------------------|
| Committed | 34 pts | 31.0 pts |
| Completed | 29 pts | 30.5 pts |
| Commitment accuracy | 85% | 98% |
The team over-committed by 3 points relative to the historical average.
The shortfall is attributable to 3 unplanned tickets added mid-sprint,
which consumed approximately 5 story points of capacity.
Both carried-over stories are estimated at 2-3 points each and will be
prioritized at the top of Sprint 15.
extra time for integration testing.
caught issues early in development.
highlight of the sprint.
planning, consuming capacity and contributing to the 2 carried-over stories.
a pileup that left 2 developers idle on Friday morning.
| Owner | Action | Target Date |
|-------|--------------------------------------------------|-------------|
| Priya | Add a mid-sprint scope freeze policy | Feb 10 |
| James | Schedule a dedicated QA window on Wednesdays | Feb 10 |
| Dana | Implement timekeeper rotation for standups | Feb 10 |
*Report generated from sprint data. Source: sprint-14-retro.json*
~~~
Input:
~~~
Generate an analytics report for the marketing website.
Data source: /data/website-analytics-jan-2026.json
Time period: January 2026
Output format: markdown
~~~
Output:
~~~markdown
Reporting period: January 1–31, 2026
Compared to: December 2025
Website traffic increased 12% month-over-month to 284,000 sessions, driven
primarily by organic search growth (+18%). However, overall conversion rate
declined from 4.0% to 3.2%, with the sharpest drop on mobile devices. The
pricing page continues to be the highest-converting entry point, while the
blog showed strong traffic growth but low conversion intent.
| Metric | January 2026 | December 2025 | Change |
|--------------------|-------------|---------------|---------|
| Total sessions | 284,000 | 253,500 | +12.0% |
| Unique visitors | 198,600 | 179,400 | +10.7% |
| Pages per session | 3.2 | 3.4 | -5.9% |
| Avg session dur. | 2m 48s | 3m 05s | -9.2% |
| Bounce rate | 42% | 38% | +4pp |
| Channel | Sessions | Share | MoM Change |
|----------------|----------|-------|------------|
| Organic Search | 142,000 | 50% | +18.3% |
| Direct | 62,500 | 22% | +5.1% |
| Paid Search | 39,800 | 14% | +8.7% |
| Social | 25,600 | 9% | +2.3% |
| Referral | 14,100 | 5% | -3.8% |
Insight: Organic search growth (+18.3%) was the primary traffic driver,
likely attributable to the 6 new blog posts published in January. However,
the drop in pages-per-session and increased bounce rate suggest this new
organic traffic has lower engagement intent than existing visitors.
| Stage | Visitors | Rate | MoM Change |
|------------------------|----------|--------|------------|
| Homepage to Pricing | 84,200 | 29.6% | -1.2pp |
| Pricing to Signup | 15,400 | 18.3% | -2.1pp |
| Signup to Activation | 9,100 | 59.1% | +0.8pp |
| Overall conversion | 9,100| 3.2% | -0.8pp |
Insight: The conversion drop is concentrated in the Pricing to Signup
step (-2.1pp). A/B test data shows the new pricing page variant (launched
Jan 15) underperforms the control by 1.8pp. Recommendation: revert to the
control pricing page and redesign the variant.
by 1.8pp on the key Pricing to Signup conversion step.
growth is not converting. Embed contextual product CTAs within blog
content to capture high-intent readers.
mobile conversion fell 1.2pp. Audit the mobile signup flow for UX
friction, particularly form field usability and page load speed.
in traffic. Publish 8 posts in February targeting mid-funnel keywords
with stronger commercial intent.
*Report generated from website-analytics-jan-2026.json. Data: Google Analytics.*
~~~
Take seb1n/report-generation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.