Client Report logo

Client Report

Community
indranilbanerjee
client-report

Write a white-labeled report for one client from tracked data. All clients → agency-dashboard. "prepare the monthly client report"

Overview

Publisherindranilbanerjee
Repositorydigital-marketing-pro
Skill nameclient-report
Stars
866
Forks
138
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by indranilbanerjee on GitHub. Read the source before you install it.

Installation

Install the Client Report AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/client-report
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git /tmp/digital-marketing-pro
mkdir -p .claude/skills
cp -r /tmp/digital-marketing-pro/skills/client-report .claude/skills/client-report
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Client Report in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Client Report on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Client Report is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

/digital-marketing-pro:client-report

Script location. If your host does not set ${CLAUDE_PLUGIN_ROOT}, the scripts are in this plugin's scripts/ folder, next to skills/. Run them with Python 3.10 or newer: python, or python3 where python is not found (macOS, many Linux systems).

Purpose

Generate a professional, white-labeled client report for a specific brand. Uses agency voice (not brand voice), includes KPI performance, channel breakdowns, strategic recommendations, and next steps. Designed for external client delivery via Slack, email, Google Sheets, or markdown — with approval gating before any external send to prevent accidental disclosure or premature delivery of draft findings.

Input Required

The user must provide (or will be prompted for):

  • Brand slug: The brand this report covers — must match a configured brand in ~/.claude-marketing/brands/
  • Report type: One of:
    • Weekly pulse: Quick KPI snapshot with 3-5 key metrics and brief commentary
    • Monthly review: Full performance analysis with channel breakdowns and recommendations
    • QBR: Quarterly deep-dive with strategic roadmap and forward plan
  • Date range: Specific start and end dates for the reporting period — defines what data is pulled and analyzed
  • Delivery channel: Where the report should be sent — slack, email, google-sheets, or markdown-only (no external delivery, just generate the artifact)
  • Custom sections (optional): Any additional sections the client has requested — competitive update, creative performance breakdown, audience insights, attribution deep-dive, or ad-hoc investigation topic
  • Comparison period: What to compare against — prior period, same period last year, plan/target, or all three simultaneously
  • Recipient list (optional): Specific client contacts who should receive the report if delivering via email or Slack — names and handles/addresses
  • Narrative emphasis (optional): What the client cares most about this period — growth, efficiency, brand awareness, pipeline generation, or revenue — influences which metrics are highlighted first and how insights are framed
  • Include appendix: Whether to attach raw data tables and campaign-level detail as an appendix — defaults to yes for monthly and QBR, no for weekly pulse
  • White-label settings (optional): Agency logo placement, color scheme, and disclaimer text — pulled from agency profile if configured, otherwise uses clean defaults

