feat(plans): העשרה-אוטומטית של תוקף-תב"ע מ-mavat בחילוץ (Phase C טריגר 2) #293

Merged
chaim merged 1 commits from worktree-plan-enrich-extractor into main 2026-06-17 11:28:04 +00:00
Owner

רקע

טריגר 2 מתוך שני טריגרי-המשיכה (Phase C). כש-extract_plans מוצא מספר-תכנית עם תוקף-חסר (תאריך-רשומות / י"פ), upsert_candidates ממלא את החוסר מ-מנהל-התכנון (mavat) דרך plans_fetch (#292) לפני ה-upsert. הרשומה עדיין נכנסת pending_review — ההעשרה משנה את המועמד, לא את שער-היו"ר.

שמרני בכוונה (operational-simplicity)

  • ממלא רק שדות-חסרים — לא דורס ערכים מעוגני-תיק (display_name/purpose מהחילוץ נשמרים).
  • מגודר לפורמט-mavat מודרני (\d{2,4}-\d{6,8}); מספרים-ישנים (מי/820, תמ"א 38) מדולגים — לא יבזבזו השקת-דפדפן (~30-60ש' לכל משיכה, סדרתי).
  • תקרה PLAN_ENRICH_MAX_PER_CALL=8 — אם נחצה, מתועד warning (בלי silent-cap).
  • fail-soft: גשר-למטה / לא-נמצא / חסום → המועמד נשאר כפי-שחולץ (לוג, לא בליעה שקטה).
  • דגל-כיבוי PLAN_ENRICH_FROM_MAVAT=0.
  • מקור-ההעשרה מסומן ב-model_used="claude_local+mavat".

בדיקות

  • py_compile · unit-test ל-gate (פורמט+חוסר), ל-fill-only-missing (display_name מעוגן-תיק נשמר), ול-fail-soft .

Invariants

  • G10 / INV-DM5 — שער-היו"ר נשמר; הרשומה pending_review, שום אישור אוטומטי.
  • INV-AH — ערך-תוקף שנמשך מקורו mavat (model_used); שדה שהמקור אינו חושף נשאר ריק, לא מומצא.
  • G2 — מרחיב את plans_fetch (#292); אין מסלול מקביל.

הקשר

זוג ל-טריגר 1 (כפתור "משוך מ-מנהל-התכנון" ב-PlanForm) שעובר כעת בשער-העיצוב. backend-slice הליבה כבר מוזג (#292) ואומת חי בייצור.

🤖 Generated with Claude Code

## רקע טריגר 2 מתוך שני טריגרי-המשיכה (Phase C). כש-`extract_plans` מוצא מספר-תכנית עם **תוקף-חסר** (תאריך-רשומות / י"פ), `upsert_candidates` ממלא את החוסר מ-**מנהל-התכנון (mavat)** דרך `plans_fetch` (#292) לפני ה-upsert. הרשומה עדיין נכנסת `pending_review` — ההעשרה משנה את המועמד, לא את שער-היו"ר. ## שמרני בכוונה (operational-simplicity) - **ממלא רק שדות-חסרים** — לא דורס ערכים מעוגני-תיק (`display_name`/`purpose` מהחילוץ נשמרים). - **מגודר לפורמט-mavat מודרני** (`\d{2,4}-\d{6,8}`); מספרים-ישנים (`מי/820`, `תמ"א 38`) מדולגים — לא יבזבזו השקת-דפדפן (~30-60ש' לכל משיכה, סדרתי). - **תקרה** `PLAN_ENRICH_MAX_PER_CALL=8` — אם נחצה, מתועד warning (בלי silent-cap). - **fail-soft**: גשר-למטה / לא-נמצא / חסום → המועמד נשאר כפי-שחולץ (לוג, לא בליעה שקטה). - **דגל-כיבוי** `PLAN_ENRICH_FROM_MAVAT=0`. - מקור-ההעשרה מסומן ב-`model_used="claude_local+mavat"`. ## בדיקות - `py_compile` ✅ · unit-test ל-gate (פורמט+חוסר), ל-fill-only-missing (display_name מעוגן-תיק נשמר), ול-fail-soft ✅. ## Invariants - **G10 / INV-DM5** — שער-היו"ר נשמר; הרשומה pending_review, שום אישור אוטומטי. - **INV-AH** — ערך-תוקף שנמשך מקורו mavat (model_used); שדה שהמקור אינו חושף נשאר ריק, לא מומצא. - **G2** — מרחיב את `plans_fetch` (#292); אין מסלול מקביל. ## הקשר זוג ל-**טריגר 1** (כפתור "משוך מ-מנהל-התכנון" ב-PlanForm) שעובר כעת בשער-העיצוב. backend-slice הליבה כבר מוזג (#292) ואומת חי בייצור. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-17 11:22:16 +00:00
feat(plans): העשרה-אוטומטית של תוקף-תב"ע מ-mavat בחילוץ (Phase C טריגר 2)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
43621e8300
כש-extract_plans מוצא מספר-תכנית עם תוקף-חסר (תאריך-רשומות / י"פ),
upsert_candidates ממלא את החוסר מ-מנהל-התכנון לפני ה-upsert. הרשומה
עדיין נכנסת pending_review — ההעשרה משנה את המועמד, לא את שער-היו"ר.

שמרני בכוונה:
- ממלא רק שדות-חסרים — לא דורס ערכים מעוגני-תיק (display_name/purpose
  מהחילוץ נשמרים).
- מגודר לפורמט-mavat מודרני (\d{2,4}-\d{6,8}); מספרים-ישנים (מי/820,
  תמ"א 38) מדולגים (לא יבזבזו השקת-דפדפן).
- תקרה PLAN_ENRICH_MAX_PER_CALL=8 (מתועד אם נחצה — בלי silent-cap).
- fail-soft: גשר-למטה / לא-נמצא / חסום → המועמד נשאר כפי-שחולץ (לוג,
  לא בליעה שקטה).
- דגל-כיבוי PLAN_ENRICH_FROM_MAVAT=0.
- מקור-ההעשרה מסומן ב-model_used="claude_local+mavat".

INV-AH: ערך-תוקף שנמשך נושא מקור (mavat); שדה-חסר נשאר ריק. G10: שער-
היו"ר נשמר. G2: מרחיב את plans_fetch (#292), לא מסלול מקביל.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 6484e745d8 into main 2026-06-17 11:28:04 +00:00
chaim deleted branch worktree-plan-enrich-extractor 2026-06-17 11:28:04 +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#293