---
allowed-tools: Read Grep Glob Bash WebSearch WebFetch TaskCreate TaskUpdate
name: hamakom-reel
description: בונה ריל ממותג לאינסטגרם/טיקטוק (9:16, 45 שניות עד 2 דקות) מכתבה של "המקום הכי חם בגיהנום" + חומרי גלם של וידאו ותמונות. מחלץ משפטי מפתח מהכתבה מילה-במילה, מצמיד אותם לוויז'ואל לפי קשר נרטיבי, מסנתז מוזיקת מתח מותאמת, ומסיים בסגיר מונפש עם CTA לאתר. הפעל בכל פעם שדור מבקש "תעשה ריל", "תערוך לי סרטון לכתבה", "סרטון לאינסטגרם/טיקטוק", "תחבר את הסרטונים לכתבה", שולח קישור ל-ha-makom.co.il או גוגל דוקס יחד עם קבצי וידאו/תמונות, או כל בקשה להפוך חומרי גלם + כתבה לסרטון הפצה. גם אם הוא אומר רק "תעשה מזה סרטון" עם כתבה וקבצים — זה הסקיל.
---

# hamakom-reel — ריל קידום כתבה מחומרי גלם

הופך כתבה של "המקום הכי חם בגיהנום" + חומרי גלם (וידאו, תמונות) לריל 9:16 ממותג
שמביא צפיות ברשתות וכניסות לכתבה באתר. התוצר: 1080x1920, 30fps, בין 45 שניות לשתי דקות.

## עקרונות-על (אלה הדברים שדור תיקן בעבר — אל תחזור על הטעויות)

1. **היצמדות מוחלטת לניסוחי הכתבה.** משפטי המפתח שמופיעים על המסך הם ציטוטים
   מילה-במילה מהכתבה. מותר לקצר משפט (להשמיט תחילתו או סופו), אסור לנסח מחדש.
   עריכה חופשית יוצרת עילגות ופוגעת באמינות העיתונאית.
1a. **אסור דרמטיזציה, הגזמה או פישוט** (פידבק דור, ריל הארגזים 3.7.2026 —
   "אני גוף תקשורת, הכול מאוד רציני ואי אפשר לעשות קרקס. זה חיים של אנשים").
   כל טקסט מסך חייב מקור בכתבה. תיאור שלילי של אדם מזוהה — **רק כציטוט מיוחס
   במפורש לדובר** ("גואטה: אדם חוצפן..."), לעולם לא כקביעה של "המקום". תיאורי
   "בתיעוד:" עובדתיים וניטרליים בלבד.
1b. **השקף הראשון = כותרת הכתבה (h1) מילה במילה** — לא הוק מנוסח-מחדש.
   כותרת ארוכה: פונט קטן יותר + זמן קריאה לפי (תווים÷12)+1 שניות.
2. **קשר נרטיבי בין טקסט לוויז'ואל.** משפט על הצתות יושב על שריפה, משפט על ניפוץ
   רכב על תיעוד הניפוץ. לפני שמצמידים — חובה להבין מה רואים בכל קליפ (ראו שלב 2).
3. **שורות "בתיעוד:" — במשורה.** הסבר קטן מתחת לציטוט רק כשהוויז'ואל לא מובן מעצמו
   או כשיש פרט קריטי מהכתבה (למשל: חייל במדים שמשתתף בתקיפה). לא על כל קליפ.
4. **סינק מדויק.** אסור שהאודיו של קליפ אחד יישמע על הפריימים של קליפ אחר.
   לכן הווידאו והאודיו נבנים בנפרד ומתמזגים לפי ספירת פריימים (ראו שלב 6).
5. **לא כל אודיו מקור שווה השמעה.** אש בוערת, רוח, רעש סטטי — עדיף מוזיקה בלבד.
   צעקות, עדויות, רגעי אמת — משאירים (המיקס מנמיך את המוזיקה אוטומטית).

## כללי עיצוב קבועים (סוכמו עם דור — לא לסטות)

