01 / whatמה בערכה
ה-skill הכללי. סורק תיקייה על כל תת-התיקיות, שואל רק מה שאי-אפשר לגזור מהקבצים, כותב <שם>-metadata.json / .xlsx / .pdf בפריסה של משרד התחבורה ומפיק דוח פערים בעברית.
פרופיל לסקרי און-בורד לפי הפורמט האחוד 1.0: קבצי החובה, השדות והמפתחות, הכותרות הנוספות (Contractor, Daily periods, Vehicle types…) ובלוק הסקר.
פרופיל לחבילת SensorDataSal_*.zip לפי פורמט הגלאים 1.02: שלוש הטבלאות, שמות השדות בעברית, סוגי הרכב וכלל ה-NA.
תיקונים מכניים שהדוח מצביע עליהם: שמות קבצים עם תווים בלתי נראים/רווחים, קידוד 1255 → UTF-8, קובץ .cpg חסר, פגמי מטא-דאטה (אותיות, תאריכים, .zip). תמיד dry-run קודם, גיבוי ויומן שינויים.
02 / requirementsדרישות
- Python 3.10 ומעלה. אין מה להתקין ידנית: בהרצה הראשונה (או עם
setup) הסקריפט מתקין לבד את מה שחסר —openpyxl(חובה),pyshp/pyproj(שכבות GIS),xlrd(קבצי .xls ישנים),pyarrow(קבצי Parquet). - נסרקים: CSV (כולל UTF-16 / Windows-1255 / gzip), Excel (xlsx + xls), Parquet, Shapefile, GeoJSON, GeoPackage, ZIP — כולל zip בתוך zip — ו-GTFS. גודל כל קובץ נרשם ביחידה המתאימה (KB / MB / GB) ולצידה מספר הבייטים המדויק.
- ל-PDF נדרש דפדפן כרומיום מותקן (Chrome / Edge). בלעדיו נשמר HTML במקום PDF.
- ללא סביבת הרצה (צ'אט בלבד) ה-skill עובד ידנית לפי המסמכים שב-
references/— איטי יותר, אותם כללים.
03 / installהתקנה
Claude Code
- העתיקו את התיקייה
mot-metadata-kitלמיקום קבוע, למשלG:\tools\mot-metadata-kit. - מתקינים בשתי פקודות מתוך Claude Code — זו הדרך המומלצת, וכך גם מקבלים עדכונים בהמשך (
/plugin update mot-metadata-kit):לחלופין, מתיקייה מקומית:/plugin marketplace add g-bd/mot-metadata-kit /plugin install mot-metadata-kit@mot-metadata-kit
claude --plugin-dir G: ools\mot-metadata-kit, או העתקת התיקיות מ-skills/אל%USERPROFILE%\.claude\skills\. - הריצו פעם אחת
python skills/mot-metadata/scripts/mot_metadata.py setup— מתקין/מוודא את כל חבילות ה-Python ובודק שיש דפדפן ל-PDF. - בדקו ש-
/mot-metadataמופיע בהשלמת הפקודות. ה-skill מופעל גם אוטומטית כשמבקשים "מטא-דאטה", "נוהל הפצת מידע", "און-בורד" או "גלאים".
Claude.ai
- הגדרות ← Capabilities ← Skills ← העלאת skill. ארזו כל תיקיית skill (
SKILL.md+references/+scripts/) כ-ZIP. אתmot-onboardו-mot-sensorsהעלו יחד עםmot-metadata— הם משתמשים בסקריפטים שלו. - בשיחה צרפו את קבצי הנתונים (או ZIP של התיקייה) ובקשו "הכן מטא-דאטה לפי הנוהל". Claude מריץ את הסקריפטים בסביבת הקוד שלו ומחזיר את הקבצים.
- בלי סביבת קוד — Claude עובד ידנית לפי
references/guidelines-v1.3.md.
ChatGPT
- צרו Project (או GPT מותאם). ב-Instructions הדביקו את
skills/mot-metadata/SKILL.md(ולפי הצורך גם את SKILL.md של האון-בורד או הגלאים). - בקבצי ה-Project העלו את
references/ו-scripts/(ZIP). עם Code Interpreter פעיל ChatGPT מריץ אתmot_metadata.pyעל הקבצים שמעלים לשיחה. - עבודה עם קבצים שמעלים לצ'אט (אין גישה לתיקיות מקומיות): מעלים את קבצי הנתונים או ZIP אחד של התיקייה; ה-GPT מחלץ אותם לתיקיית עבודה בסביבת הקוד ומריץ עליה את הסקריפטים בדיוק כמו על תיקייה מקומית, ומחזיר להורדה את metadata.xlsx/json/html והדוח. PDF לא זמין שם (אין דפדפן) — מתקבל HTML במקום.
- הערה: בסביבת הקוד של ChatGPT אין אינטרנט — ההתקנה האוטומטית של חבילות לא תעבוד, אבל
openpyxlכבר מותקן שם, כך שהליבה עובדת; שכבות GIS ייסרקו חלקית אםpyshpחסר. - הבקשה זהה: "סרוק את הקבצים, שאל אותי מה שצריך, הפק metadata.xlsx ודוח".
04 / useשימוש יומיומי
א. יצירת מטא-דאטה לתיקייה
אומרים: "הכן מטא-דאטה לפי נוהל ההפצה לתיקייה G:\data\survey_2026". מאחורי הקלעים:
- סריקה — כל הקבצים וכל תת-התיקיות: כותרות, סוגי שדות, ערכים מקודדים, שכבות GIS (היטל, תיחום, גיאומטריה), תוכן ZIP ו-GTFS. גם התיעוד נקרא (README / PDF / DOCX): שורות בסגנון
field | descriptionהופכות אוטומטית לתיאור השדה (ומסומנות בדוח "לאימות"), ואזכורים אחרים מצורפים כרמזים. - תשאול קצר — רק מה שהקבצים והתיעוד לא יודעים: סוג סט הנתונים (סקר סטטיסטי? ← בלוק הסקר חובה), מפרסם, איש קשר, שם, תיאור, כיסוי זמני ומרחבי, תיאור לכל קובץ ולשדות שה-README לא הסביר. התשובות נשמרות ב-
metadata-config.json— בפעם הבאה לא שואלים שוב. - בנייה —
<שם>-metadata.json(קנוני),.xlsx(פריסת משרד התחבורה) ו-.pdf. - דוח —
metadata-report.htmlבעברית. פריטים שלא נענו מסומניםTODOומופיעים ברשימה להשלמה.
python skills/mot-metadata/scripts/mot_metadata.py init <folder> # intake template python skills/mot-metadata/scripts/mot_metadata.py build <folder> --name my_dataset python skills/mot-metadata/scripts/mot_metadata.py build <folder> --profile onboard python skills/mot-metadata/scripts/mot_metadata.py build <folder> --profile sensors
ב. בדיקת מטא-דאטה קיים
"בדוק את metadata.xlsx בתיקייה X מול הנוהל" — ה-skill מאתר את הקובץ, משווה לנוהל, לפרופיל ולקבצים, ומסכם. קוד יציאה 1 כשיש שגיאות (נוח לאוטומציה).
python skills/mot-metadata/scripts/mot_metadata.py validate <folder> --metadata metadata.xlsx [--profile onboard] [--kind survey] [--out-dir D]בדיקות עומק (--deep, מרצון — הן קוראות את קבצי הנתונים עצמם): values — רשימת הערכים המתועדת מול הקודים שבעמודה; temporal — טווח הזמן שבמטא-דאטה מול התאריכים שבנתונים; joins — המפתחות המוצהרים (ערכים "יתומים"); zones — לסקרי און-בורד: מאתר את שדה המפתח של שכבת האזורים (zone_id, YISHUV_STA, YISHUV_STAT_2022, STAT11, TAZ), אומר איזה שדה נמצא, ופותר מולו את zone_id_orig/dest שבשאלונים (הקודים המתועדים −1..−4 מותרים). report — בדיקת שפיות של דוח הסקר (PDF) מול הקבצים: מספר הרשומות וסכומי עמודות המשקל מחופשים בדוח (מדויק או מעוגל), וכל שורת טבלה בדוח שמתחילה בתווית של קוד מתועד נבדקת מול הקבצים — ספירה ואחוז, ללא שקלול ובכל עמודת משקל; שורה שאינה תואמת היא אזהרה, לעולם לא שגיאה. --deep all מריץ את כולן. גם בעומק הערכה בודקת התאמה בלבד — לעולם לא נכונות של נתון.
python skills/mot-metadata/scripts/mot_metadata.py validate <folder> --profile onboard --deep allג. אריזה להפצה
"ארוז את סט הנתונים להפצה" — בונה את קובץ ה-ZIP בשם שב-Dataset file (קבצי הנתונים, המטא-דאטה והמסמכים הנלווים, כולל קבצי הלוואי של שכבות) וכותב package-checklist.json: האם הכל ברשימה נמצא, מה בתיקייה נשאר בחוץ.
python skills/mot-metadata/scripts/mot_metadata.py package <folder> --metadata <name>-metadata.xlsxד. תיקון מטא-דאטה לא טוב
"המטא-דאטה לא עומד בנוהל — תכין גרסה מתוקנת". הקובץ הישן משמש מקור לתיאורים (לא מאבדים עבודה), וכל מה שמבני נבנה מחדש מהקבצים האמיתיים. המקור לא נדרס.
python skills/mot-metadata/scripts/mot_metadata.py build <folder> --from old-metadata.xlsx --profile onboardה. תיקון הקבצים עצמם (mot-fix)
כשהדוח מצביע על שמות קבצים עם תווים בלתי נראים, קידוד Windows-1255, .cpg חסר או פגמים טכניים בקובץ המטא-דאטה — "תקן את הקבצים לפי הדוח". תחילה מוצגת בצ'אט תכנית ממוספרת (1, 2, 3…) של כל שינוי — שינוי שם, המרת קידוד, תיקון במטא-דאטה — ורק אחרי שמאשרים (אפשר גם חלקית, לפי המספרים) מריצים --apply, עם גיבוי ב-_mot_backup_* ויומן fix-log.json. ערכי הנתונים לעולם לא משתנים; שמות עמודות בעברית מוחלפים רק לפי מיפוי שאתם מספקים.
python skills/mot-metadata/scripts/mot_fix.py <folder> --metadata metadata.xlsx # dry run python skills/mot-metadata/scripts/mot_fix.py <folder> --metadata metadata.xlsx --apply
05 / reportאיך לקרוא את הדוח
| חומרה | משמעות | דוגמאות |
|---|---|---|
| שגיאה | הנוהל מופר — חובה לתקן לפני הפצה | מפתח חובה חסר; סקר ללא בלוק סקר; שדה קיים בקובץ ואינו מתועד; שכבה ללא היטל/תיחום; תאריך לא ב-dd/mm/yyyy; קובץ ברשימה שאינו בתיקייה |
| אזהרה | כנראה שגוי או חסר — שיקול דעת | שם שדה בעברית/עם רווחים; Integer עם ערך "23א"; version במקום Version; קובץ בתיקייה שאינו במטא-דאטה |
| הערה | הצעה לשיפור | שדה עם מעט ערכים — אולי מקודד; מילות מפתח לא מנספח א'; מסמך שאינו ב-Related documents |
הדוח מחולק לפי חלקי הנוהל: כותרת (טבלה 1), בלוק הסקר (טבלה 2), הקבצים (טבלה 3), השדות (טבלה 4), רשימת המפתחות, התאמה לתיקייה, כללי שמות (5.7) והפורמט הייעודי. הטקסט בעברית, הטבלאות משמאל לימין.
"הפורמט אינו דורש" — ממצא שמסומן כך (ובקובץ findings.json: "bucket": "kit_format_exempt") הוא ממצא שהפורמט עצמו אינו דורש, ולכן הוא נרשם ונספר אך אינו חוסם הפצה: שדותיו של קובץ הפצה המועבר כפי שהוא (GTFS או רישוי — טבלה 5), obod.csv ו-zones.zip של סקר ספירות בלבד, ושדות מזהים שהפורמט אוסר לכלול בקובץ ההפצה. ההיעדר נאמר — אך אינו נזקף לחובת החבילה.
ערך שתועד כלא ידוע הוא תשובה — מפתח חובה טקסטואלי (למשל Contractor, Author, Contact) שנרשם בו במפורש לא ידוע או לא ידוע — לא תועד במקורות נחשב ענוי: הוא אינו מסומן TODO, מדווח כהערה (value_unknown_documented) כדי שיישאר גלוי, ומודפס בדוח תחת ”ערכים שתועדו כלא ידועים“ — ולא ברשימת ה-TODO. תא ריק, TODO, ? או N/A אינם תשובה ונשארים שגיאה.
06 / scopeמה הערכה לא עושה
- לא ממציאה מפרסם, איש קשר או תיאורים — שואלת, או משאירה
TODOואומרת זאת. - לא כותבת בכיסוי המרחבי את הנוסח ”השטחים הכבושים“ (או מקבילו באנגלית) — גם כשמבקשים. הכיסוי נכתב כפי שהנוהל מבקש (ארצי / מטרופולין / יישוב) או בשם המנהלי הרשמי (מחוז, אזור יהודה ושומרון); ערך כזה בקובץ התצורה מוחזר ל-
TODOונרשם בדוח, וקובץ מטא-דאטה שכבר מכיל אותו מקבל שגיאהspatial_coverage_wording. - לא כותבת מלל עברי כסימני שאלה, ולא מקבלת כזה: עמודה שערכיה
????או תו החלפה, או שהעברית בה נקראה בקידוד שגוי (mojibake), מדווחת כשגיאה (text_lost_as_question_marks/hebrew_mojibake), וכך גם ערך פגום במסמך המטא-דאטה עצמו (metadata_value_question_marks). תווים כאלה אבדו ואינם ניתנים לשחזור — הפתרון הוא הפקה מחדש מהמקור ב-UTF-8. כל פלט שהערכה כותבת (json / xlsx / csv / html) נקרא בחזרה כדי לוודא שהעברית שבו שרדה, וב-PDF נבדק שניתן לחלץ את העברית של הכותרת (pdf_hebrew_not_rendered). - לא משנה את קבצי הנתונים ולא דורסת את קובץ המטא-דאטה המקורי.
- לא בודקת נכונות נתונים (ספירות, מקדמי ניפוח, גיאומטריה). לגלאים — מערכת sensor-sal עושה את זה.
- ספירות תנועה (פורמט אחוד לספירות, גרסה 3.0) — מחוץ לנוהל (סעיף 6) ומחוץ לערכה.
07 / versionsעדכון גרסאות הנוהל והפורמטים
המפרטים ארוזים בערכה (references/) עם גרסה ותאריך. check-spec --online מנסה לזהות גרסה חדשה ב-gov.il; האתר חוסם גישה אוטומטית, ולכן כשזה נכשל פותחים את העמוד בדפדפן ומשווים ל-spec-sources.json.
| מפרט | גרסה ארוזה | עמוד |
|---|---|---|
| נוהל הכנה, תיעוד והפצה | 1.3 · 15/05/2024 | data_distribution |
| פורמט אחוד לסקרי און-בורד | 1.0 · 13/11/2024 | transportation-data-distribution |
| פורמט נתוני ספירות גלאים | 1.02 · 31/05/2026 (מהמייל; העמוד טרם עלה) | uniform_format_traffic_sensors |
כשמתפרסמת גרסה חדשה: מורידים את ה-PDF ומריצים את עוזר העדכון — הוא מחלץ את טבלאות המפתחות מהמסמך ומפיק diff מול המילון הארוז (מפתחות חדשים, מפתחות שלא נמצאו, שינויי סטטוס, קבצים/שדות חדשים בפרופיל) עם קטע JSON מוכן להדבקה. שום דבר לא משתנה אוטומטית — מאשרים, ואז מעדכנים את spec.json / profile.json, את ה-markdown ואת spec-sources.json.
python skills/mot-metadata/scripts/spec_update.py new-guideline-v1.4.pdf python skills/mot-metadata/scripts/spec_update.py onboard-v1.1.pdf --profile onboard
08 / downloadsהורדות
הערכה כולה היא תיקיית קבצים — אין התקנה ואין שרת. אפשר להתקין מ-GitHub בשתי פקודות (למעלה), ואפשר פשוט להוריד:
| קובץ | למי | מה בפנים |
|---|---|---|
| mot-metadata-kit-v0.7.6.zip | Claude Code, שימוש ידני, התקנה מקומית | ארבעת ה-skills, הסקריפטים, המפרטים ב-references/, המדריך הזה והבדיקות |
| mot-metadata-skill-v0.7.6.zip | ChatGPT / Claude.ai — העלאת skill יחיד | ה-skill הכללי בלבד (mot-metadata) עם הסקריפטים והמפרט |
| github.com/g-bd/mot-metadata-kit | מי שרוצה את הקוד, היסטוריה ועדכונים | הריפו הציבורי; גרסאות ב-Releases |
python skills/mot-metadata/scripts/mot_metadata.py setup. מי שהתקין דרך Claude Code מקבל עדכונים ב-/plugin update mot-metadata-kit.09 / changelogמה חדש
| גרסה | תאריך | מה השתנה |
|---|---|---|
| 0.7.6 | 21/10/2026 | יומן השינויים הזה (וגם CHANGELOG.md); בכותרת המדריך מופיעים מספר הגרסה המלא ותאריך השחרור. |
| 0.7.5 | 20/10/2026 | בדיקת הדוח מול הקבצים (--deep report, כלולה ב---deep all): מספר הרשומות וסכומי המשקלות מחופשים בדוח הסקר, וכל שורת טבלה בדוח שמתחילה בתווית של קוד מתועד מושווית לקבצים (ספירה ואחוז, ללא שקלול ובכל עמודת משקל). אי-התאמה היא אזהרה, לא שגיאה. בנוסף: מסמך (PDF, DOCX) שרשום ב-Files list אינו צריך בלוק תיאור, ואינו מדווח כחסר כשהוא בתיקייה. |
| 0.7.4 | 07/09/2026 | שמירה על העברית: טקסט שהפך לסימני שאלה או לג'יבריש בנתונים, במטא-דאטה ובפלטי הערכה; ערכים מוסכמים של הפורמט (Null, not_recorded) אינם נחשבים טעות סוג; אין נתיבים מלאים במטא-דאטה. |
| 0.7.3 | 03/09/2026 | קבצי Parquet; גודל קובץ ביחידה מתאימה ובבתים מדויקים; Spatial coverage לעולם אינו "השטחים הכבושים". |
| 0.7.2 | 03/09/2026 | מערכת קואורדינטות מוסקת מהתיחום כשקובץ ה-.prj חסר. |
| 0.7.1 | 26/08/2026 | ערך "לא ידוע" מתועד הוא תשובה ולא TODO; קודי האזורים של הפורמט אינם יתומים; קבצי DBF בלי קידוד מוצהר. |
| 0.7.0 | 26/08/2026 | --deep zones, קבוצת "הפורמט אינו דורש", --out-dir; הרחבות לפרופיל האון-בורד. |
| 0.6 | 24/08/2026 | האתר, עמוד המשרד ובדיקת דליפות לפני פרסום. |
| 0.5.0 | 24/08/2026 | גרסה ראשונה: mot-metadata, mot-onboard, mot-sensors, mot-fix. |
10 / layoutמבנה הערכה
mot-metadata-kit/
.claude-plugin/plugin.json
GUIDE-he.html ← this guide
requirements.txt
skills/
mot-metadata/ SKILL.md references/{spec.json, guidelines-v1.3.md, spec-sources.json, examples/}
scripts/{mot_metadata.py, motmeta/}
mot-onboard/ SKILL.md references/{profile.json, onboard-format-v1.0.md, example-….json}
mot-sensors/ SKILL.md references/{profile.json, sensor-format-v1.02.md, example-….json}
mot-fix/ SKILL.md (uses ../mot-metadata/scripts/mot_fix.py)
scripts also include: spec_update.py (diff a new spec PDF against the bundled dictionary)