Spark Creative Solutions

Spark Creative Solutions · מודול 1

מודול 1 · 7 בנובמבר 2026

שיפור עצמי רקורסיבי לעוזר ה-AI שלך: ההגדרה במינימום קרדיטים

לכיתה שלי ולחברים. נכתב מתוך יום עבודה אחד על ההגדרה שלי, 7 בנובמבר 2026. עובד עם Claude, ChatGPT או Gemini, על Windows או Mac; שום דבר כאן לא דורש מכם להיות מתכנתים. כל שלב אומר איפה הדבר נמצא בכל אפליקציה.

למה זה עובד

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

  • כל תוסף, מחבר וכלי שהדלקתם נטען לכל הודעה והודעה, בין אם אתם משתמשים בו ובין אם לא. עשרים כלים בטלים עולים לכם בכל תור של כל צ'אט.
  • צילומי מסך. בכל פעם שהעוזר שלכם מסתכל על המסך או מפעיל דפדפן דרך תמונות, הוא משלם פי מאות יותר מאשר על קריאת טקסט.
  • הסברים חוזרים. כל צ'אט חדש שמתחיל עיוור מכריח אתכם להקליד שוב את המצב שלכם, ומכריח את העוזר לחפש בזיכרון ובצ'אטים ישנים כדי להתעדכן. החיפוש הזה עולה יותר מההודעה שלכם.
  • משימות מתוזמנות שקוראות הכול כל בוקר על המודל הכי יקר, כדי להפיק דף שאתם אף פעם לא פותחים.

הרעיון האחד מאחורי כל ההגדרה: העוזר שלכם קורא קובץ זעיר אחד בהתחלה וכותב קובץ זעיר אחד בסוף. כל השאר הוא גיזום. החשבון שלי עבר מארבע ריצות בוקר כבדות לאחת, ומ"תגיד לי שוב איפה היינו" לקובץ של 300 טוקנים שהעוזר קורא לפני שהוא מדבר. אותם מהלכים עובדים ב-Claude, ב-ChatGPT וב-Gemini, כי הם הרגלים וקבצים, לא פיצ'רים.

מה צריך וכמה זה עולה

תוכנית אחת בתשלום לעוזר, אפליקציית הדסקטופ החינמית שלו, תיקייה אחת במחשב שלכם, ובערך 40 דקות. כל השאר במדריך הזה חינם.

פריטעלותהערות
תוכנית לעוזרהדרגה הסטנדרטית בתשלום של אפליקציה אחת (Claude Pro, ChatGPT Plus או Google AI Pro)הדרגות החינמיות מספיקות להרגלי הקבצים אבל מגבילות שימוש כבד. עברו לדרגה העליונה רק אם אתם נתקלים במגבלה ברוב הימים. אף פעם לא שתי תוכניות בתשלום במקביל.
אפליקציית הדסקטופ של אותו עוזרחינםנחוצה לקריאת תיקייה במחשב שלכם. Windows ו-Mac.
עורך טקסטחינםNotepad ב-Windows, TextEdit ב-Mac, או Obsidian (חינם, טוב יותר, אופציונלי).
חשבון Googleחינםלאוטומציה החינמית (Apps Script) בשלב 6 ולעוזר הזול בשלב 5.
Pythonחינםרק לסקריפט הדופק (pulse) האופציונלי בשלב 4. ב-Mac הוא כבר קיים; ב-Windows מתקינים אותו מ-python.org בשתי לחיצות.
תקרת הוצאה0מגדירים ביום הראשון: תקרה חודשית, טעינה אוטומטית כבויה. התקרה היא מה שהופך את הניסויים לבטוחים.

הניחו Windows אלא אם יש לכם Mac; לכל שלב למטה יש את שניהם. טלפונים הם לקריאה, לא להגדרה הזאת.

שלב 1, גיזום