- **פלטה — HaMakom DS 2026** (מקור-אמת: `../../design-system/HAMAKOM-DS-2026.md`):
  רקע דיו **#141413**, טקסט שנהב **#faf9f5**, הדגשות טרקוטה **#D97757**
  (על וידאו להבהיר ל-#E8906F). טריו לאקסנט/חתימה: מרווה #788C5D + אברש #8E6FA8.
  **בלי שחור-אדום. בלי הצבע האדום של המותג (#f70d28) בכלל.**
- **פס-חתימה טריקולור — חובה, אבל אחד בלבד:** תחתון, דק **4px**
  (ימין טרקוטה #D97757 · אמצע מרווה #788C5D · שמאל אברש #8E6FA8).
  לא למעלה+למטה, לא 12px.
- **פונטים:** ציטוטים — **Suez One בלבן #ffffff בלבד** (Narkiss ירד — לא בשימוש
  לציטוטים). קיקר — **IBM Plex Bold 30, sc-terra #E8906F, letter-spacing ~3px**.
  "בתיעוד:" — IBM Plex Regular 34, on-dark-soft **#b7b5ac**.
  URL לטיני — IBM Plex Sans Hebrew (יש גליפים לטיניים).
- **טקסט ישירות על הווידאו** — בלי קוביות רקע ו**בלי צל בכלל**. הקריאות מגיעה
  מ**גרדיאנט דיו אנכי על כל פריים**, בעצירות ה-DS של הקאבר:
  0@0% → 0.1@40% → 0.5@58% → 0.92@78% → 1@100%.
  מיקום הכרטיס: שליש תחתון, **bottom margin 240px** (מפנה מקום ל-URL).
- **ווטרמרק:** **הלוגו הריבועי הטיפוגרפי, לבן, רוחב ~72px, ממורכז למעלה (y≈48)**
  לכל אורך הריל (לא הלוגו הרוחבי).
- **כתובת אתר:** **HA-MAKOM.CO.IL למטה במרכז** — IBM Plex SemiBold 28,
  letter-spacing ~4px, **לבן באטימות ~25% (שקיפות 75%)**.
- **יעיל:** את הגרדיאנט + הלוגו + ה-URL + הפס בונים **פעם אחת כ-PNG סטטי אחד**
  (`scripts/make_overlay.py` → overlay.png) ומלבישים על כל מקטע — אחיד ומהיר.
- **סגיר:** **הסגיר הקנוני הוא `closer_v3.mp4`** מתיקיית החומרים הקבועה (ראו
  brand-assets) — 1080×1920, 30fps, 6.00 שנ' = 180 פריימים בדיוק, כולל פס הסאונד
  (מכות + בום). **משתמשים בו כמות שהוא, לא בונים סגיר מאפס.**
  - **טקסט ה-CTA מותאם לסוג הכתבה:** "התחקיר המלא באתר" רק לתחקיר אמיתי.
    לדיווח: **"הסיפור המלא באתר"** (או "הדיווח של [כתב/ת] באתר" / "כל הפרטים באתר").
  - כשצריך טקסט אחר מזה שצרוב ב-closer_v3 — בונים מחדש:
    `python3 scripts/make_closer_assets.py` ואז `bash scripts/make_closer.sh`.
    פריים הנעילה fD נבנה ב**קואורדינטות המקור** של `lock()`: לוגו 470px ב-y=640,
    פס 560×12, CTA Suez One 60 ב-cy=1530, סלוגן 1625, URL 1710.
    **אסור למדוד קואורדינטות מפריים פלט** — שרשרת הרעד מגדילה פי 1.12 וחותכת
    (crop 65,115); מדידה מהפלט מחילה את הטרנספורם פעמיים וה-URL נחתך מחוץ לפריים.
  - האודיו של הסגיר: הסטינג המקורי של closer_v3 (לחלץ פעם אחת ל-wav).
- מיקום קבצי המותג, תיקיית החומרים הקבועה ופתרון בעיית קבצי iCloud ריקים —
  ראו `references/brand-assets.md`. לקחי ריל א-טוואיל (3.7.2026) —
  `references/lessons-atwail-2026-07.md`.

## תהליך העבודה

### שלב 0 — איסוף חומרים
- **כתבה:** קישור ha-makom.co.il → web_fetch. גוגל דוקס → דרך Google Drive MCP
  (search_files / read_file_content). אין כתבה? לבקש מדור.
- **חומרי גלם:** קבצים שהועלו לצ'אט (תיקיית uploads) או נתיב בתיקיות שלו.
- **תיקיית חומרים קבועה:** `/Users/dorzommer/Desktop/חומרים להכנת וידאו לרילז ` —
  **שימו לב: רווח בסוף שם התיקייה!** מכילה את closer_v3.mp4 (הסגיר הקנוני)
  וטראקים מוכנים למוזיקת רקע. (הנתיב הישן `Desktop/סגיר וידאו המקום/` לא קיים.)
- ודא גישה לתיקיית Documents (נכסי מותג). חסר משהו — request_cowork_directory.

### שלב 1 — היכרות עם הפוטג'
לכל קובץ וידאו: `ffprobe` (רזולוציה, אורך, האם יש אודיו), ואז רשת פריימים להבנת התוכן:
```bash
ffmpeg -y -v error -i IN.mp4 -vf "fps=1/10,scale=480:-2,tile=3x3" grid.png
```
**להסתכל על הרשתות** (Read) ולכתוב לעצמך מה רואים בכל קליפ ובאילו חלונות זמן יש
אקשן. מקליפים ארוכים גוזרים רק את חלונות הפעולה — קליפ אבטחה של 90 שניות שבו
האקשן בשניות 8–35 נכנס לריל רק בחלון הזה. תמונות סטילס: 3–4 שניות עם זום עדין (zoompan).

### שלב 2 — חילוץ משפטי מפתח
מהכתבה בוחרים 6–9 משפטים: **הפתיח הוא תמיד כותרת הכתבה (h1) מילה במילה**
(עיקרון 1b), אחריו משפטי עובדה שמתאימים לוויז'ואל שיש, ומשפט נפגעים/תוצאה.
סדר הופעה = קשת נרטיבית: כותרת → השתלשלות → שיא → תוצאה. משפט בלי ויז'ואל
מתאים — עדיף לוותר עליו.
דברים שדור הוריד בעבר: משפטי פרשנות/השוואה גרנדיוזיים ("מחזה שמזכיר את...").
עדיף עובדות קשות.

**סביל → פעיל:** ציטוט מילה-במילה נשאר ברירת המחדל, **אבל משפט סביל בלי עושה
מומר לפעיל שממנה את העושה**: "מושחת צינור המים" → "מתנחלים משחיתים את צינור
המים" (או הורסים/פוגעים/משביתים). האחריות על מי שביצע גוברת על מילה-במילה.

### שלב 3 — תכנון טיימליין
45–120 שניות סך הכל, כולל סגיר. כל מקטע 5–20 שניות (הוק קצר, תיעוד מתמשך יכול
להיות ארוך יותר). לכתוב טבלה: מקטע / מקור+חלון / משפט / האם אודיו מקור נשמע.

### שלב 4 — כרטיסי טקסט + אוברליי
`scripts/make_cards.py` — לערוך את רשימת הכרטיסים בתחתית הקובץ ולהריץ.
`scripts/make_overlay.py` — בונה פעם אחת את overlay.png (גרדיאנט דיו + לוגו
ריבועי + URL + פס-חתימה) לכל המקטעים.
**רינדור עברית: אין libraqm במק של דור** (`features.check('raqm')` = False) —
בכל סקריפטי הטקסט משתמשים ב-`bidi.algorithm.get_display` ומסירים
`direction='rtl'`/`'ltr'`, אחרת ValueError. עברית עם גרש — גרש עברי ׳ (U+05F3),
לא אפוסטרוף לטיני. לבדוק ויזואלית כרטיס אחד לפחות לפני ההמשך.

### שלב 5 — רינדור מקטעים (וידאו בלבד, בלי אודיו!)
`scripts/normalize_segment.sh IN OUT SS T CARD` — מנרמל ל-1080x1920: רקע מטושטש
(scale קטן → boxblur → scale חזרה: מהיר פי כמה מ-gblur על full-res), פוטג' ממורכז,
overlay.png (גרדיאנט + לוגו + URL + פס), כרטיס בשליש התחתון (margin 240px),
fps=30 כפוי, `-an`.
סגיר: קודם כל `closer_v3.mp4` מהתיקייה הקבועה — כמות שהוא. רק אם צריך CTA אחר:
`scripts/make_closer_assets.py` (fA..fD.png + sting.wav) ואז `scripts/make_closer.sh`.
**מגבלת זמן קריטית:** כל פקודת bash מוגבלת ל-45 שניות, ותהליכי רקע נהרגים בסוף
הקריאה (nohup/setsid לא עוזרים). לכן מקטע אחד או שניים לכל קריאת bash. קליפ מקור
ארוך מ-40 שניות — לפצל קודם עם `-c copy -f segment` ולנרמל כל חלק בנפרד.

### שלב 6 — סינק: חיבור וידאו ובניית אודיו בנפרד
זה הלקח הכי חשוב מהפעם הראשונה (היה דריפט והסאונד זלג בין קליפים):
1. קונקט וידאו: `ffmpeg -f concat -safe 0 -i list.txt -c copy body.mp4` — מקטעים
   זהי-קידוד מתחברים בלי דריפט כשאין אודיו.
2. ספירת פריימים אמיתית לכל מקטע:
   `ffprobe -count_frames -show_entries stream=nb_read_frames`
   (יוצא לפעמים פריים אחד פחות מהמוזמן — לכן סופרים, לא מניחים).
3. אופסט של כל מקטע = סכום הפריימים שלפניו ÷ 30. ב-ms עבור adelay.
4. חילוץ אודיו מקור רק למקטעים שמשמיעים: loudnorm (I=-16:TP=-1.5:LRA=11),
   `atrim`+`apad` לאורך המקטע המדויק.
5. מיקס: כל קטע `adelay=OFFSET|OFFSET`, amix לטראק אחד, sidechaincompress של
   המוזיקה מולו (threshold=0.02:ratio=6:attack=80:release=600), amix סופי,
   `alimiter=limit=0.85:level=false` (לא ברירת המחדל — level=true מגביר!) ואחריו
   `apad=whole_dur=TOTAL,atrim=0:TOTAL`. חובה `aformat` לפני sidechaincompress
   (אחרת שגיאת פורמטים). מלכודות המיקס המלאות — `references/sync-method.md`.
6. mux: `-map 0:v -map "[a]" -c:v copy`.
פירוט מלא עם פקודות מוכנות: `references/sync-method.md`.

### שלב 7 — מוזיקה
**לא `make_music.py` הסינתטי.** סדר עדיפויות:
1. **טראק מוכן מתיקיית החומרים הקבועה** (שלב 0) אם האורך מתאים. קריטריון בחירה:
   לא להתנגש עם אודיו-מקור (עדויות/עימותים) ולפנות מקום לסגיר — למשל דופק קבוע
   שמתפוגג בשניות האחרונות, כך שהסטינג של הסגיר מכה מתוך שקט.
2. יצירה ב-**ElevenLabs Music API**:
   `POST https://api.elevenlabs.io/v1/music?output_format=mp3_44100_128`
   עם `{"prompt": "...", "music_length_ms": <אורך מדויק>}`.
   בפרומפט: dark tense documentary underscore, no vocals, resolves to a sustained
   final chord in the last seconds.
   מפתח API: `ELEVENLABS_API_KEY` ב-`~/Developer/video-use/.env` (hex גולמי, בלי
   `sk_`). אין קונקטור MCP — עובדים ב-curl. מפתחות שמופיעים בהיסטוריית
   settings.local.json — פגי תוקף.
3. **fallback אחרון בלבד:** `scripts/make_music.py DURATION HIT_TIME OUT.wav` —
   מוזיקה מסונתזת (דרון, פעימת לב, טיקים, רייזר, אקורד סיום ב-HIT_TIME).

**שתי מלכודות מיקס שחובה לתקן:**
- loudnorm מקצר לפעמים את קובץ המוזיקה בכ-0.1 שנ' — חובה
  `apad=whole_dur=TOTAL,atrim=0:TOTAL` גם על קובץ המוזיקה וגם **בסוף שרשרת
  ה-[a], אחרי ה-alimiter**.
- ל-alimiter ברירת מחדל `level=true` שמנרמלת כלפי מעלה (מגבירה!). תמיד:
  `alimiter=limit=0.85:level=false`. יעד שיא: -1 עד -3dB.

### שלב 8 — וריפיקציה (לא לדלג)
- רשת פריימים מהקובץ הסופי — מקטע מכל סוג + הסגיר — ולהסתכל בעיניים.
- `ffprobe` שאורך האודיו == אורך הווידאו (עד 0.05 שנ').
- volumedetect: שיא סביב -1 עד -3dB.
- פריים אחד בגודל מלא לבדיקת קריאות הטקסט.
שמירה: outputs בשם עברי ברור, `present_files`, ולציין שכדאי האזנה אחת למיקס.

## חלוקת קריאות bash (בגלל מגבלת 45 השניות)

סדר עבודה שעובד: (1) probe+grids, (2) כרטיסים, (3–6) מקטעים אחד-שניים לקריאה,
(7) מוזיקה+חילוצי אודיו, (8) קונקט+מיקס, (9) וריפיקציה. אם קריאה נקטעת ב-timeout —
לבדוק מה הספיק להיכתב ולהמשיך משם, לא להתחיל מאפס.

## קבצים מצורפים

| קובץ | מתי |
|---|---|
| `scripts/make_cards.py` | שלב 4 — לערוך רשימת כרטיסים בתחתית ולהריץ |
| `scripts/make_overlay.py` | שלב 4 — אוברליי סטטי אחד (גרדיאנט+לוגו+URL+פס) |
| `scripts/normalize_segment.sh` | שלב 5 — נרמול מקטע |
| `scripts/make_closer_assets.py` | שלב 5 — נכסי סגיר מותאם (רק כש-closer_v3 לא מתאים) |
| `scripts/make_closer.sh` | שלב 5 — הרכבת סגיר מותאם (רק כש-closer_v3 לא מתאים) |
| `scripts/make_music.py` | שלב 7 — **fallback אחרון בלבד** למוזיקה |
| `references/brand-assets.md` | שלב 0 — נתיבי נכסים, תיקיית החומרים, iCloud |
| `references/sync-method.md` | שלב 6 — שיטת הסינק המלאה עם פקודות |
| `references/lessons-atwail-2026-07.md` | לקחי ריל א-טוואיל — המקור להחלטות כאן |
