Reorganize: skills/ directory + move memory to docs/

skill-legal-decision/ → skills/decision/
skill-legal-assistant/ → skills/assistant/
skill-legal-docx/ → skills/docx/
memory/*.md → docs/

Also removed: TASKS.md (use TaskMaster), classifier.py (replaced by local_classifier.py)
Updated all references in CLAUDE.md, scripts, PRDs, docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-04 14:27:07 +00:00
parent d5ccf03e4c
commit 911c797eb2
21 changed files with 224 additions and 316 deletions

501
skills/decision/SKILL.md Normal file
View File

@@ -0,0 +1,501 @@
---
name: legal-decision
description: This skill should be used when writing legal decisions (החלטות) for betterment levy appeals (היטל השבחה) and licensing appeals (רישוי). It applies low temperature for accuracy and high token output for elaborate legal analysis with citations from case law.
---
# סגנון כתיבת החלטות - דפנה תמיר
מדריך זה מלמד לכתוב החלטות של ועדת ערר לתכנון ובניה בסגנון של יו"ר הוועדה דפנה תמיר. המדריך עוסק אך ורק בסגנון הכתיבה, במבנה, בביטויים ובשיטה האנליטית. הפסיקה הרלוונטית תסופק בכל ערר בנפרד.
סוגי עררים: היטל השבחה (מספרי 8xxx), רישוי ובנייה (מספרי 1xxx), תכנון (מספרי 1xxx).
## 1. זיהוי סוג הערר והטון
מספר הערר קובע את הטון. ערר רישוי (1xxx) נכתב בטון חם יחסית עם אלמנטים אנושיים בסיום. ערר היטל השבחה (8xxx) נכתב בטון קר, יבש ומקצועי, ללא רגשות.
סוג הערר משפיע על טון הכתיבה, על פתיחת הדיון (רחבה עם הקשר תכנוני ברישוי לעומת ישירה בהיטל השבחה), על סיום ההחלטה (פסקת סיום חמה ברישוי שנדחה לעומת סיום יבש בהיטל השבחה), ועל יחסי החלקים במסמך.
## 2. מבנה המסמך
### 2.1 כותרת והרכב
המסמך נפתח בכותרת מובנית הכוללת: שם המוסד (מדינת ישראל, ועדת ערר לתכנון ובניה, מחוז ירושלים), מספר תיק, הרכב הוועדה (יו"ר וחברים), שמות הצדדים ובאי כוחם, והמילה "החלטה".
### 2.2 סדר הפרקים
הרקע העובדתי מתחיל ישירות בסעיף 1, ללא כותרת מפורשת. לאחריו באים: "תמצית טענות הצדדים" עם תת-פרקים לכל צד (טענות העוררים, עמדת הוועדה המקומית, עמדת מבקשי ההיתר), ואז "דיון והכרעה", ולבסוף "סיכום" או "סוף דבר".
כשהוועדה המקומית קיימה דיון מנומק, ייתכן פרק נפרד שמצטט את הפרוטוקול לפני הטענות. כשהדיון בפני ועדת הערר הוסיף מעבר לכתבי הטענות, ייתכן תת-פרק "הדיון בפני ועדת הערר" או "הבהרות".
כותרת הסיום: "סיכום" מועדף בעררי היטל השבחה ובדחיות. "סוף דבר" מועדף בעררי רישוי ובקבלות. לא "סיכום והכרעה".
### 2.3 כותרות משנה
כותרות משנה מופיעות רק כשיש הבחנה בין צדדים (טענות העוררים, הוועדה המקומית, מבקשי ההיתר) או בין נושאים מרכזיים שונים. בפרק הדיון וההכרעה הכלל הוא אסה רציפה אחת ללא כותרות משנה, והמעברים נעשים באמצעות ביטויי מעבר טקסטואליים. החריג: כשיש מספר נושאים נפרדים לחלוטין (למשל: "הבקשה להקלה בגובה המבנה" ואז "התייחסות לטענות נוספות שעלו בכתב הערר"), מותרת כותרת נושאית.
### 2.4 מספור סעיפים
מספרים עוקבים לאורך כל המסמך: 1, 2, 3 וכו'. אין איפוס מספור בין פרקים. המספור ממשיך ברצף מ-1 עד הסוף.
## 3. סגנון ניסוח
### 3.1 אורך סעיפים
בחלק הרקע והטענות: סעיף טענה רגיל הוא 40-60 מילים (פתיחה, טענה, פירוט, השלכה - לא פחות מ-3 משפטים). סעיף תגובה הוא 50-80 מילים (דחיית הטענה, נימוק, ראיה). סעיף עם ציטוט הוא 80-150 מילים (הקדמה, ציטוט, הסבר). סעיפי גשר בלבד הם 15-30 מילים ("נבהיר כי...", "כך גם נציין..."). הממוצע הכולל: 45-55 מילים לסעיף.
בחלק הדיון וההכרעה: הסעיפים ארוכים יותר משמעותית. סעיף ניתוח רגיל הוא 40-80 מילים. סעיף עם ציטוט מקיף מפסיקה או מהחלטה מרכזת יכול להגיע ל-200-600 מילים - ואין לפצל ציטוט כזה למספר סעיפים. הממוצע בדיון: 80-120 מילים לסעיף כולל ציטוטים.
דוגמה לסעיף טענה תקין (כ-40 מילים): "העוררים טוענים כי נפל פגם מהותי בהליך ההמצאה. לטענתם, תכניות הבנייה והבקשה להיתר לא הומצאו לידיהם כנדרש. העוררים מדגישים כי אי-ההמצאה מנעה מהם את האפשרות להתנגד במועד, ולטענתם מדובר ב'מחטף' שנועד לעקוף את זכות ההתנגדות של בעלי הזכויות בנכס."
### 3.2 יחסי הזהב - חלוקת אחוזים
ערר רישוי שנדחה (1xxx): פתיחה 0.5%, רקע 15-25%, טענות 30-40%, דיון 37-50%, סיכום 2-9%. מאפיינים: פתיחת דיון עם הקשר תכנוני רחב (5-8 פסקאות), אלמנטים אנושיים בסיום.
ערר רישוי שמתקבל (1xxx): רקע כולל ציטוט מפרוטוקול הוועדה 30-40%, טענות כולל השלמת מסמכים 20-30%, דיון עם ניתוח נימוק-נימוק 35-45%, סוף דבר 3-5%. מאפיינים: פתיחת דיון ישירה, דיון ארוך עם חזרות מכוונות, סיום עניני.
ערר רישוי שמתקבל חלקית (1xxx): רקע כולל ציטוט מפרוטוקול 25-35%, טענות כולל השלמת טיעון 25-30%, דיון 40-47%, סיכום 2-3%. מאפיינים: פתיחת דיון עם מיפוי מתחים (3-6 סעיפים), דיון ארוך עם ציטוטים נרחבים מהוראות תכנית ונספחים, סיכום מינימלי-אופרטיבי. ראה: בית הכרם 1126/25.
ערר היטל השבחה (8xxx): פתיחה 5-7%, רקע 6-18%, טענות 13-25%, דיון 32-48%, סיכום 3-4%. מאפיינים: פתיחה ישירה, הרבה ציטוטי פסיקה, סיום יבש.
### 3.3 הגדרות בשיטת "להלן"
פורמט קבוע: (להלן: "שם ההגדרה"). ההגדרה מופיעה במירכאות כפולות, בסוגריים לאחר האזכור הראשון. ניתן להגדיר שני מונחים חלופיים עם קו נטוי: (להלן: "התכנית" או "תכנית הל/435"). דוגמאות: (להלן: "הבקשה להיתר"), (להלן: "הבניין" / "המקרקעין"), (להלן: "התקנות").
### 3.4 ציטוטים ארוכים
ציטוטים ארוכים מפרוטוקולים, תכניות או פסיקה מוצגים כבלוק נפרד עם כניסה. לעיתים עם הערה "(הדגשת הח"מ)" או "(הדגשת הח.מ.)". ציטוטים ארוכים הם כלי מרכזי - דפנה מעדיפה לצטט בלוק ארוך אחד (200-500 מילים) מתוך החלטה מרכזת שכבר ריכזה את הפסיקה, במקום לצטט כל פסק דין בנפרד.
### 3.5 תמונות ונספחים
תמונות ותשריטים משולבים בטקסט עם הפניה מילולית: "להלן מתוך נספח האדריכלות והבקשה להיתר שם ניתן לראות את הדברים:", "להלן תמונת המגרשים הרלוונטיים מתוך מערכת ה-GIS של הוועדה המקומית", "להלן מתוך נספח הבינוי המצורף להוראות התכנית". העיצוב הטכני נעשה בשלב הוורד.
### 3.6 קיצורים משפטיים
עו"ד (עורך דין), ב"כ (בא כוח), עוה"ד (עורך הדין), יח"ד (יחידת דיור), מ"ר (מטר רבוע), תב"ע (תכנית בניין עיר), רמ"י (רשות מקרקעי ישראל), ר"ר / בר"ר (רשות רישוי), סה"כ (סך הכל).
### 3.7 פורמט תאריכים ומספרים
תאריכים: DD.MM.YY (לדוגמה: 12.06.25 או 17.4.2024). מספר תכנית: 102-1170893 או הל/435. מספר בקשה להיתר: 20250337. גוש וחלקה: גוש 30322 חלקה 77 מגרש 13.
### 3.8 עקרונות כלליים
הקורא צריך להבין את ההקשר המלא מקריאת ההחלטה בלבד. תן הקשר מלא ואל תניח שהקורא מכיר את התיק. ציטוט עדיף על תמצות כשיש מסמך מקור. פרט מספרים ונתונים מדויקים ("10 מתוך 14 דירות (71.4%)" ולא רק "רוב"). הסבר מונחים ("במסלול הירוק, קרי היתרים תואמי תכנית").
## 4. הצגת טענות הצדדים
### 4.1 טענות העוררים
מבנה סעיף: מספר, תיאור הטענה, פירוט, השלכות לטענת העוררים. ביטויים: "העוררים טוענים כי...", "לטענתם...", "העוררים מדגישים כי...", "עוד ציינו כי...", "לטענתם מדובר ב...", "העורר מוסיף וטוען כי...", "לחיזוק טענתו, מצביע העורר על...", "לחיזוק טענותיו...". טענות מהדיון: "בדיון הוסיפו וטענו העוררים כי...", "בדיון הוסיפה וטענה העוררת גב' [שם] כי...". הבהרות: "במסגרת הודעת העורר כי הצדדים לא הגיעו לפתרון מוסכם ביניהם צירף העורר הבהרה וטען כי...".
### 4.2 עמדת הוועדה המקומית
פתיחה: "במסגרת כתב התשובה ובדיון בפנינו הוועדה המקומית הציגה את עמדתה באופן מפורט." ביטויים: "הטענה המרכזית הינה כי...", "הוועדה המקומית הציגה נתונים מפורטים לעניין...", "הוועדה המקומית הבהירה כי...", "הוועדה הוסיפה כי...", "הוועדה המקומית טוענת כי...", "הוועדה המקומית מוסיפה כי...", "עוד טוענת הוועדה המקומית כי...", "לבסוף טוענת הוועדה המקומית כי...".
### 4.3 טענות מבקשי ההיתר
ביטויים: "מבקשי ההיתר דוחים מכל וכל את הטענה...", "לטענתם...", "מבקשי ההיתר מציינים כי...", "מבקשי ההיתר מבהירים כי...", "עוד מציינים מבקשי ההיתר כי...", "מכל מקום, מבקשי ההיתר...", "לגופו של עניין...", "לאור האמור, מבקשי ההיתר עותרים ל...".
### 4.4 כללים
הפרדה ברורה בין הצדדים - כל צד בפרק נפרד. סדר קבוע: עוררים, וועדה מקומית, מבקשי היתר. אין שילוב של טענות צדדים שונים באותו סעיף.
## 5. ביטויים ומעברים
### 5.1 ביטויים כלליים
"לפנינו" - פתיחת המסמך ("לפנינו שני עררים..."). "לענייננו" - מיקוד בנקודה רלוונטית. "נבהיר כי" - הבהרה חשובה. "כך גם נציין כי" - הוספת נקודה משלימה. "מדובר ב..." - הסבר עובדתי. "כפי ש..." - הפניה למידע קודם. "ואשר עניינם/עניינה ב..." - הגדרת נושא. "ככל ש..." - תנאי. "הרי ש..." - מסקנה. "מכל מקום" - מעבר לטענה חלופית. "לגופו של עניין" - מעבר לדיון המהותי. "אדרבא" - טענה נגדית חזקה. "קרי" - הסבר/פירוש. "כאמור" - הפניה לדבר שנאמר קודם. "בענייננו" - מעבר מכלל לפרט.
### 5.2 ביטויי מעבר בפרק הדיון
"ועל מנת לא לצאת בחסר" - פתיחת obiter dicta / נימוקים נוספים. דוגמה: "אך יחד עם זאת ועל מנת לא לצאת בחסר מצאנו להוסיף..."
"נציין כי טענות אלו נטענו בלשון רפה" - הכרה שטענות חלשות אבל נדונות. דוגמה: "...אך יחד עם זאת נדרשנו אליהם מכח הלכת שפר."
"עינינו הרואות" - סיכום ביניים לאחר ציטוט ארוך.
"נוסיף." - מעבר קצר (משפט אחד) לפני ציטוט נוסף.
"אם כן" / "אם כך" - הסקת מסקנה מציטוט או ניתוח. דוגמה: "אם כך, לעת הזו, הגישה הנוהגת היא ש..."
"למעלה מן הצורך" - דיון שאינו הכרחי להכרעה אבל נכתב מטעמים אסטרטגיים.
"ברי כי" - מסקנה מובנת מאליה.
"נפנה ל..." - פתיחת ניתוח של סעיף חוק/פסיקה.
"למיטב הבנתנו" - עמדה זהירה בסוגיה שטרם הוכרעה.
"נשלים ונציין" - תוספת אחרונה לפני הסיכום.
"מכל האמור לעיל" - מעבר לסיכום.
"נשוב על כך כי" - חזרה מכוונת על עקרון חשוב שכבר נאמר. דוגמה: "נשוב על כך כי ההחלטה לאישור הבקשה אין בה בכדי להוות כל הכרעה קניינית."
"דא עקא" - הצגת הבעיה המרכזית או מה שסותר את הטענה.
"ובמילים אחרות" - חידוד/פרפרזה של נקודה שנאמרה.
"הגענו לכלל מסקנה כי" - מסקנה מרכזית (בפתיחת דיון).
"לא נוכל לקבל" - דחיית עמדה/טענה.
"מקובלת עלינו" - קבלת עמדה.
"התרשמנו כי" - מסקנה מהדיון/ממסמכים.
"נחדד כי" - חידוד נקודה קודמת.
"סיכומם של דברים" - פתיחת סיכום מהותי לפני "סוף דבר".
"המסקנה מכל האמור היא כי" - מסקנת ביניים מקיפה.
"לעמדתנו" - עמדת הוועדה.
"בנסיבות אלה" - מעבר מעובדות למסקנה.
"נזכיר כי" - תזכורת לעקרון ידוע.
"מצאנו כי" - קביעה עובדתית.
"שוכנענו כי" - קביעה לאחר בחינה.
"על כן ולו רק מסיבה זו" - ניטרול טענה חלשה לפני ניתוח מעמיק.
"יחד עם זאת, מצאנו לנכון לדון בשאלה העקרונית" - מעבר לדיון עקרוני למרות דחייה.
"נסכם כי" - מעבר לסיכום ביניים.
"משכך" - הסקת מסקנה מהאמור.
"הדברים מתחדדים שעה ש..." - חידוד נוסף לאור נסיבות נוספות.
"נחזור על כך כי" - חזרה מודגשת על קביעה חשובה.
"זאת ועוד" - הוספת נימוק נוסף.
"יתרה מכך" - חיזוק הנימוק הקודם.
"לאור כל האמור לעיל" - פתיחת סיכום סופי.
"נפתח בכך כי" - פתיחה של הדיון (לא של המסמך).
"נפנה בעניין זה להחלטת..." - הפניה לתקדים.
"הדברים משליכים על שיקול הדעת ב..." - קישור בין ממצא למסקנה.
"רוצה לומר כי" - הסבר/פרפרזה אלטרנטיבית.
"נוצר מצב בו" - הצגת בעיה/מצב עובדתי.
"לכך נוסיף כי" - הוספת נדבך נוסף לטיעון.
"יש אולי להצר על כך ש..." - הערה ביקורתית עדינה (כלפי מוסד תכנון).
"עם ההבנה לטענה זו של העוררים, אין בידנו לקבלה" - acknowledge-reject מרוכך.
"ברי כי משאב הקרקע יקר לבעליו ולציבור" - הצדקת שימוש יעיל בקרקע.
## 6. השיטה האנליטית - "איך לחשוב" לפני "איך לכתוב"
### 6.1 שומר הסף - שאלת הסף
לפני שנוגעים בטענה לגופה, השאלה הראשונה היא: "יש לעוררים בכלל זכות ערר?" זו לא רק שאלה פרוצדורלית - זו מסגרת הניתוח כולה. **סייג חשוב:** שאלת הסף היא כלי אסטרטגי, לא חובה. בתיקים עם שאלות מהותיות חזקות (חניה, שימור, קווי בניין), דפנה עשויה לדלג על שאלת הסף ולדון ישירות בגוף העניין — במיוחד בקבלה חלקית. ראה: בית הכרם 1126/25 — דילגה על ס' 152 לחלוטין.
### 6.2 קילוף מסכות - סיווג הטענות
לוקחים כל טענה ובוחנים מה מתחת למסכה. האם טענה של "סטייה מתכנית" היא באמת סטייה, או השגה על התכנית עצמה? האם טענה קניינית לבשה כסות תכנונית? הטכניקה: לכתוב במפורש "טענות שהוצגו בכסות של טענות תכנוניות" - לחשוף את האסטרטגיה, לא רק לדחות אותה.
### 6.3 עיגולים קונצנטריים - בניית שכבות
לא לענות על כל טענה בנפרד. לבנות פירמידה של שכבות הגנה: שכבה חיצונית (אין זכות ערר כלל), "אך יחד עם זאת..." שכבה שנייה (גם אם הייתה - אין סטייה מתכנית), "למעלה מן הצורך..." שכבה שלישית (גם על המריטים - ההחלטה נכונה), "עוד נשלים..." שכבה רביעית (הטענות הקנייניות - מקומן בערכאה אחרת). ההחלטה נהיית חסינה מערעור - גם אם בית המשפט לא יקבל שכבה אחת, השכבות האחרות עומדות בפני עצמן. **הערה:** מבנה השכבות מתאים בעיקר לערר שנדחה (כמו הכט 1180-1181). בקבלה חלקית, דפנה עשויה להשתמש במבנה חלופי: הקשר → מיפוי נקודות מתח → ניתוח נושא-נושא → הוראות מעשיות. ראה: בית הכרם 1126/25.
### 6.4 הכרה-דחייה-ניתוב
לעולם לא לומר שהטענה לא לגיטימית. במקום זאת: להכיר ("אכן, לעוררים עומדת זכות להגיש התנגדות קניינית"), לדחות ("אולם הדין לא נתן בידי אותו בעל זכות גם זכות ערר"), לנתב ("מקומן של הטענות להתברר בפני המפקח על הבתים המשותפים").
### 6.5 מיפוי מצב הדין
כשיש שאלה משפטית שטרם הוכרעה, לא לבחור צד ולצטט. למפות את כל המצב: פסיקה A (דעת רוב - כיוון X), עתירה/ערעור, עמדת המדינה (כיוון Y), פסיקה B (חזרה מ-A), ערעור תלוי ועומד (טרם הוכרע), מסקנה: "לעת הזו, הגישה הנוהגת היא ש..."
### 6.6 נדיבות אסטרטגית - למעלה מן הצורך
השימוש ב"למעלה מן הצורך" הוא אסטרטגי: מראה שגם על המריטים התוצאה זהה, מונע טענה של "לא שמעו אותנו", יוצר תקדים גם בשאלות שלא היו חייבים להכריע, בונה קו פסיקתי עקבי.
### 6.7 ניטרול טענה חלשה לפני ניתוח מעמיק
כשיש טענה שאפשר לדחות מסיבה טכנית פשוטה, אבל יש גם שאלה עקרונית מעניינת מאחוריה - דפנה קודם מנטרלת את הטענה ("על כן ולו רק מסיבה זו נכון היה לדחות את הערעור ולסיים את הדיון"), ואז עוברת לדיון עקרוני ("יחד עם זאת, מצאנו לנכון לדון בשאלה העקרונית האם..."). זה מאפשר ליצור תקדים עקרוני מבלי להסתמך על הטענה החלשה.
### 6.8 טכניקת החידוד ("שארפנינג")
חזרה מכוונת על נקודות מפתח, כאשר כל חזרה מוסיפה זווית חדשה. דפנה משתמשת ב"נחדד כי...", "נשוב על כך כי...", "הדברים מתחדדים שעה ש...", "נחזור על כך כי..." - כל אחד מהביטויים האלה לא חוזר על מה שנאמר אלא מוסיף שכבה נוספת של ניתוח.
### 6.9 מנגנון פרשנות תכנית
כשצריך לפרש תכנית בניין עיר, דפנה עוברת ארבעה שלבים: ראשית, בחינת לשון התכנית (ציטוט מדויק מההוראות, בחינה האם ההוראה מחייבת או מנחה, חיפוש ניסוחים מחייבים כמו "בכל מקרה", "לא יעלה על"). שנית, בחינת תכלית התכנית (מה המטרות שהוגדרו, האם מדובר בתכנית נקודתית או כוללנית, מי היו היוזמים). שלישית, בחינת ההיסטוריה התכנונית (מה קבעו תכניות קודמות, האם התכנית החדשה החמירה או הקלה, מה המגמה). רביעית, בחינה ראייתית (היתרים שניתנו באזור, תצלומים, תשריטים, הדמיות).
### 6.10 ניתוח "בית בודד" בתמ"א 38
כשעוסקים בחיזוק/הריסה של בית בודד (להבדיל מבניין מגורים רב-קומתי), אינטרס החיזוק מפני רעידות אדמה מוחלש. דפנה מציינת זאת במפורש: "עסקינן בחיזוק בית בודד ועל כן... לא קיים באופן מלא אינטרס חיזוק כזה המצדיק את אישור מלוא הזכויות." המשמעות: שיקול דעת זהיר יותר באישור מלוא הזכויות מכוח תכנית 10038, במיוחד בנושאי קווי בניין וחניה. "הדברים משליכים על שיקול הדעת באישור הבקשה להיתר." ראה: בית הכרם ס' 41.
### 6.11 תכנית אב כ"מגן" מפני תכנון אד-הוק
כשקיימת תכנית אב/מדיניות לאזור, דפנה משתמשת בה כדי לאמת שהיתר בודד לא יוצר חריג: "קיימת תכנית אב אשר מקלה על בחינת הבקשה... החשש לאישור היתר מכח תכנית 10038 על מגרש בודד ללא ראיה כללית אינו קיים למעשה." דפוס: בדוק אם יש מדיניות → ציטוט הסעיפים הרלוונטיים → מסקנה שההיתר "משתלב עם ראיה כללית קיימת" ולא "מכתיב תכנון עתידי לסביבה". ראה: בית הכרם ס' 42.
## 7. כתיבת פרק הדיון וההכרעה
### 7.1 עקרונות כתיבה
אסה רציפה אחת - ללא כותרות משנה (חריג: נושאים נפרדים לחלוטין). מסקנה בפתיחה - הפרק נפתח עם המסקנה ואז מפרט את הנימוקים. ציטוטים ארוכים ומקיפים - העדפה לבלוק ציטוט אחד ארוך על פני פיצול. הפניה להחלטות מרכזות - במקום לצטט כל פסק דין בנפרד, הפניה להחלטה שכבר ריכזה את הפסיקה. שכבות ניתוח - מסקנה, נימוק ראשי, "אך יחד עם זאת", נימוק משני, "למעלה מן הצורך", obiter.
### 7.2 פתיחת הדיון - לפי סוג ערר ותוצאה
ערר רישוי שנדחה (פתיחה רחבה, 5-8 סעיפים): הדיון נפתח עם הקשר תכנוני רחב שמכין את הקורא. הקשר פרוצדוראלי (1-2 פסקאות) על ניסיון גישור שלא צלח. מהות דיני התכנון כעקרון (2-3 פסקאות) על יצירת פיתוח ואיכות חיים. איזונים בתכנון (1-2 פסקאות) על התחשבות בכל המעורבים. ערך ההתחשבות באחר (1-2 פסקאות). ייחוד המקרה (1 פסקה) - "בענייננו, אנו נדרשים לערוך את האיזונים הללו ולבחון האם...". רק אחרי 5-8 פסקאות אלה - צלול לעניין הספציפי עם מסקנה.
ערר רישוי שמתקבל (פתיחה ישירה, 1-2 סעיפים): "לאחר שמיעת טענות הצדדים ועיון במסמכים שהוגשו, הגענו לכלל מסקנה כי דין הערר להתקבל בכפוף למספר תיקונים בבקשה להיתר כפי שיורחב להלן." ואז הערה פרוצדורלית אם צריך.
ערר היטל השבחה (פתיחה ישירה עם מסקנה): "לאחר שבחנו את טענות הצדדים ונערך דיון בפנינו בו נשמעו בהרחבה, החלטנו בשלב ראשון כי [המסקנה]. אך יחד עם זאת ועל מנת לא לצאת בחסר ומאחר ונשמעו הצדדים בפנינו מצאנו להוסיף מספר הערות והכל כפי שיפורט להלן;"
ערר על פרשנות תכנית / סטיה ניכרת (פתיחה עם שאלה מרכזית): "כאמור השאלה המרכזית בערר הינה בחינת הבקשה ל[נושא הערר]." ואז ניטרול טענות חלשות, ומעבר לדיון עקרוני.
ערר רישוי שמתקבל חלקית (פתיחה במיפוי מתחים, 3-6 סעיפים): 1-2 פסקאות כלליות על ערך התכנון ואיזון אינטרסים. "בערר דנן עולות שאלות כיצד והאם..." → רשימה של 4-6 נקודות מתח ספציפיות בתיק (בבולטים), כל נקודה מתארת ציר מתח בין אינטרסים מנוגדים. "כל הנקודות לעיל עומדות לפנינו ולשם כך קראנו, שמענו את הצדדים..." → מעבר לניתוח. ראה: בית הכרם ס' 37-40.
### 7.3 מסלול דיון לפי סוג ערר
**ערר רישוי שנדחה - מסלול שכבות הגנה:**
פתיחה רחבה עם הקשר תכנוני (5-8 סעיפים). ניתוח זכות הערר (2-4 סעיפים). טענות קנייניות - אין זכות ערר (1-2 סעיפים ארוכים עם ציטוט מקיף מהחלטה מרכזת). דחיית טענות סטייה מתכנית (3-5 סעיפים). "למעלה מן הצורך" - היתכנות קניינית (אופציונלי). התייחסות לטענות ספציפיות (2-3 סעיפים קצרים).
**ערר רישוי שמתקבל - מסלול נימוק-נימוק:**
פתיחה ישירה עם מסקנה. הדיון מאורגן לפי נימוקי הדחייה של הוועדה המקומית. לכל נימוק: הצגת הנימוק ("באשר ל[נימוק] - הוועדה המקומית קבעה כי..."), ניתוח ("מעיון ב... / לא נוכל לקבל... / מקובלת עלינו..."), מסקנת ביניים ("משכך..." / "על כן..."). כשיש היבט קנייני - "נשוב על כך כי..." מופיע לפחות פעמיים (בדיון ובסיכום).
**ערר על פרשנות תכנית / סטיה ניכרת:**
הצגת שאלה מרכזית (1 פסקה). ניטרול טענות חלשות (1-2 פסקאות) - "על כן ולו רק מסיבה זו נכון היה לדחות". מעבר לדיון עקרוני (1 פסקה) - "יחד עם זאת, מצאנו לנכון לדון בשאלה העקרונית". ניתוח מקיף (5-15 פסקאות) באמצעות מנגנון פרשנות התכנית בארבעת שלביו: לשון, תכלית, היסטוריה תכנונית, בחינה ראייתית. ציטוטי פסיקה משולבים (2-3 פסקאות). מסקנה (1-2 פסקאות) עם "נסכם כי" או "לאור כל האמור לעיל".
**ערר היטל השבחה:**
פתיחה ישירה עם מסקנה. ניתוח ישיר - ציטוטי פסיקה מרובים. סיום יבש.
**ערר רישוי שמתקבל חלקית — מסלול מיפוי מתחים + ניתוח נושאי:**
פתיחה במיפוי מתחים (3-6 סעיפים): הקשר כללי קצר (1-2 פסקאות), רשימת נקודות מתח ספציפיות בתיק (4-6 בולטים), מעבר לניתוח. אין שימוש בשכבות/עיגולים קונצנטריים — ניתוח לפי נושאים: כל נושא מקבל טיפול מלא (הצגה → ציטוט הוראות תכנית → פסיקה → מסקנה). נושא חניה/תשתיות מקבל טיפול מעמיק במיוחד עם ציטוטים ישירים מהוראות תכנית ונספחים. טענות ספציפיות (מטרדים, עצים, בור מים) — 1-2 סעיפים תמציתיים לכל אחת. סיכום מינימלי — רק הוראות אופרטיביות (2-3 סעיפים). ראה: בית הכרם 1126/25.
### 7.4 טכניקת "ציטוט דרך החלטה מרכזת"
במקום לצטט כל פסק דין בנפרד, דפנה מפנה להחלטה שכבר ריכזה את הפסיקה: "בכל הנוגע ל[נושא], נפנה לניתוח המקיף שערכה ועדת הערר במסגרת ערר [שם] (פורסם בנבו) משם עולה כי..." ואז ציטוט בלוק ארוך (200-500 מילים) מתוך ההחלטה המרכזת שכוללת הפניות לפסיקה רלוונטית. הסיום: "אם כך, לעת הזו, הגישה הנוהגת היא ש..."
## 8. כתיבת סיכום / סוף דבר
### 8.1 ערר שנדחה
הכותרת: "סיכום". פתיחה: "לאור כל האמור לעיל, הערר נדחה." מבנה: תתי-סעיפים עם אותיות עבריות (א. ב. ג. ד. ה. ו.), כל תת-סעיף = נימוק מסכם.
בערר רישוי שנדחה בלבד - לפני "הערר נדחה", מופיעה פסקת סיום חמה ואנושית. לדוגמה: "טרם סיום נבקש לציין כי כתיבת החלטה זו לא הייתה קלה והדיון נשמע בפנינו בזמנים לא קלים. אנו מצרים כפי שציינו כי הצדדים לא הגיעו לידי הבנות והלוואי ולא היינו נדרשים לכתיבת ההחלטה. אנו תקווה כי חרף אי ההסכמות ישכילו הצדדים לייצר יחסי שכנות טובה כל אחד בדרכו ובעולמו תוך התחשבות והבנה הדדית לצרכי האחד כלפי שכנו." בערר היטל השבחה שנדחה - סיום יבש בלבד.
### 8.2 ערר שמתקבל
הכותרת: "סוף דבר". פתיחה: "לאור כל האמור לעיל, הערר מתקבל בכפוף ל..." או "אשר על כן, לאחר שמיעת הצדדים...". מבנה: סיכום רציף בפרוזה (3-5 פסקאות), כל פסקה מסכמת נימוק אחד, הוראה אופרטיבית. אין פסקה חמה. הסיום עניני: "בנסיבות העניין, אין צו להוצאות."
### 8.3 ערר שמוחזר לדיון
הכותרת: "סיכום" או "סוף דבר". מבנה: הוראות ממוספרות לוועדה המקומית ("תבחן", "תערוך", "תדון").
### 8.4 ערר שמתקבל חלקית
הכותרת: "סיכום". פתיחה: "לאור כל האמור לעיל, הערר מתקבל באופן חלקי." מבנה: 2-3 סעיפים אופרטיביים בלבד — מה מתקבל (בבולד), מה נדחה, תנאים נוספים. ללא חזרה על נימוקים (ההנמקה כבר בדיון). ייתכן ללא התייחסות להוצאות. ללא פסקת סיום חמה. ראה: בית הכרם ס' 84-86.
### 8.5 חתימה
"ניתנה פה אחד, היום [תאריך עברי], [תאריך לועזי]." חתימות יו"ר ומזכירת ועדת הערר.
### 8.6 הוצאות
"בנסיבות העניין, אין צו להוצאות." (או "יש צו להוצאות בסך...") בקבלה חלקית — ייתכן שההוצאות לא יוזכרו כלל.
## 9. דפוסים ייחודיים
### 9.1 חזרה מכוונת - "נשוב על כך כי"
בהחלטות קבלה שיש בהן היבט קנייני, דפנה חוזרת מספר פעמים על עקרון מרכזי: "נשוב על כך כי ההחלטה לאישור הבקשה אין בה בכדי להוות כל הכרעה קניינית ואין בה בכדי לגבור על כל הוראה אחרת על פי דין." כלל: בכל ערר שמתקבל ויש בו היבט קנייני, לשלב "נשוב על כך כי..." לפחות פעמיים - פעם בדיון ופעם בסיכום.
### 9.2 השלמת מסמכים
בתיקים מורכבים, לאחר הדיון ניתנת החלטה המאפשרת השלמת מסמכים. זה מתועד: "בסופו של דיון התקבלה החלטה המאפשרת השלמת מסמכים ואכן הגישו העוררים השלמת מסמכים הכוללת: [פירוט]. הוועדה המקומית השיבה וטענה כי [תשובה]." השלמת המסמכים מוצגת בסוף פרק הטענות.
### 9.3 הפניה לפרקדים של ניסיון גישור
"במסגרת הדיון בוועדת הערר הוסכם כי הצדדים ינסו לבחון דרכים להגיע לפתרון מוסכם ולבדוק דרך אפשרית לרבות קידום תוכנית נקודתית. במסגרת הודעת העורר כי הצדדים לא הגיעו לפתרון מוסכם ביניהם..."
### 9.4 עמידה על חוסר ראייתי
כשהעורר מעלה טענה בלי תימוכין: "מעבר לציון [מה שהוצג], לא הציג העורר כל תיעוד או אסמכתא להוכחת טענתו זו. בנסיבות אלה, לא עלה בידי העורר להרים את הנטל הראייתי הנדרש להוכחת טענתו בדבר [הטענה] כביכול."
### 9.5 למרות זאת - בדיקה עצמאית
גם כשהטענה לא הוכחה, דפנה בודקת בעצמה: "למרות זאת, ולמעלה מן הצורך, בחנה ועדת הערר את [מה שנבדק] והעלתה את הממצאים הבאים:..."
### 9.6 ציטוט הוראות תכנית
כשמצטטים מהוראות תכנית, דפנה מדגישה (בולד) את המילים המכריעות ומוסיפה ניתוח: "הניסוח הברור והחד-משמעי של ההוראה, בצירוף המילים 'בכל מקרה', מעיד על הכוונה ליצור מגבלה קשיחה."
### 9.7 אבחנה בין מחייב למנחה
"הנספח מבטא את נפח הבינוי המוצע והוא מנחה בלבד למעט לעניין [מה שמחייב]." הדגש המיוחד על מעמדן המחייב של הוראות מסוימות, להבדיל מיתר הוראות מנחות.
## 10. רשימת בדיקה
### רקע עובדתי
סעיף פתיחה "לפנינו..." או "עניינו בערר על החלטת...". תיאור הנכס והבקשה. הגדרות עם "להלן". ציטוט מהתכנית/פרוטוקול. תמונות רלוונטיות (מיקום מסומן). פירוט הליכים.
### טענות הצדדים
פרק "תמצית טענות הצדדים". טענות העוררים. עמדת המשיבים (הוועדה המקומית + מבקשי ההיתר). מספור רציף לאורך כל הסעיפים.
### דיון והכרעה
בדרך כלל אין כותרות משנה - הכל באסה רציפה (חריג: נושאים נפרדים). מסקנה בפתיחה. ציטוטים מקיפים מפסיקה בבלוקים ארוכים. ניטרול טענות חלשות לפני ניתוח מעמיק. מעבר לדיון עקרוני עם "יחד עם זאת, מצאנו לנכון...". שימוש בטכניקת החידוד ("נחדד כי", "נשוב על כך כי"). אם פרשנות תכנית - ארבעת השלבים (לשון, תכלית, היסטוריה, ראיות). אם קבלה עם היבט קנייני - "נשוב על כך כי..." לפחות פעמיים.
### סיכום / סוף דבר
"סיכום" (דחייה/היטל השבחה) או "סוף דבר" (קבלה/רישוי). מבנה סיכום לפי תוצאה (תתי-סעיפים בדחייה, פרוזה בקבלה, הוראות בהחזרה). ערר רישוי שנדחה: פסקת סיום חמה ואנושית. הוצאות. חתימה עם תאריך עברי ולועזי.
### סגנון כללי
שימוש ב"להלן" להגדרות. ביטויים ייחודיים לכל צד. ציטוטים ארוכים כבלוקים נפרדים. קיצורים משפטיים עקביים. אורך סעיפים מותאם (40-60 בטענות, 80-120+ בדיון). הקורא מבין את התיק רק מקריאת ההחלטה.
## 11. מבנה ההחלטה — 12 בלוקים בסדר קבוע
### 11.1 עקרון מנחה: "מבחן השופט"
כל החלטה נכתבת כאילו שופט בית משפט לעניינים מנהליים קורא אותה לראשונה במסגרת עתירה מנהלית. השופט לא מכיר את התיק, לא ביקר בשטח, ולא שמע את הצדדים. כל מה שהוא יודע — הוא מה שכתוב בהחלטה. לכן:
- הרקע מפורט ומלא (לא "כידוע" או "כמפורט בתיק")
- ציטוטים ארוכים ולא מקוצרים (השופט צריך את המקור)
- תמונות וחתכים משולבים (השופט לא היה בסיור)
- כל טענה מקבלת מענה מפורש (שלא ייאמר "הוועדה לא התייחסה")
- ההליכים מתועדים (שיהיה ברור שניתן יום בבית דין מלא)
### 11.2 סדר הבלוקים
להלן 12 הבלוקים בסדר קבוע. הסדר מחייב ואין לסטות ממנו. **להגדרות מלאות** (content model, constraints, משקלות, פרמטרי עיבוד) **ראה `references/block-schema.md`.**
| בלוק | שם | תפקיד | משקל |
|------|-----|--------|------|
| א | כותרת מוסדית | מזהה מוסד ותיק | 1% |
| ב | הרכב הוועדה | מזהה הרכב מחליט | 1% |
| ג | צדדים | מזהה עוררים ומשיבים | 1% |
| ד | "החלטה" | סימון פורמלי | 0% |
| ה | פתיחה | "לפנינו..." — מסגרת + הגדרות "להלן" | 1% |
| ו | רקע ("פתח דבר") | עובדות ניטרליות + תמונות + ציטוט מפרוטוקול | 15-35% |
| ז | טענות הצדדים | פרפרזה נאמנה — **רק כתבי טענות מקוריים** | 20-40% |
| ח | הליכים בפני ועדת הערר | דיון, סיור, השלמות טיעון (עם תוכן), החלטות ביניים | 3-15% |
| ט | תכניות חלות **(אופציונלי)** | ציטוט הוראות תכנית + ניתוח ראשוני | 0-12% |
| י | **דיון והכרעה** | **ניתוח משפטי — CREAC — ליבת ההחלטה** | **32-50%** |
| יא | סיכום / סוף דבר | תוצאה אופרטיבית בלבד | 2-9% |
| יב | חתימות | "ניתנה פה אחד" + חתימות | 1% |
**שלושה כללים מרכזיים:**
- ⚠️ **"רקע ניטרלי" (בלוק ו):** אם משפט מכיל ציטוט ישיר מצד, או מילות שיפוט ("חריג", "חטא") — הוא שייך לטענות (ז) או לדיון (י), לא לרקע. החלטות קודמות = עובדה יבשה בלבד.
- ⚠️ **"ללא כפילות" (בלוק י):** הפנה לבלוקים קודמים ("כאמור בסעיף X"), אל תחזור עליהם. חריג: "נשוב על כך כי..." (חזרה מכוונת עם שכבה חדשה).
- ⚠️ **טענות מקוריות בלבד (בלוק ז):** מכתבי ערר/תשובה. השלמות טיעון → בלוק ח עם תוכן מפורט.
### 11.3 הבדלים בין סוגי עררים
| מרכיב | ערר על היתר | ערר על תכנית | ערר היטל השבחה |
|-------|------------|-------------|---------------|
| בלוק ה (פתיחה) | "ערר על החלטת רשות הרישוי..." | "ערר על החלטת הוועדה..." | "ערר על שומת היטל השבחה..." |
| בלוק ו (מהות) | בקשה להיתר — שטחים, קומות, הריסה | תכנית — סעיפי סמכות, שטחים | שומה — תכנית משביחה, לפני/אחרי |
| בלוק ט (תכניות) | תמ"א 38, 10038, תכנית מפורטת | תכנית אב, תכנית קודמת | לא רלוונטי (בדרך כלל) |
| ציטוט מרכזי ברקע | חוו"ד מחלקת שימור / מהנדס | החלטת ועדה מחוזית / פרוטוקול | שומה + שומה נגדית |
| תמונות | תשריט היתר, הדמיות, סיור | תשריט תכנית, GIS, סיור | לרוב אין |
### 11.4 מיקומי תמונות מומלצים
| מיקום | מה להכניס | מתי |
|-------|----------|-----|
| אחרי תיאור מקרקעין (בלוק ו) | תשריט מיקום / מפת GIS עם סימון המגרש | תמיד |
| אחרי מהות הבקשה (בלוק ו) | תשריט הבקשה / נספח בינוי / תכנית מוצעת | תמיד |
| אחרי סביבת מקרקעין (בלוק ו) | צילום אוויר עם סימון המגרש והסביבה | מומלץ |
| בתוך הליכים (בלוק ח) | צילומים מהסיור | אם היה סיור |
| בתוך הליכים (בלוק ח) | הדמיות / חתכי בינוי מהשלמות טיעון | אם צורפו |
| בתוך דיון (בלוק י) | המחשה סכמטית / השוואה לפני-אחרי | לפי הצורך |
כשמכינים את טיוטת המבנה (שלב 12 להלן), בכל מקום שמתוכננת תמונה יש להכניס תיבת טקסט עם:
- "📷 תמונה:" + תיאור מה צריך להכניס
- למשל: "📷 תמונה: תשריט מיקום המגרש מתוך מערכת GIS — לסמן את חלקה 244 באדום"
### 11.5 פרמטרי עיבוד — סיכום מהיר
להגדרות מלאות של כל בלוק (content model, constraints, weight methodology, processing derivation) ראה `references/block-schema.md`. להלן טבלת סיכום בלבד:
| בלוק | Generation type | Temp | Thinking | Model |
|------|----------------|------|----------|-------|
| א-ד | template-fill | 0 | off | script |
| ה | paraphrase | 0.2 | low | sonnet |
| ו | reproduction | 0 | off | sonnet |
| ז | paraphrase | 0.1 | low | sonnet |
| ח | reproduction + paraphrase | 0 | off | sonnet |
| ט | guided-synthesis | 0.2 | medium | opus |
| **י** | **rhetorical-construction** | **0.4** | **max (16K+)** | **opus** |
| יא | paraphrase | 0.1 | low | sonnet |
| יב | template-fill | 0 | off | script |
## 12. שלב מחייב: "טיוטת מבנה — לפני דיון"
### 12.1 מהות השלב
שלב זה מתבצע **אחרי** איסוף כל החומרים, המרת מסמכים, וניתוח טיעונים — ו**לפני** כתיבת פרק הדיון וההכרעה. מייצרים קובץ DOCX מעוצב עם כל חלקי ההחלטה **עד (ולא כולל)** פרק הדיון.
**כלל מחייב:** לעולם אל תכתוב פרק דיון והכרעה לפני שקובץ המבנה קיים ואושר.
### 12.1.1 כלל "ללא כפילות"
**כלל קריטי:** ככל שהרקע, הטענות וההליכים מפורטים יותר — כך הדיון צריך להיות קצר וממוקד יותר בניתוח בלבד. אין לחזור בדיון על עובדות או טענות שכבר פורטו. הדיון מניח שהקורא קרא את הרקע.
- **ברקע (בלוקים ה-ט):** פרט את כל העובדות, הציטוטים, הטענות, ההליכים — באופן מלא ומקיף.
- **בדיון (בלוק י):** רק ניתוח, הכרעה, ומסקנות. הפנה לרקע ולטענות במקום לחזור עליהם: "כאמור בסעיף X לעיל...", "כפי שפורט...", "כפי שציינו...".
- **כלל אצבע:** אם משפט בדיון חוזר על עובדה שכבר נאמרה ברקע מילה במילה — מחק אותו והחלף בהפניה.
- **חריג:** חזרה מכוונת ("נשוב על כך כי...") היא כלי רטורי לגיטימי כשמוסיפים שכבה חדשה, לא כפילות.
### 12.2 מה כולל קובץ המבנה
הקובץ כולל את בלוקים א-ט ממולאים בתוכן, בלוק י (דיון) עם placeholder, בלוק יא (סיכום) עם placeholder, ובלוק יב (חתימות) מלא. תיבות תמונה מסומנות ב-"📷 תמונה:" במקומות הרלוונטיים.
### 12.3 סדר עבודה
```
שלב 1: איסוף חומרים ← קריאת כל המסמכים
שלב 2: המרת מסמכים ← PDF → Markdown
שלב 3: ניתוח טיעונים ← זיהוי טענות, מיון, סיווג
שלב 4: טיוטת מבנה ← ייצור DOCX עם בלוקים א-ט + placeholders ← שם הקובץ: החלטה-ערר-XXXX-מבנה.docx
שלב 5: אישור המבנה ← דפנה מעיינת ומאשרת / מתקנת
שלב 6: כתיבת דיון והכרעה ← בלוק י
שלב 7: כתיבת סיכום ← בלוק יא
שלב 8: עדכון DOCX סופי ← כל הבלוקים + תמונות אמיתיות
```
### 12.4 עיצוב קובץ ה-DOCX
**חובה לקרוא קודם** את `.claude/skills/legal-docx/SKILL.md` — כל כללי RTL, פונטים, מידות וטבלאות מוגדרים שם. הסקריפט הבסיסי נמצא ב-`.claude/skills/legal-docx/scripts/create-legal-doc.js`.
כללי RTL קריטיים (מתוך legal-docx):
- `AlignmentType.START` (לא LEFT/RIGHT) ליישור ימין
- `AlignmentType.END` ליישור שמאל
- שלוש הגדרות חובה: `bidi: true` (section), `bidirectional: true` (paragraph), `rightToLeft: true` (run)
להלן ההגדרות הייחודיות להחלטת ועדת ערר (מעבר למה שמוגדר ב-legal-docx):
| מרכיב | עיצוב | הערות |
|-------|-------|-------|
| כותרת "החלטה" | 16pt (32 half-points), bold, `AlignmentType.CENTER` | HeadingLevel.HEADING_1 |
| כותרות פרקים ("תמצית טענות הצדדים", "דיון והכרעה") | 14pt (28 half-points), bold, קו תחתון, `AlignmentType.CENTER` | HeadingLevel.HEADING_2 |
| כותרות משנה ("טענות העוררים") | 12pt (24 half-points), bold, `AlignmentType.CENTER`, ללא קו תחתון | פסקה רגילה עם bold |
| מספור סעיפים | מספר + נקודה (bold, run נפרד) + טאב + טקסט (רגיל) | `alignment: AlignmentType.START`, hanging indent |
| ציטוטים (blockquote) | הזחה 567 DXA (~1 ס"מ) משני הצדדים, פונט זהה לגוף | indent: { left: 567, right: 567 } |
| תיבות תמונה | מסגרת עם shading אפור בהיר (fill: "F0F0F0"), טקסט "📷 תמונה: [תיאור]" | ShadingType.CLEAR |
| חתימות | טבלה ללא גבולות (`visuallyRightToLeft: true`), 2 טורים | כמו בתבנית ב-create-legal-doc.js |
| כותרת מוסדית | טבלה ללא גבולות, 2 טורים: ימין=מוסד, שמאל=מספרי תיק | `visuallyRightToLeft: true` |

View File

@@ -0,0 +1,574 @@
# Block Schema — ארכיטקטורת מסמך החלטת ועדת ערר
מסמך זה מגדיר את המבנה הפורמלי של החלטת ועדת ערר לתכנון ובניה. הוא משמש כמקור סמכותי להגדרת בלוקים, משקלות, פרמטרי עיבוד, וכללי ולידציה.
**הפניה:** SKILL.md סעיפים 11-12 מכילים סיכום מהיר והנחיות תהליך. מסמך זה מכיל את ההגדרות המלאות.
---
## 1. יסודות תיאורטיים
ארכיטקטורת המסמך מבוססת על שילוב של ארבעה frameworks מוכרים:
### CREAC — מתודולוגיית כתיבה משפטית
Conclusion → Rule → Explanation → Application → Conclusion.
מקור: Columbia Law School, Legal Writing methodology.
**מיפוי:** חל על בלוק י (דיון) ובלוק יא (סיכום). בלוק י פותח במסקנה (C), מציג כלל משפטי (R), מסביר באמצעות פסיקה (E), מיישם על העובדות (A), וחוזר למסקנה (C). בלוק יא = C אחרון בלבד.
### Federal Judicial Center — Judicial Writing Manual
מגדיר תפקוד פונקציונלי לכל חלק בהחלטה שיפוטית:
- **Orientation** (אוריינטציה) — מי, מה, איפה → בלוקים א-ה
- **Framing** (מסגור) — הקשר עובדתי ותכנוני → בלוק ו
- **Argumentation** (טיעון) — עמדות הצדדים → בלוק ז
- **Procedural record** (תיעוד הליכי) — מה עשינו → בלוק ח
- **Deliberation** (דיון) — ניתוח משפטי → בלוקים ט-י
- **Disposition** (החלטה) — תוצאה אופרטיבית → בלוק יא
### DITA — Darwin Information Typing Architecture
סטנדרט OASIS להגדרת סוגי תוכן מובנים. מספק:
- **Content model** — אילו אלמנטים מותרים בכל בלוק
- **Constraints** — מה אסור (חשוב יותר ממה שמותר)
- **Specialization** — ירושה מסוג בסיסי עם התאמות
- **Relationships** — תלויות בין בלוקים
### Akoma Ntoso / LegalDocumentML
סטנדרט OASIS בינלאומי למסמכים משפטיים מובנים (UN/DESA). מספק:
- **Semantic mapping** — כל בלוק ממופה לרכיב מוכר בסטנדרט
- **Document class** — "judgment" (פסק דין / החלטה)
---
## 2. הגדרות בלוקים
### Block א: כותרת מוסדית / Institutional Header
**ID:** `block-alef`
**Akoma Ntoso:** `meta > identification`
**CREAC role:** none
**Functional purpose (JWM):** Orientation — מזהה את המוסד, התיק והגורם המחליט.
**Content model:**
- Types: template-field
- Elements: טבלה 2 טורים (מוסד | מספרי תיק)
- Sources: מערכת ניהול תיקים
**Constraints:**
- MUST: שם מוסד, מספר תיק, מספר תכנית/בקשה
- MUST NOT: תוכן מהותי כלשהו
- Dependencies: none
**Weight:** 1% (קבוע, לא משתנה בין סוגי עררים)
**Processing:**
- Generation type: template-fill
- Temperature: 0 | Thinking: off | Effort: min | Model: script
### Block ב: הרכב הוועדה / Panel Composition
**ID:** `block-bet`
**Akoma Ntoso:** `meta > references > TLCPerson`
**CREAC role:** none
**Functional purpose (JWM):** Orientation — מזהה את ההרכב המחליט. חשוב לביקורת שיפוטית (הרכב כשיר).
**Content model:**
- Types: template-field
- Elements: "בפני:" + יו"ר + חברים
- Sources: מערכת ניהול
**Constraints:**
- MUST: יו"ר + לפחות חבר אחד
- MUST NOT: תוכן מהותי
- Dependencies: none
**Weight:** 1% (קבוע)
**Processing:**
- Generation type: template-fill
- Temperature: 0 | Thinking: off | Effort: min | Model: script
### Block ג: צדדים / Parties
**ID:** `block-gimel`
**Akoma Ntoso:** `meta > references > TLCPerson` (appellants, respondents)
**CREAC role:** none
**Functional purpose (JWM):** Orientation — מזהה את הצדדים וב"כ. מגדיר את מסגרת הדיון.
**Content model:**
- Types: template-field
- Elements: עוררים + "נגד" + משיבים + ב"כ
- Sources: כתב ערר, כתב תשובה
**Constraints:**
- MUST: שם כל צד, "נגד" כמפריד
- MUST NOT: תוכן מהותי, תיאור הערר
- Dependencies: none
**Weight:** 1% (קבוע)
**Processing:**
- Generation type: template-fill
- Temperature: 0 | Thinking: off | Effort: min | Model: script
### Block ד: כותרת "החלטה" / Decision Title
**ID:** `block-dalet`
**Akoma Ntoso:** `body > judgment > header`
**CREAC role:** none
**Functional purpose (JWM):** Orientation — סימון פורמלי של תחילת ההחלטה.
**Content model:**
- Types: template-field
- Elements: מילה אחת: "החלטה"
- Sources: none
**Constraints:**
- MUST: David 16pt, bold, מרכז
- Dependencies: none
**Weight:** 0% (שורה אחת)
**Processing:**
- Generation type: template-fill
- Temperature: 0 | Thinking: off | Effort: min | Model: script
### Block ה: פתיחה / Opening
**ID:** `block-he`
**Akoma Ntoso:** `body > judgment > introduction`
**CREAC role:** C (מסקנה ראשונית — הצגת מה לפנינו)
**Functional purpose (JWM):** Orientation — מכוון את הקורא למהות הערר במשפט אחד. מגדיר "להלן" מרכזיים.
**Content model:**
- Types: narrative (1-2 סעיפים)
- Elements: numbered-para עם הגדרות "להלן"
- Sources: כתב ערר, החלטת ועדה מקומית
**Constraints:**
- MUST: "לפנינו...", הגדרת הוועדה המקומית, הגדרת התכנית/הבקשה, הגדרת המגרש
- MUST NOT: ניתוח, ערכי שיפוט, ציטוטים מצדדים
- Dependencies: block-gimel (שמות צדדים להגדרות)
**Weight:** 1% (קבוע — 1-2 סעיפים)
**Processing:**
- Generation type: paraphrase
- Temperature: 0.2 | Thinking: low | Effort: low | Model: sonnet
### Block ו: רקע עובדתי / Factual Background ("פתח דבר")
**ID:** `block-vav`
**Akoma Ntoso:** `body > judgment > background`
**CREAC role:** none (עובדות בלבד, לא ניתוח)
**Functional purpose (JWM):** Framing — מספק את התשתית העובדתית שעליה נבנה הדיון. השופט חייב להבין את המציאות בשטח לפני שקורא טענות.
**Content model:**
- Types: narrative, citation-block, image-placeholder
- Elements: numbered-para, blockquote (ציטוט מפרוטוקול), image-box
- Sources: כתבי טענות, תשריטים, פרוטוקולים, החלטות קודמות, GIS
**סדר תוכן פנימי:**
1. מקרקעין — מיקום, שטח, מאפיינים
2. סביבת מקרקעין — בנייה סמוכה, אופי
3. 📷 תמונה: מיקום GIS
4. היסטוריה תכנונית — תכניות, החלטות (עובדות יבשות בלבד)
5. מהות הבקשה/תכנית
6. 📷 תמונה: תשריט
7. ציטוט מפרוטוקול ועדה מקומית
8. החלטת הוועדה + תנאים
9. 📷 תמונה: צילום אוויר (אופציונלי)
10. הגשת הערר
**Constraints:**
- MUST: מקרקעין, מהות הבקשה, החלטת הוועדה, הגשת הערר
- MUST: לפחות 2 תמונות (מיקום + תשריט)
- MUST: ציטוט מפרוטוקול הוועדה המקומית
- ⚠️ **MUST NOT ("רקע ניטרלי"):** ציטוטים ישירים מצדדים, מילות ערך/שיפוט ("חריג", "חטא", "בעייתי"). החלטות קודמות = עובדה יבשה ("ביום X נדחתה תכנית Y"), ללא נימוקים וציטוטים מהן.
- Dependencies: block-he (הגדרות "להלן")
**Weight:**
| סוג ערר | משקל | הערות |
|---------|------|-------|
| רישוי — דחייה | 15-25% | רקע מפורט עם הקשר תכנוני |
| רישוי — קבלה | 30-40% | כולל ציטוט מפרוטוקול |
| רישוי — קבלה חלקית | 25-35% | כולל ציטוט מפרוטוקול |
| היטל השבחה | 6-18% | רקע מצומצם |
**Weight methodology:**
- Communicative weight (40%): גבוה — מספק את "התמונה" לשופט שלא מכיר את התיק
- Reader attention (20%): בינוני-גבוה — primacy effect, הקורא קשוב בהתחלה
- Judicial review (25%): גבוה — שופט בודק שהעובדות מלאות ומדויקות
- Empirical (15%): מבוסס על מדידת החלטות דפנה (3.2 ב-SKILL.md)
**Processing:**
- Generation type: reproduction (העתקה נאמנה ממקורות)
- Cognitive complexity: lookup (ארגון, לא ניתוח)
- Accuracy: high-precision
- Temperature: 0 | Thinking: off | Effort: low | Model: sonnet
### Block ז: טענות הצדדים / Parties' Claims
**ID:** `block-zayin`
**Akoma Ntoso:** `body > judgment > arguments`
**CREAC role:** none (הצגת טענות, לא ניתוח)
**Functional purpose (JWM):** Argumentation — מציג את עמדות הצדדים בנאמנות, כך שהקורא יבין את המחלוקת לפני שקורא את ההכרעה.
**Content model:**
- Types: narrative
- Elements: section-heading ("תמצית טענות הצדדים"), sub-headings (לכל צד), numbered-para
- Sources: כתב ערר, כתב תשובה — **כתבי טענות מקוריים בלבד** (לא השלמות טיעון)
**סדר קבוע:**
1. כותרת: "תמצית טענות הצדדים"
2. "טענות העוררים" (אם כמה עוררים — תתי-כותרות לכל אחד)
3. "עמדת הוועדה המקומית"
4. "עמדת מבקשי ההיתר" / "עמדת מגישי התכנית"
**Constraints:**
- MUST: כל טענה בסעיף נפרד, גוף שלישי ("העורר טוען כי...")
- MUST: כל צד בפרק נפרד, סדר קבוע
- MUST NOT: ניתוח, מסקנות, הערכת הוועדה ("טענה זו חלשה...")
- MUST NOT: תוכן מהשלמות טיעון (→ block-chet)
- Dependencies: block-vav (מספור רציף)
**Weight:**
| סוג ערר | משקל | הערות |
|---------|------|-------|
| רישוי — דחייה | 30-40% | טענות מפורטות |
| רישוי — קבלה | 20-30% | כולל השלמות |
| רישוי — קבלה חלקית | 25-30% | |
| היטל השבחה | 13-25% | |
**Weight methodology:**
- Communicative weight (40%): בינוני — הצגה, לא הכרעה
- Reader attention (20%): נמוך-בינוני — scanning attention, הקורא מחפש טענות ספציפיות
- Judicial review (25%): גבוה — שופט בודק ש"נשמעו כל הצדדים"
- Empirical (15%): מבוסס על מדידת החלטות דפנה
**Processing:**
- Generation type: paraphrase (סיכום נאמן בשפה של דפנה)
- Cognitive complexity: medium-synthesis (קיבוץ וסידור טענות)
- Accuracy: high-precision (לא לפספס טענה, לא לעוות)
- Temperature: 0.1 | Thinking: low | Effort: medium | Model: sonnet
### Block ח: הליכים בפני ועדת הערר / Proceedings
**ID:** `block-chet`
**Akoma Ntoso:** `body > judgment > proceedings` (custom extension)
**CREAC role:** none (תיעוד, לא ניתוח)
**Functional purpose (JWM):** Procedural record — מתעד שהוועדה פעלה כדין ונתנה מלוא יום בבית דין. קריטי ל"מבחן השופט" — שופט בעתמ"ם בודק שהצדדים קיבלו הזדמנות הוגנת.
**Content model:**
- Types: narrative, image-placeholder
- Elements: section-heading ("ההליכים בפני ועדת הערר"), numbered-para, image-box
- Sources: פרוטוקול דיון, תמונות סיור, החלטות ביניים, השלמות טיעון
**סדר כרונולוגי:**
1. דיון — תאריך, נוכחים
2. סיור — תאריך, תיאור
3. 📷 תמונה: צילומים מהסיור
4. השלמות טיעון — עם תוכן מפורט (כל השלמה = סעיף נפרד)
5. החלטות ביניים
6. תגובות לתגובות — כרונולוגי
7. 📷 תמונה: הדמיות/חתכים (אם צורפו)
8. עררים מקבילים (אם יש)
**Constraints:**
- MUST: תאריכים מדויקים, כרונולוגיה ברורה
- MUST: תוכן השלמות טיעון מפורט — כל השלמה בסעיף נפרד עם תמצית תוכן
- MUST NOT: ניתוח או הערכה של ההשלמות ("טענה חזקה/חלשה")
- Dependencies: block-zayin (מספור רציף)
- References: block-zayin (הפניה לטענות מקוריות כשיש חפיפה)
**Weight:**
| סוג ערר | משקל | הערות |
|---------|------|-------|
| ערר פשוט (ללא השלמות) | 3-5% | דיון + סיור בלבד |
| ערר מורכב (השלמות רבות) | 8-15% | כמו אריאלי: 31 סעיפים |
| היטל השבחה | 2-4% | בדרך כלל מינימלי |
**Weight methodology:**
- Communicative weight (40%): נמוך-בינוני — תיעוד, לא הכרעה
- Reader attention (20%): נמוך — scanning, אלא אם יש ממצאים חדשים מסיור/השלמות
- Judicial review (25%): **גבוה מאוד** — שופט בודק שנתנו procedural fairness
- Empirical (15%): מגוון רחב — תלוי בכמות ההשלמות
**Processing:**
- Generation type: reproduction + paraphrase (תאריכים מדויקים + תמצית תוכן)
- Cognitive complexity: low (סידור כרונולוגי)
- Accuracy: high-precision (תאריכים, שמות מסמכים)
- Temperature: 0 | Thinking: off | Effort: low | Model: sonnet
### Block ט: תכניות חלות / Applicable Plans (אופציונלי)
**ID:** `block-tet`
**Akoma Ntoso:** `body > judgment > motivation > background` (extended)
**CREAC role:** R (Rule — הצגת הכללים המשפטיים/תכנוניים)
**Functional purpose (JWM):** Deliberation (preliminary) — מציג את המסגרת הנורמטיבית שלאורה ייבחנו הטענות. בלוק גשר בין עובדות לניתוח.
**Content model:**
- Types: narrative, citation-block
- Elements: section-heading, numbered-para, blockquote (ציטוט מהוראות תכנית)
- Sources: הוראות תכנית (PDF), נספחי בינוי, החלטות מרכזות
**Constraints:**
- MUST: ציטוט ישיר מהוראות תכנית עם הדגשת (bold) מילים מכריעות
- MUST NOT: ניתוח מעמיק (→ block-yod), הכרעה בין פרשנויות
- Dependencies: block-chet (מספור), block-vav (הגדרות תכניות)
- Condition: **אופציונלי** — רק כשיש מורכבות תכנונית (תכניות סותרות, תמ"א 38 + שימור, פרשנות)
**Weight:**
| מתי קיים | משקל |
|----------|------|
| תמ"א 38 + שימור | 8-12% |
| פרשנות תכנית | 5-10% |
| לא קיים | 0% |
**Weight methodology:**
- Communicative weight (40%): בינוני — הנחת תשתית נורמטיבית
- Reader attention (20%): נמוך — טכני, אלא אם פרשנות שנויה במחלוקת
- Judicial review (25%): בינוני — שופט בודק שהוועדה הבינה את הדין
- Empirical (15%): אריאלי — 14 סעיפים; בית הכרם — משולב בדיון
**Processing:**
- Generation type: guided-synthesis (ציטוט + ניתוח ראשוני)
- Cognitive complexity: medium (פרשנות טקסט משפטי)
- Accuracy: precision + interpretation
- Temperature: 0.2 | Thinking: medium | Effort: medium | Model: opus
### Block י: דיון והכרעה / Discussion and Decision
**ID:** `block-yod`
**Akoma Ntoso:** `body > judgment > motivation`
**CREAC role:** **full-CREAC** — C (מסקנה בפתיחה) → R (כלל משפטי) → E (ציטוט פסיקה) → A (יישום על העובדות) → C (מסקנת ביניים)
**Functional purpose (JWM):** Deliberation — ליבת ההחלטה. כאן הוועדה מנתחת, מאזנת, ומכריעה. זהו ה-ratio decidendi.
**Content model:**
- Types: narrative, citation-block, image-placeholder
- Elements: numbered-para (אסה רציפה ללא כותרות משנה), blockquote (ציטוטי פסיקה ותכנית), image-box
- Sources: **כל** הבלוקים הקודמים + פסיקה + skill
**מבנה פנימי (לפי סוג ערר — ראה SKILL.md סעיף 7.3):**
- דחייה: שכבות הגנה (concentric circles)
- קבלה: נימוק-נימוק
- קבלה חלקית: מיפוי מתחים + ניתוח נושאי
- היטל השבחה: פתיחה ישירה עם מסקנה
**Constraints:**
- MUST: מסקנה בפתיחת הדיון (לא בסוף)
- MUST: מענה לכל טענה שהוצגה בבלוק ז
- MUST: ציטוט פסיקה בבלוקים ארוכים (200-600 מילים)
- ⚠️ **MUST NOT ("ללא כפילות"):** חזרה על עובדות/טענות מבלוקים קודמים. השתמש בהפניות: "כאמור בסעיף X לעיל", "כפי שפורט", "כפי שציינו"
- MUST NOT: כותרות משנה (חריג: נושאים נפרדים לחלוטין)
- Dependencies: **ALL** previous blocks (ה-ט)
**Weight:**
| סוג ערר | משקל | הערות |
|---------|------|-------|
| רישוי — דחייה | 37-50% | פתיחה רחבה + שכבות |
| רישוי — קבלה | 35-45% | נימוק-נימוק |
| רישוי — קבלה חלקית | 40-47% | מיפוי מתחים + ניתוח נושאי |
| היטל השבחה | 32-48% | ציטוטי פסיקה מרובים |
**Weight methodology:**
- Communicative weight (40%): **מקסימלי** — זהו ה-ratio decidendi, תכלית ההחלטה
- Reader attention (20%): **גבוה** — deep reading, הקורא מחפש את הנימוקים
- Judicial review (25%): **מקסימלי** — שופט בוחן סבירות, מידתיות, התייחסות לטענות
- Empirical (15%): 35-50% באופן עקבי בכל החלטות דפנה
**Processing:**
- Generation type: **rhetorical-construction** (בניית טיעון, איזון, רטוריקה)
- Cognitive complexity: **high-reasoning** (CREAC מלא, שכבות, חידוד)
- Accuracy: **precision + creativity** (ניתוח מדויק + ביטוי אלגנטי)
- Temperature: **0.4** | Thinking: **max (budget 16K+)** | Effort: **max** | Model: **opus בלבד**
### Block יא: סיכום / סוף דבר / Summary
**ID:** `block-yod-alef`
**Akoma Ntoso:** `body > judgment > decision`
**CREAC role:** C (Conclusion אחרון — תמצית אופרטיבית)
**Functional purpose (JWM):** Disposition — ההוראה האופרטיבית שמבצעים. זה מה שהצדדים צריכים לדעת "מה עכשיו."
**Content model:**
- Types: narrative
- Elements: section-heading ("סיכום"/"סוף דבר"), numbered-para, sub-items (א. ב. ג.)
- Sources: block-yod (מסקנות)
**מבנה לפי תוצאה (ראה SKILL.md סעיף 8):**
- דחייה: "הערר נדחה" + תתי-סעיפים + פסקה חמה (רישוי בלבד)
- קבלה: "הערר מתקבל בכפוף ל..." + פרוזה
- קבלה חלקית: "הערר מתקבל באופן חלקי" + 2-3 הוראות אופרטיביות
- היטל השבחה: יבש
**Constraints:**
- MUST: תוצאה ברורה (נדחה/מתקבל/מתקבל חלקית)
- MUST NOT (בקבלה חלקית): חזרה על נימוקים — ההנמקה כבר בדיון
- Dependencies: block-yod (מסקנות)
**Weight:**
| סוג ערר | משקל |
|---------|------|
| דחייה | 2-9% |
| קבלה | 3-5% |
| קבלה חלקית | 2-3% |
| היטל השבחה | 3-4% |
**Processing:**
- Generation type: paraphrase (עיבוד מסקנות בלוק י)
- Cognitive complexity: low
- Accuracy: high-precision (הוראות חייבות להיות חד-משמעיות)
- Temperature: 0.1 | Thinking: low | Effort: low | Model: sonnet
### Block יב: חתימות / Signatures
**ID:** `block-yod-bet`
**Akoma Ntoso:** `conclusions > signature`
**CREAC role:** none
**Functional purpose (JWM):** Authentication — אישור פורמלי של ההחלטה.
**Content model:**
- Types: template-field
- Elements: "ניתנה פה אחד" + תאריך עברי/לועזי + טבלת חתימות
- Sources: none
**Constraints:**
- MUST: "ניתנה פה אחד", תאריך, יו"ר + מזכיר/ה
- Dependencies: none
**Weight:** 1% (קבוע)
**Processing:**
- Generation type: template-fill
- Temperature: 0 | Thinking: off | Effort: min | Model: script
---
## 3. כללי גזירת פרמטרים
פרמטרי העיבוד נגזרים ממאפייני התוכן, לא נקבעים שרירותית:
### Temperature — נגזר מסוג הייצור
| Generation type | Temperature | נימוק |
|----------------|-------------|-------|
| template-fill | 0 | אין צורך בשפה — מילוי שדות |
| reproduction | 0 | נאמנות מוחלטת למקור. אפס יצירתיות |
| paraphrase | 0.1 | מרווח מינימלי לניסוח בשפה של דפנה |
| guided-synthesis | 0.2 | גמישות בארגון וחיבור מקורות, לא בתוכן |
| analytical-reasoning | 0.3-0.4 | צריך ליצור קשרים בין עקרונות משפטיים |
| rhetorical-construction | 0.4-0.5 | טווח ביטוי רחב לכתיבה משכנעת ואלגנטית |
### Thinking budget — נגזר ממורכבות קוגניטיבית
| Cognitive task | Budget | נימוק |
|---------------|--------|-------|
| template-fill / lookup | off | אין צורך בחשיבה |
| sequential-extraction | low | חילוץ מידע חד-שלבי |
| multi-source-integration | medium | צריך להצליב מקורות |
| legal-analysis-with-CREAC | max (16K+) | חשיבה רב-שלבית: מסקנה → כלל → הסבר → יישום |
### Model — נגזר מדרישת דיוק
| Accuracy profile | Model | נימוק |
|-----------------|-------|-------|
| factual-precision | sonnet | מהיר, מדויק לחילוץ עובדות |
| precision + interpretation | opus | נדרש לפרשנות תכנית / ציטוט מובנה |
| precision + creativity | opus | נדרש לניתוח משפטי מורכב ורטוריקה |
---
## 4. מתודולוגיית משקלות
משקל כל בלוק נקבע על ידי שקלול 4 גורמים:
### 4.1 Communicative Weight (40%)
מה חלקו של הבלוק בתכלית ההחלטה? ההחלטה באה לעשות דבר אחד: להכריע במחלוקת ולנמק. בלוק י (דיון) הוא ליבת התכלית. בלוקים א-ד (כותרות) הם עטיפה.
### 4.2 Reader Attention Distribution (20%)
מבוסס על מחקרי F-pattern ו-primacy/recency:
- **פתיחה** (בלוקים ה-ו): קשב גבוה (primacy effect)
- **אמצע** (בלוקים ז-ח): scanning — הקורא מחפש טענות ספציפיות
- **דיון** (בלוק י): deep reading — הקורא מחפש נימוקים
- **סיום** (בלוק יא): קשב גבוה (recency effect)
### 4.3 Judicial Review Requirement (25%)
מה שופט בבית משפט לעניינים מנהליים יבדוק ("מבחן השופט"):
- **תשתית עובדתית** (בלוק ו): מלאה ומדויקת?
- **שמיעת צדדים** (בלוקים ז-ח): נתנו מלוא יום בבית דין?
- **סבירות ומידתיות** (בלוק י): ההכרעה מנומקת ומאוזנת?
- **התייחסות לטענות** (בלוק י): כל טענה קיבלה מענה?
### 4.4 Empirical Basis (15%)
מבוסס על מדידה מהחלטות שפורסמו:
- הכט 1180-1181 (דחייה, 02.2026)
- בית הכרם 1126/25 (קבלה חלקית, 03.2026)
- אריאלי 1078+1083 (קבלה, 03.2026)
המשקלות ב-SKILL.md סעיף 3.2 (יחסי הזהב) משמשים כבסיס אמפירי שאומת על ידי שלושת הגורמים האנליטיים.
---
## 5. כללי ולידציה
### 5.1 סדר בלוקים
- בלוקים חייבים להופיע בסדר א עד יב
- בלוקים א-ה ויב נדרשים בכל החלטה
- בלוק ט אופציונלי (רק כשיש מורכבות תכנונית)
### 5.2 Content Constraints
- **רקע ניטרלי (בלוק ו):** אם סעיף מכיל ציטוט ישיר מצד או מילת שיפוט → לא שייך כאן
- **טענות מקוריות בלבד (בלוק ז):** רק מכתבי ערר/תשובה. השלמות → בלוק ח
- **ללא כפילות (בלוק י):** הפניה לבלוקים קודמים, לא חזרה. חריג: "נשוב על כך כי..." (חזרה מכוונת עם שכבה חדשה)
- **הליכים ללא הערכה (בלוק ח):** תיעוד מה הוגש, לא הערכה של חוזק הטענות
### 5.3 Weight Compliance
- משקל כל בלוק (ספירת מילים / סה"כ) צריך להיות בטווח המוגדר **±10%**
- אם בלוק י < 30% → flag: דיון לא מפותח מספיק
- אם בלוק ו > 35% → flag: רקע מנופח, בדוק שאין תוכן טענתי
### 5.4 Structural Integrity
- מספור סעיפים רציף מ-1 עד הסוף, ללא איפוס בין בלוקים
- כל הגדרת "להלן" חייבת להופיע לפני השימוש הראשון בה
- כל טענה בבלוק ז חייבת לקבל מענה בבלוק י (ישיר או "למעלה מן הצורך")
- כותרות פרקים: David 14pt, bold, קו תחתון, מרכז
- כותרות משנה: David 12pt, bold, מרכז, ללא קו תחתון
---
## 6. גרף תלויות בין בלוקים
```
א (כותרת) → עצמאי
ב (הרכב) → עצמאי
ג (צדדים) → עצמאי
ד (כותרת) → עצמאי
ה (פתיחה) → תלוי ב: ג (שמות צדדים להגדרות "להלן")
ו (רקע) → תלוי ב: ה (הגדרות). מספור ממשיך מ-ה.
ז (טענות) → תלוי ב: ו (מספור). מפנה ל: ה, ו (הגדרות)
ח (הליכים) → תלוי ב: ז (מספור). מפנה ל: ז (טענות מקוריות)
ט (תכניות) → תלוי ב: ח (מספור). אופציונלי. מפנה ל: ו (הגדרות תכניות)
י (דיון) → תלוי ב: **כל** הבלוקים ה-ט. מפנה ל: כולם.
יא (סיכום) → תלוי ב: י (מסקנות). מפנה ל: י בלבד.
יב (חתימות) → עצמאי
```

View File

@@ -0,0 +1,97 @@
{
"_comment": "תבנית JSON לייצור טיוטת מבנה החלטה — כל שדה עם '_comment' הוא הסבר, לא תוכן",
"_usage": "node .claude/skills/legal-decision/scripts/create-decision-structure.cjs <this-file.json> [output.docx]",
"type": "permit | plan | betterment",
"case_numbers": ["1130/25"],
"plan_number": "152-1257682",
"request_number": null,
"panel": {
"chair": "עו\"ד דפנה תמיר",
"members": [
"יעקב אנוקה, נציג מתכנן המחוז",
"יצחק ליר ליפובצקי, נציג ארגון האדריכלים"
]
},
"appellants": [
{ "name": "1. מרק קובר", "representative": null },
{ "name": "2. יצחק מטמון", "representative": null }
],
"respondents": [
{ "name": "הוועדה המרחבית לתכנון ולבניה הראל", "representative": "עו\"ד ליאורה אפרתי" },
{ "name": "אסתר שרה ליבמן", "representative": null },
{ "name": "יוסף חיים ליבמן", "representative": "עו\"ד משה ברקוביץ" }
],
"appeal_description": "ערר על החלטת הוועדה המרחבית לתכנון ולבניה הראל מיום 23.7.2025, לדחות את ההתנגדויות ולאשר את תכנית מס' 152-1257682",
"opening_paragraphs": [
"לפנינו ערר על החלטת הוועדה המרחבית לתכנון ולבניה הראל (להלן: \"הוועדה המקומית\") מיום 23.7.2025, לדחות את ההתנגדויות ולאשר את תכנית מס' 152-1257682 (להלן: \"התכנית\") ברחוב אבינדב 23, קריית יערים, גוש 29536 חלקה 244 (להלן: \"המגרש\" או \"המקרקעין\")."
],
"use_petach_davar": true,
"property_description": "המגרש מצוי ברחוב אבינדב בקריית יערים, מועצה מקומית המוגדרת בתמ\"א 35 כ\"ישוב שמור משולב\" ובתמ\"מ 30/1 כ\"ישוב פרברי\". רחוב אבינדב הינו מדרחוב צר ומפותל, מתאפיין בבנייה כפרית של וילות צמודות קרקע חד-משפחתיות, עם חניה בתוך תחום המגרשים, על פי תכנית מי/135 משנת 1972 (להלן: \"תכנית 135\").",
"planning_history": [
"בשנת 1992 אושרה תכנית מי/135/א (להלן: \"תכנית 135/א\"), אשר שינתה מהותית את ייעוד מספר מגרשים ברחוב...",
"ביום 29.6.2017 דחתה ועדת המשנה להתנגדויות של הוועדה המחוזית ירושלים את תכנית מס' 152-0137067..."
],
"request_essence": "התכנית נשוא הערר (152-1257682) עוסקת בתוספת זכויות בנייה למבנה הקיים ברחוב אבינדב 23, וכוללת: הגדלת זכויות בנייה בשיעור של 50%...",
"committee_protocol_quote": "[ציטוט מלא מתוך פרוטוקול הדיון בוועדה המקומית]",
"committee_decision": "ביום 23.7.2025 קיימה הוועדה המקומית דיון בהתנגדויות שהוגשו לתכנית. לאחר שמיעת ההתנגדויות, החליטה הוועדה המקומית פה אחד לדחות את ההתנגדויות ולאשר את התכנית כפי שהופקדה.",
"include_aerial_photo": true,
"surroundings": "[תיאור סביבת המקרקעין — מבנים סמוכים, אופי שכונתי]",
"appeal_filing": "ביום 14.8.2025 הגיש העורר את הערר שבפנינו. ביום 22.10.2025 הגיש מטמון כתב ערר/תשובה בו הצטרף לערר.",
"_comment_claims": "אפשר להשתמש ב-appellant_claims (רשימה אחת) או ב-appellant_claims_sections (כמה עוררים עם כותרות נפרדות)",
"appellant_claims_sections": [
{
"title": "טענות העורר מר קובר",
"claims": [
"העורר טוען כי לוועדה המקומית לא הייתה סמכות לאשר את התכנית...",
"עוד טוען העורר כי חישוב תוספת שטחי הבנייה שגוי..."
]
},
{
"title": "טענות מטמון",
"claims": [
"מטמון מדגיש את העיוות התכנוני ההיסטורי שנוצר בשנת 1992..."
]
}
],
"committee_position": [
"הוועדה המקומית טוענת כי לוועדה מקומית סמכות לדון בתכנית...",
"באשר להחלטת הוועדה המחוזית משנת 2017, טוענת הוועדה המקומית כי..."
],
"applicant_position": [
"מגישי התכנית טוענים כי התכנית אינה מוסיפה יחידות דיור מעבר למותר...",
"במסגרת השלמת הטיעון, הציגו מגישי התכנית תמונה תכנונית רחבה..."
],
"proceedings": [
{ "type": "text", "text": "ביום 27.10.2025 התקיים דיון בפני ועדת הערר, בו נשמעו העורר, מטמון, הוועדה המקומית ומגישי התכנית." },
{ "type": "text", "text": "ביום 30.11.2025 נערך סיור במקום." },
{ "type": "image", "description": "צילומים מהסיור ברחוב אבינדב — מבט על הבניין הקיים" },
{ "type": "text", "text": "ביום 31.12.2025 ניתנה החלטת ביניים..." },
{ "type": "text", "text": "בעקבות החלטת הביניים הוגשו השלמות טיעון מכל הצדדים..." }
],
"skip_plans_section": true,
"_comment_plans": "אם skip_plans_section=false, אפשר להוסיף applicable_plans עם פירוט תכניות",
"secretary": ""
}

View File

@@ -0,0 +1,186 @@
# יסודות דיני תכנון ובניה בישראל
## מדריך עזר למומחה הגישה השיפוטית
---
## מבנה מערכת התכנון והבניה בישראל
### רמות התכנון
**1. רמה ארצית**
- המועצה הארצית לתכנון ובניה
- תכניות מתאר ארציות (תמ"א)
**2. רמה מחוזית**
- ועדות מחוזיות (6 מחוזות)
- תכניות מתאר מחוזיות (תמ"מ)
**3. רמה מקומית**
- ועדות מקומיות (לפי רשויות מקומיות)
- תכניות מפורטות
**4. ועדות ערר**
- ועדות ערר מחוזיות (מטפלות בערעורים על החלטות ועדות מקומיות)
- ועדת הערר הארצית (מטפלת בערעורים על החלטות ועדות מחוזיות)
---
## חוקים ותקנות מרכזיים
### 1. חוק התכנון והבניה, התשכ"ה-1965
**סעיפים חשובים:**
- **סעיף 19** - היטל השבחה
- **סעיף 62** - הוועדה המקומית
- **סעיף 149** - היתר בניה
- **סעיף 150** - תנאים למתן היתר
- **סעיף 151** - היתר בנייה בסטייה מזניחה
- **סעיף 197** - הקלות בניה
- **סעיף 204** - ועדות ערר
- **סעיף 205** - סמכויות ועדת הערר
- **סעיף 228** - עבירות בניה ללא היתר
### 2. חוק המקרקעין, התשכ"ט-1969
**סעיפים חשובים:**
- זכויות קנייניות במקרקעין
- העברת זכויות
### 3. תקנות התכנון והבניה (בקשה להיתר, תנאיו ואגרות), התש"ל-1970
---
## סוגי ערעורים נפוצים
### 1. ערעורים על החלטות בעניין רישוי
- דחיית בקשה להיתר בניה
- מתן היתר בתנאים
- היתר בסטייה מזניחה
- הקלות בניה
### 2. ערעורים על החלטות בעניין היטל השבחה
- חישוב היטל
- שיעור ההשבחה
- פטור מהיטל
- ערעורי שומה
### 3. ערעורים על החלטות בעניין תכניות
- אישור/דחיית תכנית
- תנאים בתכנית
- התנגדויות לתכניות
### 4. ערעורים על צווי הריסה
- צווים מנהליים
- הליכי אכיפה
---
## פסקי דין חשובים בתחום
### בנושא היטל השבחה
- **ע"א 6339/97 עיריית רמת השרון נ' פנחס** - עקרונות יסוד בהיטל השבחה
- **ע"א 2892/07 בן ארי נ' הוועדה המקומית** - חישוב שיעור השבחה
### בנושא רישוי והיתרים
- **בג"ץ 5060/94 ד"ר ניימן נ' יו"ר ועדת הערר** - גבולות שיקול הדעת של ועדות
- **ע"א 1845/04 אושרי נ' הוועדה המקומית** - הקלות בניה
### בנושא שימוש חורג
- **בג"ץ 244/00 עמותת יער חמ"ד נ' ועדת הערר** - שימושים חורגים
### בנושא זכויות קנייניות מול אינטרס ציבורי
- **בג"ץ 6698/95 קעדאן נ' מינהל מקרקעי ישראל** - איזון בין זכויות
- **בג"ץ 2390/96 קרסיק נ' הממשלה** - זכות הקניין
---
## מושגי יסוד
### תכנון
**תכנית מתאר** - תכנית כללית לשטח מסוים, קובעת ייעודי קרקע, צפיפות, זכויות בניה.
**תכנית מפורטת** - תכנית המפרטת פרטי בניה, קווי בניין, גבהים.
**שימוש חורג** - שימוש שונה מהייעוד בתכנית.
**הקלה** - סטייה קלה מתכנית שניתן לאשר ללא שינוי התכנית (סעיף 197).
**סטייה מזניחה** - סטייה קלה מאוד מהיתר שניתן לאשר (סעיף 151).
### רישוי
**היתר בניה** - אישור לבנות על פי תכנית.
**תנאים להיתר** - דרישות שיש לעמוד בהן לפני מתן היתר או במהלך הבניה.
**פקיעת היתר** - תום תוקף היתר אם לא הוחל בבניה.
### היטל השבחה
**השבחה** - עליית ערך מקרקעין כתוצאה מתכנית או היתר.
**היטל השבחה** - תשלום חובה בשיעור של 50% מההשבחה (בדרך כלל).
**מימוש זכויות** - התחלת בנייה או מכירה המחייבת בתשלום היטל.
**פטור מהיטל** - מקרים בהם החוק פוטר מתשלום (למשל: בניית דירת מגורים יחידה).
### הליכים
**ערר** - ערעור על החלטת ועדה מקומית לועדת ערר מחוזית.
**ערעור מינהלי** - ערעור מועדת ערר לבית משפט.
**בקשה מנהלית** - פנייה לביה"מ ללא צורך בערר קודם (במקרים מסוימים).
---
## סמכויות ועדת הערר (סעיף 205)
ועדת ערר רשאית:
1. לאשר את ההחלטה
2. לבטל את ההחלטה
3. להורות על שינוי בהחלטה
4. להחזיר לועדה המקומית לדיון נוסף
ועדת הערר פועלת כערכאה מינהלית וסמכויותיה דומות לאלו של בית משפט.
---
## עקרונות פסיקתיים נפוצים
### 1. שיקול דעת מנהלי
- לועדות תכנון יש שיקול דעת רחב
- בית המשפט (וועדת הערר) יתערב רק אם השיקול לא סביר, שרירותי, או בחוסר סמכות
### 2. האיזון בין זכויות קנייניות לאינטרס ציבורי
- יש לאזן בין זכות הקניין של הפרט לבין האינטרס הציבורי
- שני הערכים חשובים ויש לשקלם
### 3. ההסתמכות על מומחים
- חוות דעת מומחה חשובה אך לא קובעת
- הועדה רשאית לסטות מחוות דעת אם תנמק
### 4. הנמקת החלטות
- כל החלטה חייבת להיות מנומקת
- חוסר נימוק או נימוק לקוני עלול להביא לביטול ההחלטה
### 5. שימת לב להשפעות
- על הועדה לשקול השפעות על הסביבה, שכנים, תשתיות
---
## טיפים למומחה הגישה השיפוטית
כשאתה מנתח החלטות בדיני תכנון ובניה, שים לב:
1. **לאיזה סעיפים בחוק מתייחסים** - אלו המקורות המשפטיים הבסיסיים
2. **אילו פסקי דין מצוטטים** - אלו המקורות הפסיקתיים שהשופט מסתמך עליהם
3. **איך מאזנים בין ערכים מנוגדים** - זכות קניין מול אינטרס ציבורי
4. **רמת ההתערבות** - האם השופט נוטה להתערב או להותיר החלטות בעינן
5. **יחס לחוות דעת מומחים** - האם סומך עליהן או ביקורתי
6. **רמת הנמקה** - האם מפורט או תמציתי
זכור - זהו תחום משפטי טכני שדורש ידע מקצועי. השופטים בועדות ערר הם לרוב עורכי דין או אנשי מקצוע בתחום התכנון.

View File

@@ -0,0 +1,635 @@
#!/usr/bin/env node
/**
* create-decision-structure.js — טיוטת מבנה החלטת ועדת ערר
*
* מייצר קובץ DOCX מעוצב עם כל חלקי ההחלטה (בלוקים א-יב).
* בלוקים א-ט ממולאים בתוכן, בלוק י (דיון) ויא (סיכום) = placeholders.
*
* שימוש:
* node create-decision-structure.js <input.json> [output.docx]
*
* מבוסס על create-legal-doc.js מתוך legal-docx skill.
* כללי RTL: START/END (לא LEFT/RIGHT), bidi+bidirectional+rightToLeft בכל רמה.
*
* v1.0
*/
const fs = require('fs');
const path = require('path');
const {
Document, Packer, Paragraph, TextRun, Header, Footer,
AlignmentType, HeadingLevel, PageNumber, LevelFormat,
Table, TableRow, TableCell, WidthType, BorderStyle,
ShadingType, UnderlineType
} = require(path.join(process.cwd(), 'node_modules', 'docx'));
// ═══════════════════════════════════════════════
// CONFIGURATION
// ═══════════════════════════════════════════════
const FONT = "David";
const FONT_SIZE = 24; // 12pt
const HEADING1_SIZE = 32; // 16pt — "החלטה"
const HEADING2_SIZE = 28; // 14pt — כותרות פרקים
const MARGIN_CM = 2.5;
const MARGIN_DXA = Math.round(MARGIN_CM / 2.54 * 1440); // 1417
const PAGE_WIDTH = 11906; // A4
const PAGE_HEIGHT = 16838;
const CONTENT_WIDTH = PAGE_WIDTH - MARGIN_DXA * 2; // 9072
const noBorders = {
top: { style: BorderStyle.NONE, size: 0, color: "FFFFFF" },
bottom: { style: BorderStyle.NONE, size: 0, color: "FFFFFF" },
left: { style: BorderStyle.NONE, size: 0, color: "FFFFFF" },
right: { style: BorderStyle.NONE, size: 0, color: "FFFFFF" }
};
// ═══════════════════════════════════════════════
// RTL HELPERS — מבוסס על create-legal-doc.js
// ═══════════════════════════════════════════════
const rtlRun = (text, opts = {}) => new TextRun({
text,
font: opts.font || FONT,
size: opts.size || FONT_SIZE,
bold: opts.bold || false,
underline: opts.underline ? { type: UnderlineType.SINGLE } : undefined,
rightToLeft: true,
});
const rtlPara = (children, opts = {}) => new Paragraph({
bidirectional: true,
alignment: opts.alignment || AlignmentType.BOTH,
spacing: opts.spacing || { after: 120, line: 276 }, // 1.15 line spacing = 276 twips
indent: opts.indent,
children: Array.isArray(children) ? children : [children],
...(opts.heading ? { heading: opts.heading } : {}),
});
// כותרת ראשית — "החלטה"
const mainTitle = (text) => rtlPara(
rtlRun(text, { bold: true, size: HEADING1_SIZE }),
{ heading: HeadingLevel.HEADING_1, alignment: AlignmentType.CENTER, spacing: { before: 240, after: 240 } }
);
// כותרת פרק — "תמצית טענות הצדדים", "דיון והכרעה"
const sectionTitle = (text) => rtlPara(
rtlRun(text, { bold: true, size: HEADING2_SIZE, underline: true }),
{ heading: HeadingLevel.HEADING_2, alignment: AlignmentType.CENTER, spacing: { before: 360, after: 240 } }
);
// כותרת משנה — "טענות העוררים"
const subTitle = (text) => rtlPara(
rtlRun(text, { bold: true, size: FONT_SIZE }),
{ alignment: AlignmentType.CENTER, spacing: { before: 240, after: 160 } }
);
// סעיף ממוספר — מספר bold + טקסט רגיל
const numberedPara = (num, text) => rtlPara([
rtlRun(`${num}. `, { bold: true }),
rtlRun(text),
], { spacing: { after: 120, line: 276 } });
// ציטוט (blockquote) — הזחה משני הצדדים
const blockquote = (text) => rtlPara(
rtlRun(text),
{ indent: { left: 567, right: 567 }, spacing: { before: 120, after: 120, line: 276 } }
);
// תיבת תמונה — מסגרת אפורה עם הנחיה
const imageBox = (description) => new Paragraph({
bidirectional: true,
alignment: AlignmentType.CENTER,
spacing: { before: 200, after: 200 },
shading: { type: ShadingType.CLEAR, fill: "F0F0F0" },
children: [
new TextRun({
text: `📷 תמונה: ${description}`,
font: FONT,
size: FONT_SIZE,
rightToLeft: true,
bold: true,
}),
],
});
// Placeholder — טקסט אפור שמסמן מקום
const placeholder = (text) => rtlPara(
new TextRun({
text: `[${text}]`,
font: FONT,
size: FONT_SIZE,
rightToLeft: true,
italics: true,
color: "808080",
}),
{ alignment: AlignmentType.CENTER, spacing: { before: 200, after: 200 } }
);
// רווח
const spacer = (after = 200) => rtlPara(rtlRun(""), { spacing: { after, before: 0 } });
// תא בטבלה
const rtlCell = (children, width, opts = {}) => new TableCell({
borders: noBorders,
width: { size: width, type: WidthType.DXA },
children: Array.isArray(children) ? children : [children],
...(opts.verticalAlign ? { verticalAlign: opts.verticalAlign } : {}),
});
// ═══════════════════════════════════════════════
// BLOCK BUILDERS — בוני הבלוקים
// ═══════════════════════════════════════════════
// בלוק א — כותרת מוסדית (טבלה 2 טורים)
function buildInstitutionalHeader(data) {
const leftCol = CONTENT_WIDTH * 0.5;
const rightCol = CONTENT_WIDTH * 0.5;
// צד ימין — מוסד
const rightCellContent = [
rtlPara(rtlRun("מדינת ישראל", { bold: true }), { alignment: AlignmentType.START, spacing: { after: 0 } }),
rtlPara(rtlRun("ועדת ערר לתכנון ובניה"), { alignment: AlignmentType.START, spacing: { after: 0 } }),
rtlPara(rtlRun("מחוז ירושלים"), { alignment: AlignmentType.START, spacing: { after: 80 } }),
];
// צד שמאל — מספרי תיק
const leftLines = [];
if (data.case_numbers) {
data.case_numbers.forEach(cn => {
leftLines.push(rtlPara([
rtlRun("מס' תיק: "),
rtlRun(cn, { bold: true }),
], { alignment: AlignmentType.START, spacing: { after: 0 } }));
});
}
if (data.plan_number) {
leftLines.push(rtlPara([
rtlRun("מס' תכנית: "),
rtlRun(data.plan_number, { bold: true }),
], { alignment: AlignmentType.START, spacing: { after: 0 } }));
}
if (data.request_number) {
leftLines.push(rtlPara([
rtlRun("מס' בקשה: "),
rtlRun(data.request_number, { bold: true }),
], { alignment: AlignmentType.START, spacing: { after: 0 } }));
}
return new Table({
visuallyRightToLeft: true,
width: { size: CONTENT_WIDTH, type: WidthType.DXA },
columnWidths: [rightCol, leftCol],
rows: [
new TableRow({
children: [
rtlCell(rightCellContent, rightCol),
rtlCell(leftLines.length ? leftLines : [rtlPara(rtlRun(""))], leftCol),
]
})
]
});
}
// בלוק ב — הרכב הוועדה
function buildPanel(data) {
const lines = [];
lines.push(spacer(120));
lines.push(rtlPara([
rtlRun("בפני:", { bold: true }),
], { spacing: { after: 40 } }));
lines.push(rtlPara([
rtlRun("יו\"ר הוועדה: ", { bold: true }),
rtlRun(data.panel?.chair || "עו\"ד דפנה תמיר"),
], { spacing: { after: 40 } }));
if (data.panel?.members) {
lines.push(rtlPara([
rtlRun("חברי הוועדה: ", { bold: true }),
rtlRun(data.panel.members[0] || ""),
], { spacing: { after: 40 } }));
for (let i = 1; i < data.panel.members.length; i++) {
lines.push(rtlPara(rtlRun(data.panel.members[i]), { spacing: { after: 40 } }));
}
}
return lines;
}
// בלוק ג — צדדים
function buildParties(data) {
const lines = [];
lines.push(spacer(120));
// עוררים
if (data.appellants) {
const label = data.appellants.length > 1 ? "העוררים:" : "העורר:";
lines.push(rtlPara(rtlRun(label, { bold: true }), { spacing: { after: 40 } }));
data.appellants.forEach(a => {
lines.push(rtlPara(rtlRun(a.name), { spacing: { after: 20 } }));
if (a.representative) {
lines.push(rtlPara(rtlRun(`ע"י ב"כ ${a.representative}`), { spacing: { after: 20 } }));
}
});
}
// נגד
lines.push(spacer(80));
lines.push(rtlPara(rtlRun("נגד", { bold: true }), {
alignment: AlignmentType.CENTER,
spacing: { before: 80, after: 80 }
}));
// משיבים
if (data.respondents) {
lines.push(rtlPara(rtlRun("המשיבים:", { bold: true }), { spacing: { after: 40 } }));
data.respondents.forEach((r, i) => {
lines.push(rtlPara(rtlRun(`${i + 1}. ${r.name}`), { spacing: { after: 20 } }));
if (r.representative) {
lines.push(rtlPara(rtlRun(`ע"י ב"כ ${r.representative}`), { spacing: { after: 20 } }));
}
});
}
return lines;
}
// בלוק ה — פתיחה
function buildOpening(data) {
const paras = [];
if (data.opening_paragraphs) {
data.opening_paragraphs.forEach((text, i) => {
paras.push(numberedPara(i + 1, text));
});
} else {
paras.push(numberedPara(1, `לפנינו ${data.appeal_description || "[תיאור הערר]"}.`));
}
return paras;
}
// בלוק ו — רקע עובדתי
function buildBackground(data) {
const paras = [];
let num = (data.opening_paragraphs?.length || 1) + 1;
if (data.use_petach_davar !== false) {
paras.push(sectionTitle("פתח דבר"));
}
// מקרקעין
if (data.property_description) {
paras.push(numberedPara(num++, data.property_description));
} else {
paras.push(numberedPara(num++, "[תיאור המקרקעין — מיקום, שטח, שכונה, ייעוד, מאפיינים ייחודיים]"));
}
// היסטוריה תכנונית
if (data.planning_history) {
data.planning_history.forEach(text => {
paras.push(numberedPara(num++, text));
});
} else {
paras.push(numberedPara(num++, "[היסטוריה תכנונית — תכניות קודמות, החלטות קודמות, היתרים]"));
}
// תמונה — מיקום
paras.push(imageBox("תשריט מיקום המגרש מתוך מערכת GIS — לסמן את המגרש"));
// מהות הבקשה
if (data.request_essence) {
if (Array.isArray(data.request_essence)) {
data.request_essence.forEach(text => {
paras.push(numberedPara(num++, text));
});
} else {
paras.push(numberedPara(num++, data.request_essence));
}
} else {
paras.push(numberedPara(num++, "[מהות הבקשה — פירוט מלא של מה שהתבקש]"));
}
// תמונה — תשריט
paras.push(imageBox("תשריט הבקשה / נספח בינוי / תכנית מוצעת"));
// ציטוט מפרוטוקול
if (data.committee_protocol_quote) {
paras.push(numberedPara(num++, "להלן מתוך פרוטוקול הדיון בוועדה המקומית:"));
paras.push(blockquote(data.committee_protocol_quote));
} else {
paras.push(numberedPara(num++, "[ציטוט מלא מפרוטוקול הוועדה המקומית]"));
}
// החלטת הוועדה + תנאים
if (data.committee_decision) {
paras.push(numberedPara(num++, data.committee_decision));
} else {
paras.push(numberedPara(num++, "[החלטת הוועדה המקומית — מה הוחלט, אילו תנאים נקבעו]"));
}
// תמונה אופציונלית — סביבה
if (data.include_aerial_photo !== false) {
paras.push(imageBox("צילום אוויר / מבט על הסביבה עם סימון המגרש"));
}
// סביבת המקרקעין
if (data.surroundings) {
paras.push(numberedPara(num++, data.surroundings));
}
// הגשת הערר
if (data.appeal_filing) {
paras.push(numberedPara(num++, data.appeal_filing));
} else {
paras.push(numberedPara(num++, "[הגשת הערר — תאריך, מי הגיש, הצטרפויות]"));
}
return { paras, nextNum: num };
}
// בלוק ז — טענות הצדדים
function buildClaims(data, startNum) {
const paras = [];
let num = startNum;
paras.push(sectionTitle("תמצית טענות הצדדים"));
// טענות העוררים
if (data.appellant_claims_sections) {
// מספר עוררים עם כותרות נפרדות
data.appellant_claims_sections.forEach(section => {
paras.push(subTitle(section.title));
section.claims.forEach(text => {
paras.push(numberedPara(num++, text));
});
});
} else {
paras.push(subTitle("טענות העוררים"));
if (data.appellant_claims) {
data.appellant_claims.forEach(text => {
paras.push(numberedPara(num++, text));
});
} else {
paras.push(numberedPara(num++, "[טענות העוררים]"));
}
}
// עמדת הוועדה המקומית
paras.push(subTitle("עמדת הוועדה המקומית"));
if (data.committee_position) {
data.committee_position.forEach(text => {
paras.push(numberedPara(num++, text));
});
} else {
paras.push(numberedPara(num++, "[עמדת הוועדה המקומית]"));
}
// עמדת מבקשי ההיתר / מגישי התכנית
const applicantTitle = data.type === "plan"
? "עמדת מגישי התכנית"
: "עמדת מבקשי ההיתר";
paras.push(subTitle(applicantTitle));
if (data.applicant_position) {
data.applicant_position.forEach(text => {
paras.push(numberedPara(num++, text));
});
} else {
paras.push(numberedPara(num++, `[${applicantTitle}]`));
}
return { paras, nextNum: num };
}
// בלוק ח — ההליכים בפני ועדת הערר
function buildProceedings(data, startNum) {
const paras = [];
let num = startNum;
paras.push(sectionTitle("ההליכים בפני ועדת הערר"));
if (data.proceedings) {
data.proceedings.forEach(item => {
if (item.type === "image") {
paras.push(imageBox(item.description));
} else if (item.type === "quote") {
paras.push(numberedPara(num++, item.intro || ""));
paras.push(blockquote(item.text));
} else {
paras.push(numberedPara(num++, item.text));
}
});
} else {
paras.push(numberedPara(num++, "[דיון — תאריך, נוכחים, עיקרי הדברים]"));
paras.push(numberedPara(num++, "[סיור (אם היה) — תאריך, תיאור]"));
paras.push(imageBox("צילומים מהסיור"));
paras.push(numberedPara(num++, "[החלטות ביניים]"));
paras.push(numberedPara(num++, "[השלמות טיעון — כרונולוגי]"));
paras.push(numberedPara(num++, "[חוו\"ד מקצועיות שהתקבלו]"));
paras.push(imageBox("הדמיות / חתכי בינוי מהשלמות טיעון (אם יש)"));
}
return { paras, nextNum: num };
}
// בלוק ט — תכניות חלות (אופציונלי)
function buildPlans(data, startNum) {
if (data.skip_plans_section) return { paras: [], nextNum: startNum };
const paras = [];
let num = startNum;
paras.push(sectionTitle("התכניות החלות על המקרקעין"));
if (data.applicable_plans) {
data.applicable_plans.forEach(item => {
if (item.type === "quote") {
paras.push(numberedPara(num++, item.intro || ""));
paras.push(blockquote(item.text));
} else {
paras.push(numberedPara(num++, item.text));
}
});
} else {
paras.push(numberedPara(num++, "[פירוט התכניות הרלוונטיות עם ציטוט מהוראותיהן]"));
}
return { paras, nextNum: num };
}
// בלוק יב — חתימות
function buildSignatures(data) {
const chairName = data.panel?.chair || "עו\"ד דפנה תמיר";
const secretaryName = data.secretary || "";
const halfWidth = Math.floor(CONTENT_WIDTH / 2);
return [
spacer(400),
rtlPara(rtlRun("ניתנה פה אחד, היום ______________, ______________."), {
spacing: { after: 400 }
}),
new Table({
visuallyRightToLeft: true,
width: { size: CONTENT_WIDTH, type: WidthType.DXA },
columnWidths: [halfWidth, halfWidth],
rows: [
new TableRow({
children: [
rtlCell([
rtlPara(rtlRun("________________________"), { alignment: AlignmentType.CENTER, spacing: { after: 40 } }),
rtlPara(rtlRun(chairName, { bold: true }), { alignment: AlignmentType.CENTER, spacing: { after: 20 } }),
rtlPara(rtlRun("יו\"ר ועדת הערר"), { alignment: AlignmentType.CENTER, spacing: { after: 20 } }),
], halfWidth),
rtlCell([
rtlPara(rtlRun("________________________"), { alignment: AlignmentType.CENTER, spacing: { after: 40 } }),
rtlPara(rtlRun(secretaryName || ""), { alignment: AlignmentType.CENTER, spacing: { after: 20 } }),
rtlPara(rtlRun("מזכירת ועדת הערר"), { alignment: AlignmentType.CENTER, spacing: { after: 20 } }),
], halfWidth),
]
})
]
}),
];
}
// ═══════════════════════════════════════════════
// MAIN — הרכבת המסמך
// ═══════════════════════════════════════════════
function buildDocument(data) {
const content = [];
// בלוק א — כותרת מוסדית
content.push(buildInstitutionalHeader(data));
content.push(spacer(160));
// בלוק ב — הרכב
content.push(...buildPanel(data));
content.push(spacer(80));
// בלוק ג — צדדים
content.push(...buildParties(data));
content.push(spacer(160));
// בלוק ד — כותרת "החלטה"
content.push(mainTitle("החלטה"));
// בלוק ה — פתיחה
content.push(...buildOpening(data));
// בלוק ו — רקע
const bg = buildBackground(data);
content.push(...bg.paras);
// בלוק ז — טענות
const claims = buildClaims(data, bg.nextNum);
content.push(...claims.paras);
// בלוק ח — הליכים
const proc = buildProceedings(data, claims.nextNum);
content.push(...proc.paras);
// בלוק ט — תכניות (אופציונלי)
const plans = buildPlans(data, proc.nextNum);
content.push(...plans.paras);
// בלוק י — דיון והכרעה (placeholder)
content.push(sectionTitle("דיון והכרעה"));
content.push(placeholder("כאן מתחיל פרק הדיון וההכרעה — ייכתב בשלב הבא"));
// בלוק יא — סיכום (placeholder)
content.push(sectionTitle("סיכום"));
content.push(placeholder("ייכתב לאחר השלמת פרק הדיון"));
// בלוק יב — חתימות
content.push(...buildSignatures(data));
return new Document({
styles: {
default: {
document: {
run: { font: FONT, size: FONT_SIZE, rightToLeft: true },
paragraph: { bidirectional: true, alignment: AlignmentType.BOTH }
}
},
paragraphStyles: [
{
id: "Heading1", name: "Heading 1", basedOn: "Normal", next: "Normal",
quickFormat: true,
run: { size: HEADING1_SIZE, bold: true, font: FONT, rightToLeft: true },
paragraph: { spacing: { before: 240, after: 240 }, outlineLevel: 0,
bidirectional: true, alignment: AlignmentType.CENTER }
},
{
id: "Heading2", name: "Heading 2", basedOn: "Normal", next: "Normal",
quickFormat: true,
run: { size: HEADING2_SIZE, bold: true, font: FONT, rightToLeft: true },
paragraph: { spacing: { before: 200, after: 200 }, outlineLevel: 1,
bidirectional: true, alignment: AlignmentType.CENTER }
},
]
},
sections: [{
properties: {
page: {
size: { width: PAGE_WIDTH, height: PAGE_HEIGHT },
margin: { top: MARGIN_DXA, right: MARGIN_DXA, bottom: MARGIN_DXA, left: MARGIN_DXA }
},
bidi: true,
},
footers: {
default: new Footer({
children: [new Paragraph({
bidirectional: true,
alignment: AlignmentType.CENTER,
children: [
rtlRun("עמוד ", { size: 18 }),
new TextRun({ children: [PageNumber.CURRENT], font: FONT, size: 18 }),
rtlRun(" מתוך ", { size: 18 }),
new TextRun({ children: [PageNumber.TOTAL_PAGES], font: FONT, size: 18 }),
]
})]
})
},
children: content
}]
});
}
// ═══════════════════════════════════════════════
// CLI
// ═══════════════════════════════════════════════
async function main() {
const inputFile = process.argv[2];
if (!inputFile) {
console.error('שימוש: node create-decision-structure.js <input.json> [output.docx]');
console.error('');
console.error('קובץ ה-JSON צריך לכלול:');
console.error(' case_numbers, panel, appellants, respondents,');
console.error(' opening_paragraphs, property_description, planning_history,');
console.error(' request_essence, committee_protocol_quote, committee_decision,');
console.error(' appellant_claims, committee_position, applicant_position,');
console.error(' proceedings, applicable_plans');
console.error('');
console.error('ראה: .claude/skills/legal-decision/references/decision-template.json');
process.exit(1);
}
const data = JSON.parse(fs.readFileSync(inputFile, 'utf-8'));
const outputFile = process.argv[3] || `החלטה-ערר-${(data.case_numbers?.[0] || 'draft').replace(/\//g, '-')}-מבנה.docx`;
const doc = buildDocument(data);
const buffer = await Packer.toBuffer(doc);
fs.writeFileSync(outputFile, buffer);
console.log(`${outputFile}`);
console.log(` פונט: ${FONT} ${FONT_SIZE / 2}pt`);
console.log(` שוליים: ${MARGIN_CM} ס`);
console.log(` RTL: bidi + bidirectional + rightToLeft ✓`);
console.log(` Alignment: START/END ✓`);
console.log(` גודל: ${(buffer.length / 1024).toFixed(1)} KB`);
}
main().catch(err => {
console.error('❌ שגיאה:', err.message);
process.exit(1);
});

