feat(blocks): block-vav effort medium→low (empirical calibration #208) #372

Merged
chaim merged 1 commits from worktree-agent-a26909c71a51a387d into main 2026-06-30 18:41:46 +00:00
Owner

מה ולמה

שינוי פרמטר-ייצור יחיד: effort של block-vav (בלוק ו', רקע עובדתי/background) ב-BLOCK_CONFIG (mcp-server/src/legal_mcp/services/block_writer.py) מ-medium ל-low.

כיול-המאמץ האמפירי של #208 (scripts/calibrate_effort.py, דוח data/eval/effort-calibration-20260630T155054Z.md, n=7 סופיים) מצא שעבור block-vav low נוחת הכי קרוב לטקסט הסופי המאושר של היו"ר דפנה תמיר — מנצח גם על מטריקת ה-distance המורכבת (low 0.4454 < medium 0.4749 < high 0.5381 < xhigh 0.5413) וגם על אות-הסגנון הנקי anti_pattern_total (low 1.57 < medium 2.29 < high 4.14). היו"ר (חיים) אישר אימוץ low עבור block-vav.

זהו הבלוק היחיד עם אות-כיול נקי/בטוח — אותות block-zayin ו-block-yod-alef היו דו-משמעיים/תיקו ונשארים כפי שהם. אף effort של בלוק אחר לא נגוע. בהמשך ל-#204 (חיווט טיוטה דטרמיניסטית, מודל יחיד מוצמד).

Invariants — הצהרה (חובה)

  • נוגע / מקיים: G8 — ה-effort נקבע אמפירית (כיול מול הסופי של היו"ר), לא "לפי תחושה". claude_session-local-onlyblock_writer רץ במסלול הייצור המקומי (MCP/claude_local, claude -p), לא SDK ישיר בקונטיינר.

צ'קליסט — פרוטוקול כתיבת-קוד

  • קראתי את docs/spec/00-constitution.md (שינוי-פרמטר עקבי עם #204/#208)
  • השינוי לא יוצר מסלול מקביל (G2) ולא מתקן תסמין בקריאה (G1) — ערך יחיד ב-SSOT הקיים BLOCK_CONFIG
  • לא הוספתי מגע-Paperclip מחוץ ל-Platform Port (G12)
  • אין בליעה שקטה של שגיאות
  • שינוי-פרמטר; אין data-migration

אימות

  • grep -n 'block-vav' → השורה מציגה "effort": "low".
  • python3 -c "import ast; ast.parse(...)" → parse OK.
  • PYTHONPATH=mcp-server/src .venv/bin/python -c "from legal_mcp.services.block_writer import BLOCK_CONFIG; print(BLOCK_CONFIG['block-vav']['effort'])"low.
  • git diff --stat → קובץ יחיד, שורה אחת.

פרמטר ייצור צד-מארח: block_writer רץ במסלול MCP/claude_local המקומי. אחרי מיזוג העץ הראשי (~/legal-ai) דורש git pull כדי שהשינוי ייכנס לתוקף.

🤖 Generated with Claude Code

## מה ולמה שינוי פרמטר-ייצור יחיד: `effort` של `block-vav` (בלוק ו', רקע עובדתי/background) ב-`BLOCK_CONFIG` (`mcp-server/src/legal_mcp/services/block_writer.py`) מ-`medium` ל-`low`. כיול-המאמץ האמפירי של #208 (`scripts/calibrate_effort.py`, דוח `data/eval/effort-calibration-20260630T155054Z.md`, n=7 סופיים) מצא שעבור block-vav **low** נוחת הכי קרוב לטקסט הסופי המאושר של היו"ר דפנה תמיר — מנצח גם על מטריקת ה-`distance` המורכבת (low 0.4454 < medium 0.4749 < high 0.5381 < xhigh 0.5413) וגם על אות-הסגנון הנקי `anti_pattern_total` (low 1.57 < medium 2.29 < high 4.14). היו"ר (חיים) אישר אימוץ low עבור block-vav. זהו הבלוק היחיד עם אות-כיול נקי/בטוח — אותות block-zayin ו-block-yod-alef היו דו-משמעיים/תיקו ונשארים כפי שהם. אף effort של בלוק אחר לא נגוע. בהמשך ל-#204 (חיווט טיוטה דטרמיניסטית, מודל יחיד מוצמד). ## Invariants — הצהרה (חובה) - **נוגע / מקיים:** **G8** — ה-effort נקבע אמפירית (כיול מול הסופי של היו"ר), לא "לפי תחושה". **claude_session-local-only** — `block_writer` רץ במסלול הייצור המקומי (MCP/`claude_local`, `claude -p`), לא SDK ישיר בקונטיינר. ## צ'קליסט — פרוטוקול כתיבת-קוד - [x] קראתי את `docs/spec/00-constitution.md` (שינוי-פרמטר עקבי עם #204/#208) - [x] השינוי **לא** יוצר מסלול מקביל (G2) ולא מתקן תסמין בקריאה (G1) — ערך יחיד ב-SSOT הקיים `BLOCK_CONFIG` - [x] **לא** הוספתי מגע-Paperclip מחוץ ל-Platform Port (G12) - [x] אין בליעה שקטה של שגיאות - [x] שינוי-פרמטר; אין data-migration ## אימות - `grep -n 'block-vav'` → השורה מציגה `"effort": "low"`. - `python3 -c "import ast; ast.parse(...)"` → parse OK. - `PYTHONPATH=mcp-server/src .venv/bin/python -c "from legal_mcp.services.block_writer import BLOCK_CONFIG; print(BLOCK_CONFIG['block-vav']['effort'])"` → `low`. - `git diff --stat` → קובץ יחיד, שורה אחת. > **פרמטר ייצור צד-מארח:** `block_writer` רץ במסלול MCP/`claude_local` המקומי. **אחרי מיזוג העץ הראשי (`~/legal-ai`) דורש `git pull`** כדי שהשינוי ייכנס לתוקף. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-30 18:41:06 +00:00
feat(blocks): block-vav effort medium→low (empirical calibration #208)
All checks were successful
G12 Leak-Guard / leak-guard (pull_request) Successful in 4s
Lint — undefined names / undefined-names (pull_request) Successful in 10s
88b7dd1004
Set block-vav (בלוק ו', רקע/background) generation effort from medium to
low in BLOCK_CONFIG. The #208 empirical effort calibration
(scripts/calibrate_effort.py, report
data/eval/effort-calibration-20260630T155054Z.md, n=7 finals) found that
for block-vav, low effort lands closest to chair Dafna Tamir's finalized
text — winning on BOTH the composite distance metric (low 0.4454 vs
medium 0.4749 vs high 0.5381 vs xhigh 0.5413) AND the cleaner style
signal anti_pattern_total (low 1.57 vs medium 2.29 vs high 4.14). Chair
(chaim) approved adopting low for block-vav.

This is the only block with a clean/confident calibration signal —
block-zayin and block-yod-alef signals were ambiguous/tied and are left
unchanged. No other block effort is touched.

Invariants: G8 (effort empirically calibrated, not by-feel);
claude_session-local-only (block_writer runs via the local MCP/claude_local
generation path). Host-side generation parameter — after merge the host
tree needs `git pull` to take effect.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit 38d73c4f89 into main 2026-06-30 18:41:46 +00:00
chaim deleted branch worktree-agent-a26909c71a51a387d 2026-06-30 18:41:47 +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#372