חיבורים
מה באמת מתחבר, ומה לא
אתר שנבנה כאן לא מחזיק שום פרטי גישה, והמדיניות שלו אוסרת עליו לפנות לכתובת חיצונית בכלל. זו לא הגבלה זמנית — זו הסיבה שאפשר להריץ קוד של אנשים אחרים בלי לסכן אותם.
אז האתר פונה אלינו, ואנחנו פונים למקור. אלה ארבעת המקורות שקיימים, ואחריהם מה שלא קיים.
כניסת ויציאת שבת
האם העסק פתוח ברגע זה, ומתי זה משתנה. לוח השנה נשמר ליום, אבל התשובה מחושבת בכל בקשה — «פתוח» היא עובדה על השעון, והיא הייתה שגויה דקות אחרי שנשמרה. גם טופס הזמנת תור יכול לשאול את זה לפני שהוא מקבל תור לעשרים אחרי ההדלקה.
await shabbat.status("tel-aviv")- המידע שייך ל־
- Hebcal
- תשובה נשמרת ל־
- יממה
- אם המקור לא זמין
- עונה מהעותק האחרון, ומסמן בתשובה שהוא ישן.
החגים הקרובים
התאריכים שעסק צריך לתכנן סביבם: סגירה מוקדמת, משלוח שלא יגיע, דיוור שלא כדאי שיצא. לכל תאריך מסומן אם זה יום שבו העבודה נעצרת — לפי הסימון של המקור עצמו, לא לפי פרשנות שלנו.
await holidays.upcoming(5)- המידע שייך ל־
- Hebcal
- תשובה נשמרת ל־
- יממה
- אם המקור לא זמין
- עונה מהעותק האחרון, ומסמן בתשובה שהוא ישן.
התרעות פעילות
רשימה ריקה אומרת שבדקנו ואין. שגיאה אומרת שלא הצלחנו לבדוק — וזה לא אותו דבר. קוד האיום מועבר כמו שהוא ולא מתורגם: אין מיפוי מפורסם מהקודים האלה לעברית, והמצאה של אחד במסר של פיקוח נפש היא המקום האחרון לנחש בו.
await alerts.active()- המידע שייך ל־
- פיקוד העורף
- תשובה נשמרת ל־
- 30 שניות
- אם המקור לא זמין
- לא עונה בכלל. «אין התרעות» מעותק ישן אינו מידע ישן — הוא הודעת הרגעה שקרית.
שערי מטבע
השערים היציגים כפי שהם מתפרסמים. לכל שער מצורפת היחידה, כי היֵן מצוטט לפי 100 — אתר שמדפיס את המספר לבדו טועה בשתי סְפרות.
await rates.today()- המידע שייך ל־
- בנק ישראל
- תשובה נשמרת ל־
- 6 שעות
- אם המקור לא זמין
- עונה מהעותק האחרון, ומסמן בתשובה שהוא ישן.
שלוש כתובות, ורשימת ערים סגורה
השרת שלנו מדבר עם שלוש כתובות בלבד, והן כתובות ברשימה סגורה בקוד. מה שמבקר הקליד לעולם לא הופך לכתובת שנפנה אליה — זה מה שמונע ממנגנון כזה להפוך לדלת אחורית.
שאלה על עיר מותרת רק עבור 28 הערים שמופיעות ברשימה, וכל אחת מהן אומתה מול המקור. עיר שלא ברשימה נדחית ולא נשלחת החוצה.
כל תשובה חוזרת עם הזמן שבו נבדקה ועם ייחוס לבעלים של המידע, כדי שאתר שמציג מידע חי יוכל לומר מתי הוא הסתכל.
לחבר סוכן למערכת
שרת MCP שמאפשר לסוכן — Claude Code, Cursor, כל דבר שמדבר בפרוטוקול — להפעיל את המערכת מקצה לקצה. הוא לקוח דק מעל אותו API שהדפדפן משתמש בו, ולא מימוש שני: כל בדיקת בעלות ומגבלה כבר יושבות מאחורי המסלולים האלה.
ההזדהות היא מפתח API שמונפק במסך ההגדרות. המפתח מזהה משתמש, וכל מסלול שהוא מגיע אליו עדיין בודק שהאפליקציה שייכת לו — מפתח הוא דרך פנימה, אף פעם לא דרך לעקוף.
פתוח בכל החבילות, כולל החינמית.
list_appsמציג את כל הפרויקטים שהמפתח הזה מחזיק, עם הכתובת החיה של כל אחד.
create_appפותח פרויקט חדש וריק ומחזיר את הכתובת שלו.
build_appבונה או משנה פרויקט מתיאור בשפה חופשית, ומחזיר את כל שלבי הבנייה.
get_appכל מה שיש בפרויקט אחד: הקבצים, הטבלאות וההרשאות שלהן, הגרסאות והשיחה.
read_recordsקורא את השורות שהפרויקט שמר, בתור בעל הפרויקט.
list_templatesמדפדף בקטלוג התבניות ומחפש בו.
use_templateמשכפל תבנית לפרויקט חדש — הקוד והטבלאות עוברים, הנתונים לא.
search_skillsמחפש בספרייה הזו ומחזיר את ההנחיה עצמה, עם הרישיון והמקור.
בספרייה אפשר לראות את אותם כלים לצד הידע שהבנייה שולפת ממנו.
דלתות פתוחות בלי מפתח
קטלוג התבניות מוגש גם כ־JSON, בלי הזדהות: תבנית שכבר רצה בכתובת ציבורית אינה סוד, וסוכן שבודק ממה אפשר להתחיל לא צריך חשבון בשביל זה.
ספריית הידע הישראלי נגישה באותה דרך, עם הרישיון והמקור של כל פריט — כי זו עבודה של אנשים אחרים, וייחוס שמסתתר בהערה בקוד הוא ייחוס שמקיים רישיון ומפספס את הנקודה שלו.
ומה שלא קיים
ארבעה חיבורים שהיה נוח לצייר להם לוגו. הם לא נבנו, ולכן הם כתובים כאן ולא בקטן.
לא Slack, לא Google, לא HubSpot, לא Zapier. חיבור בלחיצה מחייב להחזיק אסימון של חשבון אחר, וזה לא נבנה — אז זה גם לא מופיע כאן כלוגו.
המערכת שולחת דואר אימות למי שנרשם לאתר שלכם. שליחת דואר מתוך הקוד של האתר עצמו — אישור הזמנה, תזכורת — לא קיימת.
אפשר לבנות קטלוג וטופס הזמנה שנשמר כרשומה. תשלום בפועל והעלאת תמונה מתוך אתר בנוי אינם קיימים בשום מקום בקוד.
אין כתובת שמערכת חיצונית יכולה לדחוף אליה אירוע. הכיוון היחיד שקיים הוא החוצה: סוכן שמפעיל את המערכת דרך MCP או מפתח API.