204
skills/decision/scripts/package-lock.json generated Normal file
View File

@@ -0,0 +1,204 @@
{
"name": "scripts",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"docx": "^9.6.1"
}
},
"node_modules/@types/node": {
"version": "25.5.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz",
"integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==",
"license": "MIT",
"dependencies": {
"undici-types": "~7.18.0"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
"license": "MIT"
},
"node_modules/docx": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/docx/-/docx-9.6.1.tgz",
"integrity": "sha512-ZJja9/KBUuFC109sCMzovoq2GR2wCG/AuxivjA+OHj/q0TEgJIm3S7yrlUxIy3B+bV8YDj/BiHfWyrRFmyWpDQ==",
"license": "MIT",
"dependencies": {
"@types/node": "^25.2.3",
"hash.js": "^1.1.7",
"jszip": "^3.10.1",
"nanoid": "^5.1.3",
"xml": "^1.0.1",
"xml-js": "^1.6.8"
},
"engines": {
"node": ">=10"
}
},
"node_modules/hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
}
},
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
"license": "MIT"
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"license": "MIT"
},
"node_modules/jszip": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
"license": "(MIT OR GPL-3.0-or-later)",
"dependencies": {
"lie": "~3.3.0",
"pako": "~1.0.2",
"readable-stream": "~2.3.6",
"setimmediate": "^1.0.5"
}
},
"node_modules/lie": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
"license": "MIT",
"dependencies": {
"immediate": "~3.0.5"
}
},
"node_modules/minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
"license": "ISC"
},
"node_modules/nanoid": {
"version": "5.1.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.7.tgz",
"integrity": "sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"bin": {
"nanoid": "bin/nanoid.js"
},
"engines": {
"node": "^18 || >=20"
}
},
"node_modules/pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
"license": "(MIT AND Zlib)"
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"license": "MIT"
},
"node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
"license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"node_modules/safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"license": "MIT"
},
"node_modules/sax": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz",
"integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==",
"license": "BlueOak-1.0.0",
"engines": {
"node": ">=11.0.0"
}
},
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
"license": "MIT"
},
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/undici-types": {
"version": "7.18.2",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
"integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"license": "MIT"
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"license": "MIT"
},
"node_modules/xml": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
"integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==",
"license": "MIT"
},
"node_modules/xml-js": {
"version": "1.6.11",
"resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
"integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
"license": "MIT",
"dependencies": {
"sax": "^1.2.4"
},
"bin": {
"xml-js": "bin/cli.js"
}
}
}
}

View File

@@ -0,0 +1,5 @@
{
"dependencies": {
"docx": "^9.6.1"
}
}