---
name: bank-transaction-reconciler
description: קולט, מנרמל ומתאים תנועות בנק וכרטיסי אשראי למערכת רואה חשבון, מזהה חיובים חוזרים/חריגים ומונע ספירה כפולה מול תזרים מתוכנן.
---

# Bank Transaction Reconciler

## מטרה
להפוך תנועות בנק וכרטיסי אשראי שהתקבלו ממקור מחובר, CSV/Excel, צילום או מסמך רשמי לנתונים שניתן להתאים בבטחה למקור האמת `רואה חשבון - מערכת פיננסית`.

ה־Skill אינו מניח שקיים חיבור חי לבנק. הוא משתמש רק במקור שהמערכת באמת יכולה לקרוא באותה שיחה/הרצה.

## כלל עליון
לפני פעולה משמעותית קרא את `docs/project-instructions.md` מתוך `main`. אין לשמור סיסמאות, קודי 2FA, PAT, tokens או פרטי התחברות לבנק/כרטיס ב־GitHub.

## מקורות קלט מותרים
לפי סדר אמינות:
1. תנועות ממקור בנקאי/כרטיס מחובר ומורשה בפועל.
2. קובץ CSV/Excel שיוצא מהבנק או מחברת האשראי.
3. דוח PDF/צילום/אישור רשמי שעבר דרך `financial-document-verifier`.
4. נתון שהמשתמש מסר במפורש — כ־`חדש` עד אימות ביצוע.

אין לטעון שקיימת בנקאות פתוחה/סנכרון חי אם אין בפועל Connector/Runtime פעיל ומאומת.

## תהליך עבודה
1. זהה בעלים, מוסד, חשבון/כרטיס, תאריך עסקה, תאריך ערך/חיוב, תיאור, סכום וסימן תנועה.
2. נרמל שמות בתי עסק ותיאורים בלי למחוק את התיאור המקורי.
3. סווג כל תנועה לקטגוריית מערכת קיימת; אם אין התאמה בטוחה, סמן `לא מסווג` במקום לנחש.
4. בצע Match מול תזרים מתוכנן, התחייבויות קבועות, מעקב תשלומים וחיובי כרטיסים.
5. Match → Update → Create: אם נמצאה התאמה לאירוע צפוי, עדכן אותו בפועל; צור אירוע חדש רק אם אין התאמה סבירה.
6. בצע anti-double-counting: חיוב כרטיס בעו״ש אינו הוצאה חדשה אם עסקאות הכרטיס כבר נרשמו כהוצאות. הוא אירוע סליקה/תזרים בלבד.
7. זיכוי/החזר אינו הכנסה שוטפת כברירת מחדל; התאם אותו לעסקה המקורית כאשר ניתן.
8. העברה בין חשבונות של משק הבית אינה הכנסה/הוצאה כלכלית, אלא העברה פנימית.
9. חיסכון/השקעה/פנסיה אינם צריכה. סווג בנפרד כדי לשמר תמונת תזרים והון נטו נכונה.
10. לאחר כל קליטה, בדוק השפעה על יתרת עו״ש, 30 יום, תקציב, אשראי ותחזית סוף חודש.

## זיהוי חוזרים וחריגים
- חיוב חוזר: ספק דומה + סכום/טווח סכום דומה + מחזוריות סבירה.
- חריגה: סכום חריג ביחס להיסטוריה, חיוב כפול אפשרי, ספק חדש מהותי, תאריך לא צפוי או תנועה שלא תואמת תכנון.
- אין לסמן הונאה או חיוב שגוי כעובדה; יש להציג `דורש בדיקה`.

## קטגוריות בסיס
העדף קטגוריות שכבר קיימות במקור האמת. אם נדרשת שכבת נרמול זמנית, ניתן להשתמש ב: דיור, מזון, תחבורה, שירותים/חשבונות, בריאות, חינוך, בילוי, ביטוח, אשראי/עמלות, חיסכון/השקעה, מסים, הכנסה, העברה פנימית, לא מסווג.

## נקודת חיבור ל־Skills אחרים
- מסמך/צילום חדש → `financial-document-verifier` קודם.
- אחרי התאמת תנועה → `cashflow-guardian` לעדכון השפעת 30 יום.
- חריגה תקציבית → `budget-planner`.
- שינוי בכרטיס/מועד חיוב → `credit-card-optimizer`.
- עמלה/עלות אשראי → `credit-profile-optimizer` או `debt-loan-strategist` לפי העניין.

## תנאי עצירה
סמן `WARN`/`דורש אימות` אם חסרים בעלים, חשבון/כרטיס, סכום, תאריך או שקיימות שתי התאמות סבירות לאותו אירוע.
סמן `FAIL` אם הנתונים סותרים מהותית מקור מאומת ואין דרך לקבוע מה נכון.

## חוזה תוצאה
- `status`: `PASS` | `WARN` | `FAIL`
- `data_state`: `מאומת` | `חדש` | `מחושב` | `דורש אימות`
- `source`: מקור התנועות
- `impact`: תזרים/תקציב/אשראי/הון לפי הרלוונטיות
- `decision`: אילו תנועות הותאמו, עודכנו או נוצרו ומה דורש בדיקה
- `next_check`: מה צריך לאמת במחזור הבא

## פלט למשתמש
הצג קודם את השינוי המעשי: מה ירד/נכנס בפועל, האם התזרים השתנה, ומה חריג. אל תציג את מנגנון ההתאמה הפנימי אלא אם נשאלת עליו.