npx skills add ...
npx skills add anthropics/knowledge-work-plugins --skill business-pulse
Produces a one-page cross-functional business snapshot for SMB owners — cash position (the ledger: MYOB, NetSuite, QuickBooks, Xero, or Zoho Books), sales trend (PayPal/Square/Stripe), pipeline movement (HubSpot), this week's commitments (Calendar), urgent watch-list items (Gmail or M365, Slack), and the single most important thing needing attention today. Proactively tries every available connector and gracefully scopes to whatever is connected — one connector gives a partial pulse; the full stack gives the full picture. Trigger when the user asks how the business is doing, wants a snapshot, a daily brief, a Friday recap, or says anything like "what am I missing" or "catch me up on the business." A start-of-week briefing routes to /monday-brief, which runs this skill as its first link.
npx skills add anthropics/knowledge-work-plugins --skill business-pulse
One prompt, one page. Pull live data from every connected tool, synthesize it into a single scannable brief, and surface the single most important thing to act on today. Do the work — don't ask the user to help find the data.
Dispatch all connector calls in a single parallel batch — see reference/data_sources.md for the exact tool-to-metric mapping. Do not pull serially; latency turns a 30-second skill into a painful wait.
Connectors to attempt simultaneously:
If a connector errors or returns no data, record it internally and move on. Never block the pulse on a single bad integration.
QuickBooks fallback: if QBO returns an unexpected state (account not connected, sync pending, empty response), mark the Cash section "n/a — QuickBooks unavailable" and proceed. Do not retry or ask the user to reconnect.
Gmail fallback: Gmail auth is intermittently flaky. If the call errors, skip the Watch List section silently and note "Gmail unavailable" in the appendix — do not surface an error mid-pulse.
Nothing connected at all is a supported path, not a failure. If every connector is unavailable, don't stop and don't tell the owner to go connect things. Ask once, in one short message, for the handful of numbers that carry the pulse:
Build the same one-page pulse from those answers, label the source line "owner-supplied, not pulled," and skip any section they had no number for. If they'd rather not type numbers, point them at the siblings that run off a file export instead — cash-flow-snapshot and report-builder both take a CSV — and say plainly that gives a partial picture, not the full one.
Read reference/thresholds.md for red/yellow/green cutoffs. Compute:
Assign a 🟢/🟡/🔴 status to each section. If a source returned nothing, mark the metric "n/a" and note it in the appendix.
Scan for actionable items. Every risk entry must name a specific record and a next step — "some overdue invoices" is useless; "USD 3,400 from Acme Corp, 47 days overdue, no response since Mar 12" is actionable.
reference/thresholds.md (200 in the business's currency)Use the exact template in reference/output_template.md. Include only sections where real data exists — omit headers for connectors that weren't available. Adapt depth to context: a casual "how are we doing" gets a fuller report; "quick snapshot before a call" gets a tighter one.
Cross-connector synthesis is where this skill earns its keep. If a Slack message connects to a stalled HubSpot deal, surface that link in the #1 Priority section. Synthesis is what makes the pulse more useful than checking each tool separately.
Writing rules:
Alongside the chat pulse — never instead of it — deliver the full pulse per
the owner's stored output preference — never default to a markdown file.
Check the ## Business context block's Output preference (shared style
guide rule, ../../shared/artifact-style.md):
After presenting the pulse, offer once:
If they say yes, do it. If they say no or don't respond, move on — don't ask again.
Close with one line on what the pulse covered, then the single most relevant next step and at most two others nearby:
invoice-chase.growth-pulse./monday-brief every week.Max three offers. Never repeat an offer the owner declined this session.
The owner may ask for a narrower cut:
../../shared/quickbooks-report-traps.md).Read reference/v2_sources.md for the mapping:
../../shared/connector-neutrality.md). With two connected, the owner names one as the source of record for totalsThe pulse still builds from whatever is connected and degrades gracefully — one connector gives a partial pulse, the full stack gives the full picture.
This skill is schedulable, and the preset decides the shape:
| Preset | When | Shape |
|---|---|---|
| Monday | Start of week | Full pulse, forward-looking. What's coming and what needs attention |
| Friday | End of week | Recap. What moved, what closed, what slipped |
Scheduling is a property of this skill, not a reason for a separate command.
Offer a cadence once, after a pulse the owner found useful. Don't ask twice.
reference/data_sources.md — exact connector tool → metric mapping with fallbacksreference/thresholds.md — 🟢/🟡/🔴 cutoffs, tunable per ownerreference/output_template.md — exact markdown structure; do not deviatereference/gotchas.md — known failure modes (QB states, Gmail auth, Slack write)The 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.