עשר דקות, והחיסכון הבודד הגדול ביותר ברשימה. כל מה שדולק נטען לכל הודעה.

  • פתחו את ההגדרות של האפליקציה והסתכלו על התוספים, המחברים, האינטגרציות, ה-GPTs או ההרחבות שהפעלתם. כבו כל מה שלא השתמשתם בו בשבועיים האחרונים. אפשר להדליק אותו מחדש בלחיצה אחת כשצריך.
  • השאירו מחבר אוטומציה אחד, לא שניים. אם יש לכם גם IFTTT וגם Zapier, בחרו את זה שיש בו משהו אמיתי.
  • זיכרון: בקשו מהעוזר להראות לכם מה הוא זוכר ("ייצא את כל מה שאתה זוכר עליי, לפי קטגוריות"). מחקו מה ששגוי או מיושן. אמרו לו במילים פשוטות מה לשמור: השם שלכם, העבודה שלכם, הכללים שאתם רוצים שיישמרו. זיכרון טוב פירושו פחות הסברים חוזרים; זיכרון מיושן פירושו תשובות שגויות שנאמרות בביטחון.
  • הוצאות: מצאו את דף החיוב, הגדירו תקרה חודשית, כבו טעינה אוטומטית. אם הטעינות שלכם בחודש שעבר עברו בהרבה את המחיר הקבוע של התוכנית, הדרגה הבאה זולה יותר מקרדיטים.

איפה זה נמצא. Claude: Settings, ואז Connectors and Plugins; הזיכרון תחת Settings, Memory. ChatGPT: Settings, ואז Apps and connectors; הזיכרון תחת Personalization, Manage memories. Gemini: Settings, ואז Apps; הזיכרון תחת Saved info. תקרות הוצאה יושבות בדף החיוב של כל אפליקציה, או בקונסולת ה-API אם אתם משתמשים באחת.

שלב 2, תיקיית הבית ושלושת הקבצים

צרו תיקייה אחת שהעוזר שלכם תמיד יכול לראות, ושמרו בה שלושה קובצי טקסט קטנים. זאת כל מערכת ההמשכיות; היא נכנסת ב-40 שורות.

צרו בספריית הבית שלכם תיקייה בשם ops. באפליקציית הדסקטופ של העוזר, חברו אותה (Claude: כפתור ה-+, Add folder; ChatGPT: Settings, Work with apps או בוחר התיקיות באפליקציית הדסקטופ; Gemini: תיקיית Google Drive עושה את אותה עבודה, כי Gemini קורא מ-Drive). אחר כך צרו בתוכה את שלושת הקבצים האלה עם כל עורך טקסט.

קובץמה יש בומי כותב אותו
NOW.mdאיפה אתם עכשיו: על מה אתם עובדים, הדבר האחרון שנגמר, הצעד הבא, הדבר האחד שמחכה לכם. 20 שורות מקסימום.אתם, בדקה אחת, בתחילת בלוק עבודה ובסופו. או סקריפט הדופק בשלב 4, אוטומטית.
handoff.mdשתי שורות לכל סשן: תאריך, מה נעשה, מה הבא. הרשומה החדשה ביותר למעלה.העוזר, בסוף כל צ'אט עבודה, כשאתם אומרים "כתוב את המסירה".
hands.mdרשימת סימון של דברים שרק אתם יכולים לעשות: סיסמה להקליד, קובץ לשתף, כפתור ללחוץ עליו.העוזר מוסיף; אתם מסמנים.

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

אם אתם משתמשים ב-Obsidian, שימו את התיקייה בתוך הכספת (vault) שלכם. התוסף Local REST API של Obsidian, פלוס שורה אחת בקובץ ההגדרות של Claude לדסקטופ, מאפשר לעוזר לקרוא ולכתוב בכספת בלי לצרף תיקייה בכל פעם; זה פרויקט לערב אחד בהמשך, לא ליום הראשון.

שלב 3, פרויקט Ops והוראת הפתיחה

צרו פרויקט אחד (Claude: Project; ChatGPT: Project או GPT מותאם אישית; Gemini: Gem, או בחשבונות פרטיים אחרי 17 בנובמבר 2026, רשומת Saved info פלוס תיקיית Drive מוצמדת) והדביקו את זה בתור ההוראות שלו:

On the first turn of every chat, before anything else, read ops/NOW.md, ops/handoff.md and ops/hands.md. Open by saying in one line where I am and what I was doing, then take my message. No screenshots and no searching old chats until those three files are read.

At the end of a working session, when I say "write the handoff", add two lines to the top of ops/handoff.md: the date, what was done, what is next. Anything that needs my own hands goes as a tick-box line into ops/hands.md.

Style: concise, no moralising, no numbered lists, no em dashes. Ask before anything that cannot be undone: sending, deleting, sharing, publishing, paying. Never type a password; I type those.

להעתיק: ops-project-instructions.txt (באנגלית; ההוראה עובדת בעברית בדיוק אותו דבר, תנו לעוזר לתרגם אותה אם תרצו)

