---
name: dor-edit
description: עורך רוח — עריכה עיתונאית מלאה של טיוטה בסגנון העריכה של דור זומר עבור "המקום הכי חם בגיהנום". קלט - קישור Google Doc או docx מקומי; פלט - מסמך Google Docs עם הצעות עריכה מיוחסות לדור, דוח אימות עובדות, כותרות, SEO ותמונות פלאש 90. מופעל דרך /dor-edit.
---

# עורך רוח — /dor-edit

עריכה עיתונאית מלאה של טיוטה, מקצה לקצה, בסגנון העריכה של דור. **התוצר המרכזי: מסמך Google Docs שבו כל העריכות הן הצעות (suggestions) מהיוזר האמיתי של דור** — אווטאר, שם מלא, בלי תגית "From imported document" — כך שאפשר לשלוח אותו ישירות לכתב/ת.

שני מסלולי מסירה (שניהם נבדקו 03.07.2026):
- **מסלול א (ברירת מחדל) — הצעות מהיוזר האמיתי**: יישום העריכות דרך כרום המחובר של דור, במצב Suggesting. כל החלפה והערה נרשמות כ-Dor Zommer האמיתי.
- **מסלול ב (פולבק, כשאין דפדפן)** — docx עם track changes בשם "דור זומר" ← העלאה+המרה. עובד, אבל ההצעות מסומנות "From imported document" עם אווטאר גנרי.

## קרא לפני הכל (חובה, לפי הסדר)

1. `references/dor-compass.md` — עקרון-העל הדו-כיווני, תורת הציטוטים, קטלוג המהלכים, כותרות, מפרט המוצר.
2. `references/genre-rules.md` — עוצמת העריכה לפי ז'אנר.
3. `~/.claude/skills/hamakom-edit-core/references/iron-rules.md` — כללי הברזל: אסור להוסיף עובדה בלי מקור בהערה צמודה; ספק = הערה, לא תיקון.

## פרמטרים קבועים

- **author של כל track change והערה: `דור זומר`** — בדיוק כך. אומת (03.07.2026) שההמרה ל-Google Docs משמרת את הייחוס הזה. לעולם לא "המקום — X".
- חשבון ההעלאה: `dor.zommer@shakuf.co.il`.
- תיקיית עבודה מקומית: `~/Documents/המקום/עריכה/<שם-קצר-של-הכתבה>/`.

## הרצף

> **נתיב הסקריפטים (`$DE`):** מצב shell לא נשמר בין בלוקי bash — הרץ את שורת ה-`DE=…` בראש כל בלוק למטה. היא מאתרת את הסקריפטים ב-cache של הפלאגין (כל גרסה), ונופלת חזרה ל-`~/.claude/skills/dor-edit` אם הותקן כסקיל עצמאי. אל תקודד נתיב קשיח.

### 1. קליטה
- קלט = קישור/מזהה Google Doc: שלוף טקסט עם `read_file_content` (כלי ה-Drive MCP; טען דרך ToolSearch אם צריך), כולל `includeComments` — הערות של הכתב/ת הן חומר גלם. שמור כ-`draft.txt` בתיקיית העבודה.
- קלט = docx מקומי: המשך איתו ישירות (דלג על שלב 2).

### 2. docx בסיס (מסלול ב בלבד)
```bash
DE=$(ls -d ~/.claude/plugins/cache/hamakom-plugins/dor-edit/*/skills/dor-edit 2>/dev/null | sort -V | tail -1); DE=${DE:-~/.claude/skills/dor-edit}
python3 "$DE/scripts/build_docx.py" draft.txt baseline.docx
```
במסלול א דלג — עובדים ישירות על draft.txt ומייצרים edits.json.

### 3. סיווג ז'אנר
תחקיר / אייטם חדשותי / מגזין / טור דעה — לפי התוכן (עדויות מרובות ומסמכים = תחקיר; אירוע אחד טרי = אייטם; דמות/סצנה = מגזין; טיעון בגוף ראשון = טור). קבע את עוצמת העריכה לפי `genre-rules.md`. בספק — הרמה העדינה יותר + הערה.

