# המרת `.dotx` → `.docx` עבור python-docx

## למה

python-docx **לא יודע לפתוח** קובצי Word Template (`.dotx`). ניסיון לפתיחה
זורק:
```
ValueError: file 'X.dotx' is not a Word file, content type is
'application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml'
```

כי `main document part` של `.dotx` מסומן כ-template, לא כ-document.

## הפתרון — המרה חד-פעמית

קובץ `.dotx` הוא ZIP שכולל את אותם parts כמו `.docx` + `word/glossary/`
(building blocks). להמרה:

1. פתח את ה-ZIP.
2. **הסר** את כל ה-parts תחת `word/glossary/`.
3. **תקן** `[Content_Types].xml`:
   - החלף `template.main+xml` ב-`document.main+xml`
   - הסר `<Override>` entries שמצביעים ל-`/word/glossary/...`
4. **תקן** `word/_rels/document.xml.rels`:
   - הסר את ה-`<Relationship>` עם
     `Type=".../relationships/glossaryDocument"`
5. שמור מחדש כ-ZIP עם סיומת `.docx`.

## הסקריפט

[`scripts/convert_decision_template.py`](../../../scripts/convert_decision_template.py)
(בשורש הפרויקט) עושה את זה. הרץ אותו:

- פעם אחת אחרי clone של הפרויקט (אם `skills/docx/decision_template.docx`
  לא קיים).
- בכל פעם שדפנה מעדכנת את `data/training/טיוטת החלטה.dotx`.

```bash
python scripts/convert_decision_template.py
# → skills/docx/decision_template.docx
```

הסקריפט כולל verification שבודק שהקובץ שנוצר נטען נקי ב-python-docx
ושהסגנונות הקריטיים (Normal, Heading 2, Quote, List Paragraph, Title)
נמצאים בו.

## למה לא `docxtpl`?

`docxtpl` מיועד ל-**placeholder substitution** סגנון Jinja2
(`{{ variable }}`). הטמפלט שלנו לא מכיל placeholders — אנחנו מרכיבים
תוכן דינמי. `python-docx` על טמפלט `.docx` נקי מספיק לגמרי.

## הימנע מ-

- **אל תנסה** להוריד את ה-glossary רק מ-`[Content_Types].xml` בלי להסיר
  את ה-`<Relationship>` שמפנה אליו → תקבל dangling reference.
- **אל תנסה** להשתמש ב-`.dotx` ישירות דרך `zipfile` + לבנות Document
  ידנית — חוסך 10 שורות אבל מאבד את כל ה-robustness של python-docx.
