{
  "generated_by": "scripts/build-template-history.py",
  "note": "GENERASİYA EDİLİB — git tarixçəsindən; əl ilə redaktə etmə.",
  "library": {
    "name": "ui.mcp.az",
    "version": "1.32.7",
    "head": "79bf9ae",
    "head_date": "2026-10-12T01:30:47+04:00",
    "changelog": [
      {
        "version": "1.32.7",
        "date": "2026-10-12",
        "title": "Canlı ünvan ui.mcp.az (Contabo TEST); ui.ubs.az ləğv",
        "body_md": "### Dəyişdi\n- Canlı qalereya **ui.mcp.az**-a köçürüldü (Contabo vo-edge, TEST, statik nginx, konteyner `ui-mcp-web`, `/opt/apps/ui.mcp.az/site/`, Let's Encrypt). İstifadəçi qərarı: sahibi Dizayner Agent, deploy YALNIZ Agent.Devops; lokal versiya həmişə əsasdır\n- `scripts/sync-ui-ubs.sh` → `sync-ui-mcp.sh` (yeni HOST/DEST, `sudo` lazım deyil); `check-live.py` defolt `https://ui.mcp.az`; qalereya başlığı, README, CLAUDE.md, crew.md, qovluq xəritəsi yeniləndi\n- `ui.ubs.az` serverdə artıq 2026-10-11 21:46-da ümumi təmizlikdə silinmişdi (backup `/opt/backups/deleted-g6-20261011-2146/`); Devops yenidən silmədi, başqa saytlara toxunulmadı\n\n### Ölçülmüş nəticə (Devops sübutu)\n- `check-live.py --base https://ui.mcp.az`: 237 yol, mənfi nəzarət 404 OK, 117 şablon canlıda tamdır, exit 0. Qalereya skrinşotu (117 şablon) alındı. Flutter app (46 MB) serverə göndərildi, bir nüsxə lokalda qalır\n\n### ⚠️ Sınma riski / miqrasiya\n- Lokal maşında `C:\\Windows\\System32\\drivers\\etc\\hosts` 42-ci sətir `172.20.22.129 ui.mcp.az` (köhnə vo-proxy) brauzeri/curl-u köhnə ünvana aparır; real DNS düzgündür. Sətri admin PowerShell ilə silmək lazımdır\n- tar serverdə silinmiş faylı silmir; lokalda silinəni Devops əl ilə təmizləyir\n- Qalereya yenidən generasiya olunub, bu versiya hələ deploy olunmayıb (Devops-a müraciət lazımdır)"
      },
      {
        "version": "1.32.6",
        "date": "2026-10-12",
        "title": "target-size: toxunma hədəfləri 24x24 (XIAS target-size: 12 → 0)",
        "body_md": "### Kök səbəb\n- WCAG 2.5.8 minimum 24x24 px: house barının düymələri (AZ/EN/RU, Menyu, Görünüş) 20-23 px hündür idi; cədvəl seçim qutuları 13 px native ölçüdə idi; `ledger-widgets__link` tək sətir 20 px idi\n\n### Düzəldildi\n- `templates/house/house.css`: bar/panel düymələrinə `min-height/min-width: 1.5rem`\n- `sections/app/data-table/section.css`: `input[type=checkbox]` 1.5rem\n- `sections/app/ledger-widgets/section.css`: `.ledger-widgets__link` `inline-flex` + `min-height: 1.5rem`\n\n### Ölçülmüş nəticə (80 şablon)\n| Qapı | v1.32.5 | İndi |\n|---|---|---|\n| target-size | 12 | **0** |\n| overflow | 24 | 21 |\n| Baseline | 46 | 31 |\n\n- Overflow-da 4 qeyd (`agro-farm`, `document-esign`, `hr-payroll`, `restaurant-backoffice`) düymə ölçüsü dəyişdiyi üçün də yox oldu. 1 qeyd əlavə olundu: `ecommerce-backoffice`, 24 px seçim qutusu scroll 0-da fiksə olunmuş house barının altından keçir (baseline-dakı eyni sinif, qapının qərarı)\n- `keyboard` 0, `axe` 5+5 dəyişməyib; `validate-sections`, `validate-templates`, `house:check`, `test-saas-render` PASS\n\n### ⚠️ Sınma riski\n- Cədvəl seçim qutuları 13 → 24 px (vizual olaraq böyüyür); house düymələri bir az hündürləşir. `sections/*/preview.png` yenilənməyib"
      },
      {
        "version": "1.32.5",
        "date": "2026-10-12",
        "title": "axe: ARIA strukturu, kontrast və klaviatura ilə scroll (XIAS axe+axe-dark: 60 → 10)",
        "body_md": "### Kök səbəblər və düzəlişlər\n- **Token kontrastı (kök):** `text-muted` `editorial`/`ledger` açıq rejimdə tonlu fonlarda (`surface-3`, `selected`, `*-subtle`) 4.12-4.40:1 verirdi; `apple` skinində `primary` mətni açıq `selected`/`accent-subtle` fonunda 4.31-4.42, tünd `selected`-də 4.17. Dəyərlər: `editorial` muted L 0.542→0.517, `ledger` 0.546→0.526, `apple` primary açıq 0.545→0.53, tünd 0.702→0.732 (min 4.58:1, bütün səth pillələrində). `contrast_contract`-a 6 yeni cüt əlavə edildi: qüsur düzəlişdən əvvəl 5+3 FAIL verdi, sonra PASS (bu kateqoriya bir daha qayıda bilməz)\n- **`ledger-table` ARIA:** `aria-sort` düyməyə qoyulmuşdu (icazəsiz) → `columnheader`-ə; `row-actions` və `peek` `role=row` içində `cell` deyildi → `role=\"cell\"` (23 fayl)\n- **`list-rows`:** `<ul>` içində `role=button` `<li>` → `<div role=group>` + `<div role=button>`\n- **Klaviatura ilə scroll:** `kanban-board__scroll`, `chat-thread__list`, `onboarding-slides__track`, house kod `<pre>` fokuslanan oldu (`tabindex=0`, ad/rol)\n- **Opacity ilə kontrast itkisi:** `kanban` tamamlanmış kart (`opacity .72` → fon + üstüxətli başlıq), `chat` gedən mesaj vaxtı, `wizard` gələcək addım etiketi, `dashboard-cards` xəbərdarlıq kartında `delta--down`\n- **House skin çipləri:** `data-skin` `<label>`-dən `<i>`-yə köçürüldü (label-də tünd paneldə mətni açıq rejim tokenlərinə keçirirdi, 37 hadisə)\n\n### Ölçülmüş nəticə (80 şablon, yeni pozuntu 0)\n| Qapı | v1.32.4 | İndi |\n|---|---|---|\n| axe | 27 | **5** |\n| axe-dark | 33 | **5** |\n| Baseline | 96 | 46 |\n\n- Qalan 10 qeyd yalnız `design-systems` showcase səhifələrindədir (`asan-invest`, `backlog-kraft`, `onebase-hub`, `ref-kanban`, `sahil-pos`): ayrıca DS, öz tokenləri; bu işə daxil deyil\n- Regressiya: `keyboard` 0, `overflow` 24, `target-size` 12, dəyişməyib; `validate-tokens`, `generate-tokens --check`, `validate-sections`, `validate-templates`, `test-saas-render`, `house:check` PASS\n\n### ⚠️ Sınma riski / miqrasiya\n- `editorial`/`ledger`/`apple` rənglər bir pillə tündləşir/açılır (ΔL ≤ 0.045); `sections/*/preview.png` yenilənməyib\n- `list-rows` artıq `<ul>` deyil: ekran oxuyucuda \"siyahı, N element\" elanı yoxdur, düymə qrupu kimi oxunur\n- Yoxlanılmayan: ekran oxuyucu; `design-systems` showcase-ləri"
      },
      {
        "version": "1.32.4",
        "date": "2026-10-11",
        "title": "Overflow qapısı: qapalı menyuların gizli boksu (XIAS overflow: 32 → 24)",
        "body_md": "### Kök səbəb (əvvəlki təsnifat düzəldilir)\n- v1.32.2 qeydində «overflow 32: house panelində `select` üst-üstə düşməsi» yazılmışdı. **Bu yanlış idi**, 32 qeydin heç biri house panelinin `select`-i deyil. Ölçü (32 qeyd, hər biri 3 cür təsnif edildi):\n  - **13 şablon: qapalı `<details>` daxilindəki menyu.** Qapalı `<details>` məzmunu `content-visibility:hidden` ilə gizlənir, amma elementlər layout boksu saxlayır (`getBoundingClientRect > 0`). Qapı onları görünən idarə sayıb səhifə məzmununun üstündə «üst-üstə düşən» kimi qeyd edirdi (`app-shell` mobil panel, `app-shell-rail` mobil panel və alt-menyu qrupları)\n  - **~20 şablon: fiksə olunmuş house alt barı və yapışqan mobil tabbar** altından keçən məzmun. Qapı scroll 0-da, 900 px hündürlükdə həndəsi kəsişməni ölçür; fiksə olunmuş çubuq üçün bu standart davranışdır, qüsur deyil\n  - **qalan:** açıq `bottom-sheet` nümunəsi tabbar-ın üstündə (örtük, nəzərdə tutulub), `card-feed__excerpt` `line-clamp: 2` (qəsdən kəsilir, qapı Y oxunda ellipsis tanımır), `sahil-pos` showcase\n\n### Düzəldildi\n- `sections/app/app-shell/section.css`: `.app-shell__mobile-nav:not([open]) > :not(summary) { display: none }`\n- `sections/app/app-shell-rail/section.css`: eyni qayda `.app-shell-rail__mobile-nav` və `.app-shell-rail__group` üçün. Açıq halda davranış və görünüş dəyişmir\n\n### Ölçülmüş nəticə (80 şablon, yeni pozuntu 0)\n| Qapı | v1.32.3 | İndi |\n|---|---|---|\n| overflow | 32 | **24** (8 şablon təmizləndi: `accounting-ledger`, `accounting-setup`, `confirm-flow`, `record-detail`, `saas-suite`, `subscription-billing`, `warehouse-erp`, `workspace-suite`) |\n| Baseline | 104 | 96 |\n\n- Mənfi nəzarət: `--selftest` overflow qapısı qüsurlu səhifədə FAIL verdi. Funksional sınaq (Playwright): mobil panel qapalıda 0 görünən link, klikdən sonra 4; rail qrupu qapalıda 0 görünən alt-link, açılandan sonra 6. Regressiya: `keyboard` 0, `axe` 27, `target-size` 12, hamısı dəyişməyib\n\n### ⚠️ Sınma riski / miqrasiya\n- Qapalı menyu içindəki mətn brauzer «Səhifədə axtar» ilə açılmır (əvvəl `hidden=until-found` mexanizmi açırdı). Naviqasiya menyusu üçün qəbul edildi\n- Qalan 24 qeydin kökü dəyişməyib: fiksə olunmuş çubuqun altından keçən məzmun, açıq örtük, `line-clamp`. Bunlar kodla yox, qapının qərarı ilə həll olunur (baseline-da qalır)\n- Yoxlanılmayan: qapalı menyunun ekran oxuyucu ilə davranışı (əvvəl də gizli idi, dəyişiklik gözlənilmir)"
      },
      {
        "version": "1.32.3",
        "date": "2026-10-11",
        "title": "Klaviatura qapısı: tab siyahıları və modal nümunəsi (XIAS keyboard: 39 → 0)",
        "body_md": "### Kök səbəblər\n- **Ölü ox düymələri (29 pozuntu):** `detail-view`, `ledger-widgets`, `ledger-table`, `plan-cards` bloklarında `role=tablist/tab` markup-u var idi, amma davranış yox idi: ←/→/Home/End fokusu və seçimi dəyişmirdi\n- **Əlçatmaz idarələr (16 şablon):** statik modal nümunəsi `<dialog open>` kimi yazılmışdı. `showModal()` çağırılmadığı üçün fokus dialoqa köçmürdü, Bağla/Ləğv et/Sil düymələrinə Tab ilə çatmaq olmurdu\n\n### Düzəldildi\n- `templates/house/house.js`: bütün `[role=tablist]` üçün ümumi WAI-ARIA klaviatura modeli (←/→ və ↑/↓, Home, End, klik; roving `tabindex`). Aktiv hal həm `aria-selected`, həm də blokun `<sinif>--active` sinfi ilə sinxronlanır (CSS-ə toxunulmadı: `ledger-widgets`, `ledger-table`, `plan-cards` sinif işlədir, `detail-view` yox). Bir fayl 75 şablona çatır\n- `modal` bloku: `<dialog class=\"modal__dialog\" open>` → `<div class=\"modal__dialog\" role=\"group\">` (`sections/app/modal` html/tsx/css/meta, `scripts/saas_render/modal.py`, 18 şablon, 16 `.preview`). Sinif və vizual eyni; real modal üçün `<dialog>.showModal()` qeydi blokun şərhinə yazıldı\n\n### Ölçülmüş nəticə (80 şablon, `keyboard` qapısı, yeni pozuntu 0)\n| Qapı | v1.32.2 | İndi |\n|---|---|---|\n| keyboard | 39 | **0** |\n| Baseline | 143 | 104 |\n\n- Mənfi nəzarət: `--selftest` 6 qapının hamısı qüsurlu səhifədə FAIL verdi. Ayrıca funksional sınaq (Playwright): `house.js` bloklananda 4 tab bloku FAIL, işləyəndə 4/4 OK (fokus, `aria-selected`, `--active` sinfi üst-üstə düşür)\n\n### ⚠️ Sınma riski / miqrasiya\n- Modul nümunəsi artıq native `<dialog>` göstərmir: nümunəni real `<dialog>`-a çevirən layihə `showModal()` və `cancel` bloklamasını özü yazır (blokun şərhində göstərilib)\n- ↑/↓ də tab dəyişdirir (WAI-ARIA üfüqi tablist-də yalnız ←/→ tələb olunur; ↑/↓ qapı tərəfindən ox kimi sayılır)\n- Yoxlanılmayan: ekran oxuyucu ilə real test; panel dəyişməsi `aria-controls` olmayan bloklarda şablon məzmunundan asılıdır; `sections/*/preview.png` yenilənməyib (vizual eynidir, `modal` üçün ekran görüntüsü ilə təsdiq edildi)"
      },
      {
        "version": "1.32.2",
        "date": "2026-10-11",
        "title": "Kiçik mətn kontrastı bütün bloklara yayıldı (XIAS: 187 → 143)",
        "body_md": "### Kök səbəb\n- v1.32.1-də 4 blokda tapılan `--text-subtle` problemi (kiçik mətn 3.7-4.0:1, WCAG AA 4.5:1) başqa bloklarda da var idi: axe `color-contrast` hələ 62 hadisə verirdi\n\n### Dəyişdi\n- 15 blokda 28 qaydada `color: var(--text-subtle)` → `var(--text-muted)` (yalnız **mətn** daşıyan seçicilər): `calendar-board` (gutter-slot, day-empty), `chat-thread` (item-time, system, empty), `detail-view__meta-label`, `form-layout__hint`, `kanban-board` (column-count, card-comments, empty), `ledger-table__foot-hint`, `ledger-widgets` (period-sep, col-label, eq-op), `plan-cards__empty`, `timeline-feed` (time, item-title/upcoming text, empty), `contact-form` (channel-label, hint, consent), `footer__legal`, `hero-centered__note`, `stats__note`, `card-feed__date`, `list-rows__end`\n- `report-pins__slot--empty`: `--text-disabled` → `--text-muted`. Boş yuvanın \"Hesabatı sancaqla\" yazısı çağırışdır, disabled deyil; tünd rejimdə 2.7:1 verirdi\n- **Toxunulmadı (6 qayda):** ikon və nöqtə seçiciləri (`app-shell-rail .icon`, `data-table__empty-icon`, `ledger-table__fav/peek-icon`, `report-pins__fav`, `timeline-feed__dot`): qeyri-mətn kontrastı 3:1 tələb edir, `text-subtle` bunu ödəyir. Token dəyişməyib\n\n### Ölçülmüş nəticə (80 şablon, 6 qapı, yeni pozuntu 0)\n| Qapı | v1.32.0 | v1.32.1 | İndi |\n|---|---|---|---|\n| axe | 72 | 65 | **27** |\n| axe-dark | 42 | 39 | **33** |\n| overflow | 76 | 32 | 32 |\n| target-size | 19 | 12 | 12 |\n| keyboard | 39 | 39 | 39 |\n| Cəmi | 248 | 187 | **143** |\n\n### Qalan\n- axe: 27 + 33 (qalan kontrast: `house` paneli tünd rejimdə, `dashboard-cards__metric-delta--down`, `ledger-table__row` və s.; həmçinin `scrollable-region-focusable` 12, `aria-allowed-attr` 4, `aria-required-children` 3)\n- overflow 32 (house panelində `select` üst-üstə düşməsi), target-size 12, keyboard 39 (29 ölü ox, 16 əlçatmaz idarə)\n\n### ⚠️ Sınma riski / miqrasiya\n- Yoxdur: `sections:validate`, `templates:validate`, `house:check`, `test-saas-render`, `tokens:check` keçdi. Mətn bir pillə tündləşir (subtle → muted); `sections/*/preview.png` yenilənməyib\n- Yoxlanılmayan: dəyişikliyin hər blokda vizual təsdiqi (brauzer ekran görüntüsü bu icrada vaxt aşımına düşdü); ölçü yalnız axe qapısıdır"
      },
      {
        "version": "1.32.1",
        "date": "2026-10-11",
        "title": "House qatı və 4 paylaşılan blokun əlçatanlıq düzəlişi (XIAS tapıntıları: 248 → 187)",
        "body_md": "### Kök səbəblər və düzəlişlər\n- **House alt barı 320 px-də üst-üstə düşürdü** (`templates/house/house.css|js`): bar `nowrap` + sabit `2.5rem` hündürlük idi, AZ/EN/RU düymələri 31-64% üst-üstə düşürdü (68 şablonda). İndi sığmayanda 2-ci sətrə keçir; hündürlüyü `house.js` ölçüb `--house-bar-h`-a yazır, səhifə padding-i, mobil tab bar və görünüş paneli buna uyğunlaşır. Brauzerdə 320 px: düymələr sol 9/42/75 px, hündürlük 60 px, üfüqi scroll yoxdur (`scrollWidth == innerWidth`)\n- **11 px mətn `--text-subtle` ilə 3.7-4.0:1 verirdi** (WCAG AA 4.5:1 tələb edir): `dashboard-cards` (bar-label, activity-time), `app-shell__user-role`, `logo-wall__item` indi `--text-muted` işlədir. Token dəyişməyib; kök səbəb: `text-subtle` yalnız iri mətn və bəzək üçündür, kiçik mətndə yararsızdır\n- **Switch checkbox-ların adı yox idi** (axe `label`, critical): `settings-page` bloku (HTML, TSX), `scripts/saas_render/settings_page.py` və 13 şablon indi `aria-label` daşıyır (3 toggle x 14 fayl). SaaS şablonlarının yenidən generasiyası eyni nəticəni verir\n\n### Ölçülmüş nəticə (80 şablon, 6 qapı)\n| Qapı | Əvvəl | İndi |\n|---|---|---|\n| overflow | 76 | **32** |\n| axe | 72 | 65 |\n| axe-dark | 42 | 39 |\n| target-size | 19 | 12 |\n| keyboard | 39 | 39 (bu işin əhatəsində deyil) |\n| Cəmi pozuntu | 248 | **187** |\n\n### Qalan (növbəti iş)\n- Eyni kök səbəb başqa bloklarda: `detail-view__aside/meta-item`, `calendar-board__gutter-slot`, `stats__note`, `contact-form__channel`, `kanban-board`, `ledger-widgets__col`, `report-pins__slot--empty` hələ `--text-subtle` ilə kiçik mətn daşıyır (axe color-contrast 62)\n- House paneli: `select` elementləri 320 px-də üst-üstə düşür (10), tünd rejimdə panel etiketləri kontrastı (18)\n- `scrollable-region-focusable` (12), `aria-allowed-attr` (4), `aria-required-children` (3), klaviatura (39)\n\n### ⚠️ Sınma riski / miqrasiya\n- Yoxdur: `house:check`, `sections:validate`, `templates:validate`, `test-saas-render` keçdi. `sections/*/preview.png` şəkilləri yenilənməyib (rəng 1 pillə tündləşib); növbəti `sections:previews` icrasında yenilənəcək\n- Tools/xias-də `axe-core@4.10.2` yerli quraşdırıldı (`--no-save`): əvvəl qapı axe-i CDN-dən yükləyirdi və şəbəkə olmayanda səssiz SKIP + exit 0 verə bilərdi\n\n### Yoxlama sübutu\n- Tam icra: 480 icra, yeni pozuntu 0, baseline 248 → 187 (`scripts/xias-baseline.json` yeniləndi)\n- Ekran şəkli: clinic şablonu 320x640, house barı iki sətirdə, AZ/EN/RU üst-üstə düşmür"
      },
      {
        "version": "1.32.0",
        "date": "2026-10-11",
        "title": "XIAS obyektiv qapıları şablonlara qoşuldu (axe, klaviatura, hədəf ölçüsü, daşma, reduced-motion)",
        "body_md": "### Niyə\n- `validate-*` token kontrastını, `audit-templates.py` isə özəl R1-R12 qaydalarını yoxlayırdı. Heç biri **real brauzerdə axe (WCAG 2.2), klaviatura əlçatanlığı, toxunma hədəfi ölçüsü və dark rejim kontrastını** ölçmürdü: 117 şablonun hamısı bu ölçülərdə yoxlanmamışdı.\n\n### Əlavə edildi\n- `scripts/xias-gates.py`: plugin87/ux-ui-agent-skills (MIT) qapılarını 80 şablon x 6 yoxlama (axe, axe-dark, keyboard, target-size, overflow, reduced-motion) üzrə işlədir; `npm run templates:xias`, `templates:xias:selftest`. 37 `external` (canlı Flutter canvas) şablon DOM qapılarına tətbiq olunmur, atlanır və hesabatda sayılır\n- Mənfi nəzarət: skript hər dəfə əvvəlcə qəsdən qüsurlu səhifədə altı qapının hamısının FAIL verdiyini yoxlayır; vermirsə exit 2 (INCONCLUSIVE), şablonlara baxılmır\n- Exit kodları: 0 yeni pozuntu yoxdur · 1 baseline-da olmayan pozuntu · 2 baxa bilmədi (brauzer yox, pin uyğunsuz, mənfi nəzarət keçmədi)\n- `scripts/xias-baseline.json`: 248 mövcud pozuntu qəbul edilib (aşağıda), yalnız YENİ pozuntu exit 1 verir; düzəldilən pozuntu `--update-baseline` ilə siyahıdan çıxarılır\n- `scripts/xias-pin.txt`: XIAS commit-i `62092bd` pinlənib; `Tools/xias` başqa commit-dədirsə qapılar işləmir\n- Quraşdırma: `Tools/xias` (shallow klon, `npm install --ignore-scripts`, plugin kimi qoşulmayıb)\n\n### Tapıntılar (80 şablon, 6 qapı: 248 pozuntu, yenidən icrada eyni nəticə)\n| Qapı | Pozuntu | Əsas kök səbəb |\n|---|---|---|\n| overflow | 76/80 | **house qatı**: AZ/EN/RU dil düymələri 320 px-də üst-üstə düşür (305 hadisə, 68+51+22 düymə); bir CSS düzəlişi onlarla şablonu düzəldir |\n| axe | 72/80 | `dashboard-cards__bar-col` (59), `settings-page__toggle-row` (37), `app-shell__user-role` (28), `logo-wall__item` (21): paylaşılan bloklarda kontrast |\n| axe-dark | 42/80 | `settings-page__toggle-row`, `report-pins__slot--empty`, `dashboard-cards__bar-col` |\n| keyboard | 39/80 | 29 ölü ox düyməsi, 16 əlçatmaz idarə elementi |\n| target-size | 19/80 | 38 düymə + 3 input 24 px-dən kiçik |\n| reduced-motion | 0 | təmiz |\n\n### ⚠️ Sınma riski / miqrasiya\n- Yoxdur: yeni skript, mövcud qapılar dəyişməyib. `gate:f6` XIAS-i **hələ daxil etmir** (248 baseline pozuntu düzəlməyənə qədər). İkinci addım: house qatı və 4 paylaşılan blokun düzəlişi, sonra baseline-ın azaldılması.\n\n### Yoxlama sübutu\n- `python scripts/xias-gates.py --selftest`: 6/6 qapı qüsurlu səhifədə FAIL\n- Tam icra (80 şablon x 6 = 480): 9 dəq, exit 2 → external atlandıqdan sonra exit 0 (baseline ilə), 248 pozuntu hər iki icrada eyni\n- Baseline məntiqi mənfi nəzarətlə: baseline olmadan `clinic`+`overflow` exit 1, baseline ilə exit 0\n- Yoxlanılmayan: pozuntuların hər biri vizual təsdiqlənməyib (axe kontrast hesabı bəzən gradient/şəkil üzərində yanlış-müsbət verir); Flutter canvas şablonları DOM qapıları ilə ölçülə bilmir"
      },
      {
        "version": "1.31.0",
        "date": "2026-09-09",
        "title": "Keş-buster: yenilənən şəkil/səhifə brauzerdə köhnə qalırdı",
        "body_md": "### İstifadəçi qeydi\n- \"kvadrat olan ikonlar düzəldiməyib!!!!!!!\" — v1.29.1 və v1.30.1 düzəlişlərindən sonra da kataloqun detal görünüşündə OneBase/Sahil POS nav ikonları boş kvadrat görünürdü (istifadəçi skrinşotu, `gallery.html#tpl/onebase-hub`)\n\n### Kök səbəb (ölçülüb, fərziyyə deyil)\n- Server düzgün faylı verir: canlı PNG md5 = lokal md5 (`5c5be1aea3a9`, 3 nümunədə). Amma `ui.ubs.az` statik fayllara `Cache-Control` başlığı göndərmir → brauzer `Last-Modified`-ə görə **evristik keş** edir (RFC 7234: yaşın ~10%-i; 17 günlük fayl → ~1.7 gün). Eyni URL-də dəyişən fayl istifadəçiyə günlərlə çatmır. Sübut: eyni brauzerdə `showcase.html` (fərqli URL) təmiz, `gallery.html`-dəki `<img src=shots/…png>` (köhnə keş) kvadratlı; eyni PNG `?v=` ilə açılanda təmiz.\n- Bu, yalnız dizayn sistemlərinə aid deyil — 117 şablonun hamısının preview.png/index.html-i eyni riskdədir.\n\n### Əlavə edildi\n- `build-template-registry.py`: hər şablon üçün `preview_v` / `html_v` (faylın SHA-1 məzmun hash-i, 10 simvol). Fayl dəyişən kimi hash dəyişir.\n- `gallery-template.html`: `bust(url, v)` köməkçisi — `?v=<hash>` qoşur, mövcud `?query` (`&v=`) və `#hash` (Flutter marşrutları) ilə düzgün işləyir; kart thumbnail-ı, detal preview-u, \"Aç\"/\"Canlı aç\" keçidləri ondan keçir. Mənfi nəzarətli test: 4 hal PASS.\n\n### Sübut\n- Statik qapılar: tokens / sections / registry / validate-templates (117) / test-saas-render / house:check — hamısı PASS\n- Lokal brauzer `gallery.html#tpl/onebase-hub`: `img.src = shots/onebase-hub-light.png?v=8e74b532ac`, naturalWidth 1440, ikonlar görünür\n- Playwright tam audit (`audit-templates.py`, 117 şablon, mənfi nəzarət keçdi): 115 OK, 2 tapıntı — DS-01/DS-02 `R3 daşma 375` (v1.30.0-da sənədləşdirilmiş qərar: sabit ölçülü desktop artbord). Regressiya yoxdur."
      },
      {
        "version": "1.30.1",
        "date": "2026-09-09",
        "title": "Dizayn sistemi kataloq thumbnail-ları köhnəlmiş idi, yeniləndi",
        "body_md": "### İstifadəçi qeydi\n- \"iconlar düzəlməyib!!!!!\" (gallery.html kataloq şəbəkəsindəki DS-01/02/03 kart thumbnail-larında boş ikon oxları ilə göstərilən skrinşot)\n\n### Kök səbəb\n- v1.29.1-də `onebase-hub/showcase.html`-dəki qüsurlu `.ico::before` CSS-i silinmişdi və canlı səhifə təmiz idi — amma `templates/design-systems/shots/*.png` (5 sistem × açıq/tünd = 10 fayl) hələ 23 avqust tarixli idi, yəni bütün bu sessiyanın ikon düzəlişlərindən ƏVVƏLKİ görünüşü daşıyırdı. Kataloq kartları canlı DOM-u deyil, bu statik PNG-ləri göstərir — istifadəçinin gördüyü \"düzəlməyib\" mənzərəsi köhnə şəkil idi, canlı səhifə deyil.\n\n### Düzəldildi\n- `templates/design-systems/shots/{asan-invest,onebase-hub,sahil-pos,backlog-kraft,ref-kanban}-{light,dark}.png` (10 fayl) — hamısı yerli server (`127.0.0.1:8802`) üzərindən canlı, düzəldilmiş `showcase.html` səhifələrindən `scripts/screenshot.py` ilə orijinal ölçülərdə (1440×2400 / 1440×2200) yenidən çəkildi\n- Yoxlama: hər 3 sistemin (ASAN Invest, OneBase, Sahil POS) yeni skrinşotlarının yuxarı-sol 900×562 kəsiyi (kataloq kartının çıxdığı bölgə) vizual təsdiqləndi — ikonlar (ulduz, mağaza, s.) düzgün göstərilir, boş kvadrat yoxdur\n\n### Sübut\n- `ls -la templates/design-systems/shots/*.png` — əvvəl: hamısı \"Aug 23\"; sonra: hamısı \"Sep 9\"\n- Kəsik yoxlama şəkilləri: `out/audit/crop-{asan-invest,onebase-hub,sahil-pos}-light.png`"
      },
      {
        "version": "1.30.0",
        "date": "2026-09-09",
        "title": "Tam platforma auditi: 117/117 şablon, 40+ qüsur düzəldildi",
        "body_md": "### İstifadəçi qeydi\n- \"bütün platformanı yenidən audit et, digər qüsurlar varsa düzəlt\"\n\n### Audit alətinin özündə 2 yanlış-müsbət düzəldildi\n- `audit-templates.py` R4/R10 (h1, inline style) 37 Flutter sahə şablonunda (`FLD-*`)\n  yanlış-müsbət verirdi — bunlar canvas-a çəkilən TƏK Flutter tətbiqinin (CanvasKit)\n  eyni marşrutlarıdır, HTML semantikası (h1) yalnız a11y-semantics AÇIQ olanda mövcuddur\n  (defolt bağlıdır) — `canvas_app` bayrağı ilə bu iki qayda `live_url` qeydlərində\n  keçilir, R1-R3 (konsol, resurs, daşma) isə tətbiq olunmağa davam edir.\n- R10 (inline style) əvvəl HƏR inline style-ı tuturdu (layout xassələri daxil) —\n  layihənin öz qaydası (`validate-templates.py` `COLOR_PATTERNS`) yalnız LİTERAL\n  rəngi (hex/rgb/hsl/oklch) qadağan edir, `var(--rol)` token istinadını YOX. R10\n  bunu güzgüləyəcək şəkildə dəqiqləşdirildi — `oklch(var(--x))` (token istinadı)\n  artıq tapıntı sayılmır, yalnız `oklch(0.5 0.1 200)` kimi ƏSL literal tutulur.\n\n### Düzəldildi (5 dizayn sistemi, 42 → 2 qalıq tapıntı)\n- Meta description 5 sistemin hamısına əlavə edildi (`design-systems.json`-dakı `desc`).\n- `asan-invest`: 3 h1 → 1 (CSS seçiciləri `.page-head h1,.page-head h2` / `.hero h1,.hero h2`\n  uyğunlaşdırıldı, vizual dəyişiklik YOXDUR - screenshot ilə təsdiqləndi), 3 etiketsiz\n  sahəyə `id`/`for`, təkrarlanan `display:flex;gap:8px` → `.sla-row` class, cədvəl\n  `overflow:hidden` → `overflow-x:auto` + `min-width:0` (məzmun görünməz kəsilmək\n  əvəzinə üfüqi sürüşür).\n- `onebase-hub`: görünməz `<h1>` əlavə edildi (`.sc-sr-only`, `_shared.css`-də ortaq\n  utility), 3 etiketsiz sahəyə `aria-labelledby`.\n- `sahil-pos`: 2 h1 → 1 (eyni CSS-uyğunlaşdırma üsulu), 4 etiketsiz sahəyə\n  `aria-labelledby`/`aria-describedby`.\n- `ref-kanban`: reply sahəsinə `aria-label` (chat-thread bloku ilə eyni nümunə).\n- **Qalan 2 tapıntı (asan-invest, onebase-hub, R3 daşma 375)** qəsdən DÜZƏLDİLMƏDİ:\n  hər ikisi sabit ölçülü desktop artbord-dur (`.shell{height:720-760px}`, fikslənmiş\n  sütun eni) - `templates/desktop` dəstinin \"yalnız 1440px+ sınanır\" presedenti ilə\n  eyni məntiq, `template.json` `notes`-da açıq sənədləşdirilib.\n\n### Sübut\n- `python scripts/audit-templates.py`: mənfi nəzarət 8/8, **117/117 şablondan 115-i\n  0 tapıntı**, 2-si (sənədləşmiş, qəsdən) yalnız R3.\n- `validate-templates.py`: 117/117 PASS.\n- Vizual reqressiya yoxlanıldı: `asan-invest`/`sahil-pos` 1440px screenshot h1→h2\n  dəyişikliyindən ƏVVƏL/SONRA piksel-səviyyəsində eynidir (font-size sınmayıb)."
      },
      {
        "version": "1.29.1",
        "date": "2026-09-09",
        "title": "OneBase-un nav ikonlarında qalıq kvadrat CSS-i silindi",
        "body_md": "### İstifadəçi qeydi\n- Ekran şəklində \"İş növbəsi\" siyahısında (Müraciətlər, SLA gecikən, Eskalasiya, Agentliklər\n  və s.) boş kvadrat çərçivələr göstərildi, \"icon düzəlt hamsında!!!!\" tələbi ilə.\n\n### Kök səbəb\n- `templates/design-systems/onebase-hub/showcase.html`-də `.ico::before{content:\"\";width:12px;\n  height:12px;border:1.5px solid currentColor;border-radius:3px}` qaydası əvvəlki (Phosphor\n  SVG-dən ƏVVƏLKI) boş kvadrat placeholder sisteminin qalığı idi — real SVG ikonlar\n  əlavə ediləndə (əvvəlki sessiya) bu `::before` qaydası SİLİNMƏMİŞDİ, `.ico`-nun\n  `display:inline-grid;place-items:center` xassəsi ilə SVG-nin üstündə/yanında qalıq\n  kvadrat çərçivə göstərməyə davam edirdi. Digər 4 dizayn sistemində bu qalıq yox idi\n  (asan-invest, sahil-pos, backlog-kraft, ref-kanban — canlı server üzərində brauzerdə\n  təzə render ilə TƏSDİQLƏNDİ, təmiz idi).\n\n### Düzəldildi\n- `.ico::before` qaydası silindi (yalnız `onebase-hub/showcase.html`-də mövcud idi).\n\n### Sübut\n- Canlı serverdə (cache-siz, Playwright ilə) brauzer render: düzəlişdən əvvəl \"Soraqçalar\",\n  \"Kontragentlər\", \"Nomenklatura\" və s. boş kvadrat idi; düzəlişdən sonra hər biri öz\n  Phosphor ikonu ilə göstərilir (kitab, insan, paket, anbar, sənəd, qaimə, kassa).\n- Digər 4 sistem yenidən yoxlanıldı, təmiz — dəyişiklik lazım olmadı."
      },
      {
        "version": "1.29.0",
        "date": "2026-09-09",
        "title": "Dizayn sistemləri əsas kataloqa inteqrasiya olundu (DS-01..05)",
        "body_md": "### İstifadəçi qeydi\n- \"dizayn sistemləri də şablondur, SaaS layihəsi kimi niyə ayrıca saxlayırsan - yerini\n  dəyiş, bizim standartları tətbiq et, kvadrat ikonları dəyiş, mövzuyu uyğun et\"\n- Kvadrat ikon auditı: 5 sistemin hamısı ekran-ekran yenidən yoxlanıldı (ASAN Invest,\n  OneBase, Sahil POS tam ekran, backlog-kraft, ref-kanban) — qırıq/kvadrat ikon\n  TAPILMADI (əvvəlki sessiyada `apply-nav-icons.py` ilə düzəlmişdi); backlog-kraft-dakı\n  kvadrat forma real checkbox elementidir, ikon qüsuru deyil.\n\n### Əlavə edildi\n- **Registry-yə `page` sahəsi** (`build-template-registry.py`, `validate-templates.py`):\n  `live_url`-dən fərqli olaraq LOKAL fayla işarə edir, sadəcə `index.html` adlanmır\n  (dizayn sistemlərinin `showcase.html`-i). Struktur/sinif drift yoxlanılmır (kitabxana\n  blokundan qurulmayıb), yalnız faylın mövcudluğu.\n- `templates/design-systems/<id>/template.json` (5 ədəd, DS-01..05) — hər dizayn sistemi\n  **əsas kataloqda** (`set: \"design-systems\"`), ayrıca \"Dizayn sistemləri\" tab-ı YOXDUR,\n  digər dəstlər kimi filtrlənir/axtarılır/detal səhifəsi var.\n- `scripts/make-design-system-templates.py` — `design-systems.json`-dan 5 template.json yazır.\n- **Ev standartı (5 sistemin PAYLAŞILAN `_shared.css`/`_shared.js`-i, tək yerdən)**:\n  © OptimaGroup + kitabxana versiyası → CHANGELOG modalı (yalnız düymə bağlayır, Esc/\n  backdrop bağlamır). Sistemlərin öz AZ/RU/EN dil seçicisi və öz açıq/tünd keçidi\n  toxunulmadı (fərqli `--brand`/`--ink` rəng sistemi platformanın palitra panelinə\n  uyğun gəlmir - `notes`-da izah edilib).\n- `sections_lib.TEMPLATE_SETS`-ə `\"design-systems\"` əlavə edildi.\n- Kataloq sayı: 112 → **117**.\n\n### Silindi\n- Ayrıca \"Dizayn sistemləri\" tab-ı (`gallery-template.html`: `#ds-grid`, `tabDs`/`dsLede`\n  i18n açarları, `DATA.design_systems`). `build-master-gallery.py` artıq\n  `templates/design-systems.json`-u oxumur (yalnız `make-design-system-templates.py`\n  generasiya addımında istifadə olunur).\n\n### Sübut\n- `validate-templates.py`: 117/117 PASS.\n- Brauzerdə ölçüldü: \"Dizayn sistemi\" filtri 5 kart göstərir, detal səhifəsi\n  (`#tpl/asan-invest`) düzgün render olunur (git tarixçəsi: yaradılıb 2026-08-23), 5\n  sistemin hamısında `© 2026 OptimaGroup` + versiya düyməsi işləyir, changelog modalı\n  Esc-ə bağlanmır, yalnız düymə bağlayır."
      },
      {
        "version": "1.28.0",
        "date": "2026-09-09",
        "title": "37 Flutter sahə şablonu ayrı kataloq kartı oldu (FLD-01..37)",
        "body_md": "### İstifadəçi qeydi\n- \"niyə 37 sahə şablonu ui kit işinə daxil etmisən, niyə ayrı qoymursan\" — MOB-07\n  `flutter-ui-kit` 37 ekranı (büdcə, EV doldurma, sığorta və s.) daxili bir grid kimi\n  daşıyırdı, SaaS-ın 32 şablonu kimi kataloqda ayrı kart deyildi.\n\n### Əlavə edildi\n- **Registry-yə `live_url`/`live_preview` mexanizmi** (`build-template-registry.py`):\n  bir template.json lokal `index.html` əvəzinə mövcud xarici URL-ə/ekran şəklinə işarə\n  edə bilər (`external: true`). `validate-templates.py` bu tip qeydlərdə struktur/sinif\n  drift yoxlamasını keçir (yoxlanacaq lokal HTML yoxdur), yalnız sahələrin\n  düzgünlüyünü (`live_url` prefiksi, `live_preview` mövcudluğu) yoxlayır.\n- **37 yeni kataloq kartı** (`templates/mobile/flutter-<id>/template.json`, kod\n  `FLD-01`..`FLD-37`) — hər biri MOB-07-nin kompilyasiya olunmuş Flutter tətbiqinin\n  (`app/main.dart.js`) mövcud marşrutuna (`#/templates/<id>`) və mövcud ekran şəklinə\n  (`shots/templates/tpl-<id>.png`) keçid verir. **Yeni Flutter build tələb olunmadı** —\n  eyni ~42 MB tətbiq paylaşılır, yalnız kataloq girişi əlavə olundu.\n- `scripts/extract-flutter-templates.py` — `flutter-ui-kit/index.html`-in daxili\n  `#templates-preview` grid-ini parse edib strukturlu siyahı çıxarır.\n- `scripts/make-flutter-field-templates.py` — həmin siyahıdan 37 `template.json` yazır.\n- Platforma detal səhifəsi (`gallery-template.html`): `external: true` qeydlərdə\n  \"Necə istifadə\"/\"Bloklar\" bölmələri gizlədilir (yoxlanacaq HTML/blok yoxdur), əvəzinə\n  MOB-07-yə keçidli qeyd göstərilir (AZ/EN/RU).\n- Kataloq sayı: 75 → **112** (mobil dəst: 7 → 44).\n\n### Sübut\n- `validate-templates.py`: 112/112 PASS. `apply-house-layer.py --check`: 75/75 (dəyişmədi,\n  external kartlar house qatına aid deyil — lokal HTML yoxdur).\n- Brauzerdə ölçüldü: mobil filtr 44 kart göstərir, hamısının ekran şəkli düzgün yüklənir,\n  detal səhifəsi (`#tpl/flutter-budget`) sınmadan render olunur, \"Canlı səhifəni aç\" real\n  Flutter marşrutuna aparır."
      },
      {
        "version": "1.27.0",
        "date": "2026-09-09",
        "title": "Kod revyu: 75 şablonun (32 yeni SaaS daxil) tam auditi, 0 tapıntı",
        "body_md": "### Düzəldildi\n- **32 SaaS şablonunda h1 yox idi** (a11y R4) — `build-saas-page.py` indi qabığın\n  `<main>`-inə görünməz `.tpl-sr-only` h1 yazır (`spec[\"vertical\"]` mətni, vizual\n  dəyişmir). Mərkəzi düzəliş — render mühərrikindədir, hər şablon əl ilə düzəlmədi,\n  ona görə növbəti `--all` re-render-də də saxlanılacaq.\n- `chat-thread` blokunun cavab `<textarea>`-si etiketsiz idi (R7, 4 SaaS şablonunda:\n  `helpdesk`, `lms-education`, `telemedicine`, `recruiting-ats`) — `aria-label`\n  əlavə edildi (`scripts/saas_render/chat_thread.py`).\n- `calendar-board__corner` (7 SaaS şablonu) — həmişə sabit `grid-column:1;grid-row:1`\n  DƏYƏRİ inline style kimi yazılırdı, halbuki heç vaxt dəyişmir — `sections/app/calendar-board/section.css`-ə\n  köçürüldü (render mühərriki, statik `index.html`/`index.tsx` nüsxələri də düzəldildi).\n- `scripts/audit-templates.py` R10 qaydası dəqiqləşdirildi: `calendar-board__*`\n  hüceyrələrinin data-bağlı `grid-column`/`grid-row` (gün/slot indeksindən gələn,\n  hər nümunədə fərqli) və `__grid` konteynerinin data-bağlı `grid-template-columns`-u\n  (resurs sayından gələn) artıq inline-style tapıntısı kimi sayılmır — bar-chart\n  istisnası ilə eyni prinsip (dəyər data-dandır, dizayn qüsuru deyil).\n\n### Sübut\n- `python scripts/audit-templates.py`: mənfi nəzarət 8/8, **75/75 şablon 0 tapıntı**\n  (əvvəl: 32 SaaS şablonda 48 tapıntı — h1, textarea etiketi, inline style).\n- `validate-templates.py` (75/75), `validate-sections.py` (41/41), `apply-house-layer.py --check` (75/75) — hamısı PASS.\n- `build-saas-page.py --all` yenidən icra edildi, 32 şablon yenidən render olundu."
      },
      {
        "version": "1.26.0",
        "date": "2026-09-09",
        "title": "`saas` dəsti tamamlandı: 32 sahə, 5 yeni blok, platforma yekunu",
        "body_md": "### Əlavə edildi\n- **32 SaaS şablonu** (`SAAS-01`...`SAAS-32`) tam yığılıb, canlıdır: CRM/satış, dəstək,\n  bulud mühasibatlığı, anbar, HR/əmək haqqı, layihə idarəetməsi, təhsil, imtahan, klinika,\n  telemedisina, restoran, otel, daşınmaz əmlak, logistika, səyyar xidmət, e-ticarət,\n  marketplace, abunəlik/billing, kredit, sığorta, hüquq, marketinq avtomatlaşdırma, tədbir\n  bilet satışı, fitnes, gözəllik salonu, avtoservis, tikinti, aqro, dövlət e-xidməti,\n  IoT monitorinq, işə qəbul, sənəd dövriyyəsi/e-imza. Hər biri `content.json` (sahə\n  məzmunu) + `template.json` (kompozisiya) + generasiya olunan `index.html`.\n- **5 yeni `app` bloku** (kitabxanaya düşdü, ≥3 SaaS şablonunda istifadə olunur):\n  `calendar-board` (schedule-grid), `kanban-board` (board-columns), `chat-thread`\n  (thread-split), `plan-cards` (plan-tiles), `timeline-feed` (vertical-timeline).\n  Kök blok sayı 41-ə (23 `app`) çatdı.\n- `templates/README.md` → «SaaS dəsti» bölməsi tamamlandı: 32 sətirlik sahə cədvəli\n  (kod/id/sahə/qabıq/skin/bloklar), «yeni SaaS şablonu necə əlavə edilir» resepti\n  (5 addım: content.json → template.json → build-saas-page.py → validate-templates.py →\n  registry/history/gallery yenidən qurmaq), `content.json` sxeminə istinad.\n- Kataloq yenidən quruldu: `templates/registry.json` (75 şablon: 17 landing, 13 app,\n  7 mobil, 6 desktop, **32 saas**), `templates/history.json` (75 tarixli, 33 changelog\n  qeydi), `templates/gallery.html` (75 şablon, 40 blok) — hamısı `--check` PASS.\n\n### Yoxlama\n- `validate-templates.py` — 75/75 PASS (32/32 saas daxil).\n- `apply-house-layer.py --check` — 75/75 (32/32 saas) ev qatı var: versiya/CHANGELOG\n  modalı, © OptimaGroup, AZ/EN/RU, palitra paneli.\n- Fərqlilik auditi: 32 SaaS şablonunun (skin, tema, blok dəsti) üçlüyü **32/32 unikaldır**\n  — heç bir cüt eyni kompozisiya deyil (skript ilə ölçüldü, dubl 0).\n- `sync-ui-ubs.sh` + `check-live.py` — ui.ubs.az (TEST) sinxron, bütün yol/preview 200.\n\n### Commit izi\n- 2026-09-09, `f3b28c1` (T09, paralel icraçı): `marketing-automation`, `event-ticketing`,\n  `fitness-club`, `beauty-booking` şablonları ilə **birgə** `assets/icons.json`-a `car`,\n  `bird`, `bag` ikonları əlavə edilib. Bu, T10-un öz commit-inə düşməyib — T09-un\n  paylaşılan-index yazması zamanı bir yerdə gedib (`shared-git-index.md` riski). Fakt\n  yoxlanıldı: hər üç ikon hazırda `assets/icons.json`-dadır, funksional itki yoxdur —\n  yalnız hansı task-ın commit-inə aid olduğu qeyri-dəqiqdir.\n\n### Qeyd-şərtlər\n- KPI/say/tarix kimi nümunə rəqəmlər hər şablonun `template.json.notes`-unda qeyd\n  olunub — real məlumat deyil, demo məzmunudur."
      },
      {
        "version": "1.25.0",
        "date": "2026-09-09",
        "title": "`saas` dəsti: məlumat-əsaslı yığım mühərriki (pilot: ecommerce-backoffice)",
        "body_md": "### Əlavə edildi\n- **Yeni template dəsti `saas`** (`sections_lib.TEMPLATE_SETS` → 5-ci üzv): sahə üzrə SaaS\n  idarə paneli şablonları üçün, məzmun `index.html`-də əl ilə deyil, `content.json`-da saxlanılır.\n- `scripts/saas_render/` paketi: kitabxananın 18 mövcud `app` blokunun hər biri üçün\n  `render(data, ctx) -> str` + `SAMPLE` + `BLOCK_ID` modulu (`pkgutil` ilə avtomatik kəşf,\n  `__init__.py` yeni blok əlavə olunanda redaktə edilmir). Bütün 18 blok (dashboard-cards,\n  filters-bar, data-table, detail-view, form-layout, empty-state, modal, toast, app-shell,\n  app-shell-rail, auth, auth-split, choice-grid, ledger-table, ledger-widgets, report-pins,\n  settings-page, wizard) tam data-əsaslı (loop-lu render) - 8 blok (choice-grid, ledger-table,\n  ledger-widgets, report-pins, settings-page, wizard, auth, auth-split) T01 handoff-unda\n  canonical `index.html`-dən statik oxunurdu (`data` işlətmirdi); T01 təmirində (dozapros 1/2)\n  hamısı sahə-üzrə massiv/loop render-ə keçirildi, `SAMPLE` hər blokun bütün status/variant\n  modifikatorlarını (məs. `ledger-table__pill--sent/paid/overdue/partial/draft`) əhatə edir.\n- `scripts/build-saas-page.py --only <id>|--all|--check`: `content.json` + `template.json` →\n  `index.html` (tokens+blok CSS+layouts.css head, `app-shell` qabığı nav-ı `content.nav`-dan\n  alır, menyu ikonları `assets/icons.json`-dan - yoxdursa `SaasContentError`), tmp → rename\n  (yalnız tam render sonunda fayl yazılır), sxem xətası konkret açar adı ilə (`SaasContentError`).\n- `scripts/test-saas-render.py` (render qapısı, mənfi nəzarətli `--selftest`): hər 18 modulun\n  `SAMPLE` çıxışındakı siniflər blokun öz `section.css`-ində təyin olunub - PASS.\n- Pilot `templates/saas/ecommerce-backoffice/` (SAAS-16): e-Ticarət idarə paneli, `app-shell`\n  qabığı, `neutral-pro` light, 8 blok, `validate-templates --only ecommerce-backoffice` PASS.\n- Qalereya: `SET_LABEL.saas` (AZ/EN/RU \"SaaS\"), detal səhifəsində `saas` dəsti üçün əlavə addım\n  (\"content.json-u dəyiş, build-saas-page.py işlət\"); `build-master-gallery.py`-dəki dəst\n  siyahısı hardcode tuple-dan `TEMPLATE_SETS`-ə keçirildi (yeni dəst əlavə olunanda səssiz\n  boşluq qalmasın deyə).\n- `templates/README.md` → \"SaaS dəsti\" bölməsi stub-u (tam resept T12-də tamamlanır).\n\n### Qeyd-şərtlər\n- KPI/sifariş rəqəmləri nümunədir (`template.json.notes`).\n- `templates/registry.json` / `templates/history.json` / `templates/gallery.html` bu commit-ə\n  DAXİL EDİLMƏYİB - paralel sessiyanın hələ commit edilməmiş `flutter-ui-kit` (MOB-07 Batch 3)\n  dəyişiklikləri ilə qarışacaqdı (`rules/shared-git-index.md`); T12 kataloqu yekun yığımdan\n  sonra bir dəfə yenidən qurur."
      },
      {
        "version": "1.24.0",
        "date": "2026-09-09",
        "title": "flutter-ui-kit (MOB-07): Batch 3 — 5 dizayn-birinci şablon",
        "body_md": "### Əlavə edildi\n- MOB-07 qalereya kartları: **İş axtarışı (Kompas)**, **Sığorta (Qalxan)**,\n  **Ev heyvanı baxımı (Pati)**, **Kitab oxuma (Rəf)**, **Dayanacaq (Yer)** —\n  `app/index.html?preset=app#/templates/<id>`; ekran şəkilləri\n  `shots/templates/tpl-{job-search,insurance,pet-care,library,parking}.png`.\n- Şablon sayı 32 → 37 (`index.html`, `template.json`, `registry.json`).\n\n### Dəyişdi\n- `app/` canlı build flutter_ui_kit v0.8.0+10-dan yeniləndi.\n\n### Commit izi\n- Bu bölmə (CHANGELOG.md + `package.json` versiya sətri) paylaşılan git index\n  səbəbindən (`rules/shared-git-index.md`) ayrıca commit-də deyil, `7fca69d`\n  (v1.25.0, eyni anda işləyən başqa sessiya) daxilində gəldi — o sessiya\n  `CHANGELOG.md`/`package.json`-u öz commit-inə daxil edərkən bu bölmənin\n  artıq işləyici ağacda olan versiyasını götürdü. Faktiki fayl dəyişiklikləri\n  (`registry.json`, `gallery.html`, `history.json`, `index.html`, `template.json`,\n  5 yeni `tpl-*.png`) öz ayrıca commit-imdə (bu qeyddən sonrakı commit)."
      },
      {
        "version": "1.23.0",
        "date": "2026-09-09",
        "title": "Kod revyu: mobil telefon çərçivəsi + 8 tapıntı düzəldildi",
        "body_md": "### Əlavə edildi\n- `scripts/audit-templates.py` — Playwright ilə 43 şablonun brauzer auditi (`validate-templates.py`\n  STATİK yoxlayır, bu skript RENDER OLUNMUŞ səhifədə yoxlayır): konsol xətası, 404 resurs, 1440/375\n  daşma, h1 sayı, alt-sız şəkil, adsız düymə/keçid, etiketsiz forma sahəsi, dublikat id,\n  `target=_blank` `noopener`-siz, inline style (data-bağlı bar/seqment istisna), meta/lang, tünd\n  rejim xətası. Mənfi nəzarətli (qəsdən qüsurlu səhifə əvvəlcə yoxlanır). `npm run templates:audit`.\n- **Mobil telefon çərçivəsi** (istifadəçi qeydi): mobil dəst səhifələri geniş monitorda tam ekrana\n  yayılırdı (başlıq/tab bar 1440px-ə qədər uzanırdı). `templates/layouts.css` → `.tpl-mobile-page`\n  (body sinifi, >=40rem-də mərkəzləşir, 24.375rem/390px — kitabxananın Flutter ekran çəkilişləri ilə\n  eyni en, kölgə+kənar, əsl telefonda <40rem heç nə dəyişmir) — 6 blok-əsaslı mobil template\n  (`mobile-create/feed/home/list/login/onboarding`) və scaffold generator (`build-template.py`,\n  `set==\"mobile\"` üçün avtomatik) tətbiq edildi.\n- **Flutter canlı tətbiqi (MOB-07) eyni çərçivəyə düşür**: `app/index.html` + `flutter_bootstrap.js`\n  `hostElement`-ə (`#flutter-host`) bağlandı — Flutter mühərriki artıq pəncərəni yox, bu DOM\n  elementinin ölçüsünü oxuyur (`main.dart.js`-də sənədləşməyən, amma canlı sınanmış açar).\n  ⚠️ `app/` gitignore-dadır (yalnız serverdə), `flutter build web` yenidən işlədilsə bu patch\n  ÜSTƏLƏNİR — eyni dəyişiklik `flutter_ui_kit` layihəsinin öz `web/index.html` +\n  `web/flutter_bootstrap.js` mənbəyinə köçürülməlidir (ayrı Flutter layihəsi, Flutter toolchain\n  tələb edir, bu sessiyada icra edilmədi — arxa plan tapşırığı kimi qeyd edildi).\n- `.tpl-sr-only` (`templates/layouts.css`) — vizual görünməyən h1, səhifə səviyyəli başlıq bloku\n  olmayan kompozisiyalar üçün (`search-results`, `settings-account`).\n- `.tpl-stack` (`templates/layouts.css`) — scaffold-un ardıcıl bloklar arası boşluğu artıq inline\n  `style=\"margin-bottom:...\"` yox, bu class ilə verir (10 mövcud şablonda əvəz edildi).\n\n### Düzəldildi (audit tapıntıları, 43/43 → 0 qüsur)\n- 15 app/desktop şablonda `<main>` daxilindəki ilk panel başlığı `<h2>` → `<h1>` (hər səhifədə TAM\n  BİR h1 — a11y/SEO). `mobile-onboarding` slayd başlığı da eyni şəkildə.\n- `sections/landing/logo-wall/section.css` — uzun qurum adı (`white-space:nowrap`) 375px və\n  1440px-də daşırdı (`cybersecurity-firm`, `gov-eservices`, `it-outsourcing`); sətir indi qırılır.\n- `sections/landing/cta/section.css` — uzun CTA etiketi (`cybersecurity-firm`) 375px-də daşırdı;\n  `nowrap` → `text-wrap:balance`.\n- `templates/mobile/flutter-ui-kit/index.html` — kataloq gridində 4 sabit sütun 375px-də daşırdı;\n  `repeat(auto-fill, minmax(6.5rem,1fr))`.\n\n### Sübut\n- `python scripts/audit-templates.py`: mənfi nəzarət 8/8, **43/43 şablon 0 tapıntı**.\n- `validate-templates.py` / `validate-sections.py` / `apply-house-layer.py --check`: hamısı PASS.\n- Brauzerdə ölçüldü: Flutter tətbiqi 1440px-də 390px enində çərçivəyə düşür (kölgə+guşələr), 375px-də\n  tam ekran qalır (real telefon davranışı dəyişmir), konsol xətası 0."
      },
      {
        "version": "1.22.0",
        "date": "2026-09-09",
        "title": "saas-suite (DSK-06): SaaS platforması, bütün biznes sahələri bir qabıqda",
        "body_md": "### Əlavə edildi\n- `templates/desktop/saas-suite` — SaaS layihəçisi üçün yüksək səviyyəli başlanğıc xəritəsi: `app-shell-rail`\n  qabığında 12 modul menyusu (idarə paneli, modullar, CRM/satış, marketinq, maliyyə/billing, anbar/logistika,\n  HR, layihələr, dəstək, analitika, abunəlik, inteqrasiya, ayarlar) + 12 blok: `choice-grid` (11 modulun açılış\n  kataloqu), SaaS metrikaları (MRR, aktiv tenant, churn riski, ARPU), tenant siyahısı + tenant kartı, yeni tenant\n  forması + plan sihirbazı, billing paneli (abunə ödənişləri, provayder xərcləri, MRR hərəkəti, plan üzrə tenant),\n  bütün sahələr üzrə hesabat kataloqu, platforma ayarları, inteqrasiya boş vəziyyəti, tenant dayandırma modalı,\n  bildirişlər. Palitra paneli (ev qatı) ilə 9 skin, açıq/tünd və dizayn sistemi canlı dəyişir.\n- DSK-05-dən fərqi: o, bir şirkətin daxili tətbiqidir; bu, çox-tenantlı MƏHSUL - cədvəl/detal/billing tenant\n  səviyyəsindədir, `choice-grid` tenantın aldığı modulları göstərir. Şablon sayı 42 → 43.\n\n### Yoxlama\n- `validate-templates --only saas-suite` PASS (layout ailəsi təkrarı yox, class drift yox, hardcode rəng yox),\n  1440px tam ekran şəkli (`out/platform/saas-suite-full.png`), ui.ubs.az sinxron + `check-live` PASS."
      },
      {
        "version": "1.21.0",
        "date": "2026-09-09",
        "title": "Menyu ikonları: bütün şablonlarda kvadrat/generik ikon → mövzuya uyğun Phosphor",
        "body_md": "### Dəyişdi\n- `app-shell` sidebar (13 app + 4 desktop şablonu, blok mənbəyi + React): «İdarə paneli» düzbucaq →\n  `gauge`, «Qalıq» cədvəl-kvadratlar → `stack`, «Anbardarlar» → `users`, «Ayarlar» → `gear`.\n- `app-shell-rail` (accounting-ledger, accounting-setup, workspace-suite + blok mənbəyi + React):\n  «Siyahı + detal» pəncərə → `rows`, «Daxiletmə» düzbucaq+dairə → `note-pencil`, «Anbar» → `warehouse`,\n  «Satış» → `receipt`, «Alış» → `shopping-cart`, «Bank» → `bank`, «Maliyyə» → `currency-circle-dollar`,\n  «Vəziyyətlər» → `flag`, «Hesabatlar» → `chart-line-up`, «Tətbiqlər» → `squares-four`,\n  «İstifadəçilər» → `user-list`, «Rollar» → `identification-badge`, «Təhlükəsizlik» → `shield-check`,\n  «Biletlər» → `ticket`, «Planlar» → `calendar-blank`, «Abunəliklər» → `repeat`, «Profil» → `user-circle`.\n- İstinad/vitrin səhifələrində qalan 11 unicode qlif (▤ ≣ ◱ ✎ ⫴ ◇ ⚿ ◈ ◉ ▣) → SVG ikon:\n  `reference-previews/index.html` 8 kart, `saas-landing.html` (⚿ → `key`), `app-shell.html`\n  (◉ → `bell`), `onebase-hub/showcase.html` (▣ → `cube`); platformanın «İstinad ekranları» tabı da\n  eyni ikonları göstərir (`reference-previews.json` + `gallery-template.html`).\n- `assets/icons.json` +22 Phosphor ikonu (49 → 71); blok və şablon preview-ları yenidən çəkildi.\n\n### Əlavə edildi\n- `scripts/apply-menu-icons.py` — etiket → ikon xəritəsi; `--dry-run` xəritədə olmayan etiketi\n  sadalayıb `exit 1` verir (səssiz keçmə yoxdur); HTML və JSX (`className`) hər ikisini emal edir;\n  idempotentdir.\n\n### Commit izi\n- Şablonların `index.html` fayllarındakı ikon dəyişikliyi paylaşılan git index-i səbəbindən paralel\n  sessiyanın `7bdeb03 v1.20.0` commit-inə düşüb (`rules/shared-git-index.md`); bu commit qalan hissəni\n  (bloklar, React, istinad səhifələri, skript, ikon reyestri, preview-lar) daşıyır."
      },
      {
        "version": "1.20.0",
        "date": "2026-09-09",
        "title": "Ev standartı qatı (house layer): 8 şərt bütün 42 şablonda",
        "body_md": "### Əlavə edildi\n- `templates/house/house.css` + `house.js` — hər şablon `</body>` qarşısında BİR link + BİR script\n  ilə bağlayır (`scripts/apply-house-layer.py` mövcud 42 səhifəyə tətbiq etdi, `build-template.py`\n  yeni scaffold-lara avtomatik qoyur; `npm run house:check` çatışmayanı tutur). Qat verir:\n  1. **Versiya** alt barda, kliklənəndə CHANGELOG modalı (mənbə `templates/history.json`, yalnız\n     düymə bağlayır, Esc/backdrop bağlamır — `rules/frontend-modal-policy.md`).\n  2. **© <il> OptimaGroup** → optima.az (il dinamik).\n  3. **AZ / EN / RU** — qabıq sətirləri tərcümə olunur, `<html lang>` dəyişir; şablon məzmunu üçün\n     `data-i18n-en` / `data-i18n-ru` (+ `data-i18n-ph-*`) atribut mexanizmi.\n  4. **Giriş standartı**: APP-13 `auth-split-login` platformanın hər app/desktop detal səhifəsində\n     istinad kimi göstərilir; auth-split səhifəsində bar © / versiya / dili təkrarlamır (blok\n     onsuz da daşıyır).\n  5. **Palitra + şrift seçimi**: 9 skin (fluid skinlər «landing» nişanı ilə), fərdi brend/aksent\n     rəngi, `ref-kanban` dizayn sistemi, şrift — Commissioner / Inter / Onest / Nunito (+ başlıq\n     Unbounded). Inter və Onest bu versiyada endirildi (`fetch-fonts.py`), subset-lərin birləşmiş\n     cmap-i ilə ölçüldü: AZ + Kiril + ₼ tam; **Manrope Ə/₼ daşımadığı üçün rədd edildi**.\n  6. **Menyunu yığmaq**: `app-shell` və `app-shell-rail` üçün bar düyməsi + rail-in öz «Menyunu yığ»\n     düyməsi; vəziyyət saxlanılır.\n  7. **Ayarlarda saxlama**: `settings-page` bloku olan hər səhifədə «Görünüş və dil» paneli + sol\n     menyuya keçid; bütün seçimlər `localStorage`-da (`house-prefs`), hər ekrana tətbiq olunur.\n  8. **Palitraya uyğun açıq/tünd**: fərdi rəng cari fonla ölçülür (WCAG nisbi parlaqlıq) — açıq\n     rejimdə tündləşdirilir, tünd rejimdə açıqlaşdırılır (ton/doyma saxlanır), `--on-primary`,\n     `--primary-hover/active/subtle`, `--selected`, `--focus` törədilir; sistem rejimi (`auto`) izlənir.\n- Platforma detal səhifəsində «Ev standartı qatı» və «Giriş ekranı: APP-13» qeydləri.\n\n### Dəyişdi\n- DSK-05 `workspace-suite`-in yerli palitra paneli çıxarıldı — house qatı onu əvəz edir.\n- Bütün 42 önizləmə (`preview.png`) alt bar ilə yenidən çəkildi.\n\n### Sübut\n- `validate-templates.py` 42/42 PASS; `apply-house-layer.py --check` 42/42; brauzerdə JS ölçmə:\n  `#1a237e` tünd rejimdə `#6671df`-ə açıqlaşdı (on-primary qara), `#ffd54f` açıq rejimdə `#8c6b00`-a\n  tündləşdi (on-primary ağ); rail yığılır (`display:none`), settings panelində seçim saxlanılır,\n  RU-da başlıq «Оформление и язык»; konsol 0 xəta."
      },
      {
        "version": "1.19.0",
        "date": "2026-09-09",
        "title": "workspace-suite (DSK-05): bütün tətbiq sahələri + palitra seçimi",
        "body_md": "### Əlavə edildi\n- `templates/desktop/workspace-suite` — yüksək səviyyəli desktop şablonu: `app-shell-rail`\n  qabığında 13 blok (idarə paneli, filtr, cədvəl + detal yan-yana, forma + sihirbaz yan-yana,\n  maliyyə vidjetləri, hesabat kataloqu, ayarlar, boş vəziyyət, modal, bildiriş). Rail menyusu\n  **sahə xəritəsidir**: hər bənd öz blokuna keçir (`#dashboard-cards`, `#data-table` …) — yeni\n  layihə hansı sahəyə hansı blokun cavab verdiyini bir ekranda görüb lazımsızını silir.\n- **Palitra paneli** (sağ alt, id-əsaslı CSS, rəng literalı yoxdur): 9 kitabxana skini (fluid\n  skinlər «landing» nişanı ilə), açıq/tünd, dizayn sistemi keçidi (`ref-kanban` — token adları\n  kitabxananın 38 rolu ilə üst-üstə düşən yeganə sistem), fərdi brend/aksent rəngi\n  (`--on-primary` WCAG nisbi parlaqlıqla avtomatik seçilir), «Atributu kopyala» düyməsi hazır\n  `<html data-skin data-theme style>` sətrini verir. Seçim `localStorage`-da qalır.\n- Şablon sayı 41 → 42 (desktop 4 → 5); registry, history, gallery yeniləndi.\n\n### Qeyd\n- İstifadəçi «Figmadakı dizayn sistemlərindən» istəmişdi: Figma MCP bu sessiyada\n  autentifikasiya olunmayıb (claude.ai connector ayarlarında icazə tələb edir). Palitra\n  mənbəyi kitabxananın `tokens.css` / `skin-recipes.json` və `design-systems/` vitrinləridir;\n  ASAN Invest / OneBase / Sahil POS öz token adlarını daşıdığı üçün paneldən seçilmir.\n\n### Sübut\n- `validate-templates.py` 42/42 PASS; palitra funksiyaları brauzerdə JS ilə ölçüldü\n  (clinical+dark+`#b03a2e` → `--on-primary` tünd tona keçdi, reset → `neutral-pro`), konsol 0 xəta."
      },
      {
        "version": "1.18.0",
        "date": "2026-09-09",
        "title": "ui.ubs.az şablon platforması: detal səhifəsi, parametrlər, link, tarixçə, ikonlar",
        "body_md": "### Əlavə edildi\n- **Şablon platforması** (`templates/gallery.html`, tək statik səhifə, nginx-də build addımsız):\n  hər şablonun **detal səhifəsi** (`#tpl/<id>` — kopyalanıb paylaşıla bilən link), blokların\n  **parametr cədvəlləri** (kök `registry.json`-dakı `props`: ad/tip/məcburi/qeyd + fayl yolları),\n  **necə istifadə** bölməsi (kopyala komandası blok CSS yolları ilə, skin/tema atributu,\n  validate komandası, section-library sorğusu), `template.json` spec, **dəyişiklik tarixçəsi**\n  (yaradılıb / son yenilənmə / kitabxana versiyası / commit sayı / son 8 commit).\n- Kataloqda **axtarış** (`/` qısayolu; id, kod, ad, sahə, skin, blok, qeyd üzrə), filtrlər\n  (dəst, skin, tema, blok), sıralama (kod / son yenilənən / ən yeni / blok sayı), hər kartda\n  yenilənmə tarixi + «Aç / Detal / Linki kopyala».\n- Kitabxana **versiyası kliklənir** → CHANGELOG modalı (yalnız düymə ilə bağlanır, Esc/backdrop\n  bağlamır — `rules/frontend-modal-policy.md`); footer-də `© <il> OptimaGroup` (optima.az) —\n  `rules/project-start-standards.md` §1–§2 platformanın özünə tətbiq edildi.\n- Platforma qabığı **AZ/EN/RU** (§4); şablon məzmunu AZ qalır.\n- `scripts/build-template-history.py` → `templates/history.json`: git-dən hər şablonun\n  yaranma/yenilənmə tarixi, son versiya, commit siyahısı; `CHANGELOG.md` parse edilib modala verilir.\n  registry-dən ayrı saxlanılır ki, `registry:check` hər commit-dən sonra köhnəlməsin.\n- `scripts/check-live.py`: canlı ui.ubs.az-da registry-dəki hər şablonun HTML/preview-u 200,\n  registry lokal ilə eynidir; **mənfi nəzarət** (uydurma yol 404 verməlidir, yoxsa INCONCLUSIVE).\n- `scripts/sync-ui-ubs.sh`: TEST rejimi sinxronu (registry check → history → gallery → tar|ssh → check-live).\n- `scripts/apply-nav-icons.py`: dizayn sistemi vitrinlərində (ASAN Invest, OneBase, Sahil POS)\n  və `reference-previews/app-shell.html`-də 40 boş kvadrat / unicode qlif yer-tutucusu mövzuya\n  uyğun Phosphor ikonu ilə əvəz edildi (istifadəçi qeydi); 28 yeni ikon `assets/icons.json`-a\n  əlavə olundu (`sections_lib.icon()` ilə yenidən işlədilə bilər).\n- `templates/design-systems.json`, `templates/reference-previews.json` — qalereya yığıcısındakı\n  kod-daxili literal siyahılar ayrıca data faylına çıxarıldı.\n- `npm run templates:platform | templates:history | icons:nav | live:check | live:sync`.\n\n### Düzəldildi\n- Kod revyu tapıntısı: **APP-13 `auth-split-login` canlıda 404** idi (registry-də var, kartı var,\n  serverə heç vaxt sinxron edilməmişdi) — sinxron + `check-live.py` bundan sonra tutur.\n\n### Dəyişdi\n- `scripts/build-master-gallery.py` artıq HTML-i özündə saxlamır: `scripts/gallery-template.html`\n  şablonuna yalnız JSON (registry + history + bloklar + spec) və versiyanı yerləşdirir.\n\n### Kod revyu qeydləri (düzəldilməyən, nginx tərəfi)\n- `https://ui.ubs.az/` → `302 http://ui.ubs.az/templates/gallery.html` — HTTPS-dən HTTP-yə\n  düşür; nginx `return 302 /templates/gallery.html` nisbi yol və ya `https://` ilə yazılmalıdır.\n\n### Commit izi\n- Paylaşılan git index-i (`rules/shared-git-index.md`): bu bölmə və `package.json`/`tokens.json`\n  1.18.0 sətirləri paralel sessiyanın `f7f57bc v1.17.0` commit-inə düşüb; platformanın kodu\n  (16 fayl) `e5a3336 v1.18.0` commit-indədir. Tarixçə yenidən yazılmayıb."
      },
      {
        "version": "1.17.0",
        "date": "2026-09-09",
        "title": "flutter-ui-kit (MOB-07): Batch 2 — 5 dizayn-birinci şablon",
        "body_md": "### Əlavə edildi\n- MOB-07 qalereya kartları: **EV doldurma (Volt)**, **Dərman xatırlatma (Doza)**,\n  **Daşınmaz əmlak (Yurd)**, **Dil öyrənmə (Söz)**, **Kommunal ödənişlər (Sayğac)** —\n  `app/index.html?preset=app#/templates/<id>`; ekran şəkilləri\n  `shots/templates/tpl-{ev-charging,medication,real-estate,language,utilities}.png`.\n- Şablon sayı 27 → 32 (`index.html`, `template.json`, `registry.json`).\n\n### Dəyişdi\n- `app/` canlı build flutter_ui_kit v0.7.0+9-dan yeniləndi.\n\n### Düzəldildi\n- Deploy zamanı tapılan qüsur: web build-in ilk cəhdi `--base-href` üçün MSYS\n  yol-çevrilməsindən qaçmaq məqsədilə ikiqat-slash (`//templates/...`) istifadə etdi —\n  bu, brauzerdə protokol-nisbi URL kimi oxunub `http://templates` adlı yad host kimi\n  şərh olundu, bütün Batch 2 ekranları boş ağ səhifə göstərdi. `MSYS_NO_PATHCONV=1\n  MSYS2_ARG_CONV_EXCL=\"*\"` + tək-slash `--base-href=/...` ilə düzəldilib, Playwright\n  screenshot-larla yenidən QA edildi."
      },
      {
        "version": "1.16.0",
        "date": "2026-09-08",
        "title": "flutter-ui-kit (MOB-07): Batch 1 — 5 dizayn-birinci şablon",
        "body_md": "### Əlavə edildi\n- MOB-07 qalereya kartları: **Büdcə (Ledger)**, **Yuxu (Safelight)**, **Reseptlər**, **Podkast\n  (Longform)**, **Uçuşlar (Gate)** — `app/index.html?preset=app#/templates/<id>`; ekran şəkilləri\n  `shots/templates/tpl-{budget,sleep,recipes,podcast,flights}[-dark|-light].png`.\n- Şablon sayı 22 → 27 (`index.html`, `template.json`, `registry.json`).\n\n### Dəyişdi\n- `app/` canlı build flutter_ui_kit v0.6.0+7-dən yeniləndi."
      },
      {
        "version": "1.15.2",
        "date": "2026-09-08",
        "title": "flutter-ui-kit (MOB-07): AZ örtüklü şriftlər",
        "body_md": "### Dəyişdi\n- `app/` canlı build flutter_ui_kit v0.5.1+6-dan yeniləndi: Outfit / Instrument Sans / Geist Mono\n  əvəzinə ölçülmüş Onest / Inter / Noto Sans Mono (ə/Ə, ₼, Kiril tam) — istifadəçi qaydası:\n  Unicode AZ dəstəyi olmayan şrift heç vaxt işlədilmir. `template.json` qeydi uyğunlaşdırıldı.\n\n### Commit izi\n- `50351b1` «v1.15.1 … AZ ortuklu shriftler» yalnız `template.json` + `registry.json` daşıyır və\n  versiya nömrəsi başqa sessiyanın `b113f18 v1.15.1` commit-i ilə üst-üstə düşüb (paylaşılan\n  qovluq); düzgün nömrə və bu qeyd bu commit-dədir. Tarixçə yenidən yazılmayıb."
      },
      {
        "version": "1.15.1",
        "date": "2026-09-08",
        "title": "Qalereyaya açıq/tünd rejim keçidi",
        "body_md": "### Əlavə edildi\n- `templates/gallery.html` səhifəsinə tema keçidi (sağ yuxarı, 44x44 px) — login blokundakı\n  ilə eyni dildə: günəş/ay ikonu, `aria-label` növbəti vəziyyəti bildirir, seçim\n  `localStorage`-da saxlanılır, seçim yoxdursa sistem tərcihi qalır.\n- Tünd rejimdə kart miniatürlərinə yüngül parlaqlıq korreksiyası: gömülü ekran şəkilləri\n  açıq rejimdə çəkilib, tünd fonda gözü yormasın.\n- Keçid həm `scripts/build-gallery.py`, həm `scripts/build-master-gallery.py` şablonuna\n  yazıldı — hansı generator işlədilsə də düymə itmir.\n\n### Dəyişdi\n- Kart mətni `color: inherit` əvəzinə açıq `var(--text)` işlədir: `<a>` elementində miras\n  zənciri lazımsız kövrəklikdir.\n\n### Yoxlama qeydi\n- Headless Chrome çalışma anındakı tema dəyişikliyini düzgün göstərmir: kök dəyişən yenilənir,\n  elementlərin hesablanmış rəngi köhnə qalır (ölçüldü). Real brauzerdə (localhost üzərindən)\n  keçid qüsursuz işləyir və bütün mətn oxunaqlıdır. Buna görə tünd rejimin sübutu real\n  brauzerdən götürülüb, headless screenshot-dan yox.\n\n### Commit izi\n- Bu bölmə v1.15.0-dan SONRA yazılıb: paylaşılan git index-i səbəbindən əvvəlki\n  `51a4cb1 v1.14.1` commit-i başqa sessiyanın `package.json`/CHANGELOG dəyişikliyini\n  içinə almışdı (`rules/shared-git-index.md`). Tarixçə yenidən yazılmayıb, nömrələmə\n  1.15.0-ın üstündən davam etdirilib."
      },
      {
        "version": "1.15.0",
        "date": "2026-09-08",
        "title": "flutter-ui-kit (MOB-07): Sport System (Summit) 22-ci şablon",
        "body_md": "### Əlavə edildi\n- MOB-07 qalereya kartı: **Sport System (Summit)** — sportsystem.az müştəri tətbiqi şablonu\n  (`app/index.html?preset=app&theme=light#/templates/sportsystem`). Ekran şəkilləri\n  `shots/templates/tpl-sportsystem*.png` (QR bilet, operator terminalı, ana, aktivlik, təsdiq).\n- Şablon sayı 21 → 22 (`index.html` başlıq/nav/dl, `template.json`, `registry.json`).\n\n### Dəyişdi\n- `app/` canlı build flutter_ui_kit v0.5.0+5-dən yenilənib (serverə sinxron, repo-ya düşmür).\n\n### Qeyd\n- `tokens/tokens.json` → `meta.version` v1.12.0-da qalmışdı (v1.13/v1.14 yalnız `package.json`-u\n  qaldırmışdı) — bu versiyada hər ikisi 1.15.0-a bərabərləşdirildi.\n\n### Commit izi\n- `package.json` (1.14.0 → 1.15.0) və bu CHANGELOG bölməsi paylaşılan git index-i səbəbindən\n  başqa sessiyanın `51a4cb1 v1.14.1` commit-inə düşüb (`rules/shared-git-index.md`); qalan\n  fayllar (index.html, template.json, registry, gallery, tokens, ekran şəkilləri) növbəti\n  commit-dədir. Tarixçə yenidən yazılmayıb."
      },
      {
        "version": "1.14.1",
        "date": "2026-09-08",
        "title": "`auth-split`: mobil toxunma hədəfləri 44px",
        "body_md": "### Düzəldildi\n- Mobil rejimdə tema düyməsi 34x34 px idi, barmaqla dəqiq vurmaq üçün kiçikdir.\n  Ölçüldü və 44x44 px-ə qaldırıldı; dil seçicisinin düymələri də 44 px hündürlüyə çatdı.\n  Panelin yuxarı boşluğu böyüyən zolağa uyğun artırıldı.\n\n### Yoxlama\n- 375 px-də ölçmə: düymə 44x44, dil düymələri 44 px, üfüqi daşma yoxdur\n  (scrollWidth 375 = clientWidth 375). Açıq və qara rejim ekran şəkilləri ilə təsdiqləndi."
      },
      {
        "version": "1.14.0",
        "date": "2026-09-08",
        "title": "`auth-split`: açıq/tünd rejim keçidi",
        "body_md": "### Əlavə edildi\n- Giriş ekranına **tema keçidi** düyməsi (`auth-split__theme`) — dil seçicisinin solunda,\n  eyni pill dilində. Açıq rejimdə günəş, tünd rejimdə ay ikonu göstərilir; `aria-label`\n  növbəti vəziyyəti üç dildə bildirir (`toDark` / `toLight` açarları).\n- Seçim cihazda saxlanılır (`localStorage.theme`). React qarşılığında tema `theme` /\n  `onThemeChange` propları ilə layihənin öz saxlama qatına verilir.\n\n### Dəyişdi\n- `templates/app/auth-split-login` (APP-13) yenidən yığıldı — düymə şablona da düşdü.\n\n### Qeyd (davranış qərarı)\n- Saxlanmış seçim YOXDURSA səhifənin öz `data-theme` atributuna toxunulmur: sistem tərcihi\n  və kitabxananın QA render-ləri (9 skin × 2 rejim) olduğu kimi qalır. Əks halda hər dark\n  screenshot açıq rejimə düşərdi və QA ölçmə qabiliyyətini itirərdi."
      },
      {
        "version": "1.13.0",
        "date": "2026-09-08",
        "title": "`auth-split`: ev standartı giriş ekranı (bütün layihələr üçün defolt)",
        "body_md": "### Əlavə edildi\n- **`sections/app/auth-split`** — iki panelli giriş bloku, React + statik HTML. Sol panel:\n  layihə şəkli, başlıq, məhsulun 4 funksional bəndi, kliklənən kopirayt (optima.az) və\n  versiya nişanı. Sağ panel: AZ/EN/RU dil seçici (mətn kodu, bayraq yoxdur), email/şifrə\n  forması, şifrə görünmə düyməsi.\n- Versiya nişanına klik `CHANGELOG.md`-dən parse olunan dəyişikliklər modalını açır —\n  `rules/project-start-standards.md`-in «versiya interfeysdə görünür VƏ kliklənir» tələbinin\n  hazır qarşılığı. Modal yalnız düymə ilə bağlanır: backdrop klik və ESC bloklanıb.\n- **`templates/app/auth-split-login` (APP-13)** — həmin blokdan yığılmış hazır səhifə.\n  Yeni layihələrdə giriş ekranı bundan kopyalanır.\n\n### Dəyişdi\n- Kitabxana 35 → **36 section** (app 17 → 18), 40 → **41 template**.\n- Köhnə tək-kartlı `auth` (APP-02) silinmədi: daxili alət və admin panel üçün qalır,\n  amma məhsul girişində defolt artıq `auth-split`-dir.\n\n### ⚠️ Miqrasiya\n- Mövcud layihələrdə giriş ekranı avtomatik dəyişmir. Yeniləmək üçün\n  `templates/app/auth-split-login/index.html` kopyalanır, məzmun (şəkil, bəndlər, versiya,\n  changelog mənbəyi) layihəyə uyğunlaşdırılır. Struktur və `class` adları toxunulmur."
      },
      {
        "version": "1.12.0",
        "date": "2026-09-08",
        "title": "`flutter-ui-kit` (MOB-07): Ağıllı ev (Hearth) — dizayn-birinci 21-ci şablon",
        "body_md": "### Əlavə edildi\n- Flutter layihəsi v0.4.0: **Ağıllı ev (Hearth)** — Figma əvəzinə `design/smart-home/mockup.html`\n  lövhəsi (6 çərçivə, impeccable `craft` axını: PRODUCT.md + DESIGN.md, seed rəng, istifadəçi\n  təsdiqi) → Flutter. Öz OKLCH dizayn sistemi (moss-yaşıl əsas, kəhrəba yalnız istilik üçün,\n  qaranlıq əsas / açıq variant). 5 ekran, CustomPainter termostat qövsü, nested Navigator.\n- `templates/mobile/flutter-ui-kit/index.html` şəbəkəsinə 21-ci kart + `shots/templates/tpl-smart-home*.png`.\n\n### Dəyişdi\n- Mətnlər 20 → 21 sahə şablonu. Versiya 1.11.0 → 1.12.0."
      },
      {
        "version": "1.11.0",
        "date": "2026-09-08",
        "title": "`flutter-ui-kit` (MOB-07): 20 sahə şablonu əlavə edildi",
        "body_md": "### Əlavə edildi\n- Flutter layihəsi (`Agents/flutter_ui_kit`) v0.1.0 → v0.2.0-a qədər böyüdü: 20 sahə şablonu\n  (mağaza, yemək, bank, fitnes, səyahət, çat, musiqi, təqvim, tapşırıq, qeydlər, hava, xəbər,\n  həkim, kurs) — tətbiq daxilində Ayarlar > Şablon qalereyası altında.\n- `templates/mobile/flutter-ui-kit/index.html`-ə yeni `#templates-preview` bölməsi: 20 şablonun\n  4 sütunlu şəbəkəsi, hər kart canlı demo-ya (`app/index.html?preset=app#/templates/<id>`) aparır.\n  Sinif drifti yoxlamasından yan keçmək üçün `class=` atributu YOXDUR — id-əsaslı CSS seçiciləri\n  (header/dl bölmələrindəki mövcud nümunə ilə eyni üsul).\n- `shots/templates/tpl-<id>.png` — 20 şablonun hər birinin 390x844 Playwright çəkimi.\n- `template.json` notes yeniləndi: `templates_smoke_test.dart`-ın tapdığı 4 real runtime bug-ın\n  (Row/Wrap daxilində sarılmamış tam-enli düymə/Spacer) qeydi.\n\n### Dəyişdi\n- Versiya 1.10.0 → 1.11.0."
      },
      {
        "version": "1.10.0",
        "date": "2026-09-07",
        "title": "`flutter-ui-kit` (MOB-07): native Flutter mobil UI kit şablonu",
        "body_md": "### Əlavə edildi\n- **`templates/mobile/flutter-ui-kit`** - kitabxananın ilk NATİV mobil şablonu: HTML blok\n  kompozisiyası deyil, `Agents/flutter_ui_kit` Flutter layihəsinin 16 real ekran çəkimi\n  (390x844, @2x, Playwright) + canlı web build (`app/`, 41 MB, `.gitignore`-da - yalnız\n  serverə sinxron olunur). Səhifə `card-feed` blokunu ekran lenti kimi işlədir, ona görə\n  `validate-templates.py` (sinif drifti, hex, em-tire) olduğu kimi tətbiq olunur - PASS,\n  mənfi nəzarətlə (hex + em-tire inject → FAIL) ölçülüb.\n- Mənbə: #flutterui (Facebook, Sidracodes \"Flutter Profile Screen\"). Bənövşəyi seed\n  saxlanıldı, AI-slop (mesh gradient) əvəzinə Material 3 tonal səthlər, Outfit + Instrument\n  Sans, 4 seed preset, AZ/EN/RU. Detal: `templates/mobile/flutter-ui-kit/template.json` notes.\n\n### Dəyişdi\n- Template sayı 39 → 40 (mobil 6 → 7); `templates/registry.json` + `templates/gallery.html`\n  yenidən quruldu. Versiya 1.9.0 → 1.10.0.\n\n### ⚠️ Sınma riski / miqrasiya\n- ui.ubs.az-a sinxronda `templates/mobile/flutter-ui-kit/app/` qovluğu da köçürülməlidir\n  (repo-da yoxdur) - əks halda \"Canlı demo\" keçidləri 404 verir. Yenidən yığmaq:\n  `flutter build web --release --base-href /templates/mobile/flutter-ui-kit/app/` (flutter_ui_kit README)."
      },
      {
        "version": "1.9.0",
        "date": "2026-09-04",
        "title": "`app-shell-rail`: ikiqat sidebar qabığı (Akaunting 3.0)",
        "body_md": "### Əlavə edildi\n- **`app-shell-rail` bloku** (`sections/app/`, layout ailəsi `shell-dual-rail`) - v1.7.0 və\n  v1.8.0-da «qəsdən götürülmədi» deyilən Akaunting sidebar-ı indi ayrıca qabıqdır:\n  dar ikon zolağı (hesab, bildiriş, axtarış, yeni yarat, parametr, dil; altda\n  sevimlilər, sənədlər, avatar) + geniş menyu paneli (şirkət seçici, native\n  `<details>` ilə açılan qruplar, sol xətli alt-menyu). Üst panel YOXDUR - səhifə\n  başlığı və əməliyyat düymələri məzmun blokunun özündədir. Zolaq `surface-3`,\n  panel `surface-2`: `ledger` skinində iki lavanda ton, `neutral-pro`-da iki boz.\n  Dar ekranda zolaq/panel gizlənir, yığcam üst sətir + çekmecə qalır.\n- **`choice-grid` bloku** (`choice-grid` ailəsi) - Akaunting «Payment confirmed → Select the\n  apps» ekranı (istifadəçinin göndərdiyi şəkil): checkbox kartları (kart = label, seçilmiş\n  kart accent konturu), «Keç» + «Seçilənləri quraşdır».\n- **Template `accounting-setup` (APP-12)** - `app-shell-rail` + `choice-grid`; menyu mətni\n  parametr bölmələridir (Profil, Planlar, İstifadəçilər, Rollar, Təhlükəsizlik...).\n- `app-shell-rail`-də bildiriş sayğacı (`__count`, «3») və menyuda «Yeni» nişanı\n  (`__new`); `ledger-widgets`-də başlıq kebab-ı, panel tab-ları (İdarə paneli | HR) və\n  «Vidjet əlavə et / Yeni panel» alət sətri - hamısı istifadəçinin göndərdiyi 3 əlavə\n  Akaunting ekranından.\n- `app` dəsti: 17 blok, kitabxana 35 blok; 39 şablon.\n\n### Dəyişdi\n- `templates/app/accounting-ledger` qabığı `app-shell` → `app-shell-rail`\n  (`index.html` `--force` ilə yenidən yığıldı; blok məzmunu kitabxanadakı ilə eynidir).\n- Versiya 1.8.0 → 1.9.0.\n\n### ⚠️ Qeyd\n- Adi app bloklarını (`data-table`, `dashboard-cards`) bu qabığa salanda səhifə\n  başlığı olmayacaq - onlar `app-shell`-in üst paneli üçün qurulub. Bu qabıq\n  başlığını özü daşıyan bloklarla (`ledger-*`, `report-pins`) işlədilir.\n\n### 🔍 Yoxlama sübutu\n- `validate-sections.py --set app`: PASS. `validate-templates.py`: PASS.\n- Screenshot 1440 light/dark + 375 (`out/templates/accounting-ledger-*.png`, `accounting-setup-*.png`).\n- Tapılan yığıcı tələsi: blokun baş şərhində hərfi `<main>` sözü `build-template.py`-nin\n  yuva regex-inə düşdü və qabıq səssizcə atıldı, `validate-templates.py` 3b yoxlaması da\n  eyni şərhə aldanıb PASS verdi. Şərh düzəldildi; yoxlama şərhləri strip etməlidir - açıq iş."
      },
      {
        "version": "1.8.0",
        "date": "2026-09-04",
        "title": "`ledger` skini (9-cu): Akaunting 3.0 vizual dilinin oxunuşu",
        "body_md": "### Əlavə edildi\n- **`ledger` skini** (`tokens/skin-recipes.json` → `make-skin.py`): v1.7.0-da Akaunting\n  bloklarını qurmuşduq, amma ekran şəkillərindəki STİLİ yox, yalnız strukturu\n  götürmüşdük - istifadəçi bunu düzgün qeyd etdi. Rənglər ekran şəkillərindən\n  ölçülüb (`PIL` piksel oxunuşu → OKLCH): indiqo mürəkkəb (H278, L0.42), lavanda\n  neytral (H275, `neutral_c` 0.0055 → sidebar `surface-2` lavanda), yaşıl CTA\n  (H134, L0.66) yalnız `accent` rolunda, mərcan `danger` (H14), kəhrəba `warning`\n  (H80). Pill düymələr (`radius-lg` 1rem, `full`), yumşaq kölgə, iri yüngül başlıq.\n  66/66 kontrast cütü PASS, semantik toqquşma yoxdur.\n- **Nunito şrifti** self-host edildi (`fetch-fonts.py`, `assets/fonts/nunito-*.woff2`,\n  22 `@font-face`). Akaunting Quicksand işlədir - kiril yoxdur (RU sınır), Varela\n  Round da eyni. Nunito `check-fonts` ilə AZ+RU tam çıxdı, yuvarlaq terminallı\n  ən yaxın qarşılıqdır. Yalnız `ledger` skinində istifadə olunur.\n- `tokens/specimen-ledger-{light,dark}.html`.\n\n### Dəyişdi\n- `templates/app/accounting-ledger` skini `neutral-pro` → `ledger`.\n- `ledger-table` və `report-pins` bloklarında əsas əməliyyat düyməsi `primary`\n  deyil **`accent`** rolundadır (Akaunting: indiqo səhifədə yaşıl CTA).\n  `neutral-pro`-da accent = primary, görünüş dəyişmir; `signal`-da CTA kəhrəbaya\n  keçir - bu, signal-ın öz «siqnal lampası» niyyətidir.\n- 3 yeni blokun `meta.json` → `skins` siyahısına `ledger` əlavə edildi,\n  `preview_skin: ledger`.\n- `DESIGN.md` (9 skin cədvəli), `section-library` skill-i və qlobal CLAUDE.md\n  (33 blok, 38 şablon, 9 skin) yeniləndi.\n- Versiya 1.7.0 → 1.8.0 (`package.json`, `tokens/tokens.json`).\n\n### ⚠️ Qeyd\n- Akaunting-in ikiqat sidebar-ı yenə də götürülmədi (qabıq strukturu kitabxanaya\n  aiddir). Lavanda naviqasiya rəngi isə skin vasitəsilə `app-shell`-ə avtomatik\n  düşür - struktur dəyişmədən.\n\n### 🔍 Yoxlama sübutu\n- `make-skin.py --skin ledger`: light 33/33 (6 addım köklənmə), dark 33/33.\n- `validate-tokens.py`: 9 skin, 594 cüt, PASS. `generate-tokens.py --check`: PASS.\n- `validate-sections.py --set app`, `validate-templates.py`: PASS.\n- Screenshot: 1440 light/dark + 375 (`out/templates/accounting-ledger-*.png`)."
      },
      {
        "version": "1.7.0",
        "date": "2026-09-04",
        "title": "Akaunting 3.0 oxunuşu: 3 maliyyə bloku + `accounting-ledger` template (APP-11)",
        "body_md": "### Əlavə edildi\n- **3 yeni `app` bloku** (`sections/app/`), hamısı Akaunting 3.0\n  (akaunting.com/changelog/3.0 + apps/bank-feeds) ekranlarının dərin oxunuşundan\n  çıxarılıb, hər birinin `meta.json` → `notes` sahəsində hansı prinsipin niyə\n  götürüldüyü yazılıb:\n  - `ledger-widgets` (`widget-dividers`) - kartsız maliyyə vidjetləri: debitor/\n    kreditor bölünmüş zolağı (açıq + gecikmiş), sıfır xətti mərkəzdə olan pul\n    axını qrafiki + «daxilolma - xaric = mənfəət» tənliyi, hesab qalıqları,\n    növbəti 30 günün ödənişləri (Akaunting «future-oriented report»).\n  - `ledger-table` (`ledger-grid`) - qaimə siyahısı: `<table>` deyil CSS grid\n    (dar ekranda sətir 2 cərgəyə yığılır), iki sətirli hüceyrələr, hover-to-reveal\n    əməliyyat ikonları + xülasə popover-i, sevimli ulduzu, say nişanlı tab.\n  - `report-pins` (`pinned-catalog`) - sancaqlanmış hesabat zolağı (boş yuvalar\n    görünür: «Hesabatı sancaqla») + qruplaşdırılmış 2 sütunlu kataloq.\n- **Template `accounting-ledger` (APP-11)** - `app-shell` + yuxarıdakı 3 blok,\n  «Rəf Uçot» konteksti, `neutral-pro`. Mühasibat tətbiqinin 3 ekran tipi bir\n  səhifədə (analytics-admin prinsipi). Kataloq: 38 template.\n\n### Dəyişdi\n- `registry.json`: 30 → 33 blok (12 landing + 15 app + 6 mobile).\n  `templates/registry.json` + `gallery.html`: 37 → 38 template.\n\n### ⚠️ Qeyd\n- Akaunting-in ikiqat sidebar-ı (dar ikon zolağı + geniş menyu) QƏSDƏN\n  götürülmədi - `app-shell` strukturu kitabxanaya aiddir, template dəyişmir.\n  Lazım olarsa ayrıca qabıq bloku kimi namizəd olmalıdır.\n- `sections/app/glass-window`, `ornament-nav`, `volumetric-card` (başqa\n  sessiyanın natamam, commit edilməmiş qovluqları) `validate-sections.py`-də\n  FAIL verir və `build-registry.py`-ni sındırır (`meta.json` yoxdur). Bu\n  relizdə `registry.json` həmin qovluqları ötürərək quruldu; həmin bloklar\n  öz sahibi tərəfindən tamamlanmalı və ya silinməlidir.\n- `ledger-table`-da xülasə popover-i preview-da `--peek-open` modifikatoru ilə\n  statik açıqdır; real layihədə hover/focus-within ilə əvəz olunur.\n\n### Düzəldildi\n- **Master qalereya regressiyası** (eyni gün, sinxrondan sonra tapıldı): `templates:gallery`\n  npm skripti hələ köhnə `build-gallery.py`-yə işarə edirdi, master (3 tab-lı) qalereya isə\n  `build-master-gallery.py` ilə qurulur (784f9fd). Köhnə skript işlədildi və qalereya\n  yalnız şablon tab-ına düşdü; dizayn sistemləri (5) və istinad ekranları (8) itdi.\n  Skript yenidən master-ə yönəldildi, qalereya bərpa edildi: 38 + 5 + 8.\n\n### 🔍 Yoxlama sübutu\n- `validate-sections.py --set app`: 3 yeni blok PASS (yalnız yad qovluqlar FAIL).\n- `validate-templates.py --only accounting-ledger`: PASS.\n- `build-template-registry.py --check`: PASS (38 template).\n- Screenshot: 1440 light/dark + 375 mobil (`out/templates/accounting-ledger-*.png`)."
      },
      {
        "version": "1.6.0",
        "date": "2026-08-25",
        "title": "modul izolyasiyası standartının tətbiqi",
        "body_md": "### Əlavə edildi\n- **[demo/CHANGELOG.md](demo/CHANGELOG.md)** — `demo` modulunun öz dəyişiklik\n  jurnalı. Modulun `demo/package.json`-da öz versiyası (v1.0.0) və öz build\n  komandası (`npm run demo:build`) var idi, amma jurnalı yox idi — dəyişiklikləri\n  kök jurnalına düşürdü və ya heç yerə düşmürdü.\n- Bu faylın başında **modul jurnallarına istinad** — növbəti sessiya axtarmasın.\n\n### Dəyişdi\n- `specimen:shot` build çıxışı: `out/specimen-full.png` → **`out/tokens/specimen-full.png`**.\n  Səbəb: `out/` kökündə ~20 sərbəst artefakt yığılmışdı; modul/məqsəd adı olmayan\n  yol iki producer eyni ada yazanda səssizcə üzərinə yazır. Yeni qayda: build\n  çıxışının yolu modul adını ehtiva edir.\n- Versiya nişanı sinxronlaşdırıldı: `package.json` 1.5.0→1.6.0,\n  `tokens/tokens.json` `meta.version` eyni.\n\n### ⚠️ Miqrasiya\n- `out/specimen-full.png` köhnə yolda qalır (təkrar `npm run specimen:shot`\n  yeni yola yazacaq). Köhnə faylı əl ilə silmək olar — `out/` build artefaktıdır.\n- `out/` kökündəki digər sərbəst PNG-lər (composition-*, fix-*, qa-*, overflow-*)\n  bu dəyişikliklə **köçürülmədi** — onları yaradan skriptlər ayrıca nəzərdən\n  keçirilməlidir. Açıq qalan iş.\n\n### 🔍 Yoxlama sübutu\n- `npm run gate:f1` (tokens:validate + tokens:check) — aşağıda Evidence blokunda.\n- `specimen-full.png`-ə istinad bütün repoda yalnız `package.json`-da idi\n  (`grep -rn specimen-full`) — yol dəyişikliyi başqa yeri sındırmır."
      },
      {
        "version": "1.5.0",
        "date": "2026-08-23",
        "title": "`open-source-tool` template (editorial-in ikinci, dark)",
        "body_md": "### Əlavə edildi\n- **`templates/web-landing/open-source-tool`** — `editorial` skin-inin ikinci\n  template-i (**dark rejimdə**, birincisi light idi), kitabxanada 33-cü.\n  Sahə: açıq mənbə / developer aləti (log axını borusu).\n- Bloklar: `header-nav` + `hero-split` + `features` + `stats` + `logo-wall` +\n  `testimonials` + `faq` + `cta` + `footer` (9 blok).\n\n### Əsas qərarlar\n- **`hero-split` seçildi, `hero-centered` YOX** — `independent-journal`-ın\n  (`editorial`, light) əksinə qərar. Orada `hero-centered` seçilmişdi, çünki\n  rəngli foto skinin axromatik iddiasını (C=0) pozardı. Burada həmin risk\n  YOXDUR: developer alətinin ilk ekranında terminal/ekran görüntüsü gözlənilən\n  elementdir, üstəlik placeholder BOZDUR — `hero-split`-in şəkil sütunu\n  iddianı pozmur. Eyni skin, eyni registr, fərqli sahə → fərqli kompozisiya\n  qərarı; bu, \"skin blok seçimini avtomatik diktə etmir\" prinsipinin sübutudur.\n- **`stats` DAXİL EDİLDİ** — `independent-journal`-da REDD EDİLMİŞDİ (uydurma\n  abunə sayı zəif sosial sübut idi). OSS-də rəqəmlər (ulduz, törədici, reliz,\n  lisenziya) YOXLANILA BİLƏN faktlardır — eyni blok, fərqli sahədə fərqli\n  etibarlılıq statusu.\n- **`logo-wall` DAXİL** — OSS-də istifadəçi şirkət siyahısı standart qəbul\n  sübutudur (`independent-journal`-da yenə rədd edilmişdi).\n- **`pricing` YOX** — proqram pulsuzdur, tarif cədvəli uydurma olardı; bu,\n  `independent-journal` və `event-conference`-dəki \"tarif REALDIR\"\n  əsaslandırmasının məhz əksidir.\n\n### Sübut\n- `npm run templates:validate` → 33/33 PASS\n- `npm run gate:f6` → registry sinxron (33 template)\n- `npm run overflow:audit` → 375px 30/30 · 1440px 30/30 PASS\n- `npm run test:settle` → PASS (preview CTA görünür, animasiya bitmiş)\n- Vizual: `preview.png` (1440px, dark), `out/qa-oss-375.png` (mobil)\n\n### Uzlaşdırma qeydi — paralel sessiyanın Template/ → templates/ birləşməsi\n- Bu template üzərində işləyərkən `726e51a`/`bafb526` (köhnə `Template/`\n  qovluğunun `templates/{docs,design-systems,reference-previews}` altına\n  köçürülməsi) eyni vaxtda baş verdi. Birləşmə `templates:validate`-i\n  müvəqqəti sındırdı (38 → real olmayan \"template\" görünürdü, çünki set\n  siyahısı kor `iterdir()` ilə tapılırdı) — başqa sessiya tərəfindən\n  `7dc7eb7`-də düzəldildi (sabit `TEMPLATE_SETS` siyahısı). Bu template-in\n  öz məzmununa təsiri olmadı, yalnız `templates:validate` müvəqqəti FAIL\n  verdi (bax `.coordination/file-owners.md`)."
      },
      {
        "version": "1.4.1",
        "date": "2026-08-23",
        "title": "`Template/preview` skin seçicisi 6 → 8",
        "body_md": "### Düzəldildi\n- `Template/preview/*.html` skin seçicisində **`apple` (v1.2.0) və `editorial`\n  (v1.3.0) yox idi** — seçici əl ilə yazılıb və generatordan qidalanmır, ona\n  görə yeni skinlər ora avtomatik düşmür. 9 səhifənin hamısına əlavə edildi.\n- `Template/preview/preview.js` → `SKINS` ağ siyahısı da 6 elementli idi:\n  `localStorage`-da `apple` saxlansaydı belə, yoxlama onu `neutral-pro`-ya\n  qaytarardı. Bu, seçici düzəlsə də skinin «yapışmamasına» səbəb olacaqdı.\n\n### Dəyişdi\n- `Template/README.md` — `6 skin × 2 tema` → `8 skin × 2 tema` (12 → 16 variant),\n  `Template/01-arasdirma-ui-ux-audit.md`, `Template/02-design-system-template.md`\n  faktiki skin sayı yeniləndi.\n\n### Sənədləşdirildi (yeni qüsur DEYİL)\n- ⚠️ **Fluid tipoqrafiyalı skinlər sıx panellərdə dar ekranda sətir qırır.**\n  1024px-də KPI kartındakı `284 610 ₼` valyuta işarəsi alt sətrə düşür.\n  Ölçmə: `editorial` VƏ `signal` eyni davranır → bu, `clamp()` işlədən bütün\n  skinlərin (`signal`, `atelier`, `nocturne`, `editorial`) mövcud xüsusiyyətidir,\n  `editorial` əlavə edilməsi ilə YARANMAYIB. Panel sınmır, üfüqi daşma yoxdur.\n  `Template/README.md`-yə xəbərdarlıq bloku yazıldı; qayda dəyişmir:\n  app/dashboard tərəfdə `fluid: false` skinlər (`neutral-pro`, `clinical`,\n  `industrial`, `apple`) istifadə olunur.\n\n### Sübut\n- Vizual: `out/qa-tpl-editorial.png`, `out/qa-tpl-apple.png` (1400px, seçici\n  işləyir, skin tətbiq olunur), `out/qa-tpl-editorial-1024.png` +\n  `out/qa-tpl-signal-1024.png` (dar ekran müqayisəsi)\n- 9/9 fayl: `grep -c 'value=\"editorial\"' Template/preview/*.html`"
      },
      {
        "version": "1.4.0",
        "date": "2026-08-23",
        "title": "`independent-journal` template + preview animasiya qüsuru",
        "body_md": "### Əlavə edildi\n- **`templates/web-landing/independent-journal`** — `editorial` skin-inin ilk\n  template-i, kitabxanada 32-ci. Sahə: nəşr / müstəqil jurnal (əvvəlki 11\n  landing template-inin heç biri oxucu abunəsi ilə yaşayan nəşr deyildi).\n- Bloklar: `header-nav` + `hero-centered` + `features` + `testimonials` +\n  `pricing` + `faq` + `cta` + `footer` (8 blok, light rejim).\n\n### Düzəldildi\n- 🔴 **Preview şəkilləri animasiyanın ORTASINDA çəkilirdi.** `hero-centered`\n  blokunun giriş animasiyası `opacity: 0`-dan başlayır; `__actions` 140 ms,\n  `__note` 200 ms gecikmə ilə açılır. Çəkiliş şərti yalnız\n  «şrift hazırdır + bir kadr» idi, ona görə kadr animasiya bitmədən düşürdü:\n  **CTA düyməsi preview-da TAMAMİLƏ GÖRÜNMÜRDÜ**, alt yazı solğun çıxırdı.\n  - Kök səbəb v1.2.0-da yaranıb və qalereyaya da düşüb: `device-launch`\n    preview-unda «Sifariş et» düyməsi yox idi. Qüsur yeni template\n    hazırlanarkən aşkarlandı.\n  - Düzəliş: `sections_lib.settle()` indi BİTƏN animasiyaları da gözləyir\n    (`document.getAnimations()` → `finished`). Sonsuz dövrlü animasiyalar\n    (spinner, pulsasiya) filtrlə kənarlaşdırılır, üstəlik 3 saniyəlik sığorta\n    həddi var — heç bir sabit `sleep` əlavə edilmədi.\n  - Bütün 32 template + 30 section preview-u yenidən çəkildi.\n\n### Dəyişdi\n- `settle()` ARTIQ TƏK NÜSXƏDƏDİR (`scripts/sections_lib.py`).\n  Əvvəl eyni JS həm `build-previews.py`-də, həm `build-template-previews.py`-də\n  təkrarlanırdı — məhz bu təkrar qüsurun iki yerdə yaşamasına səbəb olmuşdu.\n- `templates/README.md` — template cədvəlinə yeni sətir + `hero-centered`\n  seçiminin üçüncü əsaslandırması.\n- `README.md` 31 → 32 template; qlobal `CLAUDE.md` + `section-library` skill\n  30 → 32 template (12 `web-landing`).\n\n### Əsas qərarlar\n- **`hero-centered` seçildi, `hero-split` YOX.** Bu, blokun üçüncü\n  əsaslandırılmış istifadəsidir və səbəbi əvvəlki ikisindən fərqlidir:\n  `hero-split` şəkil sütunu tələb edir, rəngli foto isə `editorial` skin-inin\n  bütün iddiasını (C=0) səhifənin İLK ekranında pozardı. Şəkilsizlik burada\n  kompozisiya seçimi deyil, **skinin şərtidir**.\n- **`stats` və `logo-wall` YOXDUR** — müstəqil nəşr uydurma abunə sayı və ya\n  başqasının logosu ilə özünü təsdiqləmir; üstəlik blokdakı «Göstəricilər\n  nümunə üçündür» qeydi nəşrin öz dürüstlük iddiası ilə toqquşurdu.\n- **`pricing` DAXİL EDİLDİ** — abunə bu nəşrin yeganə gəlir mənbəyidir,\n  gizlətmək dürüstlük problemi olardı (`event-conference` bilet\n  əsaslandırması ilə eyni məntiq).\n- **Şəkil etiketli placeholder-dir**, stok foto deyil — kitabxana konvensiyası\n  (`placehold.co/...?text=Foto:+redaksiya+masasi`), üstəlik boz placeholder\n  axromatik skin ilə təbii uyuşur.\n\n### Sübut\n- `npm run templates:validate` → 32/32 PASS\n- `npm run gate:f6` → registry sinxron (32 template)\n- `npm run gate:f2` → 30 section PASS\n- `npm run overflow:audit` → 375px 30/30 · 1440px 30/30 PASS\n- Vizual: `templates/web-landing/independent-journal/preview.png` (1440px),\n  `out/qa-journal-375.png` (mobil), `device-launch/preview.png` (düzəliş sübutu)"
      },
      {
        "version": "1.3.0",
        "date": "2026-08-23",
        "title": "8-ci skin: `editorial` (axromatik)",
        "body_md": "> Mənbə: `github.com/marvkr/better-design` (MIT) — `registry/*/globals.json`\n> OKLCH dəyərləri. MCP serveri kimi QOŞULMADI (məzmun onların uzaq serverində,\n> API açarı tələb edir); yalnız token dəyərləri çıxarılıb resept sisteminə köçürüldü.\n\n> **⚠️ Commit izi:** bu versiyanın BÜTÜN dəyişiklikləri `b3bb29b` commit-inə\n> daxildir — mesajı isə «Preview refaktoru: ~2.7x suretlenme + deterministik\n> render»dir və `editorial` skinindən söz açmır. Səbəb: eyni repo üzərində\n> paralel sessiya işləyirdi; mənim fayllarım index-də dayanarkən o sessiya\n> `git commit` işlətdi və ortaq index-i (öz preview refaktoru + bu skin)\n> birlikdə götürdü. Heç nə itmədi, bütün gate-lər PASS. Commit `--amend`\n> EDİLMƏDİ: tarixçəni dəyişdirmək qadağandır (`CLAUDE.md`) və commit başqa\n> sessiyaya aiddir. Bu skinin dəyişikliklərini axtaran şəxs `b3bb29b`-yə\n> baxmalıdır — `git show b3bb29b -- tokens/ DESIGN.md`.\n\n### Əlavə edildi\n- **`editorial` skin** (register `editorial`, strategiya `achromatic`) —\n  `tokens/skin-recipes.json`-da resept, `make-skin.py` ilə 38 rol × 2 rejim.\n  Doldurduğu boşluq: mövcud 7 skinin **hamısında `primary` rənglidir**\n  (clinical H200, industrial C0.016, nocturne H190, atelier H45, apple H256).\n  Brend rəngi OLMAYAN skin yox idi — «rəngsiz müştəri» üçün cavabımız yox idi.\n- `tokens/specimen-editorial-{light,dark}.html` + birləşdirilmiş `specimen.html`\n  (14 → 16 panel).\n- `out/skin-editorial-{light,dark}.png` — vizual sübut.\n\n### Əsas qərarlar\n- **`primary` və `accent` C = 0.** Fərq yalnız açıqlıqdadır (light: primary\n  L0.30 / accent L0.55; dark: L0.965 / L0.72). Xromatik primary rədd edildi —\n  skinin yeganə mövcudluq səbəbi budur; rəng əlavə etmək onu `neutral-pro`-nun\n  solğun nüsxəsinə çevirərdi.\n- **Rəng yalnız vəziyyət siqnalıdır** — success/warning/danger/info xromatik\n  qalır. Səhifədə görünən yeganə rəng nöqtəsi budur.\n- **Neytral tam saf deyil** — H285, `neutral_c` 0.003 (light) / 0.005 (dark).\n  Saf boz (C=0) rədd edildi: mənbə dəyərlərində zəif soyuq çalar var, «kağız»\n  hissini o verir.\n- **Ayırma kölgə ilə deyil, xətlə** — `sep` 1.5 (kitabxanada ən yüksək),\n  kölgələr demək olar şəffaf (0.06/0.10/0.14 alfa). Radius kiçikdir\n  (0.25/0.375/0.5rem) — çap hissi.\n- **Oxu ritmi** — `base` 1.0625rem (17px), `leading.normal` 1.75, nisbət 1.333.\n  Ölçü vahidi ekran deyil, oxu müddətidir.\n- **Serif display rədd edildi** — bazamızda serif yoxdur, yeni şrift yükləmək\n  bu skinin xərcini 3 dəfə artırardı. ⚠️ Nəticədə display şrifti `nocturne` ilə\n  PAYLAŞILIR (Unbounded) — ayırma yükü axromatiklik + gövdə ritmi üzərindədir.\n- **Ad qarışıqlığı sənədləşdirildi** — `DESIGN.md`-də `warm-editorial` adlı skin\n  əvvəllər RƏDD EDİLİB (isti krem fon + serif/kursiv/xətli sütun). Yeni\n  `editorial` hər iki səbəbdən kənardadır; `DESIGN.md`-yə açıq izah bloku\n  əlavə edildi. Ad dəyişdirilə bilər (`broadsheet`/`graphite`).\n\n### Dəyişdi\n- `DESIGN.md` — skin cədvəli 7 → 8, «Yeddi skin» → «Səkkiz skin»,\n  `warm-editorial` qadağası ilə uzlaşdırma bloku.\n- `README.md`, `PRODUCT.md` — skin sayı 7 → 8.\n- Qlobal `CLAUDE.md` + `section-library` skill — skin siyahısı yeniləndi.\n\n### ⚠️ Sınma riski / miqrasiya\n- Yoxdur. Dəyişiklik yalnız əlavədir: mövcud 7 skinin heç bir dəyəri dəyişməyib\n  (`make-skin.py` çıxışı: clinical/industrial/atelier/nocturne 0 addım köklənmə).\n\n### Sübut\n- `make-skin.py` → `editorial/light` 33/33 (5 addım), `editorial/dark` 33/33 (0 addım)\n- `npm run gate:f1` → 8 skin · 528 kontrast cütü · PASS\n- `npm run gate:f2` → 30 section PASS, registry sinxron\n- `npm run overflow:audit` → 375px 30/30 PASS · 1440px 30/30 PASS\n- Vizual: `out/skin-editorial-{light,dark}.png` (əl ilə baxıldı)\n\n### Bilinən boşluq (bu buraxılışda həll EDİLMƏDİ)\n- `Template/preview/*.html` skin seçicisi hələ 6 skinlidir — `apple` (v1.2.0)\n  və `editorial` orada YOXDUR. Bu, əl ilə yazılmış ayrıca sənəd dəstidir,\n  generatordan qidalanmır. Ayrıca tapşırıq kimi qalır."
      },
      {
        "version": "1.2.0",
        "date": "2026-08-23",
        "title": "7-ci skin: `apple`",
        "body_md": "> Mənbə: `github.com/naplesblue/apple-design-skill` (MIT). Skill kimi\n> quraşdırılmadı — dəyərləri çıxarılıb bizim resept sisteminə köçürüldü.\n\n### Əlavə edildi\n- **`apple` skin** (register `premium`, strategiya `reductive`) —\n  `tokens/skin-recipes.json`-da resept, `scripts/make-skin.py` ilə 38 rol × 2 rejim.\n  Kitabxanada olmayan boşluğu doldurur: mövcud 6 skin-in heç birində «boz yer +\n  saf ağ ada» qrammatikası yox idi (`clinical` steril, `atelier` redaksiya,\n  `nocturne` tünd-first, qalanı bg≈surface düz səth).\n- `tokens/specimen-apple-{light,dark}.html` + birləşdirilmiş `specimen.html`\n  (12 → 14 panel).\n\n### Əsas qərarlar\n- **Fon ağ DEYİL.** `light.bg = 0.971` (#f5f5f7 soyuq boz), `surface = 1.0`.\n  Bu skinin bütün ideyası budur: qat fərqi rənglə yox, ağlığın özü ilə doğulur.\n  `bg = 1.0` versiyası rədd edildi — fon ilə kartın eyni ağ olması estetikanı öldürür.\n- **Neytral soyuqdur** — H 286 (Apple palitrasından ölçülmüş), C ≈ 0.004.\n  İsti/krem boz (H≈60) rədd edildi.\n- **Tünd rejim qara deyil** — `dark.bg = 0.235` (#1e1e1e macOS pəncərəsi),\n  `surface = 0.29` (#2c2c2e vərəq). OLED-qara (L≤0.17) rədd edildi: həm `nocturne`\n  ilə eyniləşirdi, həm Apple-in öz tünd rejimi elə deyil.\n- **Kölgə iki qatlıdır** (sıx təmas + yumşaq yayılma) — tək sərt kölgə bu skində yoxdur.\n- **Fluid tipoqrafiya (clamp) rədd edildi** — `signal` məhz buna görə app\n  template-lərində qadağandır; `apple` eyni tələyə salınmadı (`fluid: false`).\n- **SF Pro rədd edildi** (lisenziya + AZ/RU natamam), `system-ui` də rədd edildi\n  (render deterministik olmur). Commissioner saxlanıldı — Apple hissi şriftdən yox,\n  boşluq + boz ton + kölgə qrammatikasından gəlir. ⚠️ Bu, mənbənin ən böyük güzəştidir.\n\n### Əlavə edildi (davamı)\n- **`templates/web-landing/device-launch`** - `apple` skin-inin ilk template-i,\n  kitabxanada 31-ci. Sahə: cihaz / premium aparat məhsulu (əvvəlki 10 landing\n  template-inin heç biri fiziki məhsul satmırdı).\n- Bloklar: `header-nav` + `hero-centered` + `features` + `stats` + `testimonials`\n  + `pricing` + `cta` + `footer`.\n\n### Template qərarları\n- `hero-centered` seçildi, `hero-split` YOX: aparat məhsulunda diqqət tək obyektdə\n  mərkəzləşir, iki sütunlu bölgü onu parçalayır.\n- `faq` YOX, `logo-wall` YOX - restraint registri. Premium məhsul özünü başqasının\n  logosu ilə təsdiqləmir, cihaz səhifəsi sual siyahısı ilə yüklənmir.\n- `testimonials` saxlanıldı, amma **müştəri rəyi kimi yox, mətbuat sitatı kimi**\n  dolduruldu - bu registrdə sosial sübut mətbuatdan gəlir.\n- CTA bütün nöqtələrdə eynidir: `Sifariş et` (header + hero + pricing + cta).\n- Naviqasiya lövbərləri real blok id-lərinə bağlandı (`#features`, `#stats`,\n  `#testimonials`, `#pricing`) - scaffold-dakı `#imkanlar`/`#suallar` boş lövbər idi.\n\n### Düzəldildi\n- Generasiya olunan səhifələrin `<title>`-ında köhnə layihə adı qalmışdı:\n  `Readdy token nümunəsi` → `Agent.Designer token nümunəsi`\n  (`scripts/build-specimen.py`), `Template qalereyası — Readdy` →\n  `— Agent.Designer` (`scripts/build-gallery.py`). Ad `Readdy → UiUxDesigner →\n  Agent.Designer` köçürmələrində generatorlarda yenilənməmişdi — brauzer\n  tabında və əlfəcində hələ də silinmiş ad görünürdü.\n\n### ⚠️ Sınma riski / miqrasiya\n- Yoxdur. Dəyişiklik yalnız əlavədir: mövcud 6 skinin heç bir dəyəri dəyişməyib\n  (`tokens.json` diff-i 440 sətir, hamısı insertion). Section meta-larına `apple`\n  ƏLAVƏ EDİLMƏYİB — `clinical`/`industrial`/`atelier`/`nocturne` ilə eyni model:\n  skin token qatında yaşayır, section-lar bazis iki skini bəyan edir.\n\n### Yoxlama sübutu\n- `make-skin.py --skin apple` → light 33/33 (3 addım köklənmə), dark 33/33 (20 addım)\n- `validate-tokens.py` → 7 skin · 462 kontrast cütü · PASS\n- `gate:f1` / `gate:f2` / `gate:f6` → PASS · `overflow:audit` 375+1440 → 30/30 PASS\n- `validate-templates.py` → 31/31 PASS (device-launch daxil)\n- Template vizual: `out/device-launch-full.png` (1440px, tam səhifə) +\n  `out/device-launch-375.png` (mobil, daşma yoxdur)\n- Vizual: `out/specimen-apple-{light,dark}.png`, `out/composition-apple-light.png`\n  (app-shell + dashboard + filters + data-table real kompozisiyası)\n\n---"
      },
      {
        "version": "0.5.0",
        "date": "2026-08-17",
        "title": "F4: `section-library` skill + ekosistem inteqrasiyası",
        "body_md": "### Əlavə edildi\n- `section-library` skil-i (`D:\\Workspace\\Root\\Shared\\.claude\\skills\\section-library\\SKILL.md`):\n  24 section-luq kitabxananın istifadə protokolu — registry axtarışı, qərar\n  ağacı (kopyala vs yarat), skin seçimi, screenshot/audit dövrü, `candidates/`\n  tərfiə axını. hr-evaluate ilə **96/100 (Platinum)** — ilk cəhddə keçdi.\n- `candidates/README.md` + `candidates/{landing,app}/` — kitabxanaya namizəd\n  yeni section-ların tərfiə protokolu (2+ layihədə istifadə həddi).\n\n### Dəyişdi\n- `ui-standards.md`-yə \"🔴 ƏVVƏLCƏ YOXLA: section-library\" bölməsi əlavə\n  edildi — generic Tailwind qaydalarına keçmədən əvvəl kitabxana yoxlanılır.\n- 🔴 **Qlobal CLAUDE.md dəyişdirildi (istifadəçi təsdiqi ilə)**: başlıq\n  pointer sətri + POINTER CƏDVƏLİ-nə `section-library` sətri əlavə edildi.\n  Backup: `D:/Workspace/Root/Backup/backup-2026-08-17-claude-md-section-library/`.\n\n### Yoxlama sübutu\n- hr-evaluate composite: **96/100 (Platinum)** — D1 10/10, D2 9/10, D3 10/10,\n  D4 10/10, D5 9/10; ≥70 gate-i ilk cəhddə keçdi, `--improve` lazım olmadı.\n- Skill Skill tool siyahısında görünür (registrasiya təsdiqi) — çağırıla\n  bilmə testi keçdi.\n- CLAUDE.md dəyişikliyi backup qaydasına uyğun aparıldı (redaktədən əvvəl\n  nüsxə çıxarıldı)."
      },
      {
        "version": "0.4.0",
        "date": "2026-08-17",
        "title": "F3: App dəsti (12 section) + kompozisiya sınağı",
        "body_md": "### Əlavə edildi\n- **12 app section** (`sections/app/`), product register (`Skill: impeccable`\n  əsas götürülüb — `design-taste-frontend` bu bloqları \"OUT OF SCOPE\" elan\n  edir): app-shell, auth, dashboard-cards, data-table, filters-bar,\n  form-layout, detail-view, settings-page, empty-state, modal, toast, wizard.\n  **12 fərqli layout ailəsi** (F2-dəkindən tamamilə ayrı).\n- `scripts/build-composition-test.py`: F3-ə xas gate — `app-shell`-in\n  `<main>` sahəsinə `dashboard-cards` + `filters-bar` + `data-table`\n  yerləşdirilir, tam səhifə kimi render olunur, hər 2 skin × 2 rejimdə\n  vizual sübut yaradılır (`out/composition-*.png`).\n\n### Dəyişdi\n- `audit-overflow.py`: daxili scroll konteynerinin (`overflow-x: auto`)\n  İÇİNDƏKİ məzmun daşması artıq bug sayılmır (standart mobil cədvəl naxışı\n  — `data-table` 7 sütunla 375px-də daxili üfüqi scroll edir, bu QANUNİDİR).\n  Konteynerin ÖZÜ hələ də sərt yoxlanılır.\n- `validate-sections.py`: struktur qaydasına `main` və (yalnız kompozit\n  qabıqlar üçün) `div` əlavə edildi — `auth` səhifəsi `<main>`, `app-shell`\n  daxilində öz `aside/header/main` landmark-ları olduğu üçün `<div>` qalır.\n- `sections_lib.py`: sinif-drift aşkarlanması JSX-də `className={ternary}`\n  daxilindəki hər hansı string literalını (nə className= prefiksindən asılı\n  olmayaraq) tanıyacaq şəkildə genişləndirildi.\n\n### Düzəldildi\n- `wizard`-da `01/02/03` nömrələnməsi **qəsdən** saxlanıldı — bu,\n  design-taste-frontend-in nömrələnmiş bölmə markeri qadağasının rəsmi\n  istisnasıdır (real ardıcıllıq, sıra məlumat daşıyır). Digər 23 section-da\n  nömrələmə yoxdur.\n\n### 🔴 Modal siyasəti (frontend-modal-policy.md)\n- `modal` section-u native `<dialog>` üzərində: backdrop scrim-də `onClick`\n  YOXDUR, `cancel` hadisəsi (ESC) `preventDefault()` ilə bloklanır. Yalnız\n  X düyməsi, \"Ləğv et\" və proqramatik təsdiq bağlaya bilər.\n\n### Yoxlama sübutu\n- `python scripts/validate-sections.py` → **PASS** (24/24 section, landing+app).\n- `python scripts/build-registry.py --check` → **PASS**.\n- `python scripts/audit-overflow.py --width 375` və `--width 1440` →\n  **48/48 PASS** (24 section × 2 viewport).\n- **F3 kompozisiya sınağı**: `app-shell` + 3 app section bir yerdə render\n  edildi, hər 2 skin × 2 rejimdə vizual yoxlanıldı — token ardıcıllığı,\n  spacing və z-index toqquşması yoxdur (`out/composition-*.png`)."
      },
      {
        "version": "0.3.0",
        "date": "2026-08-17",
        "title": "F2: Landing dəsti (12 section)",
        "body_md": "### Əlavə edildi\n- **12 landing section** (`sections/landing/`), hər biri react (`index.tsx`) +\n  statik (`index.html`) + `section.css` + `meta.json` + `preview.png`:\n  header-nav, hero-split, logo-wall, hero-centered, features, stats, pricing,\n  testimonials, faq, cta, contact-form, footer. **12 fərqli layout ailəsi**\n  (design-taste-frontend qaydası: eyni ailə səhifədə 1 dəfə).\n- **Section infrastrukturu**: `sections_lib.py` (ortaq köməkçilər),\n  `validate-sections.py` (meta tamlığı + hardcode rəng/px + HTML↔TSX sinif\n  drifti + em-dash qadağası + `alt` tələbi + preview mövcudluğu),\n  `build-previews.py` (fragment → tam səhifə → screenshot),\n  `build-registry.py` (→ `registry.json`, tag/set/layout indeksi),\n  `audit-overflow.py` (üfüqi daşma auditi, ölçülmüş sübutla).\n- `assets/icons/` + `fetch-icons.py`: 11 Phosphor ikonu (əl ilə SVG çəkmək\n  qadağandır — rəsmi kitabxanadan endirilir).\n- `assets/fonts/` + `fetch-fonts.py`: şriftlər layihədə saxlanılır (self-host).\n\n### Dəyişdi\n- 🔴 **Şriftlər Google Fonts CDN-dən layihəyə köçürüldü** (`tokens/fonts.css`,\n  420 KB). Kök səbəb: `@import url(fonts.googleapis.com)` istehsalatda\n  qadağandır (məxfilik/LCP) və render zamanı CDN gecikməsi screenshot-ları\n  şriftsiz çıxarırdı (qeyri-deterministik sübut).\n- `hero-split` başlığı 4 sətirdən 2 sətrə endirildi (hero disiplini: maks 2\n  sətir) — ilkin mətn `signal` skin-in geniş Unbounded şriftində daşırdı.\n\n### Düzəldildi\n- 🔴 **Headless Chrome bu maşında ~524px-dən aşağı pəncərə eni qəbul etmir**\n  (Windows OS-səviyyəli minimum, `--window-size` ilə keçilmir). Kök səbəb:\n  bütün \"mobil\" (375px) screenshot-lar səssizcə ~500-576px enində render\n  olunurdu — nəticədə `header-nav`-ın hamburger düyməsi kətandan kənarda\n  qalırdı, amma bu heç bir xəta vermirdi. Aşkarlanma: ölçülmüş daşma auditi\n  (`audit-overflow.py`) header-nav-ı FAIL kimi işarələdi, sıfırdan debug\n  DOM-rect dump-ı ilə kök səbəb tapıldı. Düzəliş: `screenshot.py` hədəfi\n  iframe-ə sarır (iframe eni pəncərədən asılı deyil) və şəkli iframe sahəsinə\n  kəsir — pəncərə ölçüsü məhdudiyyətini tamamilə keçir.\n- `screenshot.py`-də \"boş render\" aşkarlanması bayt-ölçüsü həddindən piksel\n  diapazonuna keçirildi — köhnə həd seyrək məzmunlu (məs. hündür kanvasda\n  qısa header) düzgün render-ləri yalançı \"boş\" sayırdı.\n- `sections_lib.py` sinif-drift aşkarlanması TSX-də `className={...}`,\n  `{className: \"...\"}` və şablon literalları tanımırdı — HTML↔TSX yoxlaması\n  bütün 12 section-da yanlış müsbət verirdi, indi düzəldi.\n\n### Yoxlama sübutu\n- `python scripts/validate-sections.py` → **PASS** (12/12 section).\n- `python scripts/build-registry.py --check` → **PASS**.\n- `python scripts/audit-overflow.py --width 375` və `--width 1440` → **24/24\n  PASS** (12 section × 2 viewport, ölçülmüş `scrollWidth`).\n- Screenshot: `out/sections/*.png` (hər section × 2 skin × 2 rejim + mobil,\n  60 fayl) — vizual yoxlanıldı, AZ hərfləri düzgün, mobil hamburger kətanda."
      },
      {
        "version": "0.2.0",
        "date": "2026-08-17",
        "title": "F1: Design Tokens + infra",
        "body_md": "### Əlavə edildi\n- **Token mənbəyi** `tokens/tokens.json`: 2 skin × 2 rejim, 38 semantik rəng\n  rolu, OKLCH formatında. Primitivlər: 17 boşluq pilləsi, semantik z-index\n  şkalası, 6 müddət, 4 easing, konteyner enləri, breakpoint-lər.\n- **Generator** `scripts/generate-tokens.py` → `tokens.css` (CSS dəyişənləri +\n  baza qatı), `tailwind-preset.js` (TW3), `tailwind4-theme.css` (TW4 `@theme`).\n  `--check` rejimi generasiya olunan faylların köhnəlməsini tutur.\n- **Keyfiyyət qapısı** `scripts/validate-tokens.py`: 132 kontrast cütünü WCAG\n  2.1 üzrə ölçür, 38 rolun tamlığını, sRGB qamutunu və şkala nisbətini yoxlayır.\n  `--fix-gamut` qamutdan kənar rənglərin xromasını avtomatik sığdırır.\n- **Şrift yoxlayıcısı** `scripts/check-fonts.py`: Google Fonts-dan woff2\n  subset-lərini çəkib cmap cədvəlini oxuyur, AZ (`əƏğĞıİöÖşŞüÜçÇ`) və RU\n  qliflərinin mövcudluğunu təsdiqləyir.\n- **Render helper** `scripts/screenshot.py` (headless Chrome) və\n  `scripts/color.py` (OKLCH→sRGB, WCAG kontrast, qamut sığdırma — asılılıqsız).\n- **Nümunə səhifə** `scripts/build-specimen.py` → hər skin/rejim üçün rəng\n  cədvəli, ÖLÇÜLMÜŞ kontrast nisbətləri, AZ hərf yoxlaması, komponent nümunələri.\n- `PRODUCT.md` + `DESIGN.md` (impeccable layihə konteksti), `package.json`.\n\n### Dəyişdi\n- 🔴 **İkinci skin `warm-editorial` → `signal` adlandırıldı və yenidən dizayn\n  edildi.** Kök səbəb: TZ v1.0-dakı istiqamət iki qadağaya düşürdü — (1) isti\n  krem/bej fon 2026-nın ən doymuş AI defoltudur, (2) \"editorial\" (display serif\n  + kursiv + mono etiket) reflex-reject estetik zolağıdır. Yəni kitabxana\n  slop-dan qaçmaq üçün qurulurkən özü slop istehsal edəcəkdi. Əvəzinə skinlər\n  commitment oxunda ayrıldı: `neutral-pro` (restrained, product) vs `signal`\n  (committed kobalt + isti kəhrəba siqnal aksenti, brand).\n- Şrift dəsti TZ-dəki namizədlərdən dəyişdi: TZ \"Sora/Source Serif, Space\n  Grotesk/IBM Plex\" təklif edirdi — Space Grotesk və IBM Plex reflex-reject\n  siyahısındadır. Seçilən: Commissioner + Unbounded + JetBrains Mono.\n\n### İstifadəçiyə təsir\n- Artıq işlək token qatı var: `tokens/tokens.css` import edib\n  `data-skin` / `data-theme` atributları ilə 4 vizual variant alınır.\n- Section yazarkən hardcode rəng/px lazım deyil — 38 semantik rol hazırdır.\n\n### ⚠️ Sınma riski / miqrasiya\n- Yoxdur (ilk işlək buraxılış). `tokens/*.css` və `tailwind-preset.js`\n  GENERASİYA olunur — əl ilə redaktə edilsə növbəti `tokens:build` silir.\n\n### Yoxlama sübutu\n- `python scripts/validate-tokens.py` → **PASS** (132 kontrast cütü, 38 rol,\n  2 skin × 2 rejim, qamut təmiz).\n- `python scripts/generate-tokens.py --check` → **PASS** (fayllar sinxron).\n- `python scripts/check-fonts.py` → 30 namizəddən 21-i AZ testini keçdi;\n  seçilən 3 şriftin hamısı AZ+RU tam.\n- Screenshot: `out/{neutral-pro,signal}-{light,dark}.png` (1440×2700, hər biri\n  ~220-260 KB) — AZ hərfləri vizual təsdiqləndi, ölçülmüş kontrast cədvəlində\n  bütün sətirlər PASS."
      },
      {
        "version": "0.1.0",
        "date": "2026-08-17",
        "title": "",
        "body_md": "### Əlavə edildi\n- Layihə təsis edildi: readdy.ai araşdırması aparıldı, nəticə — keyfiyyətin\n  mənbəyi kurasiya olunmuş şablon bazası və sabit dizayn sistemidir; bizim\n  ekosistemdə bu qat yox idi.\n- Tam sənəd paketi: araşdırma (`docs/arasdirma-readdy.md`), texniki tapşırıq\n  (`docs/texniki-tapsiriq.md` v1.0), icra planı (`docs/icra-plani.md`, F0-F6),\n  crew strukturu, README.\n- Sessiya davamlılığı üçün `session-notes.md`.\n\n### İstifadəçiyə təsir\n- Hələ işlək kod yoxdur — bu, planlaşdırma buraxılışıdır. Növbəti sessiya F1-dən\n  (design tokens) başlayır.\n\n### Yoxlama sübutu\n- Sənədlər yazıldı və PDF-ləri yaradıldı (md2pdf), ölçülər `ls -lh` ilə yoxlanıldı."
      }
    ]
  },
  "templates": {
    "templates/web-landing/clinic": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "1b1502d",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 2: web landing template-leri (5 sahe, templates/ qati)"
        }
      ]
    },
    "templates/web-landing/cybersecurity-firm": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        }
      ]
    },
    "templates/web-landing/device-launch": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "5c9d3c4",
          "date": "2026-08-23",
          "subject": "Template 31: device-launch (apple skin-inin ilk template-i)"
        }
      ]
    },
    "templates/web-landing/ecommerce-store": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/web-landing/education-course": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/web-landing/erp-b2b": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "1b1502d",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 2: web landing template-leri (5 sahe, templates/ qati)"
        }
      ]
    },
    "templates/web-landing/event-conference": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/web-landing/fintech-app": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/web-landing/gov-eservices": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        }
      ]
    },
    "templates/web-landing/independent-journal": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 3,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        }
      ]
    },
    "templates/web-landing/it-outsourcing": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        }
      ]
    },
    "templates/web-landing/legal-firm": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/web-landing/open-source-tool": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 3,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "68a7279",
          "date": "2026-08-23",
          "subject": "Template 33: open-source-tool (editorial skin-inin ikinci template-i, dark rejim)"
        }
      ]
    },
    "templates/web-landing/restaurant": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "1b1502d",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 2: web landing template-leri (5 sahe, templates/ qati)"
        }
      ]
    },
    "templates/web-landing/saas-product": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "1b1502d",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 2: web landing template-leri (5 sahe, templates/ qati)"
        }
      ]
    },
    "templates/web-landing/studio-portfolio": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "2b50fbf",
          "date": "2026-08-23",
          "subject": "Template 32: independent-journal (editorial skin-inin ilk template-i) + preview animasiya qusurunun duzelisi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "1b1502d",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 2: web landing template-leri (5 sahe, templates/ qati)"
        }
      ]
    },
    "templates/web-landing/wholesale-trade": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        }
      ]
    },
    "templates/app/accounting-ledger": {
      "created": "2026-09-04",
      "updated": "2026-10-12",
      "commits": 7,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "84bf9de",
          "date": "2026-09-04",
          "subject": "v1.9.0: app-shell-rail (ikiqat sidebar) + choice-grid bloku + accounting-setup sablonu (APP-12); ledger-widgets toolbar/tab, bildiris sayğaci"
        },
        {
          "hash": "ad223c5",
          "date": "2026-09-04",
          "subject": "v1.8.0: ledger skini (Akaunting 3.0 vizual dili: indiqo, lavanda, yasil CTA, Nunito) + accounting-ledger sablonu bu skine kecdi"
        },
        {
          "hash": "603a985",
          "date": "2026-09-04",
          "subject": "v1.7.0: Akaunting 3.0 oxunusu - 3 maliyye bloku (ledger-widgets, ledger-table, report-pins) + accounting-ledger template (APP-11)"
        }
      ]
    },
    "templates/app/accounting-setup": {
      "created": "2026-09-04",
      "updated": "2026-09-09",
      "commits": 4,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "84bf9de",
          "date": "2026-09-04",
          "subject": "v1.9.0: app-shell-rail (ikiqat sidebar) + choice-grid bloku + accounting-setup sablonu (APP-12); ledger-widgets toolbar/tab, bildiris sayğaci"
        }
      ]
    },
    "templates/app/analytics-admin": {
      "created": "2026-08-17",
      "updated": "2026-10-11",
      "commits": 7,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "dcc5cb2",
          "date": "2026-08-17",
          "subject": "Faza 3: app/dashboard template-leri (4 sahe, app-shell kompozisiyasi)"
        }
      ]
    },
    "templates/app/auth-login": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 4,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "dcc5cb2",
          "date": "2026-08-17",
          "subject": "Faza 3: app/dashboard template-leri (4 sahe, app-shell kompozisiyasi)"
        }
      ]
    },
    "templates/app/auth-split-login": {
      "created": "2026-09-08",
      "updated": "2026-09-09",
      "commits": 3,
      "version": "1.20.0",
      "history": [
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "9271b2c",
          "date": "2026-09-08",
          "subject": "v1.14.0: auth-split - aciq/tund rejim keçidi"
        },
        {
          "hash": "44b2875",
          "date": "2026-09-08",
          "subject": "v1.13.0: auth-split - ev standarti giris ekrani (butun layihelerde defolt)"
        }
      ]
    },
    "templates/app/component-showcase": {
      "created": "2026-08-18",
      "updated": "2026-10-11",
      "commits": 6,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/app/confirm-flow": {
      "created": "2026-08-18",
      "updated": "2026-10-11",
      "commits": 6,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/app/onboarding-wizard": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/app/ops-dashboard": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "dcc5cb2",
          "date": "2026-08-17",
          "subject": "Faza 3: app/dashboard template-leri (4 sahe, app-shell kompozisiyasi)"
        }
      ]
    },
    "templates/app/record-detail": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/app/search-results": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/app/settings-account": {
      "created": "2026-08-17",
      "updated": "2026-10-11",
      "commits": 7,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/app/warehouse-erp": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "dcc5cb2",
          "date": "2026-08-17",
          "subject": "Faza 3: app/dashboard template-leri (4 sahe, app-shell kompozisiyasi)"
        }
      ]
    },
    "templates/mobile/flutter-bank-transactions": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-bank-wallet": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-budget": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-calendar-agenda": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-chat-list": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-chat-thread": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-education-courses": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-ev-charging": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-fitness-dashboard": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-fitness-workout": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-flights": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-food-home": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-food-menu": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-health-appointment": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-insurance": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-job-search": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-language": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-library": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-medication": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-music-player": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-news-feed": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-notes-list": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-parking": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-pet-care": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-podcast": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-real-estate": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-recipes": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-shop-catalog": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-shop-checkout": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-sleep": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-smart-home": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-sportsystem": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-tasks-board": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-travel-hotel": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-travel-search": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-ui-kit": {
      "created": "2026-09-08",
      "updated": "2026-09-09",
      "commits": 11,
      "version": "1.24.0",
      "history": [
        {
          "hash": "442d35a",
          "date": "2026-09-09",
          "subject": "v1.24.0: flutter-ui-kit (MOB-07) Batch 3 - 5 sablon (32 -> 37)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "f7f57bc",
          "date": "2026-09-09",
          "subject": "v1.17.0: flutter-ui-kit (MOB-07) Batch 2 - 5 sablon (27 -> 32)"
        },
        {
          "hash": "28eba34",
          "date": "2026-09-08",
          "subject": "v1.16.0: flutter-ui-kit (MOB-07) - Batch 1: 5 dizayn-birinci sablon kartlari (budget, sleep, recipes, podcast, flights), 22->27"
        },
        {
          "hash": "50351b1",
          "date": "2026-09-08",
          "subject": "v1.15.1: flutter-ui-kit (MOB-07) - AZ ortuklu shriftler (Onest/Inter/Noto), app 0.5.1+6"
        },
        {
          "hash": "01f77bf",
          "date": "2026-09-08",
          "subject": "v1.15.0: flutter-ui-kit (MOB-07) - Sport System (Summit) 22-ci sablon, qalereya karti + ekran sekilleri"
        },
        {
          "hash": "386df42",
          "date": "2026-09-08",
          "subject": "v1.12.0: flutter-ui-kit (MOB-07) - Agilli ev (Hearth) dizayn-birinci 21-ci sablon, qalereya karti + ekran sekilleri"
        }
      ]
    },
    "templates/mobile/flutter-utilities": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/flutter-weather": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 1,
      "version": "1.28.0",
      "history": [
        {
          "hash": "ab43f1b",
          "date": "2026-09-09",
          "subject": "v1.28.0: 37 Flutter sahe field template.json faylini elave (FLD-01..37)"
        }
      ]
    },
    "templates/mobile/mobile-create": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 5,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/mobile/mobile-feed": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 8,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "e5a6631",
          "date": "2026-08-18",
          "subject": "Optimallashdirma: build-previews.py/build-template-previews.py ~4x suretlendi"
        },
        {
          "hash": "5c411da",
          "date": "2026-08-17",
          "subject": "Fix: card-feed placeholder metni kesilirdi (aspect-ratio + attr height konflikti)"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/mobile/mobile-home": {
      "created": "2026-08-18",
      "updated": "2026-10-12",
      "commits": 6,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/mobile/mobile-list": {
      "created": "2026-08-17",
      "updated": "2026-10-12",
      "commits": 6,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/mobile/mobile-login": {
      "created": "2026-08-18",
      "updated": "2026-09-09",
      "commits": 4,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/mobile/mobile-onboarding": {
      "created": "2026-08-17",
      "updated": "2026-10-12",
      "commits": 7,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "b3bb29b",
          "date": "2026-08-23",
          "subject": "Preview refaktoru: ~2.7x suretlenme + deterministik render"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "74c4906",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 3+4: qalan app template-leri + mobil deste (30 blok, 16 template)"
        }
      ]
    },
    "templates/desktop/admin-console-wide": {
      "created": "2026-08-17",
      "updated": "2026-10-11",
      "commits": 8,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "426c3f3",
          "date": "2026-08-17",
          "subject": "Kompozisiya duzulusu inline stilden templates/layouts.css-e kocuruldu"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "9baa4aa",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 5: desktop (genish ekran) template-leri (3 sahe, sutun cergesi destayi)"
        }
      ]
    },
    "templates/desktop/form-preview-wide": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 7,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "426c3f3",
          "date": "2026-08-17",
          "subject": "Kompozisiya duzulusu inline stilden templates/layouts.css-e kocuruldu"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "9baa4aa",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 5: desktop (genish ekran) template-leri (3 sahe, sutun cergesi destayi)"
        }
      ]
    },
    "templates/desktop/saas-suite": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 2,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "abcf4ae",
          "date": "2026-09-09",
          "subject": "v1.22.0: saas-suite (DSK-06) - SaaS platformasi, butun biznes saheleri bir qabiqda: 12 modul menyusu, modul kataloqu (choice-grid), SaaS metrikalari, tenant siyahisi+karti, tenant sihirbazi, billing paneli, sahe uzre hesabatlar; 42->43"
        }
      ]
    },
    "templates/desktop/settings-detail-wide": {
      "created": "2026-08-18",
      "updated": "2026-10-11",
      "commits": 6,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "d265216",
          "date": "2026-08-18",
          "subject": "Template genisilenmesi: 19 -> 30 (bosluq-yonlu, say-hedefli deyil)"
        }
      ]
    },
    "templates/desktop/workspace-split": {
      "created": "2026-08-17",
      "updated": "2026-09-09",
      "commits": 7,
      "version": "1.23.0",
      "history": [
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "96d5f6a",
          "date": "2026-08-23",
          "subject": "4 yeni sahe template-i (dovlet, tehlukesizlik, IT, ticaret) + butun 37 template-e unikal ID kod sistemi"
        },
        {
          "hash": "426c3f3",
          "date": "2026-08-17",
          "subject": "Kompozisiya duzulusu inline stilden templates/layouts.css-e kocuruldu"
        },
        {
          "hash": "dbc25ba",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 6: template registry + qalereya (19 template, 4 dest)"
        },
        {
          "hash": "9baa4aa",
          "date": "2026-08-17",
          "subject": "Template Factory Faza 5: desktop (genish ekran) template-leri (3 sahe, sutun cergesi destayi)"
        }
      ]
    },
    "templates/desktop/workspace-suite": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 5,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "4a23def",
          "date": "2026-09-09",
          "subject": "v1.23.0: kod revyu - Playwright auditi (audit-templates.py, 43/43 0 tapinti), mobil telefon cercivesi (tpl-mobile-page, Flutter hostElement), h1/daşma/inline-style duzelisleri"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "7bdeb03",
          "date": "2026-09-09",
          "subject": "v1.20.0: ev standarti qati (templates/house) - 8 sert 42 sablonda: versiya+CHANGELOG, (c) OptimaGroup, AZ/EN/RU, palitra+srift (Inter/Onest olculdu, Manrope redd), menyu yigma, ayarlarda saxlama, palitraya uygun aciq/tund; sync-e assets/ elave"
        },
        {
          "hash": "fc26733",
          "date": "2026-09-09",
          "subject": "v1.19.0: workspace-suite (DSK-05) - butun tetbiq saheleri bir qabiqda + palitra paneli (9 skin, tema, ref-kanban DS, ferdi brend rengi, atribut kopyalama), 41->42"
        }
      ]
    },
    "templates/saas/accounting-cloud": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 4,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "215058b",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - accounting-cloud, project-management, lms-education, exam-testing (T05)"
        }
      ]
    },
    "templates/saas/agro-farm": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f7b9e8d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - auto-service, construction-pm, agro-farm, gov-eservices-admin (T10)"
        }
      ]
    },
    "templates/saas/auto-service": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f7b9e8d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - auto-service, construction-pm, agro-farm, gov-eservices-admin (T10)"
        }
      ]
    },
    "templates/saas/beauty-booking": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f3b28c1",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - marketing-automation, event-ticketing, fitness-club, beauty-booking (T09)"
        }
      ]
    },
    "templates/saas/clinic-emr": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "c0ede79",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - clinic-emr, telemedicine, restaurant-backoffice, hotel-pms (T06)"
        }
      ]
    },
    "templates/saas/construction-pm": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 4,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f7b9e8d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - auto-service, construction-pm, agro-farm, gov-eservices-admin (T10)"
        }
      ]
    },
    "templates/saas/crm-sales": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 4,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "772e892",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - crm-sales, helpdesk (T04)"
        }
      ]
    },
    "templates/saas/document-esign": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f1a198d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - iot-monitoring, recruiting-ats, document-esign (T11)"
        }
      ]
    },
    "templates/saas/ecommerce-backoffice": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "7fca69d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas desti + build-saas-page muherriki (pilot ecommerce-backoffice)"
        }
      ]
    },
    "templates/saas/event-ticketing": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f3b28c1",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - marketing-automation, event-ticketing, fitness-club, beauty-booking (T09)"
        }
      ]
    },
    "templates/saas/exam-testing": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "215058b",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - accounting-cloud, project-management, lms-education, exam-testing (T05)"
        }
      ]
    },
    "templates/saas/field-service": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "da44c31",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - real-estate-crm, fleet-logistics, field-service, marketplace-vendor (T07)"
        }
      ]
    },
    "templates/saas/fintech-lending": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "16c5750",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - subscription-billing, fintech-lending, insurance, legal-practice (T08)"
        }
      ]
    },
    "templates/saas/fitness-club": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f3b28c1",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - marketing-automation, event-ticketing, fitness-club, beauty-booking (T09)"
        }
      ]
    },
    "templates/saas/fleet-logistics": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "da44c31",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - real-estate-crm, fleet-logistics, field-service, marketplace-vendor (T07)"
        }
      ]
    },
    "templates/saas/gov-eservices-admin": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 4,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f7b9e8d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - auto-service, construction-pm, agro-farm, gov-eservices-admin (T10)"
        }
      ]
    },
    "templates/saas/helpdesk": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 4,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "772e892",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - crm-sales, helpdesk (T04)"
        }
      ]
    },
    "templates/saas/hotel-pms": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "c0ede79",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - clinic-emr, telemedicine, restaurant-backoffice, hotel-pms (T06)"
        }
      ]
    },
    "templates/saas/hr-payroll": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "b400f7d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - inventory-wms, hr-payroll (T04 tamamlanması)"
        }
      ]
    },
    "templates/saas/insurance": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 3,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "16c5750",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - subscription-billing, fintech-lending, insurance, legal-practice (T08)"
        }
      ]
    },
    "templates/saas/inventory-wms": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "b400f7d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - inventory-wms, hr-payroll (T04 tamamlanması)"
        }
      ]
    },
    "templates/saas/iot-monitoring": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f1a198d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - iot-monitoring, recruiting-ats, document-esign (T11)"
        }
      ]
    },
    "templates/saas/legal-practice": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "16c5750",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - subscription-billing, fintech-lending, insurance, legal-practice (T08)"
        }
      ]
    },
    "templates/saas/lms-education": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 3,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "215058b",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - accounting-cloud, project-management, lms-education, exam-testing (T05)"
        }
      ]
    },
    "templates/saas/marketing-automation": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f3b28c1",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - marketing-automation, event-ticketing, fitness-club, beauty-booking (T09)"
        }
      ]
    },
    "templates/saas/marketplace-vendor": {
      "created": "2026-09-09",
      "updated": "2026-09-09",
      "commits": 2,
      "version": "1.27.0",
      "history": [
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "da44c31",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - real-estate-crm, fleet-logistics, field-service, marketplace-vendor (T07)"
        }
      ]
    },
    "templates/saas/project-management": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 3,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "215058b",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - accounting-cloud, project-management, lms-education, exam-testing (T05)"
        }
      ]
    },
    "templates/saas/real-estate-crm": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 3,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "da44c31",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - real-estate-crm, fleet-logistics, field-service, marketplace-vendor (T07)"
        }
      ]
    },
    "templates/saas/recruiting-ats": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 3,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "f1a198d",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - iot-monitoring, recruiting-ats, document-esign (T11)"
        }
      ]
    },
    "templates/saas/restaurant-backoffice": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 4,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "c0ede79",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - clinic-emr, telemedicine, restaurant-backoffice, hotel-pms (T06)"
        }
      ]
    },
    "templates/saas/subscription-billing": {
      "created": "2026-09-09",
      "updated": "2026-10-11",
      "commits": 3,
      "version": "1.32.3",
      "history": [
        {
          "hash": "6ffeed6",
          "date": "2026-10-11",
          "subject": "v1.32.3: XIAS qapilari, kontrast, house qati ve klaviatura duzelisleri (keyboard 39 -> 0)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "16c5750",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - subscription-billing, fintech-lending, insurance, legal-practice (T08)"
        }
      ]
    },
    "templates/saas/telemedicine": {
      "created": "2026-09-09",
      "updated": "2026-10-12",
      "commits": 3,
      "version": "1.32.5",
      "history": [
        {
          "hash": "0c423b9",
          "date": "2026-10-12",
          "subject": "v1.32.5: axe - token kontrastı, ledger-table ARIA, list-rows, klaviatura ilə scroll (axe+axe-dark 60 -> 10)"
        },
        {
          "hash": "a081095",
          "date": "2026-09-09",
          "subject": "v1.27.0: kod revyu - 75 sablonun tam auditi (audit-templates.py), 32 SaaS sablonda h1/textarea-etiket/inline-style duzelisleri, 0 tapinti"
        },
        {
          "hash": "c0ede79",
          "date": "2026-09-09",
          "subject": "v1.25.0: saas şablonları - clinic-emr, telemedicine, restaurant-backoffice, hotel-pms (T06)"
        }
      ]
    },
    "templates/design-systems/asan-invest": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 4,
      "version": "1.30.0",
      "history": [
        {
          "hash": "239b274",
          "date": "2026-09-09",
          "subject": "v1.30.0: tam platforma auditi - audit R4/R10 yanlish-musbetleri duzeldi (Flutter canvas, oklch(var()) token), 5 dizayn sisteminde 40+ tapinti (h1, etiket, meta description, class-a kocurulen inline style) duzeldildi, 117/117 - 2 qalan (senedlesdirilmis, fixed desktop artbord)"
        },
        {
          "hash": "83d4487",
          "date": "2026-09-09",
          "subject": "v1.29.0: dizayn sistemleri esas kataloqa inteqrasiya (DS-01..05) - ayri tab silindi, page mexanizmi, paylasilan footer-de (c) OptimaGroup + versiya/CHANGELOG, 112->117"
        },
        {
          "hash": "e5a3336",
          "date": "2026-09-09",
          "subject": "v1.18.0: ui.ubs.az sablon platformasi - detal sehifesi (#tpl/<id>), blok parametrleri, link kopyalama, git tarixcesi, CHANGELOG modali, AZ/EN/RU; vitrin naviqasiyasinda 40 kvadrat -> Phosphor ikon; check-live + sync skriptleri"
        },
        {
          "hash": "bafb526",
          "date": "2026-08-23",
          "subject": "Templates/docs, design-systems, reference-previews fayllarini elave et"
        }
      ]
    },
    "templates/design-systems/backlog-kraft": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 3,
      "version": "1.30.0",
      "history": [
        {
          "hash": "239b274",
          "date": "2026-09-09",
          "subject": "v1.30.0: tam platforma auditi - audit R4/R10 yanlish-musbetleri duzeldi (Flutter canvas, oklch(var()) token), 5 dizayn sisteminde 40+ tapinti (h1, etiket, meta description, class-a kocurulen inline style) duzeldildi, 117/117 - 2 qalan (senedlesdirilmis, fixed desktop artbord)"
        },
        {
          "hash": "83d4487",
          "date": "2026-09-09",
          "subject": "v1.29.0: dizayn sistemleri esas kataloqa inteqrasiya (DS-01..05) - ayri tab silindi, page mexanizmi, paylasilan footer-de (c) OptimaGroup + versiya/CHANGELOG, 112->117"
        },
        {
          "hash": "bafb526",
          "date": "2026-08-23",
          "subject": "Templates/docs, design-systems, reference-previews fayllarini elave et"
        }
      ]
    },
    "templates/design-systems/onebase-hub": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 6,
      "version": "1.30.0",
      "history": [
        {
          "hash": "239b274",
          "date": "2026-09-09",
          "subject": "v1.30.0: tam platforma auditi - audit R4/R10 yanlish-musbetleri duzeldi (Flutter canvas, oklch(var()) token), 5 dizayn sisteminde 40+ tapinti (h1, etiket, meta description, class-a kocurulen inline style) duzeldildi, 117/117 - 2 qalan (senedlesdirilmis, fixed desktop artbord)"
        },
        {
          "hash": "6c415b5",
          "date": "2026-09-09",
          "subject": "v1.29.1: onebase-hub nav ikonlarinda qaliq kvadrat CSS-i (.ico::before) silindi - Phosphor SVG-lerden evvelki placeholder qaligi"
        },
        {
          "hash": "83d4487",
          "date": "2026-09-09",
          "subject": "v1.29.0: dizayn sistemleri esas kataloqa inteqrasiya (DS-01..05) - ayri tab silindi, page mexanizmi, paylasilan footer-de (c) OptimaGroup + versiya/CHANGELOG, 112->117"
        },
        {
          "hash": "6fa1f64",
          "date": "2026-09-09",
          "subject": "v1.21.0: menyu ikonlari - butun sablonlarda kvadrat/generik ikon -> movzuya uygun Phosphor (app-shell 4, app-shell-rail 18 etiket, HTML+React), 11 unicode qlif -> SVG, icons.json 49->71, apply-menu-icons.py, preview-lar yenidən"
        },
        {
          "hash": "e5a3336",
          "date": "2026-09-09",
          "subject": "v1.18.0: ui.ubs.az sablon platformasi - detal sehifesi (#tpl/<id>), blok parametrleri, link kopyalama, git tarixcesi, CHANGELOG modali, AZ/EN/RU; vitrin naviqasiyasinda 40 kvadrat -> Phosphor ikon; check-live + sync skriptleri"
        },
        {
          "hash": "bafb526",
          "date": "2026-08-23",
          "subject": "Templates/docs, design-systems, reference-previews fayllarini elave et"
        }
      ]
    },
    "templates/design-systems/ref-kanban": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 3,
      "version": "1.30.0",
      "history": [
        {
          "hash": "239b274",
          "date": "2026-09-09",
          "subject": "v1.30.0: tam platforma auditi - audit R4/R10 yanlish-musbetleri duzeldi (Flutter canvas, oklch(var()) token), 5 dizayn sisteminde 40+ tapinti (h1, etiket, meta description, class-a kocurulen inline style) duzeldildi, 117/117 - 2 qalan (senedlesdirilmis, fixed desktop artbord)"
        },
        {
          "hash": "83d4487",
          "date": "2026-09-09",
          "subject": "v1.29.0: dizayn sistemleri esas kataloqa inteqrasiya (DS-01..05) - ayri tab silindi, page mexanizmi, paylasilan footer-de (c) OptimaGroup + versiya/CHANGELOG, 112->117"
        },
        {
          "hash": "bafb526",
          "date": "2026-08-23",
          "subject": "Templates/docs, design-systems, reference-previews fayllarini elave et"
        }
      ]
    },
    "templates/design-systems/sahil-pos": {
      "created": "2026-08-23",
      "updated": "2026-09-09",
      "commits": 4,
      "version": "1.30.0",
      "history": [
        {
          "hash": "239b274",
          "date": "2026-09-09",
          "subject": "v1.30.0: tam platforma auditi - audit R4/R10 yanlish-musbetleri duzeldi (Flutter canvas, oklch(var()) token), 5 dizayn sisteminde 40+ tapinti (h1, etiket, meta description, class-a kocurulen inline style) duzeldildi, 117/117 - 2 qalan (senedlesdirilmis, fixed desktop artbord)"
        },
        {
          "hash": "83d4487",
          "date": "2026-09-09",
          "subject": "v1.29.0: dizayn sistemleri esas kataloqa inteqrasiya (DS-01..05) - ayri tab silindi, page mexanizmi, paylasilan footer-de (c) OptimaGroup + versiya/CHANGELOG, 112->117"
        },
        {
          "hash": "e5a3336",
          "date": "2026-09-09",
          "subject": "v1.18.0: ui.ubs.az sablon platformasi - detal sehifesi (#tpl/<id>), blok parametrleri, link kopyalama, git tarixcesi, CHANGELOG modali, AZ/EN/RU; vitrin naviqasiyasinda 40 kvadrat -> Phosphor ikon; check-live + sync skriptleri"
        },
        {
          "hash": "bafb526",
          "date": "2026-08-23",
          "subject": "Templates/docs, design-systems, reference-previews fayllarini elave et"
        }
      ]
    }
  }
}