### 4. עריכה
בצע **מעבר עריכה אחד מלא** לפי המצפן — לשוני + מבני + כותרות ביחד. במסלול א: כל החלטה נרשמת ל-edits.json (replacement / comment / insertion) עם find/anchor ייחודיים. במסלול ב: הזרקה ל-XML במנגנון hamakom-edit-core אחרי `python3 office/unpack.py baseline.docx <workdir>`:
- שינויי טקסט: `from track_change import replace_run` (אחרי `sys.path.insert(0, scripts_dir)`), author `דור זומר`, change-id ייחודי לכל שינוי.
- הערות: `python3 comment.py <workdir> <id> "<טקסט>" --author "דור זומר"` + עוגני `commentRangeStart/End` ב-document.xml.
- מבני-קריטי (לפי הז'אנר): מיושם בגוף — מחיקה במקור + הוספה ביעד, שניהם track changes. מבני-משני: הערה בלבד.
- קומת הכותרות: כותרת ראשית אחת מוכרעת (insertion בראש), משנה, ביניים מציטוטים. חלופות כותרת + SEO — בהערה צמודה לכותרת.
- בסוף הגוף (כ-insertions): בלוק "קראו עוד" (3–4 כתבות קשורות — שלוף מ-`https://www.ha-makom.co.il/wp-json/wp/v2/posts?search=<מילת מפתח>` עם curl -L ו-User-Agent) ובלוק SEO מלא: כותרת SEO, Slug (לטינית), תיאור מטא, מילת מפתח מיקוד (Focus keyphrase), מילות מפתח נוספות.
- הערות משימה של הכתב/ת בגוף ("תגובה שולה...") → הופכות להערה ונמחקות מהגוף (track change).

### 5. אימות עובדות (לפי עוצמת הז'אנר)
**היררכיית מקורות — osint.db קודם (לקח 03.07.2026):** לכל טענה ממשלתית/פרלמנטרית — ישיבות ועדה, הצעות חוק, הצבעות, ח"כים, החלטות ממשלה, פטורים, מכרזי ביטחון, תוכניות בנייה — שאילתת `mcp__osint-db__query_db` לפני כל חיפוש רשת (טבלאות: knesset_committee_sessions, knesset_session_items, knesset_bills, knesset_votes, decisions, exemptions, mod_tenders, mavat_plans, wp_articles). זה המסד החי של דור, נסרק כל שעה — מהימן מכל snapshot. הצלבה פנימית: `wp_articles` לבדיקת מה כבר פרסמנו. רק מה שאין בו — WebSearch.
לכל טענה בת-אימות (מספר, שם, תאריך, ציטוט, סעיף חוק, טענה סיבתית): WebSearch אמיתי — לא זיכרון.
- **טענות תפקיד מתיישנות** (יו"ר ועדה, מנכ"ל, שר, דובר): חובה מקור עדכני עם תיארוך. snapshot של אגרגטור (oknesset, ויקיפדיה) אינו אימות — תפקידים מתחלפים. אם אין תיארוך — הסטטוס "לא תוארך", לא "מאומת" (לקח 03.07.2026: "יו"ר ועדת הפנים" הופיע כיעקב אשר ב-snapshot ישן; בפועל הוחלף ביצחק קרויזר).
- **מסמכי ישיבה רשמיים — לקרוא, לא רק לקשר:** `knesset_session_documents` מחזיקה קישורי docx חיים (fs.knesset.gov.il) — מסקנות ועדה, חומרי רקע. הורדה + חילוץ טקסט (`zipfile` → word/document.xml) נותנת אימות תוכן: מציעי דיון, החלטות נשיאות, מסקנות, "הונחו על שולחן הכנסת". מסקנות ועדה מתפרסמות ביום הדיון; פרוטוקול מלא — עד כשבועיים.
- **"מי ניהל את הישיבה" (יו"ר ישיבה):** מסמך המסקנות לא נוקב ביו"ר; עד פרסום הפרוטוקול הסטטוס הוא "מיוחס לכתב/ת — ממתין לפרוטוקול" עם משימת מעקב בדוח. דיווח כתב/ת מהאולם הוא מקור לגיטימי לפרסום — אבל בטבלת האימות הוא לא "מאומת".
- מאומת → לא נוגעים. לא נמצא → הערה: "לא מצאתי אישוש; מקור?". סותר → track change של מחיקה + הערה עם הקישור.
- בנה את טבלת האימות לדוח: טענה | סטטוס | מקור | הערה.
- תחקיר: ודא זכות תגובה לכל מואשם (חסרה → הערה חוסמת בראש) ופסקת Steelman (חסרה → נסח והוסף כ-insertion עם הערה מנמקת).

### 6. מסירה — Compare Documents (ברירת המחדל, נקבעה 03.07.2026 אחרי הריצה הראשונה)

**העיקרון:** לא מיישמים עריכות אחת-אחת בדפדפן (נוסה — 30+ דקות, שביר). במקום זה בונים **גרסה ערוכה נקייה** ונותנים ל-Google Docs להפיק את ההצעות בהשוואה אחת. Compare מייחס את כל ההבדלים למשתמש שמריץ אותו — דור, עם האווטאר האמיתי, בלי תגית ייבוא.

1. הפק `edited.txt` — הטקסט המלא אחרי כל העריכות (בלי סימוני שינוי), ושמור גם `edits.json` כתיעוד.
2. בנה והעלה כ-Google Doc זמני:
```bash
DE=$(ls -d ~/.claude/plugins/cache/hamakom-plugins/dor-edit/*/skills/dor-edit 2>/dev/null | sort -V | tail -1); DE=${DE:-~/.claude/skills/dor-edit}
python3 "$DE/scripts/build_docx.py" edited.txt edited.docx
python3 "$DE/scripts/upload_to_gdocs.py" edited.docx --name "<כותרת> — גרסה ערוכה (זמני)"
```
3. בכרום של דור (mcp__claude-in-chrome, פעולה קבועה אחת): פתח את מסמך **המקור** ← תפריט Tools ← Compare documents ← בחר את המסמך הזמני ← Attribute differences to: דור זומר ← Compare. המסמך שנוצר = כל השינויים כהצעות מהיוזר של דור. זה התוצר.
4. הערות קריטיות (חוסם-פרסום וכד'): דרך בחירת טקסט + Insert ← Comment (מעט, רק החיוניות; השאר בדוח). מחק את המסמך הזמני בסוף (drive_trash).

**כללי דפדפן קשיחים (לקחי 03.07):** אל תשתמש בקיצורי Cmd — תפריטים בלבד; ודא בצילום מסך שדיאלוג פתוח לפני כל הקלדה; לעולם לא cmd+a כשלא בטוח איפה הפוקוס (triple_click בלבד); הקלדה לדוק במצב Suggesting = הצעה, ולכן כל שגיאת פוקוס מזהמת את המסמך.

**סבב המשך על מסמך שדור כבר סקר:** לפני כל עריכה נוספת — קרא את המצב הנוכחי (read_file_content או צילום): דור מקבל/דוחה הצעות בין סבבים והטקסט החי השתנה. חיפוש ב-Docs רואה רק טקסט חי — לא הצעות תלויות (לא insertions ולא מחיקות-בהמתנה); מחרוזות find חייבות להילקח מהטקסט הנוכחי, ולהסתיים/להתחיל בטקסט חי. ודא שמצב Suggesting פעיל מחדש (הטאב עשוי להתאפס).

**מסלול ב — פולבק כשאין דפדפן:** pack.py + upload_to_gdocs.py על docx עם track changes בשם "דור זומר" — עובד ב-30 שניות אבל מסומן "From imported document".

### 7. תמונות פלאש 90
2–3 שאילתות מהישויות המרכזיות (מקום, אדם, מוסד):
```bash
DE=$(ls -d ~/.claude/plugins/cache/hamakom-plugins/dor-edit/*/skills/dor-edit 2>/dev/null | sort -V | tail -1); DE=${DE:-~/.claude/skills/dor-edit}
python3 "$DE/scripts/flash90_search.py" "<שאילתה>" 6
```

### 8. דוח עורך — מסמך Drive נלווה (זה מה שדור אוהב ב-journalist-editor; חובה)
כתוב `report.txt` ואז:
```bash
DE=$(ls -d ~/.claude/plugins/cache/hamakom-plugins/dor-edit/*/skills/dor-edit 2>/dev/null | sort -V | tail -1); DE=${DE:-~/.claude/skills/dor-edit}
python3 "$DE/scripts/build_docx.py" report.txt report.docx
python3 "$DE/scripts/upload_to_gdocs.py" report.docx --name "<כותרת> — דוח עורך"
```
**עדכוני המשך לדוח — תמיד באותו קישור**, לא מסמך חדש: ערוך את report.txt, בנה מחדש, והרץ עם `--update <file_id>` (מחליף את התוכן במקום). הדוח הוא מסמך חי שמתעדכן לאורך חיי הכתבה (תיקוני אימות, "נוסף בכתבה", משימות מעקב שנסגרו).
מבנה הדוח (המסמך חי ליד הכתבה ב-Drive; הכתבה עצמה נשארת נקייה ושליחה לכתב/ת):
1. **אימות עובדות** — שורה לכל טענה: סטטוס (מאומת / לא נמצא אישוש / סותר / מיוחס-לדובר) | הטענה | המקור שנמצא | הערה לכתב/ת.
2. **חומרים להרחבה** — מקורות ראשוניים (דוחות, פרוטוקולים, פסיקות), מומחים/גורמים שלא צוטטו, כתבות קשורות שלנו ושל אחרים.
3. **כותרות** — הכותרת שנבחרה, 2–3 חלופות, כותרת SEO, תיאור מטא, מילות מפתח.
4. **תמונות פלאש 90** — קישור חיפוש לכל שאילתה + מזהי תמונות מועמדות.
5. **החלטות דור** — 3–7 נקודות שרק הוא מכריע, ממוינות לפי חשיבות (תגובות חסרות, סוגיות אתיות, בחירות מסגור).

### 9. סיכום בצ'אט
שני קישורים (הכתבה הערוכה + דוח העורך), ספירת שינויים והערות, ושלוש שורות של עיקרי "החלטות דור". בלי לשכפל את הדוח המלא.

## חוקים קשיחים

- שום עובדה חדשה בגוף בלי מקור בהערה צמודה. ספק = הערה, לא תיקון. עובדה שגויה שאין לה תיקון ודאי — נמחקת.
- עדויות לא מקוצצות. ציטוטי מחץ מקודמים בלי לשנות מילה.
- בטור דעה: אין שינויי מבנה, אין ריכוך רטוריקה — שגיאות בלבד.
- SSL בסקריפטים: certifi כבר מטופל. אם python נכשל על מודול — `pip3 install <מודול> --break-system-packages`.
