fix(learning): chair_name במקור — סופי-ועדה תמיד נכנס לקורפוס-הפסיקה (#134) #226
Reference in New Issue
Block a user
Delete Branch "worktree-chair-name-rootfix"
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?
תיקון-שורש ל-TaskMaster #134.
הבאג
שלב-הלמידה (
ingest_final_version→ingest_internal_decision) מוסיף כל סופי כתקדים ציטוטי ב-case_law(source_kind=internal_committee), אך נכשל בשקט (non-fatal warning) כש-cases.chair_nameריק — בגללcase_law_internal_chair_check. כך הסופיים של 1194/1200/8070 לא נכנסו לקורפוס-הפסיקה (רק 8126/1130 שהיה להם chair). 11/18 תיקים היו עם chair ריק.שורש (3 שכבות)
cases.chair_nameלא נקבע בפתיחת תיק.case.get('chair_name','')גולמי — בעוד מסלול-ה-UI ב-web/app.pyכבר פתר אותו דטרמיניסטית (_committee_chair_for_case). מסלולים מקבילים מתפצלים — הפרת INV-G2.except → logger.warning(נגד כלל-הנדסה §6 / feedback_silent_swallow).התיקון
שכבה 1+G2 — SoT יחיד:
config.committee_chair_for_caseהוא המקום היחיד שממנו גוזרים chair.web/app.pyאוחד אליו (הכפילות הוסרה);db.create_caseו-tools/workflow.ingest_final_versionמשתמשים בו.db.create_caseקובע chair_name תמיד לא-ריק בפתיחת תיק (INV-G1, נרמול-במקור);cases.case_createחושףchair_nameparam.שכבה 2 — נראות (§6):
ingest_final_versionמחזירinternal_corpus_errorבמקום בליעה, ו-final_learning_pipelineמדפיס אזהרה בולטת אם ההעתק נכשל.שכבה 3 — רשת-ביטחון: backfill ל-11 תיקים;
audit_corpus_integrity— נוספו CHECK_D (תיקים מוכרעים ללא chair) ו-CHECK_E (סופי-finalחסר מקורפוס-הפסיקה). שניהם 0 כעת.Invariants
בדיקות
py_compileלכל 7 הקבצים ✓test_chair_seed_gate,test_audit_provenance) ✓db.create_case(default 1xxx→דפנה תמיר, override נשמר) ✓audit_corpus_integrityחי על ה-DB: A–E = 0 ✓🤖 Generated with Claude Code