用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Tzeusy/butlers --skill spending-review命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Guide for discovering, analyzing, and pruning the Butlers test suite. Use when working on test condensation beads (Phase 1 epic bu-rhztl and Phase 2 epic bu-hg8rl both CLOSED; Phase 3 maintenance cycle underway 2026-06-21), assessing test bloat, identifying pruning targets, or rewriting tests to be contract-driven. Triggers on test reduction, test pruning, test consolidation, or condensation tasks for this project. Also use when a fresh session needs to assess test health, create new condensation beads, or resume in-progress condensation work.
Generate a weekly home energy digest with trends, top consumers, and recommendations.
Orchestrate a UX redesign of a Butlers dashboard page (or sub-page set) using /project-direction as the spec+beads engine, with redesign-specific upfront phases for vision capture, asset ingestion, impact analysis, backend-contract derivation, LLM-cost feasibility, manifesto/identity preservation, and a th-design design-bar audit. The binding design language is the Dispatch spec (openspec/specs/dashboard-design-language/spec.md); bundles live under pr/overview/ and resolve via references/bundle-registry.md. Use when asked to redesign a dashboard page, with or without a Claude Design bundle. Triggers on "redesign the X page", "plan the Y redesign", "integrate the redesign bundle", "what would it take to ship the SLUG redesign", "design language integration for AREA".
正在显示 SKILL.md
基于 SOC 职业分类
| name | spending-review |
| description | Guided workflow for reviewing recent spending by category, time period, and anomalies |
| version | 1.0.0 |
This skill provides a structured, interactive workflow for reviewing your recent spending. Use this for daily, weekly, or monthly spending analysis and pattern detection.
Guide you through a comprehensive review of your spending that covers time period selection, category breakdown, merchant analysis, and anomaly detection. The review adapts based on your chosen time period and generates insights at the end.
Before starting the spending review, gather context:
list_transactions(limit=1) to verify data existsspending_summary() to understand baselineFollow this structured flow in order. Use progressive disclosure — present findings one section at a time and wait for user response before proceeding to the next section.
Ask the user what period they want to review:
Store the selected period for queries below.
Example conversation:
Bot: "Let's review your spending. What time period would you like to look at?"
User: "Last month"
Bot: "Got it, I'll show you January 1–31 spending."
Use spending_summary(start_date=<period_start>, end_date=<period_end>, group_by="category") to aggregate spending.
Present the results in this format:
# Spending Summary — [Period]
Total Spent: $[amount]
By Category:
- [Category 1]: $[amount] ([% of total]) — [count] transactions
- [Category 2]: $[amount] ([% of total]) — [count] transactions
- [Category 3]: $[amount] ([% of total]) — [count] transactions
...
Top Merchant in [Top Category]: [Merchant name] ($[amount])
Analysis questions to ask yourself (do not push on user unless they ask):
If the user asks "Is this normal?" or "Did I spend a lot?", try to provide context:
memory_recall(topic="spending patterns") to retrieve baseline expectationsUse list_transactions(start_date=<period_start>, end_date=<period_end>, limit=20) to get top transactions.
Present top merchants by transaction count:
# Top Merchants
1. [Merchant 1] — [count] transactions totaling $[amount]
- Most recent: $[amount] on [date]
2. [Merchant 2] — [count] transactions totaling $[amount]
- Most recent: $[amount] on [date]
...
Follow-up questions (if appropriate):
Run spending_summary() for two consecutive periods (current and previous) to detect anomalies:
Anomaly types to flag:
Unusually High Single Transaction: If any single transaction is > 1.5× the category average or > $500 (configurable), flag it:
⚠️ Large transaction detected: $[amount] at [Merchant] on [date]
Is this planned? Should I note this as an unusual expense?
Category Spending Spike: If a category's spending increased > 50% vs previous period, flag it:
📈 Spending spike: [Category] increased from $[previous_amount] to $[current_amount]
What's behind the increase? New subscription? One-time purchase?
Unusual Merchant: If a transaction is from a merchant not seen before, note it:
New merchant detected: [Merchant name] ($[amount])
Is this a new subscription, recurring payment, or one-time?
Subscriptions Not Tracked: If the same merchant appears multiple times at similar amounts/intervals, suggest creating a subscription record:
I noticed [Merchant] charged you $[amount] on [dates]. This looks like a recurring subscription.
Would you like me to track this as "[Merchant] subscription"?
Positive patterns to acknowledge:
If reviewing a longer period (weekly or monthly), offer to show spending by week or day:
Bot: "Would you like to see how your spending breaks down by week?"
User: "Sure"
Bot: [Show spending by week, highlighting any week that stands out]
Use spending_summary(group_by="week") to break down by week, or group_by="day" for daily detail.
After presenting all findings, generate a summary:
# Spending Review Summary — [Period]
**Total Spent**: $[amount]
**Top Category**: [Category] ($[amount])
**Transaction Count**: [N]
**Highest Transaction**: $[amount] at [Merchant]
## Highlights
- [Key finding 1]
- [Key finding 2]
- [Key finding 3]
## Action Items
- [Suggested action 1, if applicable]
- [Suggested action 2, if applicable]
## Next Steps
- Would you like to set a spending limit for any category?
- Would you like to create subscription records for recurring charges?
- Should I send you weekly spending summaries?
Suggested actions (only if appropriate):
After the user acknowledges or completes the review, optionally store insights:
Bot: "Would you like me to remember any spending patterns or goals from this review?"
If yes, use memory_store_fact() to capture:
# Example: Store spending pattern
memory_store_fact(
subject="user",
predicate="spending_pattern",
content="tends to spend $300-400/week on groceries at Whole Foods and local markets",
permanence="standard",
importance=6.0,
tags=["spending", "groceries", "recurring"]
)
# Example: Store spending concern
memory_store_fact(
subject="dining",
predicate="spending_spike",
content="dining expenses increased from $200 to $350 in [month] — user investigating",
permanence="volatile",
importance=5.0,
tags=["spending", "dining", "anomaly"]
)
# Example: Store spending goal
memory_store_fact(
subject="user",
predicate="spending_goal",
content="wants to keep subscriptions under $50/month total",
permanence="standard",
importance=7.0,
tags=["spending", "goal", "subscriptions"]
)
For daily reviews:
For weekly reviews:
For monthly reviews:
For custom date range reviews:
Bot: "Daily spending review! Today you had 3 transactions totaling $47.32."
- Coffee at Blue Bottle: $5.50
- Lunch at Panera: $14.99
- Groceries at Whole Foods: $26.83
Nothing out of the ordinary. Have a good day!
Bot: "Here's your weekly spending summary (Jan 15–21):"
Total Spent: $684.50
By Category:
- Groceries: $185.40 (27%) — 6 transactions
- Dining: $156.20 (23%) — 8 transactions
- Transport: $120.00 (18%) — 2 transactions
- Entertainment: $98.50 (14%) — 3 transactions
- Subscriptions: $44.40 (6%) — 4 transactions
Top Merchants:
1. Whole Foods — 4 transactions, $126.30
2. DoorDash — 5 transactions, $89.40
3. Uber — 2 transactions, $120.00
📈 Alert: Your dining spending jumped to $156 this week, up from $89 last week. Special occasion or new routine?
Bot: "January Spending Summary:"
Total Spent: $2,847.60
By Category:
- Rent: $1,800 (63%)
- Groceries: $520 (18%)
- Dining: $287 (10%)
- Subscriptions: $148 (5%)
- Transport: $92 (3%)
⚠️ Subscription Alert: Netflix ($15.99), Spotify ($12.99), Adobe Cloud ($54.99), and 2 others.
Total subscriptions: $148/month. Same as last month—no new ones.
🎯 Reminder: You mentioned wanting to keep subscriptions under $150. You're right at that level!
Would you like me to continue tracking this goal and alert you if subscriptions exceed $150?
User: "Show me spending from Feb 1–10"
Bot: "February 1–10 Spending:"
Total: $547.30 (averaging $54.73/day)
By Category:
- Groceries: $185 (34%)
- Dining: $198 (36%)
- Transport: $98 (18%)
- Entertainment: $66 (12%)
Compared to Jan 1–10:
- Groceries: similar ($192)
- Dining: ↑ 23% ($161 → $198)
- Transport: ↓ 15% ($115 → $98)
💡 Your dining spending is trending upward. Anything new going on?