fix(extraction): סינון cited_only מתור/מוני החילוץ (#140) #263

Merged
chaim merged 1 commits from worktree-cited-only-skip-queue into main 2026-06-15 04:04:33 +00:00
Owner

הבעיה (#140)

31 שורות case_law עם source_kind='cited_only' (ציטוט-בלבד, ללא full_text/precedent_chunks) נושאות halacha_extraction_status='pending' רק כברירת-מחדל ומזהמות את מונה ה-pending (במתזמר ובדף-התפעול). אין להן מה לחלץ.

התיקון (G1 — תיקון-במקור · G2 — מסנן יחיד משותף)

  1. db.EXTRACTION_ELIGIBLE_PREDICATE — מקור-אמת יחיד ל"שורה ברת-חילוץ": source_kind <> 'cited_only' AND EXISTS(precedent_chunks). מוחל ב-list_pending_extraction_requests. #139 יעשה בו שימוש-חוזר ל-reconcile — אותו כלל, לא מוגדר פעמיים.
  2. מוני-snapshot מסננים cited_only: halacha_drain_supervisor.db_snapshot (GROUP BY status), web/app.py meta+hal_ext.
  3. reconcile_metadata_status.py מורחב לתור-ההלכות: cited_only → 'skipped' (אותו terminal-state כמו צד-המטא; תור-תאום, G2).

תיקון-נתון (בוצע על ה-DB החי)

reconcile_metadata_status.py הורץ: 31 cited_only halacha → 'skipped' (metadata כבר היה מיושב — אידמפוטנטי). התפלגות-אחרי: halacha pending=9 (עבודה אמיתית), skipped=31, completed=309. המונה במתזמר/בדף ירד מ-40 ל-9.

בדיקות

  • test_extraction_queue_eligibility (חדש) — ה-predicate מחריג cited_only+דורש chunks; list_pending_extraction_requests מחיל אותו לשני ה-kinds.
  • כל 345 בדיקות mcp עוברות. undefined-names + leak-guard נקיים.

Invariants

  • G1 — terminal-state אמיתי במקור (skipped), לא טלאי-בקריאה בלבד
  • G2 — predicate יחיד משותף (#139 יורש), ללא תור מקביל
  • INV-DM1 — stub לא-searchable אינו מועמד-חילוץ
  • G12 — leak-guard נקי

🤖 Generated with Claude Code

## הבעיה (#140) 31 שורות `case_law` עם `source_kind='cited_only'` (ציטוט-בלבד, ללא `full_text`/`precedent_chunks`) נושאות `halacha_extraction_status='pending'` **רק כברירת-מחדל** ומזהמות את מונה ה-pending (במתזמר ובדף-התפעול). אין להן מה לחלץ. ## התיקון (G1 — תיקון-במקור · G2 — מסנן יחיד משותף) 1. **`db.EXTRACTION_ELIGIBLE_PREDICATE`** — מקור-אמת יחיד ל"שורה ברת-חילוץ": `source_kind <> 'cited_only' AND EXISTS(precedent_chunks)`. מוחל ב-`list_pending_extraction_requests`. **#139 יעשה בו שימוש-חוזר** ל-reconcile — אותו כלל, לא מוגדר פעמיים. 2. **מוני-snapshot מסננים cited_only**: `halacha_drain_supervisor.db_snapshot` (GROUP BY status), `web/app.py` `meta`+`hal_ext`. 3. **`reconcile_metadata_status.py` מורחב לתור-ההלכות**: `cited_only → 'skipped'` (אותו terminal-state כמו צד-המטא; תור-תאום, G2). ## תיקון-נתון (בוצע על ה-DB החי) `reconcile_metadata_status.py` הורץ: **31 cited_only halacha → 'skipped'** (metadata כבר היה מיושב — אידמפוטנטי). התפלגות-אחרי: halacha `pending=9` (עבודה אמיתית), `skipped=31`, `completed=309`. המונה במתזמר/בדף ירד מ-40 ל-9. ## בדיקות - `test_extraction_queue_eligibility` (חדש) — ה-predicate מחריג cited_only+דורש chunks; `list_pending_extraction_requests` מחיל אותו לשני ה-kinds. - כל **345** בדיקות mcp עוברות. `undefined-names` + `leak-guard` נקיים. ## Invariants - ✅ **G1** — terminal-state אמיתי במקור (`skipped`), לא טלאי-בקריאה בלבד - ✅ **G2** — predicate יחיד משותף (#139 יורש), ללא תור מקביל - ✅ **INV-DM1** — stub לא-searchable אינו מועמד-חילוץ - ✅ **G12** — leak-guard נקי 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-15 04:03:45 +00:00
fix(extraction): סינון cited_only מתור/מוני החילוץ (#140)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 7s
Lint — undefined names / undefined-names (pull_request) Successful in 14s
c348903e4b
31 שורות case_law עם source_kind='cited_only' (ציטוט-בלבד, ללא full_text/chunks)
נושאות halacha_extraction_status='pending' רק כברירת-מחדל ומזהמות את מונה ה-pending
ובמתזמר/בדף-התפעול — אין להן מה לחלץ.

תיקון (G1 — תיקון-במקור, G2 — מסנן יחיד משותף):
- db.EXTRACTION_ELIGIBLE_PREDICATE — מקור-אמת יחיד ל"שורה ברת-חילוץ" (source_kind
  <> 'cited_only' AND יש precedent_chunks). מוחל ב-list_pending_extraction_requests;
  #139 יעשה בו שימוש-חוזר ל-reconcile (אותו כלל, לא כפול).
- מוני-snapshot מסננים cited_only: halacha_drain_supervisor.db_snapshot,
  web/app.py meta+hal_ext (GROUP BY status).
- reconcile_metadata_status.py מורחב לכסות גם את תור-ההלכות: cited_only→'skipped'
  (אותו terminal-state כמו צד-המטא, תור-תאום, G2). בוצע על ה-DB החי: 31 הועברו
  ל-'skipped' (metadata כבר היה מיושב — אידמפוטנטי). התפלגות-אחרי: halacha
  pending=9 (עבודה אמיתית), skipped=31, completed=309.

בדיקות: test_extraction_queue_eligibility (predicate + list_pending מחיל אותו,
שני ה-kinds). כל 345 בדיקות mcp עוברות. guards נקיים.

Invariants: G1 (terminal-state אמיתי במקור), G2 (predicate יחיד, ללא תור מקביל),
INV-DM1 (stub לא-searchable אינו מועמד-חילוץ), G12 (leak-guard נקי).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit ea232da92d into main 2026-06-15 04:04:33 +00:00
chaim deleted branch worktree-cited-only-skip-queue 2026-06-15 04:04:34 +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#263