feat(halacha): equivalent-halacha (parallel-authority) links across precedents #100
Reference in New Issue
Block a user
Delete Branch "worktree-equivalent-halachot"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
מה ולמה
המשך ל-#84.2 — סקירת 5 הזוגות הכפולים חוצי-הפסקים העלתה שהם הישנות לגיטימית של עקרונות מבוססים, לא כפילות-שגיאה. החלטת היו"ר: להשאיר הכל + לקשר כ-parallel authority.
הממצא הקריטי: אין ולו ציטוט אחד בין הפסקים → מערכת ה-corroboration (X11) מבוססת-ציטוט בלבד; רישום שם היה מזייף נתוני-ציטוט ומנפח את
corroboration_count. לכן נבנה קישור נפרד ברמת-הלכה ל-parallel authority.equivalent_halachot— סימטרי (halacha_a < halacha_bעם CHECK+UNIQUE), לא-ציטוט, חוצה-פסקים בלבד, ON DELETE CASCADE.link_equivalent_halachot(idempotent; דוחה אותו-id ואותו-פסק),unlink,list_equivalent_for_halacha;list_halachot(include_equivalents=True)→_annotate_equivalentsמצרףequivalentsלכל שורה (שני הכיוונים).include_equivalentsב-GET /api/halachot; GET/POST/DELETE/api/halachot/{id}/equivalentsלקישור/ביטול ידני ע"י היו"ר.--linkרושם זוגות שנמצאו כ-equivalent_halachot(לא-הרסני, idempotent).equivalents; התור הנקי שולףinclude_equivalents; הכרטיס מציג תג-זהב "עיקרון מקביל ב-N" + רשימה הניתנת להרחבה (תיק + כלל + דמיון), מתויג "אסמכתה מקבילה — לא ציטוט".אוכלסו 5 הזוגות שנסקרו (החלטת היו"ר).
Invariants — הצהרה
list_halachot); שלמות הציטטור נשמרת (corroboration נשאר ציטוט-בלבד).אימות
equivalent_halachot; ה-hub 1023-20 מצרףequivalentsל-3 מהלכותיו.tsc --noEmitexit 0; same-precedent guard + idempotency נבדקו.🤖 Generated with Claude Code
Cross-precedent recurrence of a principle is real but is NOT citation corroboration (X11) — the 5 candidate pairs have ZERO citations between their precedents. Recording them in halacha_citation_corroboration would fabricate citation data and inflate corroboration_count. This adds a proper, separate halacha-level link for parallel authority. Schema (V28): equivalent_halachot — symmetric (halacha_a < halacha_b, CHECK + UNIQUE), non-citation, cross-precedent-only. ON DELETE CASCADE. db.py: - link_equivalent_halachot (idempotent; rejects same-id and SAME-precedent pairs — parallel authority is cross-precedent by definition), unlink, and list_equivalent_for_halacha. - list_halachot gains include_equivalents → _annotate_equivalents attaches an `equivalents` list (both directions) per row. API: include_equivalents on GET /api/halachot; GET/POST/DELETE /api/halachot/{id}/equivalents for the chair to view/link/unlink manually. scripts/halacha_batch_reconcile.py: --link records found cross-precedent pairs as equivalent_halachot (non-destructive, idempotent). web-ui: Halacha.equivalents type; the clean review queue fetches include_equivalents; the review card shows a gold "עיקרון מקביל ב-N" badge + an expandable list (case + rule + similarity) labeled "אסמכתה מקבילה — לא ציטוט". Populated the 5 reviewed pairs (chair decision: keep all + link as parallel authority). Verified: 5 rows; the 1023-20 hub annotates 3 of its halachot with equivalents; tsc --noEmit exits 0. Invariants: G1 (model recurrence at source in its own table, not by abusing the citator); G2 (no parallel path — extends list_halachot); citator integrity preserved (corroboration stays citation-only). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>