הקובץ: metadata.json בשורש Otzaria/otzaria-library — https://github.com/Otzaria/otzaria-library/blob/main/metadata.json
מערך של 9,293 רשומות, אחת לספר, בצורה {"title": "...", "author": "...", ...}. ההתאמה לספר היא לפי title, וה-author הוא מחרוזת חופשית — בדיוק כמו שתיארתי.
מה שיש שם בפועל ברגע זה:
שם המחבר
מס' ספרים
רבי יצחק מאיר מגור [אלתר]
3 (חידושי הרימ על שו"ע)
יצחק מאיר רוטנברג (אלתר)
2 (חידושי הרי"מ על התורה, שו"ת חידושי הרי"מ)
רבי יהודה אריה ליב אלתר
7
רבי י־הודה ליב אלתר מגור
4 (ברכות, עירובין, פסחים, שבת)
יהודה אריה ליב אלתר
1 (שפת אמת)
שים לב לשורה הרביעית: י־הודה — יש שם מקף עברי (U+05BE) באמצע המילה. זה לא וריאציה לגיטימית, זו תקלת טקסט.
PR צריך לגעת בשלושה מקומות באותו commit, אחרת ה-CI נופל:
metadata.json — שדה author.
.github/data/locked_metadata.tsv — שורות author<TAB>שם הספר<TAB>שם המחבר. זהו קובץ נעילה: check_locked_metadata.py מוודא שהערך ב-metadata.json זהה לערך הנעול. שינוי בלי עדכון השורה כאן — ה-CI יכשל.
שורה 2 בקובץ ה-txt של הספר עצמו — שם המחבר כתוב גם שם, וגם הוא נעול (line2 באותו TSV). למשל DictaToOtzaria/ערוך/ספרים/אוצריא/הלכה/שולחן ערוך/מפרשים/חידושי הרימ/חידושי הרימ על שולחן ערוך אבן העזר.txt:
<h1>חידושי הרימ על שולחן ערוך אבן העזר</h1>
רבי יצחק מאיר מגור [אלתר]
<h2>הלכות פריה ורביה</h2>
לספרי ספריא יש מסלול רביעי — ForDB/sefaria_author_changes.csv.
ולגבי ההערה שלך על 'מחברים' בחיפוש משפט — צודק, ואני מתקן: ב-seforim.db כן יש טבלאות author ו-book_author, ומסנן המחברים נבנה מהן (lib/indexing/utils/book_facet_metadata_cache.dart). אבל הן נגזרות מהמחרוזת בזמן בניית המאגר: insertAuthor מחפש רשומה קיימת לפי השם המדויק ויוצר חדשה אם אין (seforim_repository.dart:631). כלומר שני כתיבים = שתי רשומות מחבר נפרדות במסנן. אין מזהה מחבר יציב שאפשר למזג אליו, והתיקון נשאר ברמת המחרוזת ב-metadata.json.