צרפו את תיקיית ops לפרויקט עצמו, לא לצ'אט בודד, כדי שכל צ'אט חדש יוכל לראות אותה. עשו כמעט את כל העבודה שלכם בתוך הפרויקט האחד הזה. העיוורון בין פרויקטים שיש לרוב האפליקציות מפסיק להיות חשוב ברגע שהעבודה שלכם חיה במקום אחד.

התוצאה: צ'אט חדש לא עולה לכם כלום להתחיל. העוזר פותח ב"היית באמצע טיוטת הניוזלטר, ה-Takeout עדיין רץ, והמדפסת צריכה נייר", ואתם ממשיכים.

שלב 4, הדופק (אופציונלי, החלק שמרגיש כמו קסם)

סקריפט זעיר כותב מחדש את NOW.md כל חמש דקות עם מה שאתם באמת עושים, כך שאף פעם לא תצטרכו לעדכן אותו ביד. הוא מתעד שלושה דברים: האפליקציה שבחזית וכותרת החלון שלה, הקבצים שנגעתם בהם ב-15 הדקות האחרונות, והחלק העליון של hands.md ו-handoff.md. שום דבר לא יוצא מהמחשב שלכם והוא אף פעם לא מצלם מסך.

הפרטיות מובנית בפנים, לא מודבקת מבחוץ. הסקריפט נושא רשימה קצרה של אפליקציות שכותרות החלונות שלהן אף פעם לא נרשמות (מנהלי סיסמאות, Signal, בנקאות) ומדלג על כל חלון גלישה פרטית. אם אפליקציה לא ברשימת המותרים, נרשם רק השם שלה. ערכו את הרשימות האלה לפני ההתקנה.

  • Windows: שמרו את pulse.ps1 מהנספח לתוך ops, ואז פתחו את Task Scheduler, Create Basic Task, טריגר "When I log on", פעולה "Start a program": powershell.exe -ExecutionPolicy Bypass -File "C:\Users\you\ops\pulse.ps1", ובמאפייני המשימה הגדירו לה לחזור כל 5 דקות. דיאלוג אחד, וגמרנו.
  • Mac: שמרו את pulse.py ואת install-pulse.command מהנספח לתוך ops, לחצו לחיצה כפולה על קובץ ה-.command פעם אחת, ואשרו OK בשתי בקשות ההרשאה.

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

משתמשי Gemini: כוונו את הפלט של הסקריפט לתיקיית Drive במקום לתיקייה מקומית, ו-Gemini יקרא אותו משם.

שלב 5, עוזרים זולים

העוזר הראשי שלכם הוא היקר. תנו את הקריאה הכבדה לעוזר זול יותר, והעבירו הלאה רק את התוצאה.

  • קבצים ארוכים. אף פעם אל תדביקו PDF של 200 עמודים לצ'אט הראשי שלכם. בקשו ממודל זול לסכם אותו קודם (הדרגה החינמית של Gemini ב-AI Studio, או הדרגה החינמית של כל אחת משלוש האפליקציות), ואז תנו לעוזר הראשי את הסיכום בן שני העמודים. זול פי עשר, ולעיתים קרובות טוב יותר, כי העוזר הראשי מסיק עכשיו מסקנות מתוך תקציר נקי.
  • חוות דעת שנייה. להחלטה, תשובה חזקה אחת שווה יותר מארבע. השתמשו בכמה מודלים רק כשאתם רוצים שהם יחלקו זה על זה, ואז בקשו סינתזה.
  • הדביקו טקסט, אף פעם אל תעלו קבצים. קובץ שהועלה לשירות רב-מודלים יכול לשבת באחסון שלהם בלי כפתור מחיקה; אני למדתי את זה בדרך היקרה. הדביקו את הטקסט שאתם רוצים שייקרא, מנוקה משמות, כתובות, פרטי בריאות ופרטי לקוחות, ושום דבר מעבר לזה. דרגות חינמיות עשויות להשתמש במה שאתם מדביקים לאימון, אז הניקוי הוא לא אופציונלי.
  • הסקריפט האחד ששווה להחזיק, לסקרנים טכנית: קובץ Python של 40 שורות עם מפתח ה-Gemini שלכם בקובץ לידו, שמסכם כל מסמך משורת הפקודה כך שהעוזר הראשי אף פעם לא צריך לטעון אותו. הגרסה שלי היא council.py; בקשו אותה ממני. תקרת הוצאה על המפתח, כמה יורו בחודש, מאפשרת לשכוח ממנו בלי דאגה.

