Get the FREE Ultimate OpenClaw Setup Guide →

Generate Report

npx machina-cli add skill jackhendon/ecom-feedback-intelligence/generate-report --openclaw
Files (1)
SKILL.md
1.6 KB

Skill: generate-report

Writes a full markdown report to outputs/reports/. Requires /analyze-reviews to have been run first in this session (results are in context).

Usage

/generate-report

Steps

Step 1: Check for analysis results

Look in the current conversation context for results from /analyze-reviews. The report needs:

  • Sentiment distribution
  • Theme frequency
  • High-priority issues
  • PM insights (opportunities, risks, experiments)
  • Review count and run date

If no analysis results are in context, output:

No analysis results found. Run /analyze-reviews first, then /generate-report.

And stop.

Step 2: Determine filename

Format: {brand.name.lower()}_YYYY-WNN.md where YYYY-WNN is the ISO week of the run date (brand name from config/brand.yaml). Path: outputs/reports/{brand.name.lower()}_YYYY-WNN.md

If a file with that name already exists, append -v2, -v3 etc.

Step 3: Write the report

Use the template from .claude/rules/report-format.md. Write the file in a single pass — do not output to terminal first.

For the "Trend vs Previous Period" section, read memory/history.json and compute directly from the two most recent snapshots:

  • Sentiment: pp change in positive% and negative%
  • Themes: rank order each period by frequency, list themes that moved up or down
  • Priority: avg_priority_score delta, high_priority_issues count delta

If fewer than 2 snapshots: write "Insufficient history for trend comparison. Run again next week."

Step 4: Confirm

Report saved: outputs/reports/{brand.name.lower()}_YYYY-WNN.md

Source

git clone https://github.com/jackhendon/ecom-feedback-intelligence/blob/main/.claude/skills/generate-report/SKILL.mdView on GitHub

Overview

Generates a complete Markdown report in outputs/reports/ from the results of /analyze-reviews. It requires analysis results to be present in the session context and formats the output with a brand-specific filename. The report consolidates sentiment distribution, theme frequency, high-priority issues, PM insights (opportunities, risks, experiments), and the run date for easy sharing and archival.

How This Skill Works

Checks the context for analyze-reviews results, determines the filename as {brand.name.lower()}_YYYY-WNN.md using the ISO week of the run date, and writes the report in a single pass using the standard template from .claude/rules/report-format.md to outputs/reports/. It also computes the Trend vs Previous Period section from memory/history.json and, if there are fewer than two snapshots, notes insufficient history.

When to Use It

  • After /analyze-reviews has produced results in the session context.
  • When you need a single, shareable Markdown report for a brand.
  • When filename consistency and versioning (for example, -v2) matter.
  • When you want a Trend vs Previous Period comparison using memory/history.json.
  • When you want automatic confirmation and a saved path such as outputs/reports/{brand.name.lower()}_YYYY-WNN.md.

Quick Start

  1. Step 1: Run /analyze-reviews to generate results in the session context.
  2. Step 2: Run /generate-report to create the Markdown file.
  3. Step 3: Check for the confirmation: Report saved: outputs/reports/{brand.name.lower()}_YYYY-WNN.md.

Best Practices

  • Ensure analysis results exist in context before running /generate-report.
  • Verify brand.name in config/brand.yaml is correct for filename accuracy.
  • Review memory/history.json to understand trend changes before generating.
  • Keep the outputs/reports path accessible and avoid special characters in filenames.
  • Run /generate-report after /analyze-reviews to ensure fresh data and consistent results.

Example Use Cases

  • Example: A fashion retailer runs /analyze-reviews, then /generate-report to publish weekly customer sentiment and theme insights.
  • Example: An electronics brand generates a weekly report and relies on automatic -v2 naming if a file already exists.
  • Example: Product managers review PM insights, opportunities, and experiments included in the report before a sprint review.
  • Example: The Trend vs Previous Period section compares sentiment and themes from memory/history.json to last week.
  • Example: If analysis results are missing, the command returns the no-analysis message instead of failing.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers