Sync Baneco Pipeline
All python commands MUST use .venv/bin/python (not python or python3).
When the user runs this skill:
- •
Run the export + convert pipeline:
.venv/bin/python -m baneco --dry-run [--since-date YYYY-MM-DD if provided](This opens the browser, exports CSV, converts transactions, saves to baneco_transactions.json) - •
Load the converted transactions:
.venv/bin/python -c "import json; from baneco import load_pending_transactions; print(json.dumps(load_pending_transactions()))" - •
Read
baneco_rules.mdfor deterministic rules - •
Fetch BOB Budget categories (returns
[{"id": "uuid", "name": "Category Name"}, ...]):.venv/bin/python -c "import json; from baneco import get_bob_categories; print(json.dumps(get_bob_categories()))" - •
For each transaction: a. Apply payee+category rules from baneco_rules.md (pattern matching on memo) b. Apply category-only rules (keyword matching on memo) c. For unmatched: use AI judgment based on memo text + AI Guidance section in baneco_rules.md d. Fuzzy-match the rule's category name against actual YNAB category names (ignore emojis) e. Set
category_idon the transaction using the matched category'sid(YNAB requires the UUID, not a name) - •
If --auto-accept was passed: skip to step 8
- •
Show the user a table:
Date | Amount | Payee | Category | Memo (truncated) | Source (rule/AI)Ask user to approve or adjust - •
Write the final categorized transactions back to
baneco_transactions.json, then import to YNAB:.venv/bin/python -c "import json, sys; from baneco import import_to_ynab; txns = json.loads(sys.stdin.read()); result = import_to_ynab(txns); print(json.dumps(result))"(pipe the JSON via stdin)