---
name: status-report
description: Guided entry point for the Client Status Reporter pipeline — pull data, draft reports, review, and distribute in one command. Runs individual stages or the full end-to-end pipeline.
---

# /status-report — Client Status Reporter

The guided entry point for RBA's status reporting pipeline. Pulls live data from Azure DevOps and/or Jira, drafts multi-audience reports, reviews them, and formats for distribution.

## Usage

```
/status-report                                         # Interactive mode — guided prompts
/status-report pull [project-slug]                     # Pull data snapshot only
/status-report draft [project-slug] --audience <a>    # Draft report from latest snapshot
/status-report review <report-file.md>                 # Run reviewer agent on a draft
/status-report send <report-file.md> --channel <c>    # Format and distribute
/status-report run [project-slug]                      # Full pipeline: pull → draft → review
/status-report config                                  # Show/create .status-reporter.json
```

Audiences (`-a`): `executive` | `client` | `engineering` | `all`

Channels (`-c`): `email` | `teams-card` | `teams-channel` | `confluence` | `markdown`

## Interactive mode (default)

When run without arguments, prompt the user:

```
Welcome to the RBA Client Status Reporter.

What would you like to do?

1. Pull latest project data (status-data-pull)
2. Draft a status report (status-report-draft)
3. Review a drafted report (status-report-reviewer agent)
4. Format and distribute a report (status-distribute)
5. Run the full pipeline: pull → draft all audiences → review → distribute
6. Show or create project config (.status-reporter.json)

Enter a number or describe what you need:
```

Route to the appropriate skill based on the response:

| Choice | Action |
|---|---|
| 1 | Invoke `status-data-pull` |
| 2 | Prompt for project slug + audience, invoke `status-report-draft` |
| 3 | Prompt for report file path, invoke `status-report-reviewer` agent |
| 4 | Prompt for report file + channel, invoke `status-distribute` |
| 5 | Full pipeline (see below) |
| 6 | Config wizard (see below) |

## Full pipeline mode (option 5 or `/status-report run`)

1. Ask: "What is the project slug? (check `.status-reporter.json` if present)"
2. Invoke `status-data-pull <slug>` → writes `status-snapshot-<slug>-<date>.json`
3. Print snapshot summary. Ask: "Proceed to draft reports? Which audiences? (executive / client / engineering / all)"
4. Invoke `status-report-draft <slug> --audience <chosen>` for each audience → writes report files
5. For each report: invoke `status-report-reviewer` agent → print review summary
6. If any BLOCKERS found: stop and list them. Ask: "Fix these issues and re-run, or distribute anyway? (fix / distribute)"
7. If "distribute": invoke `status-distribute` for each report using the `distributeChannels` from config, or ask per-report

## Config wizard (`/status-report config`)

Check for `.status-reporter.json` in the current directory.

If it exists: display current config in a formatted table and offer to edit any field.

If it does not exist: run an interactive wizard:

```
Let's set up your project configuration.

Project slug (kebab-case, e.g. acme-website-relaunch): ▌
Project name (display name): ▌
Data source (ado / jira / both): ▌
[if ado or both] Azure DevOps org (e.g. rbaconsulting): ▌
[if ado or both] Azure DevOps project name: ▌
[if ado or both] Azure DevOps team name: ▌
[if jira or both] Jira project key (e.g. AWR): ▌
Timesheet source (ado-timetracking / jira-worklog / tempo / harvest / none): ▌
Total budget (hours, or press Enter to skip): ▌
Reporting period (sprint / weekly / biweekly): ▌
Audiences to report on (executive,client,engineering or all): ▌

Adding milestones:
  Milestone 1 name (or Enter to skip): ▌
  [continues until user skips]

Distribution channels:
  Executive: email / teams-card / confluence / skip: ▌
  Client:    email / teams-card / confluence / skip: ▌
  Engineering: teams-channel / markdown / skip: ▌
```

Write the result to `.status-reporter.json` and confirm.

## File naming convention

All output files follow the pattern: `<artifact>-<project-slug>-<audience|source>-<YYYY-MM-DD>.<ext>`

Examples:
```
status-snapshot-acme-website-relaunch-2026-05-29.json
status-report-acme-website-relaunch-executive-2026-05-29.md
status-report-acme-website-relaunch-client-2026-05-29.md
status-report-acme-website-relaunch-engineering-2026-05-29.md
status-email-acme-website-relaunch-client-2026-05-29.html
status-teams-card-acme-website-relaunch-executive-2026-05-29.json
```

## Tips

- Run `/status-report config` once per project to set up `.status-reporter.json` — subsequent runs need only the project slug.
- Run the reviewer agent on every client-facing report before distributing. Treat BLOCKERs as mandatory fixes.
- Schedule a recurring run with `/loop 7d /status-report run <project-slug>` for fully automated weekly reporting.
- For portfolio reporting across multiple projects: run `/status-report pull` for each project, then aggregate the snapshots manually or with a custom script.