איפה זה נמצא. מפתחות Gemini: AI Studio, API keys; הדרגה בתשלום עולה גרושים, ו-Google מצהירה שנתונים בדרגה בתשלום לא משמשים לאימון. מפתחות Claude ו-ChatGPT: קונסולות המפתחים שלהם, אותו רעיון, אותן מגבלות. לא נחוץ ביום הראשון.

שלב 6, משימות מתוזמנות שמצדיקות את קיומן

משימה מתוזמנת היא צ'אט שרץ בלעדיכם. היא עולה כמו צ'אט, כל יום, לנצח, אז כל אחת חייבת להצדיק את עצמה.

  • השאירו את אלה שהפלט שלהן מגיע אליכם כהתראת פוש שאתם באמת קוראים. שורת בוקר עם היומן של היום ושני המיילים שחשובים שווה את זה. דף יפה שאתם אף פעם לא פותחים, לא.
  • שימו כל משימה על המודל הכי זול שמסוגל לעשות אותה. לקרוא רשימה ולסנן אותה זו עבודה למודל קטן. לקרוא קבלות ולדייק בסכומים דורש מודל בינוני. כמעט שום דבר לא צריך את המודל העליון על טיימר.
  • עבודות מבוססות כללים לא צריכות מודל בכלל. תיוג וארכוב של מיילים משולחים מוכרים זה פילטר ב-Gmail. מעקב אחרי תיקייה משותפת לעריכות של מישהו אחר זה Google Apps Script של שש שורות על טיימר, חינם, והוא רואה מי ערך, מה שהעוזר לא יכול. בדיקות תקינות ליומן הן regex. בקשו מהעוזר לכתוב את הסקריפט; אתם מדביקים אותו ב-script.google.com ולוחצים Allow פעם אחת.
  • פעם בחודש, רשמו את המשימות ושאלו על כל אחת: קראתי את זה בשבוע שעבר? אם לא, בטלו אותה או קצצו אותה בחצי.

איפה זה נמצא. Claude: משימות מתוזמנות, גלויות בסרגל הצד, לכל אחת הגדרת מודל משלה. ChatGPT: Tasks. Gemini: Scheduled actions. Google Apps Script עובד לשלושתם, כי הוא חי בחשבון ה-Google שלכם, לא בעוזר.

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

כללי הבטיחות שנוסעים עם כל זה

זאת לא זהירות לשם הזהירות. כל אחד מהם קיים כי דילוג עליו פעם אחת עלה למישהו זמן אמיתי או פרטיות.

  • סיסמאות ומפתחות API מוקלדים על ידיכם, לתוך קובץ במחשב שלכם, אף פעם לא לתוך צ'אט. מפתח שהודבק בצ'אט חי בתמליל הזה. אם זה קורה, צרו מפתח חדש ומחקו את הישן באותו יום.
  • שום דבר בלתי הפיך בלי ה"כן" שלכם: בלי שליחה, מחיקה, שיתוף, פרסום או תשלום. שימו את השורה הזאת בהוראות הפרויקט והעוזר ישאל בכל פעם.
  • למודלים חיצוניים מדביקים טקסט, אף פעם לא קבצים. נקו קודם שמות, כתובות, פרטי בריאות, כסף ולקוחות. שמרו רשימה של מילים שאסור שיצאו מהמחשב שלכם ובדקו את הטקסט מולה לפני שאתם מדביקים.
  • תיקיות בשם Private נשארות פרטיות. אמרו לעוזר אילו תיקיות אסור לו לקרוא לעולם, ושמרו גם את הרשימה הזאת בהוראות הפרויקט.
  • כותרות חלונות וקבצים אחרונים הם יומן של החיים שלכם. שמרו על רשימת החסימה של הדופק כנה, והשאירו את NOW.md מחוץ לכל דבר שאתם משתפים.
  • סירוב ממערכת ההרשאות של העוזר הוא לא מכשול שעוקפים. זאת המערכת עושה את העבודה שלה; הצעד עובר במקום זה לרשימת hands.md שלכם.
  • שמרו את המילים שלכם שלכם. כשאתם מעבירים הלאה משהו שהעוזר כתב, אמרו זאת. כשהוא מנסח בשבילכם, שמרו על הפיסוק ועל הקול שלכם; הליטוש הוא מה שמסגיר.

רבע השעה השבועי

זה מה שהופך את זה לרקורסיבי: העוזר משפר את ההגדרה של עצמו, ואתם היד שלוחצת.

