Skill detail

report-generator

Produces audience-tailored campaign reports (executive, client, internal) with data tables, narrative, key learnings, and recommendations. Directly supports agency client reporting.

Why we recommend it: Client-facing campaign reporting is core agency reporting work.

MatchDirectRecommended for Marketing Agency
Sourceaaron-he-zhu/​aaron-marketing-skillsExternal source
Reported installs900Popularity signal only

Inspect before use

Read the source instructions and check the requirements before you install this skill.

Saved source preview

SKILL.md

The saved excerpt is a snapshot from when this skill was listed. The external source remains the complete and most current version.

---
name: report-generator
slug: aaron-report-generator
displayName: "Report Generator · 报告生成"
summary: "面向干系人的营销活动报告:叙事结构、图表建议与洞察提炼"
description: 'Use when the user asks to "create a campaign report", "build an executive summary", or "deliver client results"; produces audience-tailored influencer marketing reports (executive, client, internal team) with data tables, narrative, key learnings, and recommendations. Not for raw metric computation — use performance-analyzer. 达人营销报告/结案汇报'
version: "20.1.0"
license: Apache-2.0
compatibility: "Claude Code and compatible agent-skill hosts"
homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
when_to_use: "Activate after a campaign or reporting period ends and the user needs a written report for a specific stakeholder. Triggers include post-campaign wrap-ups, executive or board summaries, client-facing results decks, internal team retrospectives, and monthly or quarterly performance reports. Pick this when the inputs are already-computed metrics that need structure, narrative, and recommendations for a named audience."
argument-hint: "<campaign name> [audience: executive|client|team|board]"
metadata: {"author": "aaron-he-zhu", "version": "20.1.0", "discipline": "influencer", "phase": "report", "geo-relevance": "low", "hermes": {"tags": ["marketing", "influencer", "report"], "category": "influencer"}, "openclaw": {"emoji": "📣", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
---

# Report Generator

This skill helps you create professional influencer marketing reports that tell the story of your campaign performance. It adapts content and depth based on the audience.

> **Cross-discipline (paid ads):** this is also the **paid-ads** reporting surface — build exec/client/channel reports from RQS history (`memory/audits/ad/`) and measurement-loop readback verdicts. It presents metrics; it does not compute them (return math stays in [roi-calculator](../roi-calculator/SKILL.md)). Save paid runs under `memory/ad/report-generator/`.

## Quick Start

Shortest invocation:

```
Create a campaign report for [campaign name] for [audience: executive/client/team]
```

Common scenario:

```
Generate an executive summary for our Q3 influencer campaigns
```

## Skill Contract

- **Reads**: campaign name, reporting period, target audience, opaque `client_ref`, `preparer_ref`, `contact_ref`, and `owner_ref` values when those roles appear, plus already-computed metrics with their provenance, window, target/comparator, and source artifact refs. ROI/ROAS/net-return values must come from [roi-calculator](../roi-calculator/SKILL.md), and performance deltas/rankings from [performance-analyzer](../performance-analyzer/SKILL.md); raw spend plus revenue is not a computed ROI handoff. Reuse opaque `creator_ref` values from those artifacts, the optional tracker/stage, and an existing Campaign Retro Card. Raw client/staff/owner names, email addresses, and organization labels are transient resolver inputs only.
- **Writes**: return the finished audience-appropriate report inline by default. Preserve only a current scope-bound Campaign Retro Card from `performance-analyzer`; if it is absent or invalid, include an `unknown` placeholder rather than deriving a decision. Save the report/card together to `memory/influencer/report-generator/YYYY-MM-DD-<topic>.md` only with exact WARM-save authorization. Every saved report, template field, appendix, and handoff uses opaque `client_ref`, `preparer_ref`, `contact_ref`, `owner_ref`, `creator_ref`, and artifact/source refs—never resolved client/staff/owner/creator names, organization labels, contact emails, profile URLs, or provider IDs. Resolve those refs only in-memory for one explicitly named audience's transient render, discard the resolution afterward, and never save the mapping. Any external send/share/export requires a new exact authorization naming the report artifact/version, recipient audience, delivery channel, and identity/asset r
Read the full source on GitHub (opens external page)
Context

Related work