diff --git a/docs/spec/04-analysis-writing.md b/docs/spec/04-analysis-writing.md new file mode 100644 index 0000000..0983933 --- /dev/null +++ b/docs/spec/04-analysis-writing.md @@ -0,0 +1,186 @@ +# 04 — ניתוח וכתיבה (Analysis & Writing) + +קובץ-תחום זה כפוף ל-[חוקת המערכת](00-constitution.md) ומפרט את שלב **הסיוע-בכתיבה** — +חילוץ הטענות, ארכיטקטורת 12 הבלוקים, וסגנון דפנה. הוא אוכף את +[INV-G11](00-constitution.md#inv-g11-תוכן-החלטה-מנומקת) (תוכן החלטה מנומקת). + +> **⚠ מודל-סמכות שונה מ-01–03.** זהו קובץ **תוכן-משפטי**, לא קובץ-הנדסה. לפי החוקה +> (§2 עיקרון 2, §5ב) הסמכות עליו היא **היו"ר (עו"ד דפנה תמיר) + מסמכי-הפרויקט** — +> [block-schema.md](../block-schema.md), [decision-methodology.md](../decision-methodology.md), +> [legal-decision-lessons.md](../legal-decision-lessons.md), +> [corpus-analysis.md](../corpus-analysis.md), [skills/decision/SKILL.md](../../skills/decision/SKILL.md). +> ה-invariants כאן **אינם** כפופים לפרוטוקול ≥3-המקורות החיצוני, ו**אינם** נושאים +> `סטטוס: verified / ⚠ UNVERIFIED`. במקום `מקורות: … | סטטוס` הם נושאים `מקור-סמכות:`. +> מסמכי-הפרויקט הם המקור המוסמך; קובץ זה מצטט אותם בגובה-ספ, לא משכפל את ההגדרות. + +--- + +## 1. חילוץ טענות → טיעונים מאוגדים + +לפני הכתיבה, חומרי-המקור הופכים למבנה-נתונים שמזין את הבלוקים. שני שלבים: + +### 1.1 חילוץ טענות גולמיות (claims) + +`extract_claims(case_number, doc_title="", party_hint="")` קורא לכתבי-הטענות בתיק, +ושומר טענות גולמיות ב-DB. הוא מסנן למסמכים מסוג `appeal` / `response` / `objection` +(אלא אם צוין `doc_title` מפורש), ולכל מסמך קורא ל-`claims_extractor.extract_and_store_claims` +— ראה `mcp-server/src/legal_mcp/tools/documents.py:300-347`. + +כל טענה נשמרת עם `party_role` מתוך התפקידים המוכרים: **`appellant` (עוררים)** · +**`respondent` (משיבים)** · **`committee` (ועדה מקומית)** · **`permit_applicant` +(מבקשי היתר)** · **`appraiser` (שמאי)**. `get_claims(case_number, party_role="")` +שולף ומציג אותן בעברית, עם סינון אופציונלי לפי תפקיד +(`documents.py:350-385`; מיפוי-העברית ב-`:370-376`). + +### 1.2 כינוס לטיעונים משפטיים מובחנים (legal arguments) + +`aggregate_claims_to_arguments(case_number, force=False)` מכנס את הפרופוזיציות +הגולמיות לטיעונים משפטיים מובחנים (de-duplication) דרך +`argument_aggregator.aggregate_claims_to_arguments`; `force=True` מוחק טיעונים קיימים +ומחשב מחדש — ראה `mcp-server/src/legal_mcp/tools/legal_arguments.py:11-33`. +`get_legal_arguments(case_number, party="")` שולף את הטיעונים המאוגדים, מקובצים לפי +צד (`appellant`/`respondent`/`committee`/`permit_applicant`/`unknown`); אם אין — +הוא מחזיר הנחיה להריץ קודם את הכינוס (`legal_arguments.py:36-83`). + +> **מדוע זה חשוב לתוכן:** הטיעונים המאוגדים הם הקלט ל-[INV-WR3](#inv-wr3-מענה-לכל-טענה-של-הצד-המפסיד) +> (מענה לכל טענה עיקרית) ול-[INV-WR4](#inv-wr4-בלוק-ז--טענות-מקוריות-בלבד) (הפרדת טענות +> מקוריות מהשלמות). הסינון לפי `party_role` מאפשר לזהות את הצד המפסיד ולוודא שכל טיעון +> שלו מקבל מענה בבלוק י. + +--- + +## 2. ארכיטקטורת 12 הבלוקים (סיכום) + +המבנה הפורמלי המלא — content model, constraints, משקלות, ופרמטרי-עיבוד לכל בלוק — +מוגדר ב-[block-schema.md](../block-schema.md) (המקור המוסמך). כאן רק מפת-גובה: + +| בלוק | תפקיד | CREAC | תוכן מהותי? | +|------|--------|-------|-------------| +| א–ד | כותרת מוסדית · הרכב · צדדים · "החלטה" | — | לא (template-fill) | +| ה | פתיחה ("לפנינו…") | C ראשוני | קל | +| **ו** | רקע עובדתי ("פתח דבר") | — | **כן — עובדות בלבד** | +| **ז** | טענות הצדדים | — | **כן — טענות מקוריות בלבד** | +| ח | הליכים בפני הוועדה | — | כן (תיעוד, ללא הערכה) | +| ט | תכניות חלות (אופציונלי) | R | כן (כשיש מורכבות תכנונית) | +| **י** | דיון והכרעה | full-CREAC | **כן — ה-ratio decidendi** | +| יא | סיכום / סוף דבר | C אחרון | קל | +| יב | חתימות | — | לא | + +יסודות תיאורטיים (CREAC · FJC Judicial Writing Manual · DITA · Akoma Ntoso), +תלויות-בין-בלוקים, וכללי-ולידציה — ב-[block-schema.md](../block-schema.md) §§1, 5, 6. +מתודולוגיית-המשקלות (Communicative / Reader-attention / Judicial-review / Empirical) +— שם §4. **טיוטת-ביניים** (Pre-Ruling Draft) בוחרת תת-קבוצת בלוקים (ו, ט, ז, ח) — +block-schema.md §7; שלב-החילוץ השמאי שלה (`extract_appraiser_facts`) מזין את בלוק ט. + +> **התמקדות לפי feedback היו"ר:** הסיוע מתמקד בבלוקים המהותיים (ו–יב); בלוקים א–ד +> ממולאים מ-template ואינם דורשים ניתוח. ראה `MEMORY.md` → "התעלם מכותרות". + +--- + +## 3. סגנון דפנה (סיכום) + +מדריך-הסגנון המלא הוא [skills/decision/SKILL.md](../../skills/decision/SKILL.md); +המתודולוגיה האנליטית ("איך לחשוב לפני איך לכתוב") היא +[decision-methodology.md](../decision-methodology.md). נקודות-מפתח: + +- **טון לפי סוג-ערר** — רישוי (1xxx) חם יחסית; היטל-השבחה (8xxx) ופיצויים ס'197 (9xxx) + קרים ויבשים (SKILL.md §1; methodology §א.2). +- **מבנה הדיון (בלוק י)** — נפתח במסקנה (CREAC: C→R→E→A→C), סילוגיזם לכל סוגיה, + steel-manning של הצד המפסיד, ציטוט-פסיקה ב"סנדוויץ'" (methodology §§ד, ו, ז). +- **מסלול-דיון לפי תוצאה** — דחייה (עיגולים קונצנטריים) · קבלה (נימוק-נימוק) · קבלה + חלקית (מיפוי-מתחים) · היטל-השבחה (פתיחה ישירה) — SKILL.md §7.3; block-schema.md בלוק י. +- **3 מקורות-פסיקה נפרדים** — אסור לבלבל ביניהם (SKILL.md §7.5; ראה גם + [03-retrieval.md](03-retrieval.md) לשכבת-האחזור שמזינה אותם). +- **לקחים מצטברים** — [legal-decision-lessons.md](../legal-decision-lessons.md) + + ביטויי-מעבר; מתעדכנים מפידבק-היו"ר ומ-Hermes (ראה forward-ref [07-learning.md](07-learning.md)). + +--- + +## 4. Invariants של התחום — תוכן החלטה מנומקת + +חמשת ה-invariants הבאים הם **פאֶטים של [INV-G11](00-constitution.md#inv-g11-תוכן-החלטה-מנומקת)**. +כולם נושאים `מקור-סמכות` (היו"ר + מסמכי-הפרויקט), **ללא** שדה-מקורות-חיצוני ו**ללא** +סטטוס-אימות — כמתחייב מהבחנת שתי-הסמכויות בחוקה (§5). + +### INV-WR1: רקע ניטרלי (בלוק ו) — עובדות בלבד +**כלל:** בלוק ו מציג **עובדות בלבד** ואינו טוען. אסורות מילות-ערך/שיפוט ("חריג", +"בעייתי", "למרבה הפליאה") ואסורים ציטוטים ישירים מצדדים (אלה שייכים לבלוק ז). החלטות +קודמות מובאות כעובדה יבשה ("ביום X נדחתה תכנית Y"), ללא נימוקים. ניטרליות אינה הסתרה: +עובדה מהותית התומכת בצד המפסיד **חייבת** להופיע. +**מקור-סמכות:** היו"ר (עו"ד דפנה תמיר) + [block-schema.md](../block-schema.md) (בלוק ו, +§5.2 "רקע ניטרלי") + [decision-methodology.md](../decision-methodology.md) §ח.2. +**אכיפה:** ולידציית-תוכן בבלוק ו (סעיף עם ציטוט-צד או מילת-שיפוט → לא שייך כאן) + שערי +QA; מפורט ב-[05-qa-review.md](05-qa-review.md). +**הפרה ידועה:** — + +### INV-WR2: ללא כפילות (בלוק י מפנה, לא חוזר) +**כלל:** בלוק י (דיון) **מפנה** לעובדות ולטענות שכבר הוצגו בבלוקים הקודמים ("כאמור +בסעיף X לעיל", "כפי שפורט") — ואינו חוזר עליהן. חריג יחיד: חזרה מכוונת עם שכבת-ניתוח +חדשה ("נשוב על כך כי…"). אין עובדות חדשות בדיון שלא הופיעו ברקע. +**מקור-סמכות:** היו"ר + [block-schema.md](../block-schema.md) (בלוק י, §5.2 "ללא +כפילות") + [skills/decision/SKILL.md](../../skills/decision/SKILL.md) §9.1. +**אכיפה:** ולידציית-מבנה (עובדה בדיון ללא עוגן ברקע = flag) + שערי QA; +מפורט ב-[05-qa-review.md](05-qa-review.md). +**הפרה ידועה:** — + +### INV-WR3: מענה לכל טענה של הצד המפסיד +**כלל:** כל **טענה עיקרית** שהוצגה בבלוק ז — ובמיוחד של הצד המפסיד — מקבלת **מענה +מנומק** בבלוק י (ישיר, "למעלה מן הצורך", או מקובץ עם דומותיה). מותר לא להכריע בטענה +נחוצה-פחות ("נוכח מסקנתנו לעיל, אין צורך…"), אך אסור להתעלם מטענה מרכזית — הצד המפסיד +חייב לראות שהוועדה שקלה את יסודות עמדתו (steel-manning). +**מקור-סמכות:** היו"ר + [decision-methodology.md](../decision-methodology.md) §§ג.2, ו.2 + +[block-schema.md](../block-schema.md) (בלוק י MUST: "מענה לכל טענה" §5.4) + +[skills/decision/SKILL.md](../../skills/decision/SKILL.md) §6.2. +**אכיפה:** מיפוי טענות-בלוק-ז → מענה-בלוק-י (נשען על §1.2, הטיעונים המאוגדים) + שערי QA; +מפורט ב-[05-qa-review.md](05-qa-review.md). +**הפרה ידועה:** — + +### INV-WR4: בלוק ז — טענות מקוריות בלבד +**כלל:** בלוק ז מכיל **אך ורק** טענות מכתבי-הטענות המקוריים (כתב-ערר, כתב-תשובה). +תוכן מהשלמות-טיעון, החלטות-ביניים, ותגובות-מאוחרות → **בלוק ח** (הליכים), לא בלוק ז. +הצגת-הטענות היא בנאמנות וללא הערכה ("טענה זו חלשה") — ההערכה שייכת לבלוק י. +**מקור-סמכות:** היו"ר + [block-schema.md](../block-schema.md) (בלוק ז Sources + +§5.2 "טענות מקוריות בלבד") + [skills/decision/SKILL.md](../../skills/decision/SKILL.md) §4. +**אכיפה:** סיווג-מקור של טענה בעת החילוץ (`extract_claims` מסנן `appeal`/`response`/ +`objection`; מסמכי פוסט-דיון מתויגים `is_post_hearing` ומופנים לבלוק ח — block-schema.md §7) ++ שערי QA; מפורט ב-[05-qa-review.md](05-qa-review.md). +**הפרה ידועה:** — + +### INV-WR5: "מבחן-השופט" — החלטה עצמאית וקריאה +**כלל:** ההחלטה חייבת להיות **עצמאית וקריאה לשופט שלא מכיר את התיק** — תשתית עובדתית +מלאה (בלוק ו), תיעוד procedural-fairness (בלוק ח), והנמקה שעומדת בבדיקת סבירות +ומידתיות (בלוק י). הקורא לא נדרש לחומרי-המקור כדי להבין את ההחלטה ואת הצדקתה. +**מקור-סמכות:** היו"ר + [block-schema.md](../block-schema.md) §4.3 ("מבחן השופט" / +Judicial-Review weight) + [decision-methodology.md](../decision-methodology.md) §יב +(רשימת-ביקורת) + [corpus-analysis.md](../corpus-analysis.md). +**אכיפה:** שער QA סופי ("מבחן-השופט") על ההחלטה כיחידה שלמה; +מפורט ב-[05-qa-review.md](05-qa-review.md). +**הפרה ידועה:** — + +--- + +## 5. צ'קליסט-תוכן לפי סוג-ערר + +בלוק י מקבל **צ'קליסט-תוכן** המוזרק אוטומטית ל-prompt לפי סוג-הערר, מתוך +`CONTENT_CHECKLISTS` ב-`mcp-server/src/legal_mcp/services/lessons.py:355`. הבורר +(`lessons.py:532-555`) ממפה לסוג: `tama38` (תמ"א 38) · `betterment_levy` (היטל-השבחה) · +`licensing_property` · `licensing_threshold` (שאלת-סף) · `licensing_substantive` +(ברירת-מחדל לרישוי). הצ'קליסט מבטיח שהדיון מכסה את הנושאים התכנוניים/המשפטיים שדפנה +מכסה בפועל בקורפוס — ראה [corpus-analysis.md](../corpus-analysis.md) §§3, 6 לדפוסי-התוכן +ולפער שנסגר (§5.3). זהו מנגנון-תוכן באחריות היו"ר, לא חוק-הנדסה. + +--- + +## 6. הפניות-אחיות + +- [00-constitution.md](00-constitution.md#inv-g11-תוכן-החלטה-מנומקת) — INV-G11 + הבחנת + שתי-הסמכויות (תוכן-משפטי מול הנדסה). +- [03-retrieval.md](03-retrieval.md) — שכבת-האחזור (3 קורפוסי-פסיקה) שמזינה ציטוטים לבלוק י. +- [05-qa-review.md](05-qa-review.md) — שערי-QA שאוכפים את INV-WR1–WR5 + שערים אנושיים. +- [06-export.md](06-export.md) — ייצוא DOCX לפי תבנית-דפנה (אחרי הכתיבה). +- [07-learning.md](07-learning.md) — לולאת פידבק-היו"ר + Hermes שמעדכנת lessons/SKILL. +- מסמכי-המקור המוסמכים: [block-schema.md](../block-schema.md) · + [decision-methodology.md](../decision-methodology.md) · + [legal-decision-lessons.md](../legal-decision-lessons.md) · + [corpus-analysis.md](../corpus-analysis.md) · + [skills/decision/SKILL.md](../../skills/decision/SKILL.md).