פעם בשבוע, פתחו את פרויקט Ops ואמרו: "קרא את hands.md ואת handoff.md. תגיד לי מה עולה לי כסף ולא השתמשתי בו השבוע, מה היית צריך לשאול אותי פעמיים, ואיזה שינוי אחד יחסוך הכי הרבה קרדיטים. אחר כך עדכן את הוראות הפרויקט לפי מה שנסכים." סמנו מה שאתם יכולים ב-hands.md בזמן שהוא חושב.

שלוש שאלות שומרות על הלולאה כנה:

  • מה הסברתי מחדש השבוע? זאת שורה שחסרה בהוראות הפרויקט או בזיכרון.
  • מה העוזר צילם או חיפש שקובץ היה יכול להגיד לו? זאת שורה שחסרה ב-NOW.md.
  • מה רץ לפי לוח זמנים ואף פעם לא קראתי? זאת משימה לבטל.

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

בלי קווים מפרידים ארוכים בשום מקום, בלי רשימות ממוספרות, הפיסוק שלכם בכל דבר שאתם שולחים בשם עצמכם. עבור וסוף, באהבה.

נספח: תבניות וסקריפטים להעתקה

שלושת הקבצים, כמו שהם צריכים להיראות ביום הראשון. כל אחד מהם גם להורדה; קליק ימני, שמרו לתוך ops. הקבצים באנגלית; הם עובדים בדיוק אותו דבר, ולתרגם אותם עם העוזר זה תרגיל ראשון טוב.

NOW.md

# NOW.md
Working on: the newsletter draft, section 3
Last finished: sent the invoice to the printer
Next: proofread section 3, then export the PDF
Waiting on me: reply to the landlord about Thursday

להורדה: NOW.md

handoff.md

# handoff.md (newest on top)
2026-11-07 Set up the ops folder, Project and pulse. Next: prune the plugins, set the spend cap.

להורדה: handoff.md

hands.md

# hands.md: things only I can do
- [ ] set the monthly spend limit and turn auto-reload off
- [ ] connect the ops folder to the Project

להורדה: hands.md

הדופק ל-Windows: pulse.ps1

שמרו ב-ops, תזמנו עם Task Scheduler כל 5 דקות. ערכו קודם את שתי הרשימות שבראש הקובץ.

