Executive briefing in plain language — report to me like I'm the CEO or product owner. Business impact and user impact only, no jargon. Use for "/report", "/report project-a", "report to me", "brief me", "what should I know", "executive summary", or when user wants a non-technical status update focused on outcomes not implementation.
Installs into .claude/skills of the current project.
Are you the author of Report?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/kv0906-report)
---
name: report
description: Executive briefing in plain language — report to me like I'm the CEO or product owner. Business impact and user impact only, no jargon. Use for "/report", "/report project-a", "report to me", "brief me", "what should I know", "executive summary", or when user wants a non-technical status update focused on outcomes not implementation.
allowed-tools: Read, Bash, Glob, Grep, Write, TaskCreate, TaskUpdate, TaskList, TaskGet
user-invocable: true
---
# /report — Report to Me
Brief the user as if they are the CEO or product owner. Plain language. Outcomes over output. No technical jargon unless translated into business or user impact.
## Context
Today's date: `!date +%Y-%m-%d`
Config: @_core/config.yaml
Processing logic: @_core/PROCESSING.md
Preview rules: @.claude/rules/preview-formats.md (when `--preview`)
## Usage
```
/report
/report project-a
/report all
/report project-a --week
/report all --preview
/report project-a --save --preview
```
## Flags
| Flag | Effect |
|------|--------|
| `--week` | Last 7 days (default) |
| `--since {date}` | Custom start date |
| `--save` | Write to `reports/{date}-executive-brief-{project}.md` |
| `--preview` | Also render HTML via `shell-executive.html` |
| `--risks-only` | Skip shipped/WIP — focus on blockers and decisions needed |
## Session Task Progress
```
TaskCreate: "Gather vault signals"
activeForm: "Reading vault for executive signals..."
TaskCreate: "Translate to impact"
activeForm: "Translating to business and user impact..."
TaskCreate: "Deliver brief"
activeForm: "Preparing your briefing..."
```
## Voice & Rules
**You are briefing a decision-maker, not an engineer.**
### Always
- Lead with what matters most to the business
- Explain what changed for **users** (faster, safer, clearer, unblocked)
- Explain what changed for the **business** (revenue, risk, speed, cost, trust)
- Use short sentences. No acronyms without plain-English translation
- Quantify when data exists ("3 items shipped", "1 blocker overdue")
- End with what needs **their** decision or attention
### Never
- Stack traces, API names, framework choices, sprint mechanics
- "We merged PR #412" → say what capability that unlocks for users
- "Blocked on Redis" → say "users may see slower checkout until caching is fixed"
- Jira ticket IDs, branch names, implementation details
- Passive voice that hides ownership
### Translation examples
| Vault says | Report says |
|------------|-------------|
| Merged auth migration PR | Users can now sign in with their company account — fewer password resets |
| Blocked on API rate limits | Checkout may fail during peak traffic until we secure higher API limits |
| Decided PostgreSQL over MongoDB | We chose a database that handles financial transactions more reliably — reduces data-loss risk |
| WIP on notifications | Users will soon get alerts when their order ships — not live yet |
## Processing Steps
### 1. Parse Input
- Project: specific id, or `all` (default: all active projects from config)
- Timeframe: `--week` or `--since`
### 2. Gather Signals
Scan vault (same sources as `/progress`, different lens):
| Source | Extract for executive view |
|--------|---------------------------|
| `daily/*.md` | Shipped items, WIP themes, blocked themes |
| `blockers/{project}/*.md` | Open blockers — severity, due, user/business impact |
| `decisions/{project}/*.md` | Recent decisions — what it means for product direction |
| `docs/{project}/*.md` | Active specs — what capability is being built |
| `meetings/*.md` | Action items needing leadership input |
### 3. Synthesize Executive Brief
Structure output in this order:
```markdown
# Briefing — {Project or All Projects}
**{Date}** · {Period covered}
## Bottom Line
{2-3 sentences. Most important thing first. What should they walk away knowing?}
## What Users Get (or Will Get)
- {Shipped capabilities in user language}
- {In-progress capabilities — expected value, not ETA unless due date exists}
## Business Impact
- {Revenue, risk reduction, speed, cost, compliance, trust — only what's evidenced in vault}
## What's at Risk
- {Open blockers translated to user/business consequences}
- {Overdue items flagged clearly}
## Decisions Made (Recent)
- {Decision → why it matters to product/business, not technical rationale}
## Needs Your Attention
- {Explicit asks: approve, escalate, decide, unblock}
- {If nothing: "No decisions needed from you this period."}
```
For `--risks-only`, output only: Bottom Line, What's at Risk, Needs Your Attention.
### 4. Deliver
**Default:** Output to terminal. This is a spoken brief — concise, scannable.
**Do not** create files unless `--save` or `--preview`.
### 5. Optional: Save
If `--save`:
- Write markdown to `reports/{date}-executive-brief-{project}.md`
- Append vault log (action: `report`)
### 6. Optional: Preview
If `--preview`:
- Follow `/preview` workflow with `shell-executive.html`
- `{{LEAD}}` = Bottom Line paragraph
- `{{CONTENT}}` = remaining sections as HTML
- Output: `reports/previews/{date}-executive-brief-{project}.html`
- Open in browser unless `--no-open` passed through
### 7. Coaching Close
End with one direct line (PM Coach style):
> "The one thing I'd escalate: {highest-impact risk or decision}."
Or if clear:
> "You're in good shape — keep momentum on {top WIP theme}."
## Output Example
```
# Briefing — Project A
**2026-06-29** · Jun 22 – Jun 29
## Bottom Line
Checkout is live for most users, but peak-hour failures are still possible until we resolve the API limit blocker. No decisions needed from you today.
## What Users Get (or Will Get)
- Company sign-in is live — fewer password reset support tickets
- Order shipping alerts are in progress — users will know when packages leave the warehouse
## Business Impact
- Sign-in migration reduces support load and improves enterprise deal readiness
- Shipping alerts expected to cut "where is my order?" contacts
## What's at Risk
- API rate limits may cause checkout failures during promotions — backend team owns fix, due Friday
## Decisions Made (Recent)
- Chose PostgreSQL for billing data — stronger protection for payment records
## Needs Your Attention
- No decisions needed from you this period.
---
The one thing I'd escalate: API rate limit blocker before next marketing push.
```
## Relationship to Other Skills
| Skill | Difference |
|-------|------------|
| `/progress` | Technical/project status for operators — tables, filenames, severity |
| `/report` | Executive brief — impact language, no implementation detail |
| `/preview` | Renders any content as HTML — use `--preview` on report for shareable brief |
| `/weekly` | Team retrospective — process-focused, not CEO briefing |
## Empty Vault Handling
If no data in timeframe:
```
No meaningful updates in the last 7 days for {project}.
Suggest: run /daily to start capturing, or widen with --since.
```
Do not fabricate impact statements.