content-strategy
Analyzes sales data from PayPal and QuickBooks to find top performers and slow movers, layers in seasonality, and produces a prioritized 30-day content brief: what to push, what offers to run, what to hold. Strategic output only — no calendars or assets. Use when the user asks what to post, wants a content plan, asks what's selling, or what to promote this month.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-11
- Stars
- ★ 3.5w
- Forks
- 3.9k
01 前言 Front Matter
- name
- content-strategy
- description
- Analyzes sales data from PayPal and QuickBooks to find top performers and slow movers, layers in seasonality, and produces a prioritized 30-day content brief: what to push, what offers to run, what to hold. Strategic output only — no calendars or assets. Use when the user asks what to post, wants a content plan, asks what's selling, or what to promote this month.
- allowed-tools
- Read, WebFetch
02 资源文件 3
- 参考文档reference/examples/retail-boutique-example.md2.8 KB
- 参考文档reference/gotchas.md4.3 KB
- 参考文档reference/v2_sources.md1.5 KB
03 SKILL.md 正文
Content Strategy
Quick start
When an SMB owner asks "what should I post this month?" or "what's my content plan?", this skill:
- Pulls sales data from QuickBooks or PayPal (transaction history, product/service revenue by date)
- Identifies patterns — top-selling products, slow movers, seasonal trends
- Layers in context — seasonality (user-provided or industry benchmarks), past performance
- Produces a 30-day brief — ranked recommendations of what to push, what to hold, what offers to consider
- Gets owner approval before the brief feeds into
social-content-enginefor asset generation
The output is strategic only — no calendar scheduling, no creative assets.
Workflow
Step 1: Pre-flight check (QuickBooks only)
If using QuickBooks, verify the business profile is set up:
- Call
company-infoto check ifIndustryis populated - If missing or "Unknown":
- Ask: "I need your business category to pull the right seasonality benchmarks. What industry are you in?" (e.g., retail, services, SaaS)
- Call
quickbooks-profile-info-updatewith the user's industry - Confirm: "Profile updated. Ready to pull your sales data."
- If profile is set, proceed to Step 2
Note: PayPal and Square do not require profile setup.
Step 2: Clarify priorities & metrics
When triggered, ask the user:
-
"How do you want me to measure 'top performers'?"
- By total revenue?
- By profit margin?
- By sales velocity (how fast they're selling)?
- Combination of the above?
-
"Do you have seasonality patterns in mind?"
- If yes: "Tell me about them" (capture user's known seasonality)
- If no: "I'll use industry benchmarks for your category"
Step 3: Pull and analyze sales data
Fetch data from the authenticated connector (QuickBooks, PayPal, or Square, user's choice):
- Date range: Last 90 days (or full history if <90 days available)
- Extract: Product/service name, date sold, revenue, quantity
Connector-specific notes:
- QuickBooks: Fetch invoice line items via
profit_loss_quickbooks_account(pre-flight sets industry context). Read the rows ormonthlyBreakdown; the response'stotalExpensesreports 0 against real rows, so never read the summary fields - PayPal: Fetch merchant transactions via
list_transactions. Rate-limiting: If you hit rate limits, pause 30 seconds and retry once. If still blocked, gracefully offer: "PayPal is rate-limited. Would you like to switch to QuickBooks or Square instead, or I can continue with historical data I already pulled?" - Square: Requires location ID first. Call
make_api_request(service="locations", method="list")to discover available locations, then fetch orders for each location.
No connectors at all? This still runs, and it is a supported path — not a degraded one. Ask the owner to export their sales history and upload it. Name the export by the label they will actually see in the app:
- QuickBooks — Reports, then the "Sales by Product/Service Detail" report, set to the last 90 days, exported to Excel or CSV
- PayPal — Activity, then Download, set to the last 90 days, "Completed transactions" as CSV
- Square — Reports, then Item Sales, set to the last 90 days, exported as CSV
Any one of those carries product name, date, revenue, and usually quantity, which is everything Step 3 needs. A pasted list of what sold and roughly when also works — say plainly that the read is rougher, and run it.
Fallback: If <3 months of data, use industry seasonality benchmarks for the SMB's category (e.g., retail, services, e-commerce)
Identify:
- Top 3–5 performers (by user's chosen metric)
- Bottom 3–5 slow movers (consider holding or repositioning)
- Trending up (gaining momentum in last 30 days)
- Trending down (losing momentum)
Step 4: Layer in seasonality
- User-provided: If they shared seasonal patterns, weight recommendations against them
- Industry benchmarks: For categories without strong user data (e.g., "Q1 is strong for tax services")
- Timing: Flag products that should ramp up/down in the next 30 days based on seasonal patterns
Step 5: Build the 30-day brief
Structure:
- Executive summary (1–2 sentences: "Your best sellers are X and Y. Seasonal shift to Z is starting.")
- Push hard (Top 2–3 products + recommended content angle, e.g., "Case study on ROI", "How-to video")
- Hold steady (Middle performers; maintain visibility but no heavy lift)
- Reposition or pause (Slow movers; consider discounting, bundling, or pausing)
- Seasonal opportunities (What's coming next month that you should position for now)
- Recommended offers (Bundle, discount, or free-trial strategy based on data)
Example length: 200–400 words (brief and actionable, not essay-length).
Step 6: Owner approval & iteration
Present the brief to the owner. Ask:
- "Does this match your gut?"
- "Anything to adjust?"
- "Ready to feed this to social-content-engine for asset generation?"
Iterate if needed; once approved, return the final brief as structured JSON (ready for downstream tools).
More sources, and direct invocation
Read reference/v2_sources.md for the mapping:
- Shopify — per-SKU velocity, variant performance, and product images that flow straight into asset generation downstream
- Stripe — subscription and recurring revenue, where relevant
Direct invocation
If the owner asks for a sales brief, run this and return the brief. Don't route them anywhere.
Gotchas & edge cases
See reference/gotchas.md for common pitfalls.
Examples
See reference/examples/ for worked examples (SaaS, retail, services).
Output
Deliver the 30-day brief 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):
- Visual artifact (the default): render the brief as an HTML page in the house style — what to promote as the lead, the why behind each pick with its numbers in tabular-nums, and the channel call per push. The structured JSON for downstream tools rides along unchanged; it is an input to other skills, not a second deliverable.
- docx / md / notion / canva preference: deliver the same content in that form — a DOCX or markdown file, a Notion page created via the connector (named destination, never overwriting), or a Canva Doc created via the Canva connector (a new design each run, named with the date; tables become lists); fall back to the visual artifact if Notion or Canva is not connected — and say that is why.
- Best for skill: use the visual artifact — this output is a decision page, not prose.
After the brief
The 30-day brief is approved and ready to act on. The natural next step is "make the content" — social-content-engine turns the brief into the standing calendar and the posts. Also nearby: "run this brief" (canva-creator) for a one-shot campaign build from this exact brief, and "is my marketing working" (growth-pulse) to check whether last month's push paid off. Offer at most three, and skip any offer the owner already declined this session.
Using a tool that isn't listed
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.
04 同仓库更多 Skills
ticket-deflector
Reads a forwarded customer email or ticket, pulls order and refund status from a payments connector (PayPal, Square, or Stripe) or Shopify, account history from the CRM, and open tickets from a support desk (Zoho Desk), drafts a tone-matched reply in the owner's writing voice, and can issue a refund through the payments connector with explicit owner approval. With Shopify connected it also runs a proactive order-triage mode that surfaces orders needing attention — unfulfilled past the promised window, payment problems, pending refunds, stuck shipments — and drafts the next action for each before the customer has to ask. Use when the user says "draft a response," "answer this customer," "where's my order," "I want a refund," "check my orders," or "anything about to blow up."
tax-season-organizer
Prepares tax-season materials for the owner's accountant, not tax advice. US federal tax; a non-US business gets its closed-books packet instead. Two modes: (1) quarterly estimated tax from YTD net income in the ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books); (2) year-end 1099 prep, scanning the ledger, PayPal, and Stripe for contractors paid over USD 600 into a 1099-NEC list with missing W-9 flags. Any tax request routes first to /tax-prep, which confirms the books are closed and reconciled before running this skill. Use this skill directly only when the owner says the period's books are already closed: "books are closed, now do the 1099s," "run the quarterly estimate off the closed numbers," or "just the contractor W-9 list."
tax-prep
Prepares tax materials as a two-link chain — month-end-prep confirms the books are closed and reconciled first, then tax-season-organizer calculates the quarterly estimated payment or builds the year-end 1099-NEC list and accountant packet from those closed numbers. Requires a ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books); uses Gusto, PayPal, and Stripe when connected, else CSV upload. US federal tax math; a non-US business gets the closed-books packet. Prep material for a CPA, never tax advice, nothing filed. Trigger on "quarterly taxes," "estimated tax payment," "how much should I set aside," "1099s," "1099-NEC," "W-9s," "year-end tax prep," "get my books ready for my accountant," any phrasing that suggests a tax deadline is coming, or a question about net profit or YTD income that sounds like worry about a tax bill. An owner who says the period's books are already closed routes to tax-season-organizer directly.
speed-to-lead
Makes sure no inbound lead goes unanswered. Watches web forms, the shared inbox, and the CRM for new inquiries, qualifies each one against the owner's criteria, drafts a reply in the owner's voice with real meeting times for the owner to approve and send, routes anything hot to a human right away, and logs the whole thing to the CRM. Never sends on its own. Built to run on a schedule so overnight inquiries are drafted and sorted by morning, and works from forwarded or pasted inquiries when no connector is available. Use this whenever the owner is worried about inbound leads or response time — including phrasings like "leads are going cold," "did anyone answer that inquiry," "I keep missing form submissions," "nothing falls through the cracks," "handle my inbound," "respond to this lead," or "we lose people because nobody gets back fast enough." Reach for it for a single unanswered inquiry as readily as for a standing setup.
social-content-engine
Runs the owner's content operation as a standing thing rather than a one-off: keeps a rolling posting calendar, learns the owner's voice, generates on-brand Canva graphics, writes captions that sound like them, repurposes one asset into every channel format, and stages posts for approval instead of publishing on its own. Pulls product photos and prices from Shopify when connected; with no connectors, drafts the calendar and asset briefs for manual posting. Use this whenever the owner talks about posting, content, or social — including "I need to post more," "we've gone quiet on Instagram," "what should we post this month," "make the content," "give me a month of posts," "write this in my voice," "repurpose this," or "set up our content calendar." Reach for it for a single post as readily as for a full quarter. One handoff: a finished, approved campaign brief goes to canva-creator; this skill owns the standing operation.
smb-router
The front door to the Small Business plugin. Listens to what the owner needs right now — vague or specific — and routes them to the best skill or slash command for the moment. Also serves as a guide: explains what's available, suggests what to try next, and adapts recommendations based on stored business context. Trigger whenever the owner asks "what can you do," "help me with my business," "what should I focus on," "I don't know where to start," or any open-ended business request that doesn't clearly match a single skill.