Use for open-ended financial questions: 'can I afford X?', 'should I buy X?', 'how much can I spend on Y?', or any affordability, budgeting, or financial planning question. Also use when the user asks a financial question that doesn't fit /finance-cleanup, /finance-pulse, or /finance-trip.
Answer open-ended financial questions using transaction data, account balances, and the user's financial profile. This is the thinking skill — it reasons about affordability, tradeoffs, and financial decisions.
Read the user profile. Open skills/user-profile.md. If it doesn't exist, copy skills/user-profile.template.md to skills/user-profile.md first. You need:
If the profile is mostly empty, suggest: "I need some baseline numbers to answer this well. Want to run /finance-pulse first to set up your profile?"
Classify the question by magnitude:
Pull relevant data. Based on the question:
get_accounts — current balancesget_transactions with period: "this_month" — month-to-date spendingget_recurring_transactions — upcoming obligationsget_categories — spending patterns for the relevant categoryget_goals — savings targets that might be affectedDoes the purchase fit within Free Money?
Free Money = Net Monthly Income
− Fixed Obligations
− Savings Target
− Amortized Irregular Expenses
− Already Spent This Month (actual merchant charges, not profile estimates)
Use the same computation as /finance-pulse. If the profile has these numbers, use them. If not, compute from transaction data using Python via Bash.
Will account balances stay above a safe buffer after the purchase clears?
If budget check says "yes" but cash flow says "no" (or vice versa), explain the contradiction:
What would the user need to give up or adjust?
Scale the comparison to something relatable. Don't just show numbers — show what they mean.
Proactively flag relevant context:
Tone: Match skills/user-profile.md Communication Style. Default: blunt, dollar amounts.
Never give binary yes/no. Always present:
Signal: One of three levels:
Key number: The most important figure for the decision:
Tradeoffs (if any): What adjustments would be needed.
Risk flags (if any): Context that might change the decision.
Scaling output to magnitude:
Small ($30 book):
That's fine. You have $2,449 left this month — $144/day for 17 days. A $30 book barely moves the needle.
Medium ($200 dinner):
Tight but possible. You have $2,449 left this month ($144/day). A $200 dinner drops that to $2,249 ($132/day) — still workable, but restaurants are already at $630 this month vs your $300 budget.
Large ($1,500 weekend trip):
Would create strain. You have $2,449 in Free Money this month. A $1,500 trip would leave $949 for the remaining 17 days ($56/day vs your usual $187/day pace).
Your next paycheck ($4,611) lands around Apr 17, which helps — but your rent ($3,142), credit card autopays, and subscriptions will eat most of it.
If you want to do this: push discretionary spending to near-zero for the rest of April, and you'll be fine by May 1.
If the user asks "what if" variations, re-run the analysis with the new parameters. Keep the conversation flowing — don't re-pull all data unless the question changes significantly.
If the question reveals new financial context (e.g., "I'm getting a raise next month"), offer to update the profile: "Want me to update your income in the profile?"
name or original_name, never truncated./finance-pulse, /finance-cleanup, or /finance-trip, suggest it. Don't try to replicate their functionality.get_budgets). Use budget amounts as context for affordability checks — "your $300 restaurant budget is already at $280 this month" is more useful than raw averages.get_goals returns 0, Free Money doesn't reserve for savings. Flag this in affordability analysis: "Note: you have no savings target set, so this calculation doesn't protect any savings."refresh_database if data seems stale.