원클릭으로
spending-alerts
Monitor transactions for large charges, low balances, and unusual activity
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Monitor transactions for large charges, low balances, and unusual activity
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Daily financial summary — net worth, recent activity, payment due dates, alerts
Manage recurring scheduled tasks — add, list, pause, resume, remove
Build a custom dashboard view from a natural language request — query, API, React component, build, deploy
On-demand financial briefing — spending, balances, portfolio, transactions, reports, CSV export
Override transaction categories via natural language — update rules, reclassify
Guided first-bank setup — credentials, exploration, sync, extraction, import
| name | spending-alerts |
| description | Monitor transactions for large charges, low balances, and unusual activity |
| trigger | manual |
Check for alert conditions after each sync. Report if any trigger.
Check that data/foliome.db exists. If not, respond: "No financial data found. Run /sync first to populate your accounts."
Large transaction: Any single transaction over $500 (configurable)
SELECT date, description, ABS(amount) as amount, institution, user_category
FROM transactions
WHERE ABS(amount) > 500
AND date >= date('now', '-1 day')
AND amount < 0
Low balance: Checking account drops below $1,000
SELECT b.account_name, b.balance FROM balances b
INNER JOIN (SELECT account_id, MAX(synced_at) as ms FROM balances GROUP BY account_id) m
ON b.account_id = m.account_id AND b.synced_at = m.ms
WHERE b.account_type = 'checking' AND b.balance < 1000
Unusual spending: Daily spend exceeds 3x the 30-day average
WITH daily AS (
SELECT date, SUM(ABS(amount)) as day_total
FROM transactions WHERE amount < 0
GROUP BY date
),
avg30 AS (
SELECT AVG(day_total) as avg_daily FROM daily
WHERE date >= date('now', '-30 days')
)
SELECT d.date, d.day_total, a.avg_daily
FROM daily d, avg30 a
WHERE d.date = date('now') AND d.day_total > a.avg_daily * 3
Sync failure: Any institution failed to sync
SELECT institution, status, last_error, last_attempt
FROM sync_status WHERE status = 'failed'
Stale data: Any institution not synced in 48+ hours
SELECT institution, last_success
FROM sync_status
WHERE last_success < datetime('now', '-48 hours')
After each sync-all.js --import completes. The Telegram agent should check these conditions and proactively message if any trigger.
Users can set thresholds via Telegram:
Store thresholds in config/alert-config.json.