fix(export): תיקוני-תבנית DOCX — חתימות לסוף, א–ד ללא נתונים, "החלטה"=כותרת (#205) #355
Reference in New Issue
Block a user
Delete Branch "worktree-agent-a4e6a6d273c4c3379"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
מה ולמה
תיקוני-תבנית DOCX מ-WS5 של עיצוב-מחדש זרימת-העבודה (TaskMaster #205, tag
legal-ai), פריטים ת1–ת3.שורש הבעיה (ת3): הטמפלט
skills/docx/decision_template.docxמכיל 3 טבלאות-דוגמה בגוף-המסמך — כותרת מוסדית (בלוק-א), הרכב-הוועדה (בלוק-ב), וטבלת-חתימות (בלוק-יב, "ניתנה פה אחד" + יו"ר/מזכירה) בסוף._clear_bodyהסיר רק אלמנטי<w:p>והשאיר את כל הטבלאות. כתוצאה:שכבת-התיקון — exporter, לא הטמפלט (G1, INV-EX1): ההחלטה היא נתון-נגזר המשוחזר במלואו מ-
decision_blocks; החתימות מגיעות מ-block-yod-betשמרונדר אחרון בסדר-הבלוקים. לכן טבלאות-הדוגמה הן פיגום מיושן ולא מקור-תוכן —_clear_bodyמתוקן להסיר את כל גוף-המסמך (פסקאות, טבלאות, ו-bookmarks יתומים) ולהשאיר רקsectPr(הגדרות-עמוד/bidi). אין נגיעה בקובץ-הטמפלט הבינארי (נשאר משולח ב-Dockerfile + allowlist ב-.dockerignore).ת2 — כבר תקין:
block-daletמרנדר אך-ורק את הכותרת "החלטה" (Heading 1, מתעלם לחלוטין מתוכן-ה-DB). הוסף test מפורש לנעילת ההתנהגות.תוקן גם ב-
analysis_docx_exporter._clear_body— אותו באג, סימטריה (G2).Invariants — הצהרה (חובה)
decision_blocks; הסרת טבלאות-הטמפלט מונעת זחילת תוכן-טמפלט למסמך, מחזקת את החוזה שהפלט משוחזר אך-ורק מהבלוקים._clear_body(השורש), לא טלאי בקריאה/רינדור פר-בלוק.צ'קליסט — פרוטוקול כתיבת-קוד
00-constitution.md+06-export.md+block-schema.md+dafna-decision-template/SKILL.mdלפני הכתיבה_clear_body)gap-audit.md— אין FU/GAP ממופה ל-_clear_body/מיקום-חתימות; זה תיקון-תבנית מ-WS5test_docx_exporter_bookmarks+test_export_qa_gate+test_track_changes_e2e)אימות
_clear_body(Document(TEMPLATE_PATH))→ גוף-המסמך מכיל רקsectPr(0 טבלאות, 0 פסקאות)._write_block_to_docx(block-dalet, content="נתון ישן…")→ שורת-תוכן יחידה"החלטה", ללא Title-style.content.strip()); נתוני-טמפלט כבר לא מוזרקים.pytest tests/test_docx_exporter_bookmarks.py tests/test_export_qa_gate.py tests/test_track_changes_e2e.py→ 27 passed.🤖 Generated with Claude Code