# VitPermit — היתר שינויים אדריכלי

## מטרת הפרויקט

ניהול תיקי **היתר שינויים** (architectural permit revisions) — Tracker להערות בוחני רישוי,
checklist של גליונות דרישות, ובהמשך — כלי אוטומציה לחילוץ הערות מ-DWF ולפלאגין Revit.

הפרויקט נולד מתיק לוטן/בריגה (סשן 0001, 2026-06-01) — האדריכל מקבל הערות בוחנת
ב-DWF + מייל, ועובד שעות-billable לתקן וליצור חבילת הגשה חוזרת.
שכבת ה-tooling מטרתה לקצר cycles חוזרים מ-~3-4 ימים ל-~יום אחד.

## מבנה התיקיות

```
VitPermit\
  CLAUDE.md                         ← הקובץ הזה
  README.md
  briga-options.html                ← הרחבת אופציות RTL לסשן 0001
  projects\
    briga-2026-05\
      INTAKE.md                     ← סיכום מה הסשן הראשון יודע על התיק
      comments\                     ← Tracker per-plot
      checklists\                   ← Master checklist של דרישות
      response-letter\              ← מכתב נלווה לבוחנת
  templates\                        ← תבניות שיוחזרו בכל היתר עתידי
  tools\                            ← Scripts/CLI (DWF extractor יישב כאן)
```

## חוקים קבועים

### חוקי השפה של האקוסיסטם
- **לא להשתמש ב"גמרת"** — תמיד "סיימת"/"השלמת"/"סיכמת" (חוק גלובלי, ראה `D:\Vitruvius Ecosystem\CLAUDE.md`).
- כל UI/microcopy/מסמכים שמגיעים ללקוח/בוחנת — עברית מקצועית, ללא slang.
- מסמכים פנימיים — חופש סגנוני, אבל לעקוב אחר אותו חוק.

### חוקי קריאה וכתיבה לקבצים
- **אסור** לערוך/לשנות/למחוק שום קובץ בנתיב `G:\האחסון שלי\עבודות\לוטן\בריגה\` —
  זה ה-source חי של הלקוח. אם צריך להוציא משם משהו, **copy** ל-`projects\briga-2026-05\source-snapshot\`
  ולעבוד על העותק.
- ה-RVT-ים גדולים (300-530MB) — לא לפתוח/לפענח אותם דרך Claude. רק רישום שלהם
  ב-INTAKE.md. השינוי במודל קורה דרך Revit, לא דרך הסשן.

### חוקי HTML/תצוגה
- כל HTML פנימי לפרויקט = RTL עברית, פונט Rubik, מבוסס Vitruvius Design Language.
- Link CSS: `<link rel="stylesheet" href="../Design/Vitruvius-Design-Language.css">`
  (יחסי לתיקיית VitPermit הראשית).
- אסור SVG leader lines שצפים מעל nodes (חוסמים טקסט).

## הקשר מהסשן הראשון (0001 · בריגה · 2026-06-01)

- 3 מגרשים: 2010 (בריכה בגג, איתן לוריא), 2017+2020 (שינויים פנימיים, רם לוטן).
- מספר תיק עירייה: 6584. בוחנת: ליעד. דחיית הגשה: 30.4.2026.
- 3 קבצי DWF מסומנים (תיקיית `תיקונים מליעד 29.4.26`) — הליבה האמיתית של ההערות, **לא חולצו עדיין**.
- 6 PDFs (3 דפי מידע + 3 גליונות דרישות) — **נקראו במלואם** ומסוכמים ב-INTAKE.md.

### החלטות שאושרו בסשן 0001
- **Workspace:** `D:\Vitruvius Ecosystem\VitPermit\` (לא בתוך פרויקט קיים).
- **אופציה B מומלצת:** DWF extractor (Python) + tracker HTML — לא פלאגין Revit עדיין.
- **זרימת DWF ① כראשית:** CLI חיצוני ל-Revit, פלט CSV/JSON. ② (Insert DWF Markup ב-Revit) כעזר חזותי במקביל.

### הכרעות שעוד פתוחות
- בחירה סופית בין A/B/C (אם המשתמש החליט אחרת מההמלצה).
- האם להשתמש ב-Autodesk DWF Toolkit (פתוח, C++/Python bindings) או pyDWF טהור.
- האם להעלות את הדרישות (6 PDFs) ל-NotebookLM למחקר חוצה-תיק.

## הנחיות לסשנים הבאים

- **לטעון את ה-INTAKE.md** של הפרויקט הפעיל לפני שמתחילים — שם נמצא כל ההקשר.
- **לכבד את חוק ה-read-only על `G:\`** — תמיד.
- **כל artifact חדש (tracker, checklist, response)** → תחת `projects\<project-name>\`.
- **תבניות שלמדנו** → תחת `templates\` (כדי לשמש את הפרויקט הבא ב-VitPermit).
- **DWF extractor** → תחת `tools\dwf-markup-extract\`. שמירת JSON schema יציב מאפשרת מעבר חלק לפלאגין Revit עתידי בלי rewrite.

## קשר ל-Vitruvius (פלאגין Revit)

ל-VitPermit ול-Vitruvius יש חפיפה אסטרטגית:
- שניהם פונים לאדריכלים ישראלים (TAM ~200-280 משרדים).
- Vitruvius מטפל ב-RTL/עברית ב-DWG (תיקון ויזואלי).
- VitPermit מטפל ב-workflow הרישוי (לא ויזואלי — תהליכי).
- אופציה C (פלאגין VitPermit Comments) — אם מבשלת — היא **מודול שני** ב-Vitruvius. צבע: financial purple `#9B59B6` (כמו Vitruvius).
- כל יצוא PDF עתידי בעברית RTL יכול להשתמש ב-Hebrew Visual TTF של Vitruvius.

