feat(export): INV-EX4 מקור-תבנית-יחיד + תיקון יישור מסלול-העריכה #366

Merged
chaim merged 1 commits from worktree-inv-ex4-template into main 2026-06-30 17:08:18 +00:00
Owner

מה ולמה

היו"ר הגדיר: כל סוכן/פקודה שמייצרת מסמך-החלטה חייבת להשתמש בתבנית היחידה ובסגנונות שמוגדרים בה בלבד. PR זה מעגן את הכלל ומתקן את ההפרה היחידה שגרמה למסמכים לא-מיושרים.

שורש הבעיה

export_docx תקין (טוען decision_template.docx, כופה jc=both) — אבל מסלול-העריכה (revise_draft/apply_user_editdocx_reviser) בנה כל פסקה מוכנסת עם jc=right קשיח + David/sz ידני, ולכן פלט-העריכה איבד את היישור הדו-צדדי של התבנית והכניס עיצוב-אד-הוק.

שינויים

  • docs/spec/06-export.md — INV-EX4 חדש: מקור-תבנית-יחיד; כל מפיק (סופי/טיוטת-ביניים/סיכום-מנהלים/ניתוח/עריכה) מחיל style-by-name בלבד; אסור hand-setting של rFonts/sz/szCs.
  • docx_reviser — תיקון: הפסקאות המוכנסות מקבלות pStyle מן-הטמפלט (Normal/Heading 2/Quote, נפתר מ-styles.xml) + jc=both קנוני, בלי פונט/גודל ידני. הגופן/גודל מגיעים מהסגנון (כמו analysis_docx_exporter).
  • שומר-CI test_docx_template_single_source.py: נכשל על בניית w:rFonts/w:sz/w:szCs במודולי-המפיקים מחוץ לטמפלט. חריג מסומן # INV-EX4-ok ל-_mark_run_rtl ב-docx_exporter (מחזק את גופן-התבנית David כעקיפת באג-RTL של Word; לא עיצוב-אד-הוק).
  • אימות: build_party_claims_summary_docx (סיכום-מנהלים, WS3 #202) + export_decision (סופי/טיוטת-ביניים) כבר תבניתיים ותואמי-INV-EX4 — לא נדרש שינוי.
  • ניקוי: ארכוב scripts/exec_summary_1043.py (one-off; הוחלף ב-build_party_claims_summary_docx) + רישום ב-SCRIPTS.md.
  • עדכון 2 טסטים שאימתו את ההתנהגות הישנה (rFonts על run מוכנס).

Invariants

  • INV-EX4 (חדש) — מקור-תבנית-יחיד, סגנונות-בלבד.
  • מקיים INV-G2 (מקור-יחיד, אין מסלול-סגנון מקביל), INV-EX1 (DOCX נגזר).

בדיקות

PYTHONPATH=src pytest על test_docx_reviser · test_track_changes_e2e · test_docx_template_single_source · test_export_qa_gate → כולם עוברים (59 בריצה הרחבה). אומת ש-docx_reviser מפיק pStyle=a1/2/a9 + jc=both + 0 rFonts/sz מול התבנית האמיתית.

🤖 Generated with Claude Code

## מה ולמה היו"ר הגדיר: **כל סוכן/פקודה שמייצרת מסמך-החלטה חייבת להשתמש בתבנית היחידה ובסגנונות שמוגדרים בה בלבד**. PR זה מעגן את הכלל ומתקן את ההפרה היחידה שגרמה למסמכים לא-מיושרים. ### שורש הבעיה `export_docx` תקין (טוען `decision_template.docx`, כופה `jc=both`) — אבל **מסלול-העריכה** (`revise_draft`/`apply_user_edit` → `docx_reviser`) בנה כל פסקה מוכנסת עם `jc=right` קשיח + David/`sz` ידני, ולכן פלט-העריכה **איבד את היישור הדו-צדדי של התבנית** והכניס עיצוב-אד-הוק. ## שינויים - **`docs/spec/06-export.md` — INV-EX4 חדש:** מקור-תבנית-יחיד; כל מפיק (סופי/טיוטת-ביניים/סיכום-מנהלים/ניתוח/עריכה) מחיל style-by-name בלבד; אסור hand-setting של `rFonts`/`sz`/`szCs`. - **`docx_reviser` — תיקון:** הפסקאות המוכנסות מקבלות `pStyle` מן-הטמפלט (`Normal`/`Heading 2`/`Quote`, נפתר מ-`styles.xml`) + `jc=both` קנוני, בלי פונט/גודל ידני. הגופן/גודל מגיעים מהסגנון (כמו `analysis_docx_exporter`). - **שומר-CI `test_docx_template_single_source.py`:** נכשל על בניית `w:rFonts`/`w:sz`/`w:szCs` במודולי-המפיקים מחוץ לטמפלט. חריג מסומן `# INV-EX4-ok` ל-`_mark_run_rtl` ב-`docx_exporter` (מחזק את גופן-התבנית David כעקיפת באג-RTL של Word; לא עיצוב-אד-הוק). - **אימות:** `build_party_claims_summary_docx` (סיכום-מנהלים, WS3 #202) + `export_decision` (סופי/טיוטת-ביניים) כבר תבניתיים ותואמי-INV-EX4 — לא נדרש שינוי. - **ניקוי:** ארכוב `scripts/exec_summary_1043.py` (one-off; הוחלף ב-`build_party_claims_summary_docx`) + רישום ב-`SCRIPTS.md`. - עדכון 2 טסטים שאימתו את ההתנהגות הישנה (rFonts על run מוכנס). ## Invariants - **INV-EX4** (חדש) — מקור-תבנית-יחיד, סגנונות-בלבד. - מקיים **INV-G2** (מקור-יחיד, אין מסלול-סגנון מקביל), **INV-EX1** (DOCX נגזר). ## בדיקות `PYTHONPATH=src pytest` על test_docx_reviser · test_track_changes_e2e · test_docx_template_single_source · test_export_qa_gate → **כולם עוברים** (59 בריצה הרחבה). אומת ש-`docx_reviser` מפיק `pStyle=a1/2/a9` + `jc=both` + 0 rFonts/sz מול התבנית האמיתית. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-30 17:08:07 +00:00
feat(export): INV-EX4 single-template source + fix edit-path justification
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
a8dd8ee152
מקור-תבנית-יחיד לכל מפיקי-מסמכי-ההחלטה: כולם מחילים סגנונות דרך
skills/docx/decision_template.docx בלבד; אסור hand-setting של פונט/גודל.

- docs/spec/06-export.md — INV-EX4 חדש (מקור-תבנית-יחיד, →G2)
- docx_reviser: מסלול-העריכה (revise_draft/apply_user_edit) הכניס פסקאות
  עם jc=right קשיח + David/sz ידני → איבד יישור דו-צדדי של התבנית.
  עכשיו מחיל pStyle מן-הטמפלט (Normal/Heading 2/Quote) + jc=both קנוני,
  בלי rFonts/sz ידני (הגופן/גודל מגיעים מהסגנון).
- שומר-CI test_docx_template_single_source — נכשל על בניית rFonts/sz
  במפיקים מחוץ לטמפלט (חריג מסומן # INV-EX4-ok ל-_mark_run_rtl,
  שמחזק את גופן-התבנית David כעקיפת באג-RTL של Word).
- אומת: build_party_claims_summary_docx (סיכום-מנהלים, WS3) + export_decision
  (סופי/טיוטת-ביניים) כבר תבניתיים ותואמי-INV-EX4.
- ארכוב scripts/exec_summary_1043.py (one-off; הוחלף ב-build_party_claims_summary_docx).
- עדכון 2 טסטים שאימתו את ההתנהגות הישנה (rFonts על run מוכנס).

Invariants: מקיים INV-EX4 (חדש), INV-G2 (מקור-יחיד, אין מסלול-סגנון מקביל),
INV-EX1 (DOCX נגזר). נוגע ב-docx_reviser/docx_exporter/analysis_docx_exporter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit c71bbc0df2 into main 2026-06-30 17:08:18 +00:00
chaim deleted branch worktree-inv-ex4-template 2026-06-30 17:08:18 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#366