weekly-report

$npx mdskill add anthropics/cwc-workshops/weekly-report

Generate Python scripts to produce structured inventory reports.

  • Automates weekly stockouts, low stock, open POs, and forecast risks.
  • Reads CSVs and JSONL files without using per-SKU tool calls.
  • Prioritizes items by urgency metrics like days cover and aging.
  • Outputs formatted markdown tables and summary recommendations.

SKILL.md

.github/skills/weekly-reportView on GitHub ↗
---
name: weekly-report
description: Structure and data sources for the weekly inventory report. Load this when the task is "weekly report", "Monday report", or "summarize inventory status".
---
<!-- Copyright 2026 Anthropic PBC -->
<!-- SPDX-License-Identifier: Apache-2.0 -->


# Weekly Inventory Report

Generate the report by **writing one Python script via code execution** that reads the CSVs and emits markdown. Do not make per-SKU tool calls.

## Structure

```markdown
# Inventory Report — {{warehouse or "All Warehouses"}} — week of {{date}}

## Stockouts (on_hand = 0)
| SKU | Product | Warehouse | Days out |
...

## Low Stock (below reorder point)
| SKU | On hand | Reorder pt | Days cover | Action |
...top 15 by urgency (lowest days_cover first)...

## Open POs
| PO | SKU | Qty | Supplier | ETA |
...from /mnt/user/sinks/purchase_orders.jsonl...

## Forecast Risk
SKUs where promo_next_month=1 or is_seasonal=1 and on_hand < 14d cover.
One line each: SKU, reason, recommended action.
```

## Operating cadence (which report is being asked for)

| Cadence | Trigger phrasing | Contents |
|---|---|---|
| **Daily** | "run the check", "the sweep" | Low-stock list with action taken per SKU; one summary notification at the end. |
| **Weekly** (Mon) | "the report", "weekly review" | Per-warehouse: top concerns, **open POs aging past their lead time**, SKUs below reorder for >5 business days. |
| **Monthly** | "supplier review" | Suppliers whose on-time rate slipped; SKUs whose primary supplier may need changing. |
| **Ad hoc** | anything else | Scope to what was asked. |

If the request doesn't say which, infer from wording. The structure below is
the **weekly** format; for daily, drop the Open-POs and Forecast-Risk sections
and lead with the actions taken.

## Aging-PO check (weekly only)

For each open PO, compare days-since-placed to the supplier's `lead_time_days`.
List any PO where elapsed > lead_time as **aging** and include supplier + days
overdue so ops can follow up.

## Data sources

- Stockouts & low stock: latest-date rows from `/mnt/user/data/stock_levels.csv` joined with `/mnt/user/data/products.csv`
- Days of cover: `on_hand / avg_daily_sales` (last 14d from `/mnt/user/data/sales_history.csv`)
- Open POs: `/mnt/user/sinks/purchase_orders.jsonl`
- Forecast risk: `/mnt/user/data/products.csv` flags + days-of-cover from above

## Do this in code

The CSVs are large (stock_levels is ~67k rows). Write a single script that loads them once, computes everything, and prints the markdown. Don't page through the data with tool calls — that's exactly the pattern this skill replaces.

More from anthropics/cwc-workshops

SkillDescription
edgartools-sec-dataHow to pull SEC EDGAR data with the edgartools Python package — company lookup, filings, XBRL financial statements, and filing sections like Item 1A risk factors. Use whenever a task involves SEC filings, 10-K/10-Q data, or company financials.
forecastingHow to produce a demand forecast for a SKU, and when to delegate that to a subagent vs. compute it yourself. Load this for any task involving "forecast", "how much will we sell", "next month", promos, or seasonal SKUs.
incident-triage-runbookThe SRE team's runbook for triaging production latency and error-rate incidents. Use this whenever investigating an incident, a latency spike, elevated error rates, or when asked "what caused X" about a production service.
miningWhere diamonds spawn in Minecraft 1.20.
notify-templatesFixed-format templates for Slack alerts, supplier emails, and escalations. Load this whenever the task is "notify", "alert", "email", or "tell ops".
postmortem-reportHow the SRE team writes a postmortem PDF. Use this whenever asked for a postmortem, an incident report, a write-up to share, or a PDF of what happened.
reorder-policyHow to decide whether and how much to reorder a SKU. Load this whenever a task involves reorder recommendations, purchase orders, or "should we restock" questions.
submit-solutionGuide a workshop attendee through committing their starter-agent decomposition and opening a PR with their solution + workshop feedback. Invoke when the user says "submit", "I'm done", "open a PR", or asks how to share their solution.
supplier-selectionHow to rank and pick a supplier for a SKU. Load this whenever a task involves choosing a supplier, comparing quotes, or creating a purchase order.
workshopWorkshop coach for the Research Desk (SEC agents) workshop. Use when the user types /workshop, asks for a workshop act or module ("act 2", "next act", "where am I"), wants a TODO(workshop-N) implemented or explained, or asks for help following WORKSHOP.md.