# pulse.ps1: rewrites ops\NOW.md with what you are doing. Nothing leaves this computer.
$ops = "$HOME\ops"
$deny = @("1Password","Bitwarden","KeePass","Signal","Passwords")          # never logged at all
$titleOk = @("Claude","ChatGPT","Code","Obsidian","chrome","msedge","firefox","WINWORD","EXCEL","notepad","explorer","WhatsApp","OUTLOOK","Zoom")  # window title logged only for these
Add-Type @"
using System; using System.Runtime.InteropServices;
public class W { [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")] public static extern uint GetWindowThreadProcessId(IntPtr h, out uint pid); }
"@
$h = [W]::GetForegroundWindow(); $procId = 0; [W]::GetWindowThreadProcessId($h, [ref]$procId) | Out-Null
$p = Get-Process -Id $procId -ErrorAction SilentlyContinue
$app = if ($p) { $p.ProcessName } else { "unknown" }; $title = ""
if ($deny -contains $app) { $app = "[private app]" }
elseif ($titleOk -contains $app -and $p.MainWindowTitle -and $p.MainWindowTitle -notmatch "InPrivate|Incognito|Private") { $title = $p.MainWindowTitle.Substring(0, [Math]::Min(90, $p.MainWindowTitle.Length)) }
$since = (Get-Date).AddMinutes(-15)
$files = Get-ChildItem "$HOME\Documents","$HOME\Desktop","$HOME\Downloads",$ops -Recurse -File -ErrorAction SilentlyContinue |
  Where-Object { $_.LastWriteTime -gt $since -and $_.FullName -notmatch "\\Private\\|Signal|\\\.git\\|node_modules|NOW\.md" } |
  Sort-Object LastWriteTime -Descending | Select-Object -First 8
$lines = @("# NOW (auto, $(Get-Date -Format 'ddd dd MMM HH:mm'), pulse.ps1, read this first)", "Active: $app" + $(if ($title) { " `"$title`"" } else { "" }))
$lines += "Files touched (last 15 min):"
if ($files) { $files | ForEach-Object { $lines += "  " + $_.FullName.Replace($HOME, "~") } } else { $lines += "  none" }
foreach ($f in @("hands.md","handoff.md")) { if (Test-Path "$ops\$f") { $lines += "From ${f}:"; Get-Content "$ops\$f" | Where-Object { $_.Trim() -and -not $_.StartsWith("#") } | Select-Object -First 5 | ForEach-Object { $lines += "  $_" } } }
$lines | Select-Object -First 22 | Set-Content "$ops\NOW.md" -Encoding UTF8

להורדה: pulse.ps1SHA-256 851136a23d920e67798fb8d0ae6627fc1b6b13e3b8e482db9f13303c4b1a28ad

הדופק ל-Mac: pulse.py פלוס install-pulse.command

שמרו את שניהם ב-ops, לחצו לחיצה כפולה על ה-.command פעם אחת.

#!/usr/bin/env python3
# pulse.py: rewrites ops/NOW.md with what you are doing. Nothing leaves this computer.
import os, subprocess, datetime, re
HOME = os.path.expanduser("~"); OPS = os.path.join(HOME, "ops")
DENY = {"Signal", "Passwords", "1Password", "Keychain Access", "Bitwarden", "Messages", "Photos"}
TITLE_OK = {"Claude", "ChatGPT", "Obsidian", "Google Chrome", "Safari", "Finder", "Pages", "Numbers", "TextEdit", "Notes", "Mail", "WhatsApp", "Zoom", "Code"}
EXCLUDE = ("/Private", "Signal", "/.git", "node_modules", "/Library/", "NOW.md")
def osa(s):
    try: return subprocess.run(["osascript", "-e", s], capture_output=True, text=True, timeout=8).stdout.strip()
    except Exception: return ""
app = osa('tell application "System Events" to get name of first application process whose frontmost is true')
title = ""
if app in DENY: app = "[private app]"
elif app in TITLE_OK:
    title = osa('tell application "System Events" to tell (first application process whose frontmost is true) to get name of front window')[:90]
    if re.search(r"incognito|private", title, re.I): title = "[private window]"
files = []
for d in ("Documents", "Desktop", "Downloads", "ops"):
    r = subprocess.run(["mdfind", "-onlyin", os.path.join(HOME, d), "kMDItemFSContentChangeDate >= $time.now(-900)"], capture_output=True, text=True)
    files += [p for p in r.stdout.splitlines() if os.path.isfile(p) and not any(x in p for x in EXCLUDE)]
files = sorted(set(files), key=os.path.getmtime, reverse=True)[:8]
lines = ["# NOW (auto, %s, pulse.py, read this first)" % datetime.datetime.now().strftime("%a %d %b %H:%M"), "Active: %s%s" % (app or "unknown", ' "%s"' % title if title else "")]
lines.append("Files touched (last 15 min):"); lines += ["  " + p.replace(HOME + "/", "~/") for p in files] or ["  none"]
for f in ("hands.md", "handoff.md"):
    p = os.path.join(OPS, f)
    if os.path.exists(p):
        lines.append("From %s:" % f); lines += ["  " + l.rstrip() for l in open(p, encoding="utf-8") if l.strip() and not l.startswith("#")][:5]
open(os.path.join(OPS, "NOW.md"), "w", encoding="utf-8").write("\n".join(lines[:22]) + "\n")

להורדה: pulse.pySHA-256 fb868f9f7cbecc0d5dc18492157591568c52462db603a82456273be61605737a

#!/bin/bash
# install-pulse.command: runs pulse.py every 5 minutes via launchd. Double-click once.
OPS="$HOME/ops"; PL="$HOME/Library/LaunchAgents/com.me.pulse.plist"; mkdir -p "$HOME/Library/LaunchAgents"
cat > "$PL" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>Label</key><string>com.me.pulse</string>
<key>ProgramArguments</key><array><string>/usr/bin/python3</string><string>$OPS/pulse.py</string></array>
<key>StartInterval</key><integer>300</integer><key>RunAtLoad</key><true/></dict></plist>
PLIST
launchctl bootout "gui/$(id -u)/com.me.pulse" 2>/dev/null; launchctl bootstrap "gui/$(id -u)" "$PL" && echo "installed"
python3 "$OPS/pulse.py" && cat "$OPS/NOW.md"

להורדה: install-pulse.commandSHA-256 c2f0f1abb9f37e28480e6ea8f9ad49ffb0860a621ca699b44cc36b06516debab

Gems של Gemini, אם יש לכם כאלה בחשבון Google פרטי: ייצאו אותם לפני 17 בנובמבר 2026 (Google Takeout, בטלו את הבחירה בהכול, סמנו רק "Gemini"); ההוראות יוצאות כטקסט שאפשר להדביק לפרויקט או לרשומת Saved info.