Process

  1. Load brand context: Read ~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json. Apply brand voice, compliance rules for target markets (skills/context-engine/compliance-rules.md), and industry context. Also check for guidelines at ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json — if present, load restrictions. Check for agency SOPs at ~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
  2. Pull all metrics for the brand: Query connected MCP servers and run python "${CLAUDE_PLUGIN_ROOT}/scripts/campaign-tracker.py" --brand {slug} --action list-campaigns (then --action get-campaign --id {id} per campaign) to gather performance data across all active channels; filter to the specified date range during analysis
  3. Gather campaign history and execution log: Run python "${CLAUDE_PLUGIN_ROOT}/scripts/execution-tracker.py" --brand {slug} --action get-history to compile all deliverables completed, campaigns launched, optimizations made, and tests concluded, then filter to the reporting period during analysis
  4. Calculate KPIs vs targets and vs comparison period: Compute actuals against the brand's stated KPI targets from profile.json and against the selected comparison period — calculate deltas, percentage changes, trend direction, and statistical significance where sample sizes allow
  5. Break down performance by channel: Segment metrics by channel (paid search, paid social, organic search, email, display, video, affiliate, etc.) with per-channel KPIs, spend, efficiency metrics (CPC, CPA, ROAS, CTR), and contribution percentage to overall goals
  6. Identify top wins and attribution: Select the 3-5 best-performing campaigns or initiatives from the period — document what was done, what drove the result, audience and creative insights, and how it connects to business outcomes
  7. Analyze underperformance with root causes: For any KPI that missed target, identify root causes:
    • External factors: market shifts, seasonality, competitive moves, platform algorithm changes
    • Internal factors: budget constraints, creative fatigue, audience saturation, timing misalignment
    • Corrective actions: what was already done and what is recommended for next period
  8. Generate strategic recommendations: Based on performance data, formulate 3-5 actionable recommendations — what to scale, what to pause, what to test next, where budget should shift, and what new opportunities to explore
  9. Write report in agency voice: Draft the full report using professional, third-person agency voice — NOT the brand's personality. Focus on clarity, data-backed insights, actionable next steps, and a confident but honest tone that builds client trust
  10. Format for delivery channel: Run python "${CLAUDE_PLUGIN_ROOT}/scripts/report-generator.py" --brand {slug} --action format-slack (or format-email / format-sheets), passing the report JSON via --data '{report_json}'; for a clean markdown artifact use --action generate-report --data '{report_json}'
  11. Create approval checkpoint: Present the full report preview for review. Risk level: low. Require explicit approval before any external delivery — highlight any sensitive data, unexpected results, or negative findings that may need pre-briefing with the client
  12. Deliver via MCP if approved: On approval, send via the appropriate MCP integration (Slack MCP, email MCP, Google Sheets MCP) if a delivery channel was specified. On a delivery error, retry only a write that provably never reached the platform (connection refused, DNS failure, or a 429 rate-limit rejection); after a timeout or a lost reply, look the record up on the platform first (is the report already in the channel or inbox?) and resend only if it is missing
  13. Log delivery and archive: Record the report delivery in the execution log with timestamp, recipients, delivery confirmation status, report version, and a reference to the archived report for future comparison

Output

A structured client report containing:

  • Executive summary: 3-5 sentence overview of the period — headline result, key wins, areas of focus, outlook for next period, and one recommended action for the client
  • KPI scorecard: Actuals vs targets vs comparison period in a scannable table with color-coded status indicators (exceeded, on track, at risk, missed) and trend arrows showing directional momentum
  • Channel performance breakdown: Per-channel metrics with spend, results, efficiency metrics (CPC, CPA, ROAS, CTR), contribution percentage to overall goals, and channel health assessment
  • Campaign highlights with attribution: Top-performing campaigns with what drove success, creative and audience insights, measured impact, and replication recommendations for future campaigns
  • Underperformance analysis: Honest assessment of any misses with root cause categorization (external vs internal), impact quantification, corrective actions taken, and preventive measures for next period
  • Strategic recommendations (3-5): Data-backed next steps with expected impact, investment required, implementation timeline, priority ranking, and connection to the client's stated business objectives
  • Budget efficiency analysis: Spend vs return summary by channel, cost trend lines over the period, budget utilization rate, and efficiency comparison to prior periods with improvement/decline indicators
  • Upcoming deliverables and timeline: What the agency will deliver next period with dates, milestones, dependencies, and any client actions required to keep the plan on track
  • Appendix (if requested): Raw data tables, campaign-level breakdowns, full metric exports, creative performance data, and supporting calculations for detailed review
  • Delivery confirmation: Channel, timestamp, recipients, delivery status, and report version — or markdown artifact if no external delivery was requested

Agents Used

  • agency-operations — Report voice and tone (agency professional, not brand personality), client context awareness, approval workflow management, white-label formatting, and delivery coordination
  • analytics-analyst — Metrics analysis, KPI calculations, channel breakdowns, trend analysis, comparison computations, attribution modeling, statistical significance checks, and recommendation data support
  • execution-coordinator — Report formatting for delivery channels, MCP integration delivery, execution logging, delivery error handling, and archival

Frequently asked questions

What does the Client Report AI skill do?

Write a white-labeled report for one client from tracked data. All clients → agency-dashboard. "prepare the monthly client report"

Why use Client Report on TypingMind?

Because you install it once and use it with any model. Client Report is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Client Report in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/client-report. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Client Report?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Client Report?

As many as you like. As long as a model supports skills, you can use Client Report with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Client Report AI skill free?

Yes. It is published on GitHub by indranilbanerjee under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