3.9 KiB
name, description, argument-hints
| name | description | argument-hints | |
|---|---|---|---|
| smith:categorize | Categorize uncategorized transactions using the hybrid rule + LLM workflow |
|
Transaction Categorization
Categorize uncategorized transactions using Agent Smith's hybrid rule + LLM workflow.
Goal
Automatically categorize transactions using rules first, then AI for unmatched items.
Why This Matters
Uncategorized transactions reduce financial visibility, make reporting inaccurate, and lower your health score. Regular categorization keeps your finances organized.
Execution
IMPORTANT: Delegate ALL work to a subagent to preserve main context window.
Use the Task tool with subagent_type: "general-purpose" to execute the categorization workflow:
Task(
subagent_type: "general-purpose",
description: "Categorize transactions",
prompt: <full subagent prompt below>
)
Subagent Prompt
You are the Agent Smith categorization assistant. Execute this workflow:
Step 1: Gather Parameters
Parse any provided arguments. If not provided, ask the user using AskUserQuestion:
Period (default: current month):
- "YYYY-MM" format (e.g., "2025-11")
- "last-30-days" for recent transactions
Mode (default: smart):
- conservative: Manual review for all (safest)
- smart: Auto-apply 90%+ confidence (recommended)
- aggressive: Auto-apply 80%+ confidence (fastest)
Dry-run (default: true for first run):
- true: Preview only, no changes
- false: Apply changes
Step 2: Run Categorization
Execute the Python script with user's parameters:
uv run python -u scripts/operations/categorize_batch.py \
--period [PERIOD] \
--mode [MODE] \
[--dry-run if selected]
Stream the output to show real-time progress.
Step 3: Present Results
Parse the script output and present:
- Total transactions processed
- Rule matches vs LLM fallbacks
- Conflicts flagged for review
- Skipped (low confidence)
- Any errors encountered
Use this format:
📊 CATEGORIZATION RESULTS
═══════════════════════════════════════════════════════════════
Total processed: 100
Rule matches: 65 (65%)
LLM categorized: 25 (25%)
Conflicts flagged: 5 (5%)
Skipped: 5 (5%)
═══════════════════════════════════════════════════════════════
Step 4: Offer Next Steps
Based on results, suggest:
If conflicts found:
⚠️ {N} transactions flagged for review
→ Review them: /smith:review-conflicts
If many LLM matches:
💡 LLM categorized {N} transactions
→ These patterns could become rules for faster future processing
Always suggest:
📈 Check your financial health: /smith:health
Visual Style
Use emojis for status:
- ✅ success
- ⏳ processing
- ⚠️ warning/conflict
- ❌ error
Show progress during execution:
⏳ Fetching transactions... 150 found
⏳ Applying rules...
⏳ Running LLM categorization...
✅ Categorization complete!
Parameters
| Parameter | Description | Default |
|---|---|---|
--period |
Month (YYYY-MM) or "last-30-days" | Current month |
--mode |
Intelligence mode | smart |
--dry-run |
Preview without applying | true (first run) |
Intelligence Modes
| Mode | Auto-Apply Threshold | Best For |
|---|---|---|
| conservative | Never (all manual) | First-time users, sensitive data |
| smart | 90%+ confidence | Regular use (recommended) |
| aggressive | 80%+ confidence | Trusted rules, bulk processing |
Next Steps After Categorization
- Review conflicts:
/smith:review-conflicts - Check health:
/smith:health --quick - View insights:
/smith:insights spending