block_writer שומר טקסט-שיחה של המודל לתוך תוכן הבלוק — נדרש שער-ניקוי בכתיבה #455

Open
opened 2026-08-05 11:01:19 +00:00 by chaim · 0 comments
Owner

What & Why

write_and_store_block שומר את פלט-ה-LLM הגולמי ל-decision_blocks ללא כל ניקוי. כשהמודל עוטף את התוצר בפתיח ("אכתוב את הפרק מחדש לפי הוראת היו״ר...") או בדוח-סיכום נלווה (טבלת סעיפים + "שמרתי על הפרדה מלאה...") — הטקסט הזה נכנס לבלוק, זולג ל-drafts/decision.md דרך _update_draft_file, ומשם ל-DOCX שהיו״ר מקבלת.

נצפה בפועל (16.07.26, ערר 1043-02-26):

  1. block-zayin — הרצת write_block החזירה 7,872 מילים שכללו פתיח + דוח-סיכום בסוף. נוקה ידנית ונשמר מחדש דרך save_block_content (7,697 מילים נקיות).
  2. block-tet — זיהום קיים כבר בטיוטה שהיו״ר קראה: "מצב הנתונים בתיק 1043-02-26 כרגע אינו מאפשר בלוק ט 'אמיתי':", "להלן טיוטת-עבודה...", "הערה למנסח:", ו-14 placeholders מסוג [תוקף — יושלם] / נ.. ה-DOCX המיוצא מציג את שורת-המטא כ-Heading 3.
  3. block-chet — "הערה: הרחבתי מעט את סעיף 7.4...".

ההסתברות לזיהום עולה ככל שההנחיות ארוכות/דיאלוגיות יותר.

הפתרון המוצע — שער-ניקוי בנקודת-הכתיבה (quality-at-source, G4), לא תיקון בקריאה (G1):

  • פונקציית _strip_model_chatter(content, block_id) ב-block_writer, שתופעל ב-write_and_store_block לפני store_block: חיתוך כל מה שלפני כותרת-הבלוק הראשונה (^#{1,3}\s), וחיתוך זנב-מטא (מפריד --- ואחריו טקסט בגוף ראשון/טבלת-סיכום).
  • אין בליעה שקטה: אם נחתך טקסט — לרשום WARNING עם מספר התווים שנחתכו ולהחזיר שדה chatter_stripped בתוצאה.
  • לחזק את הפרומפט: "החזר אך ורק את גוף הבלוק, בלי פתיח, בלי דוח-סיכום ובלי פנייה למזמין".
  • שער QA: legal-qa ייכשל על בלוק שמכיל סמני-שיחה (גוף ראשון "אכתוב/שמרתי/הרחבתי", "הערה למנסח", "טיוטת-עבודה").

הערה נלווית: save_block_content מסמן generation_type='claude-code'/model_used='claude-code' — כך שניקוי ידני של פלט-Opus מאבד את הפרובננס האמיתי (X8). כדאי לאפשר שימור-פרובננס בשמירה מנוקה.

Acceptance Criteria

⚠️ טרם הוגדרו. המשימה הועברה מ-TaskMaster ללא testStrategy.
לפני לקיחתה — להגדיר AC ולסמן status:ready (כלל התבנית: issue ללא AC אינו pickable).


הועבר מ-TaskMaster (tag legal-ai, id 229, status היה pending) ב-2026-08-05. הפניות (#229) בהודעות-commit ישנות מתייחסות למזהה ה-TaskMaster, לא למספר ה-issue הזה.

## What & Why write_and_store_block שומר את פלט-ה-LLM הגולמי ל-decision_blocks ללא כל ניקוי. כשהמודל עוטף את התוצר בפתיח ("אכתוב את הפרק מחדש לפי הוראת היו״ר...") או בדוח-סיכום נלווה (טבלת סעיפים + "שמרתי על הפרדה מלאה...") — הטקסט הזה נכנס לבלוק, זולג ל-drafts/decision.md דרך _update_draft_file, ומשם ל-DOCX שהיו״ר מקבלת. נצפה בפועל (16.07.26, ערר 1043-02-26): 1. block-zayin — הרצת write_block החזירה 7,872 מילים שכללו פתיח + דוח-סיכום בסוף. נוקה ידנית ונשמר מחדש דרך save_block_content (7,697 מילים נקיות). 2. block-tet — זיהום קיים כבר בטיוטה שהיו״ר קראה: "**מצב הנתונים בתיק 1043-02-26 כרגע אינו מאפשר בלוק ט 'אמיתי':**", "להלן **טיוטת-עבודה**...", "הערה למנסח:", ו-14 placeholders מסוג [תוקף — יושלם] / **נ.**. ה-DOCX המיוצא מציג את שורת-המטא כ-Heading 3. 3. block-chet — "הערה: הרחבתי מעט את סעיף 7.4...". ההסתברות לזיהום עולה ככל שההנחיות ארוכות/דיאלוגיות יותר. הפתרון המוצע — שער-ניקוי בנקודת-הכתיבה (quality-at-source, G4), לא תיקון בקריאה (G1): - פונקציית _strip_model_chatter(content, block_id) ב-block_writer, שתופעל ב-write_and_store_block לפני store_block: חיתוך כל מה שלפני כותרת-הבלוק הראשונה (^#{1,3}\s), וחיתוך זנב-מטא (מפריד --- ואחריו טקסט בגוף ראשון/טבלת-סיכום). - אין בליעה שקטה: אם נחתך טקסט — לרשום WARNING עם מספר התווים שנחתכו ולהחזיר שדה chatter_stripped בתוצאה. - לחזק את הפרומפט: "החזר אך ורק את גוף הבלוק, בלי פתיח, בלי דוח-סיכום ובלי פנייה למזמין". - שער QA: legal-qa ייכשל על בלוק שמכיל סמני-שיחה (גוף ראשון "אכתוב/שמרתי/הרחבתי", "הערה למנסח", "טיוטת-עבודה"). הערה נלווית: save_block_content מסמן generation_type='claude-code'/model_used='claude-code' — כך שניקוי ידני של פלט-Opus מאבד את הפרובננס האמיתי (X8). כדאי לאפשר שימור-פרובננס בשמירה מנוקה. ## Acceptance Criteria > ⚠️ **טרם הוגדרו.** המשימה הועברה מ-TaskMaster ללא `testStrategy`. > לפני לקיחתה — להגדיר AC ולסמן `status:ready` (כלל התבנית: issue ללא AC אינו pickable). --- <sub>הועבר מ-TaskMaster (tag `legal-ai`, id **229**, status היה `pending`) ב-2026-08-05. הפניות `(#229)` בהודעות-commit ישנות מתייחסות למזהה ה-TaskMaster, לא למספר ה-issue הזה.</sub>
chaim added the priority:p1-higharea:writingtype:bug labels 2026-08-05 11:01:19 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#455