Skill Tracer
Skills › Knowledge Work Plugins › report-pack

report-pack

skill · 83 lines · Apache-2.0 · small-business/skills/report-pack/SKILL.md

The facts

Its description

Delivers the owner's custom recurring report pack on a set cadence — runs the saved report definition from report-builder, wraps it in a business-pulse snapshot so the numbers have context, and hands over one chat summary plus the workbook. Defined once, then delivered on schedule without being asked again. Runs on any single connected data source, or entirely from an uploaded CSV or XLSX. Use it when the owner asks for their report pack, their weekly or monthly numbers, "send me the usual report," "run my report pack," "set this up to come every Monday," or "I want these numbers on a schedule."

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent picks this when the owner asks for their recurring report pack — their usual weekly or monthly numbers — or wants those numbers delivered on a set schedule without having to ask each time. It runs a saved report definition and wraps it in a business snapshot as one briefing.

Things a person might say (the model's guesses)

  • “Run my report pack”
  • “Send me the usual report”
  • “Set this up to come every Monday morning”

A model's summary of when it is used.

A model's reading

Tools it may use, or may not

allowed-tools: Read, WebFetch

Tools it may use while it runs without asking you first.

From its settingsline 4

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Licence

Apache-2.0, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: report-pack
3description: Delivers the owner's custom recurring report pack on a set cadence — runs the saved report definition from report-builder, wraps it in a business-pulse snapshot so the numbers have context, and hands over one chat summary plus the workbook. Defined once, then delivered on schedule without being asked again. Runs on any single connected data source, or entirely from an uploaded CSV or XLSX. Use it when the owner asks for their report pack, their weekly or monthly numbers, "send me the usual report," "run my report pack," "set this up to come every Monday," or "I want these numbers on a schedule."
4allowed-tools: Read, WebFetch
5---
6
7# Report Pack
8
9Chain two skills so the owner's recurring numbers arrive on their own, with enough context to act on: `report-builder` for the pack itself, `business-pulse` for the surrounding picture.
11Owners already have the report they want in their head. What they do not have is it showing up on Monday without them chasing it. That is the whole job here.

Report Pack

Chain two skills so the owner's recurring numbers arrive on their own, with enough context to act on: report-builder for the pack itself, business-pulse for the surrounding picture.

Owners already have the report they want in their head. What they do not have is it showing up on Monday without them chasing it. That is the whole job here.

Raw lines 1 to 12
Names a skill report-builder :9
Names a skill business-pulse :9
13## Step 1 — The report pack (report-builder)
15Invoke `report-builder`. It owns the spec, the data pull, the math, and the workbook — do not rebuild any of that here.
17- **Goes in:** the owner's description of the pack, or the name of a saved one.
18- **Comes out:** a chat summary, an XLSX workbook, and a saved definition.
20`report-builder` checks its saved definitions first. If the pack already exists, it reruns without re-interviewing the owner. If it does not, it builds the spec and confirms it once.
22**Gate — spec confirmation.** A brand-new pack gets one confirmation from the owner before it runs. A pack that already has a saved definition does not. Re-asking someone to describe a report they defined last month is the fastest way to make this command feel broken.

Step 1 — The report pack (report-builder)

Invoke report-builder. It owns the spec, the data pull, the math, and the workbook — do not rebuild any of that here.

  • Goes in: the owner's description of the pack, or the name of a saved one.
  • Comes out: a chat summary, an XLSX workbook, and a saved definition.

report-builder checks its saved definitions first. If the pack already exists, it reruns without re-interviewing the owner. If it does not, it builds the spec and confirms it once.

Gate — spec confirmation. A brand-new pack gets one confirmation from the owner before it runs. A pack that already has a saved definition does not. Re-asking someone to describe a report they defined last month is the fastest way to make this command feel broken.

Raw lines 13 to 23
Names a skill report-builder :15
24## Step 2 — The context snapshot (business-pulse)
26After the pack runs, invoke `business-pulse` for the same period.
28- **Goes in:** the period the pack covered.
29- **Comes out:** cash, sales trend, pipeline, watch list, and the one thing needing attention.
31The pulse is context, not a second report. It answers the question the pack always raises: the numbers moved, but is the business fine?
33**No gate here.** Both steps are read-only. Nothing is sent, posted, or written to a ledger, so there is nothing for the owner to approve between them.

Step 2 — The context snapshot (business-pulse)

After the pack runs, invoke business-pulse for the same period.

  • Goes in: the period the pack covered.
  • Comes out: cash, sales trend, pipeline, watch list, and the one thing needing attention.

The pulse is context, not a second report. It answers the question the pack always raises: the numbers moved, but is the business fine?

No gate here. Both steps are read-only. Nothing is sent, posted, or written to a ledger, so there is nothing for the owner to approve between them.

Raw lines 24 to 34
Names a skill business-pulse :26
35## Step 3 — Deliver as one thing
37One message, in this order: the pack summary, then the pulse in two or three lines, then the workbook.
39Ray Okonkwo at Okonkwo Mechanical gets his Monday pack — revenue by crew versus last year, AR aging, labor as a percent of revenue — and under it: cash at USD 61,400, two invoices past 60 days, one van still down. He reads both in ninety seconds and knows what Monday is.
41Never send two separate deliverables. A pack and a pulse arriving apart is two things to read; together it is one briefing.
43Render that briefing as one HTML artifact using the house artifact style (`../../shared/artifact-style.md`) — additive to the chat summary and workbook, never a replacement. The pack's headline metrics are stat tiles with their comparisons as context lines; the grouped report rows are a table with tabular-nums; the pulse context sits in its own panel below, its watch-list items carrying status pills (warn or critical); down sources named in one quiet footer line.

Step 3 — Deliver as one thing

One message, in this order: the pack summary, then the pulse in two or three lines, then the workbook.

Ray Okonkwo at Okonkwo Mechanical gets his Monday pack — revenue by crew versus last year, AR aging, labor as a percent of revenue — and under it: cash at USD 61,400, two invoices past 60 days, one van still down. He reads both in ninety seconds and knows what Monday is.

Never send two separate deliverables. A pack and a pulse arriving apart is two things to read; together it is one briefing.

Render that briefing as one HTML artifact using the house artifact style (../../shared/artifact-style.md) — additive to the chat summary and workbook, never a replacement. The pack's headline metrics are stat tiles with their comparisons as context lines; the grouped report rows are a table with tabular-nums; the pulse context sits in its own panel below, its watch-list items carrying status pills (warn or critical); down sources named in one quiet footer line.

Raw lines 35 to 44
45## Step 4 — Set the cadence, once
47**Offer the schedule one time, after a run the owner found useful.** Not before — a cadence offered on a pack nobody has seen yet is a subscription pitch.
49Ask it plainly: "Want this every Monday morning?" On a yes, save the cadence with the report definition in `report-builder` and confirm in one line: "Saved. This runs every Monday morning."
51Then honor it. Every scheduled run repeats Steps 1 through 3 with no questions, no re-confirmation, and no cadence offer. A scheduled report that asks the owner anything has stopped being scheduled.
53On a no, or on silence, drop it and never ask again.
55On an interactive run only — never a scheduled one — close with one line on what was delivered, then the single most relevant next step and at most two others nearby:
57- If the pack raised a cash question: "cash forecast" runs `cash-flow-snapshot`.
58- If the pulse flagged overdue AR: "who owes me money" runs `invoice-chase`.
59- To change what the pack tracks: "build me a report" runs `report-builder`.
61Max three offers. Never repeat an offer the owner declined this session.

Step 4 — Set the cadence, once

Offer the schedule one time, after a run the owner found useful. Not before — a cadence offered on a pack nobody has seen yet is a subscription pitch.

Ask it plainly: "Want this every Monday morning?" On a yes, save the cadence with the report definition in report-builder and confirm in one line: "Saved. This runs every Monday morning."

Then honor it. Every scheduled run repeats Steps 1 through 3 with no questions, no re-confirmation, and no cadence offer. A scheduled report that asks the owner anything has stopped being scheduled.

On a no, or on silence, drop it and never ask again.

On an interactive run only — never a scheduled one — close with one line on what was delivered, then the single most relevant next step and at most two others nearby:

Max three offers. Never repeat an offer the owner declined this session.

Raw lines 45 to 62
Names a skill report-builder :49
Names a skill cash-flow-snapshot :57
Names a skill invoice-chase :58
63## Step 5 — Handle a thin run without stopping it
65A scheduled run happens whether or not every connector is healthy. If a source is down, `report-builder` marks that metric "n/a" and names the source; the pack still ships.
67**Never skip a scheduled delivery because data was incomplete.** A pack with one gap and a note is useful. A silent Monday reads as the plugin being broken, and the owner stops expecting it.
69If the owner has no connectors at all, the CSV path is the pack. Ask once for the export, run the identical report from the file, and keep the cadence.

Step 5 — Handle a thin run without stopping it

A scheduled run happens whether or not every connector is healthy. If a source is down, report-builder marks that metric "n/a" and names the source; the pack still ships.

Never skip a scheduled delivery because data was incomplete. A pack with one gap and a note is useful. A silent Monday reads as the plugin being broken, and the owner stops expecting it.

If the owner has no connectors at all, the CSV path is the pack. Ask once for the export, run the identical report from the file, and keep the cadence.

Raw lines 63 to 70
Names a skill report-builder :65
71## What not to do
73- **Do not re-interview the owner about a saved pack.** Check the saved definition first, every run.
74- **Do not rebuild the report logic here.** `report-builder` owns the spec, the math, and the workbook.
75- **Do not recompute the pulse numbers.** `business-pulse` owns them, so there is one set of figures.
76- **Do not offer the cadence twice.** Once, after a useful run, then never again.
77- **Do not ask anything on a scheduled run.** Scheduled means it arrives without the owner in the loop.
78- **Do not skip a run because a connector failed.** Ship it with the gap named.
79- **Do not deliver the pack and the pulse as two messages.** One briefing, one read.

What not to do

  • Do not re-interview the owner about a saved pack. Check the saved definition first, every run.
  • Do not rebuild the report logic here. report-builder owns the spec, the math, and the workbook.
  • Do not recompute the pulse numbers. business-pulse owns them, so there is one set of figures.
  • Do not offer the cadence twice. Once, after a useful run, then never again.
  • Do not ask anything on a scheduled run. Scheduled means it arrives without the owner in the loop.
  • Do not skip a run because a connector failed. Ship it with the gap named.
  • Do not deliver the pack and the pulse as two messages. One briefing, one read.
Raw lines 71 to 80
Names a skill report-builder :74
Names a skill business-pulse :75
Boilerplate, lines 81 to 83. The same text appears in 38 other files here. Close
81## Using a tool that isn't listed
83The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer `build-connector` — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.

From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.