fix(corpus): חיפה is its own district, not folded into צפון (G2) #307

Merged
chaim merged 1 commits from worktree-haifa-district into main 2026-06-20 11:25:46 +00:00
Owner

מה

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

  • services/internal_decisions.py _VALID_DISTRICTS השמיט "חיפה" (בעוד שכבת-ה-tools VALID_DISTRICTS וגם db.py קיצור-הציטוט כן כוללים אותו — הפרת G2)
  • _COURT_TO_DISTRICT מיפה "חיפה" → "צפון"

תוצאה: 2 החלטות מחוז-חיפה (1074-08-23, 8508-03-24) הוסוו תחת צפון, ו"חיפה" לא הופיע כמחוז.

שינויים

  • הוספת "חיפה" ל-_VALID_DISTRICTS
  • _COURT_TO_DISTRICT: ("חיפה","צפון") → ("חיפה","חיפה")
  • SCHEMA_V43 — סיווג-מחדש של רשומות-מורשת שה-court שלהן מזכיר חיפה: צפון → חיפה (נרמול-במקור, idempotent)

אימות (DB חי, ROLLBACK)

2 רשומות עוברות → צפון 6→4, חיפה 0→2. קומפילציה OK.

Invariants

G1 (נרמול-במקור) · G2 (מקור-אמת יחיד לרשימת-המחוזות — follow-up: לאחד 3 רשימות-מחוזות מתפצלות: tools/service/metadata-extractor, כולל וריאנטים ת"א/תל-אביב, ארצי/ארצית)

🤖 Generated with Claude Code

## מה מחוז **חיפה** ומחוז **הצפון** הם מחוזות-תכנון נפרדים, כל אחד עם ועדת-ערר משלו. שני באגים קיפלו את חיפה לתוך צפון: - `services/internal_decisions.py` `_VALID_DISTRICTS` **השמיט "חיפה"** (בעוד שכבת-ה-tools `VALID_DISTRICTS` וגם `db.py` קיצור-הציטוט כן כוללים אותו — הפרת G2) - `_COURT_TO_DISTRICT` מיפה `"חיפה" → "צפון"` תוצאה: 2 החלטות מחוז-חיפה (**1074-08-23**, **8508-03-24**) הוסוו תחת צפון, ו"חיפה" לא הופיע כמחוז. ## שינויים - הוספת `"חיפה"` ל-`_VALID_DISTRICTS` - `_COURT_TO_DISTRICT`: `("חיפה","צפון") → ("חיפה","חיפה")` - **SCHEMA_V43** — סיווג-מחדש של רשומות-מורשת שה-court שלהן מזכיר חיפה: `צפון → חיפה` (נרמול-במקור, idempotent) ## אימות (DB חי, ROLLBACK) 2 רשומות עוברות → צפון 6→4, חיפה 0→2. קומפילציה OK. ## Invariants G1 (נרמול-במקור) · G2 (מקור-אמת יחיד לרשימת-המחוזות — **follow-up:** לאחד 3 רשימות-מחוזות מתפצלות: tools/service/metadata-extractor, כולל וריאנטים `ת"א`/`תל-אביב`, `ארצי`/`ארצית`) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-20 11:25:39 +00:00
fix(corpus): חיפה is its own district, not folded into צפון (G2)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 3s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
fb32c278e6
Haifa (מחוז חיפה) and the North (מחוז הצפון) are separate Israeli planning
districts, each with its own appeals committee. Two divergent bugs collapsed
Haifa into צפון:
- services/internal_decisions.py _VALID_DISTRICTS omitted "חיפה" (while the
  tools-layer VALID_DISTRICTS and db.py citation-abbrev map both include it —
  a G2 single-source-of-truth divergence)
- _COURT_TO_DISTRICT mapped "חיפה" -> "צפון", so Haifa courts derived צפון

Result: 2 Haifa committee decisions (1074-08-23, 8508-03-24) were mis-filed
under צפון, and "חיפה" never appeared as a district.

Changes:
- add "חיפה" to service _VALID_DISTRICTS
- _COURT_TO_DISTRICT: ("חיפה","צפון") -> ("חיפה","חיפה")
- SCHEMA_V43: reclassify legacy internal rows whose court mentions חיפה from
  צפון -> חיפה (normalize at source, G1; idempotent)

Verified against live DB (rollback txn): 2 rows move צפון(6)->צפון(4)+חיפה(2).

Invariants: G1 (normalize at source) · G2 (single source of truth for the
valid-district set — follow-up: consolidate the 3 divergent lists).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 422d79f9e8 into main 2026-06-20 11:25:46 +00:00
chaim deleted branch worktree-haifa-district 2026-06-20 11:25:46 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#307