# Generate Report

> Skill: generate-report

- Skill: `jackhendon/generate-report` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jackhendon/generate-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jackhendon/generate-report/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: jackhendon (https://skillmd.com/u/jackhendon)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jackhendon/generate-report

---

# 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
```