## עדכוני סשנים

- **0001 · 2026-06-01** — Bootstrap + DWF extractor + master tracker.
  - מבנה תיקיות + CLAUDE.md + INTAKE.md + briga-options.html.
  - החלטה: B + ① (DWF extractor אוטומטי, פלט CSV/JSON).
  - **`tools/dwf-markup-extract/extract.py`** — pure-stdlib Python script. DWF6 = ZIP container. Walks ePlot sections, joins "markup object definition" XML (metadata) עם "markup private" XML (text/geometry) via `EPlotInstanceID`. עברית entity-encoded ב-private XML (`&#x05D0;` וכו') — Python stdlib מפענח אוטומטית.
  - **`tools/dwf-markup-extract/build_tracker.py`** — מקבל JSON ומפיק master_tracker.html (RTL, Vitruvius design language).
  - **83 markups חולצו** מ-3 DWFs של בריגה: 28 (2010 pool) + 38 (2010 הגשה רשמית 4 גיליונות) + 17 (2017 הגשה 3 גיליונות).
  - **תיקון מהלך הסשן (לאחר screenshot מהמשתמש):** טעיתי בהבחנה הראשונה. הטקסט של ההערות **לא** ב-`TextPhrase` (שם רק badge עם המספר) — אלא ב-Property בשם `History` ב-public XML, בפורמט audit-blocks מופרדים ב-`----`. ה-extractor עודכן (`parse_history_comments`) — 71 מ-83 ה-markups עכשיו עם טקסט עברי מלא. ראה memory `dwf-markup-format.md` המעודכן.
  - **Flags שזוהו ב-DWF (לא ב-PDF):** Deadline (7/05 או 13/05) עברו. 2020 לא נסקר בכלל בסבב הזה.
  - **לדור הבא של ה-extractor:** הוספת `tools/dwf-render` שמרנדר W2D ל-PNG (אולי דרך Autodesk Design Review CLI או ODA TG) + cropping ע"פ קואורדינטות מהקלט → thumbnails per cloud → tracker עם הקשר חזותי.

### Workflow קבוע — "תיק היתר שינויים חדש"
1. העתק / יצור `projects/<תאריך>-<שם>/` עם subfolders comments/checklists/response-letter.
2. רישום INTAKE.md עם פרטי הלקוח, נציג רשות, ושעת פגישת דחייה.
3. הרץ `tools/dwf-markup-extract/extract.py <dwfs...> -o <project>/comments/raw`.
4. הרץ `tools/dwf-markup-extract/build_tracker.py <combined.json> <project>/comments/master_tracker.html`.
5. **קטלוג ידני:** עדכן את `CATEGORIES` ו-`EXTERNALS` ב-build_checklist.py למיפוי הספציפי של הפרויקט (per-(dwf, sheet, label) → tags). הרץ `build_checklist.py` להפקת `master-checklist.html` ו-`.md`.
6. פתח את ה-HTML, תפוס flags קריטיים (deadline / מגרשים חסרים), שלח את 2 ה-open-questions לבוחנת.
7. שלח פניות ל-7 גורמים החיצוניים (מודד, יועצים, אישורי פיתוח/חניה, טאבו, תיאום אדריכלי). cycles ארוכים → לפתוח כמה שיותר מוקדם.
8. תיקון מתוכננת ב-Revit per cloud, סימון ב-HTML (state נשמר ב-localStorage).
9. יצירת PDF תגובה — מבנה: 3 הנחיות מאחדות + טבלת תגובות per-numbered-cloud.

### Tooling שכבר נבנה ב-VitPermit (סשן 0001)
- `tools/dwf-markup-extract/extract.py` — DWF → JSON+CSV (pure stdlib, History parsing מ-`----`)
- `tools/dwf-markup-extract/build_tracker.py` — JSON → master_tracker.html (read-only viewer)
- `tools/dwf-markup-extract/build_checklist.py` — JSON + per-project CATEGORIES + EXTERNALS + UNIVERSAL → master-checklist.{html,md} (cards view, localStorage state, externals tracker, universal requirements table, open questions)
- `tools/dwf-markup-extract/build_grid.py` — JSON → master-grid.html: **Tabulator-based spreadsheet grid**. מיון בלחיצה על כותרת, גרירת שורות, גרירת עמודות, עריכת כל תא, הוספת עמודות/שורות, מחיקה/שכפול (right-click), פילטר scope/חיפוש, ייצוא CSV/JSON. הכל נשמר ב-localStorage (data + custom cols). מייבא CATEGORIES/helpers מ-build_checklist. Tabulator 6.x מ-CDN (עובד על file:// עם אינטרנט). **זה הכלי שהמשתמש ביקש לעבוד מולו** (סשן 0001 — רצה עריכה חופשית כמו Excel).

### Artifacts ספציפיים לפרויקט בריגה (סשן 0001)
- `projects/briga-2026-05/comments/master_tracker.html` — 83 הערות עם טקסט מלא, view-only
- `projects/briga-2026-05/checklists/master-checklist.html/.md` — Checklist אינטראקטיבי + מנהל חיצונים
- `projects/briga-2026-05/response-letter/external-outreach.html` — 7 טיוטות מייל לגורמים חיצוניים, copy-to-clipboard
- `projects/briga-2026-05/revit-work-plan.html` — תוכנית 7 buckets, ארגון 71 הערות לעבודה יעילה ב-Revit (~25-35 שעות סה"כ)
- `briga-options.html`, `next-steps-options.html`, `plan.html` — מסמכי החלטה (היסטוריה ותכנון)
- `projects/briga-2026-05/INTAKE.md` — סיכום מקיף של כל החומר

### החלטה תקפה לכל הסשנים הבאים על בריגה
- **אין שיחה עם ליעד** (החלטת משתמש סשן 0001) — מתקדמים בלי לוודא דדליין/סטטוס 2020.
- **2020 = mirror של 2017** — Liad כתבה במפורש שהערות חוזרות; נכין 2020 לפי הדפוס של 2017 ו-2010 כדי שלא ניתפס.
- **🔥 הבריכה מחוץ ל-scope (החלטת משתמש סשן 0001):** הבריכה היא **היתר נפרד של אדריכלית אחרת**. המשתמש רק מסמן footprint בריכה בתכנית 2010 שלו + כותב "תוספת בריכה מוגשת לפי בקשה מס' XXX" (עונה להערה #26 ב-20250817 HS03). צריך את מספר ההיתר מאדריכלית הבריכה.
  - כל DWF "20250596 - 2010 בריכה" (28 הערות) = להעביר לאדריכלית, לא לתקן.
  - יועץ שלד + יועץ אקוסטי + נסח טאבו מרפסת גג = שלה, לא של המשתמש.
  - workload אמיתי של המשתמש: **55 הערות** (2010 הגשה 38 + 2017 17), ~15-22 שעות Revit, 5 פניות חיצוניות.
  - `build_checklist.py` עם `OUT_OF_SCOPE_DWFS` + שדה `scope` per-external; `revit-work-plan.html` ביטל Bucket C-בריכה (→ סימון minimal) ו-Bucket G (שלד/אקוסטי).
- **סדר Buckets (מעודכן):** B (ללא שינוי) → A (שטחים) → E (תב"ע) → C (סימון בריכה, זעיר) → D (חזיתות, חוסם דגנית) → F (מדידה, חוסם מודד). אין יותר G.
