From 28be00ea53666fd5500a702a3c187c0e27dd90ad Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sat, 27 Jun 2026 16:26:30 +0800
Subject: [PATCH] Simplify SmartStart default categories

---
 src/Apptag/Localization/fr.json                                        |    8 
 src/Apptag/Localization/ru.json                                        |    8 
 src/Apptag/Localization/ar.json                                        |    8 
 src/Apptag/Localization/ro.json                                        |    8 
 src/Apptag/Localization/en.json                                        |    8 
 src/Apptag/Localization/sv.json                                        |    8 
 src/Apptag/SmartCategorization/SmartStartService.swift                 |    1 
 src/Apptag/Localization/zh-Hant.json                                   |    8 
 src/Apptag/AppleDefaultAppCatalog.swift                                |    1 
 src/Apptag/Localization/pl.json                                        |    6 
 src/Apptag/Localization/es.json                                        |    8 
 src/Apptag/Localization/th.json                                        |    8 
 src/Apptag/Localization/nn.json                                        |    8 
 src/CHANGELOG.md                                                       |    8 
 src/Apptag/Info.plist                                                  |    4 
 src/Apptag/Localization/cs.json                                        |    8 
 src/Apptag/Localization/ms.json                                        |    8 
 src/Apptag/DataLayer.swift                                             |    9 
 src/Apptag/Localization/it.json                                        |    8 
 src/Apptag/Localization/tr.json                                        |    8 
 src/Apptag/Localization/da.json                                        |    8 
 src/Apptag/Localization/id.json                                        |    8 
 src/Scripts/smartstart_default_categories_qa.sh                        |  211 +++++++++++++++
 src/Apptag/Localization/ja.json                                        |    8 
 src/Apptag/Localization/de.json                                        |    8 
 src/Apptag/Localization/pt-BR.json                                     |    8 
 CODEGRAPH.md                                                           |    4 
 src/Apptag/Localization/ar-Najdi.json                                  |    8 
 src/Apptag/Localization/nb.json                                        |    8 
 src/Apptag/SmartCategorization/SmartCategory.swift                     |   56 +--
 src/Apptag/Localization/ko.json                                        |    8 
 src/Apptag/Localization/no.json                                        |    8 
 src/Apptag/Localization/sr-Cyrl.json                                   |    8 
 src/Apptag/Localization/zh-Hans.json                                   |    6 
 src/Docs/Requirements/2026-06-27-smartstart-category-simplification.md |  259 ++++++++++++++++++
 src/Apptag/Localization/nl.json                                        |    8 
 src/Apptag/Localization/uk.json                                        |    8 
 src/Apptag/Localization/vi.json                                        |    8 
 38 files changed, 629 insertions(+), 152 deletions(-)

diff --git a/CODEGRAPH.md b/CODEGRAPH.md
index 791e669..e8ede11 100644
--- a/CODEGRAPH.md
+++ b/CODEGRAPH.md
@@ -95,6 +95,8 @@
 
 - `src/Apptag/SmartCategorization/SmartCategory.swift`
   - 内置智能分类定义。
+  - `SmartCategoryDefaults.orderedIDs` 是 SmartStart 默认初始化标签事实源;当前默认方案为 15 个标签。
+  - `SmartCategoryID.smartStartDefaultCategoryID` 负责把旧细分 catalog 分类归并到 15 个默认标签;这是新 SmartStart 写入前的归并,不做老用户旧标签自动迁移。
 - `src/Apptag/SmartCategorization/SmartCategorizationDraft.swift`
   - 智能分类草稿、默认备注 provenance、未分配应用和 warning 模型。
 - `src/Apptag/SmartCategorization/SmartStartService.swift`
@@ -145,6 +147,8 @@
   - SmartStart catalog 资源检查。
 - `src/Scripts/smart_category_localization_qa.sh`
   - SmartCategory/default system tag 初始化标签 29 语种本地化检查;禁止非英文语言包直接复制英文标签,保留 `PDF`、`DevOps` 等技术通用词例外。
+- `src/Scripts/smartstart_default_categories_qa.sh`
+  - SmartStart 默认初始化标签检查;验证 15 个默认分类、catalog 分类归并入口、首次 starter tags 和关键多语言目标文案。
 - `src/Scripts/quick_search_app_name_qa.sh`
   - Quick Search 应用显示名回归。
 - `src/Scripts/quick_search_system_app_qa.sh`
diff --git a/src/Apptag/AppleDefaultAppCatalog.swift b/src/Apptag/AppleDefaultAppCatalog.swift
index 66b884b..1a9f1ea 100644
--- a/src/Apptag/AppleDefaultAppCatalog.swift
+++ b/src/Apptag/AppleDefaultAppCatalog.swift
@@ -127,6 +127,7 @@
         let categoryIDs = entry.defaultTag
             .compactMap { SmartCategoryID(rawValue: $0) }
             .filter { $0 != .other }
+            .map(\.smartStartDefaultCategoryID)
         guard !categoryIDs.isEmpty else { return nil }
         return AppleDefaultCategorization(
             canonicalName: entry.canonicalName,
diff --git a/src/Apptag/DataLayer.swift b/src/Apptag/DataLayer.swift
index 6177fd6..1357d95 100644
--- a/src/Apptag/DataLayer.swift
+++ b/src/Apptag/DataLayer.swift
@@ -1755,12 +1755,11 @@
         guard !FileManager.default.fileExists(atPath: storeURL.path) else { return }
 
         let starterCategoryIDs: [SmartCategoryID] = [
-            .uiPrototyping,
-            .ide,
-            .writing,
-            .game,
+            .design,
+            .development,
+            .office,
             .entertainment,
-            .system,
+            .systemEnhancement,
             .gtd
         ]
 
diff --git a/src/Apptag/Info.plist b/src/Apptag/Info.plist
index 8152059..33c96c9 100644
--- a/src/Apptag/Info.plist
+++ b/src/Apptag/Info.plist
@@ -19,9 +19,9 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>8.1.2</string>
+	<string>8.1.3</string>
 	<key>CFBundleVersion</key>
-	<string>20260627.0106</string>
+	<string>20260627.1605</string>
 	<key>LSApplicationCategoryType</key>
 	<string>public.app-category.utilities</string>
 	<key>LSMinimumSystemVersion</key>
diff --git a/src/Apptag/Localization/ar-Najdi.json b/src/Apptag/Localization/ar-Najdi.json
index 4bb424c..d42ffa3 100644
--- a/src/Apptag/Localization/ar-Najdi.json
+++ b/src/Apptag/Localization/ar-Najdi.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "الإنتاجية",
   "smart.category.file-management": "إدارة الملفات",
   "smart.category.transfer": "الرفع والتنزيل",
-  "smart.category.development": "التطوير",
+  "smart.category.development": "البرمجة",
   "smart.category.design": "التصميم",
   "smart.category.writing": "الكتابة",
   "smart.category.media": "الوسائط",
   "smart.category.video": "الفيديو",
   "smart.category.audio": "الصوت",
-  "smart.category.picture-photo": "الصور والفوتوغرافيا",
+  "smart.category.picture-photo": "الصور",
   "smart.category.utilities": "الأدوات",
   "smart.category.system": "تطبيقات النظام",
-  "smart.category.system-enhancement": "تحسينات النظام",
+  "smart.category.system-enhancement": "أدوات النظام",
   "smart.category.entertainment": "الترفيه",
   "smart.category.game": "الألعاب",
   "smart.category.finance": "المالية",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "المهام وGTD",
   "smart.category.Notes": "الملاحظات",
   "smart.category.Meeting": "الاجتماعات",
-  "smart.category.office": "المكتب",
+  "smart.category.office": "المكتب والمستندات",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "أدوات API",
   "smart.category.database-tools": "قواعد البيانات",
diff --git a/src/Apptag/Localization/ar.json b/src/Apptag/Localization/ar.json
index 3bd3052..a1012e0 100644
--- a/src/Apptag/Localization/ar.json
+++ b/src/Apptag/Localization/ar.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "الإنتاجية",
   "smart.category.file-management": "إدارة الملفات",
   "smart.category.transfer": "الرفع والتنزيل",
-  "smart.category.development": "التطوير",
+  "smart.category.development": "البرمجة",
   "smart.category.design": "التصميم",
   "smart.category.writing": "الكتابة",
   "smart.category.media": "الوسائط",
   "smart.category.video": "الفيديو",
   "smart.category.audio": "الصوت",
-  "smart.category.picture-photo": "الصور والفوتوغرافيا",
+  "smart.category.picture-photo": "الصور",
   "smart.category.utilities": "الأدوات",
   "smart.category.system": "تطبيقات النظام",
-  "smart.category.system-enhancement": "تحسينات النظام",
+  "smart.category.system-enhancement": "أدوات النظام",
   "smart.category.entertainment": "الترفيه",
   "smart.category.game": "الألعاب",
   "smart.category.finance": "المالية",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "المهام وGTD",
   "smart.category.Notes": "الملاحظات",
   "smart.category.Meeting": "الاجتماعات",
-  "smart.category.office": "المكتب",
+  "smart.category.office": "المكتب والمستندات",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "أدوات API",
   "smart.category.database-tools": "قواعد البيانات",
diff --git a/src/Apptag/Localization/cs.json b/src/Apptag/Localization/cs.json
index 9593aee..3e7868f 100644
--- a/src/Apptag/Localization/cs.json
+++ b/src/Apptag/Localization/cs.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivita",
   "smart.category.file-management": "Správa souborů",
   "smart.category.transfer": "Nahrávání a stahování",
-  "smart.category.development": "Vývoj",
+  "smart.category.development": "Programování",
   "smart.category.design": "Návrh",
   "smart.category.writing": "Psaní",
   "smart.category.media": "Média",
   "smart.category.video": "Videa",
   "smart.category.audio": "Zvuk",
-  "smart.category.picture-photo": "Obrázky a fotografie",
+  "smart.category.picture-photo": "Fotky",
   "smart.category.utilities": "Nástroje",
   "smart.category.system": "Systémové aplikace",
-  "smart.category.system-enhancement": "Vylepšení systému",
+  "smart.category.system-enhancement": "Systémové nástroje",
   "smart.category.entertainment": "Zábava",
   "smart.category.game": "Hry",
   "smart.category.finance": "Peníze",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Úkoly a GTD",
   "smart.category.Notes": "Poznámky",
   "smart.category.Meeting": "Schůzky",
-  "smart.category.office": "Kancelář",
+  "smart.category.office": "Kancelář a dokumenty",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Nástroje API",
   "smart.category.database-tools": "Databáze",
diff --git a/src/Apptag/Localization/da.json b/src/Apptag/Localization/da.json
index edd7934..8e4a9e8 100644
--- a/src/Apptag/Localization/da.json
+++ b/src/Apptag/Localization/da.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivitet",
   "smart.category.file-management": "Filhåndtering",
   "smart.category.transfer": "Uploads og downloads",
-  "smart.category.development": "Udvikling",
+  "smart.category.development": "Kodning",
   "smart.category.design": "Formgivning",
   "smart.category.writing": "Skrivning",
   "smart.category.media": "Medier",
   "smart.category.video": "Videoer",
   "smart.category.audio": "Lyd",
-  "smart.category.picture-photo": "Billeder og fotos",
+  "smart.category.picture-photo": "Fotos",
   "smart.category.utilities": "Værktøjer",
   "smart.category.system": "Systemapps",
-  "smart.category.system-enhancement": "Systemforbedringer",
+  "smart.category.system-enhancement": "Systemværktøjer",
   "smart.category.entertainment": "Underholdning",
   "smart.category.game": "Spil",
   "smart.category.finance": "Økonomi",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Opgaver og GTD",
   "smart.category.Notes": "Noter",
   "smart.category.Meeting": "Møder",
-  "smart.category.office": "Kontor",
+  "smart.category.office": "Kontor og dokumenter",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-værktøjer",
   "smart.category.database-tools": "Databaser",
diff --git a/src/Apptag/Localization/de.json b/src/Apptag/Localization/de.json
index 5d04e9a..f087d60 100644
--- a/src/Apptag/Localization/de.json
+++ b/src/Apptag/Localization/de.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivität",
   "smart.category.file-management": "Dateiverwaltung",
   "smart.category.transfer": "Uploads und Downloads",
-  "smart.category.development": "Entwicklung",
+  "smart.category.development": "Programmieren",
   "smart.category.design": "Gestaltung",
   "smart.category.writing": "Schreiben",
   "smart.category.media": "Medien",
   "smart.category.video": "Videos",
   "smart.category.audio": "Ton",
-  "smart.category.picture-photo": "Bilder und Fotos",
+  "smart.category.picture-photo": "Fotos",
   "smart.category.utilities": "Dienstprogramme",
   "smart.category.system": "System-Apps",
-  "smart.category.system-enhancement": "Systemerweiterungen",
+  "smart.category.system-enhancement": "Systemwerkzeuge",
   "smart.category.entertainment": "Unterhaltung",
   "smart.category.game": "Spiele",
   "smart.category.finance": "Finanzen",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Aufgaben und GTD",
   "smart.category.Notes": "Notizen",
   "smart.category.Meeting": "Besprechungen",
-  "smart.category.office": "Büro",
+  "smart.category.office": "Büro & Dokumente",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-Tools",
   "smart.category.database-tools": "Datenbanken",
diff --git a/src/Apptag/Localization/en.json b/src/Apptag/Localization/en.json
index bba7486..2921d09 100644
--- a/src/Apptag/Localization/en.json
+++ b/src/Apptag/Localization/en.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Productivity",
   "smart.category.file-management": "File Management",
   "smart.category.transfer": "Uploads & Downloads",
-  "smart.category.development": "Development",
+  "smart.category.development": "Coding",
   "smart.category.design": "Design",
   "smart.category.writing": "Writing",
   "smart.category.media": "Media",
   "smart.category.video": "Video",
   "smart.category.audio": "Audio",
-  "smart.category.picture-photo": "Pictures & Photos",
+  "smart.category.picture-photo": "Photos",
   "smart.category.utilities": "Utilities",
   "smart.category.system": "System Apps",
-  "smart.category.system-enhancement": "System Enhancements",
+  "smart.category.system-enhancement": "System Tools",
   "smart.category.entertainment": "Entertainment",
   "smart.category.game": "Games",
   "smart.category.finance": "Finance",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Tasks & GTD",
   "smart.category.Notes": "Notes",
   "smart.category.Meeting": "Meetings",
-  "smart.category.office": "Office",
+  "smart.category.office": "Office & Docs",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API Tools",
   "smart.category.database-tools": "Databases",
diff --git a/src/Apptag/Localization/es.json b/src/Apptag/Localization/es.json
index 9635fee..45d8aad 100644
--- a/src/Apptag/Localization/es.json
+++ b/src/Apptag/Localization/es.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Productividad",
   "smart.category.file-management": "Gestión de archivos",
   "smart.category.transfer": "Cargas y descargas",
-  "smart.category.development": "Desarrollo",
+  "smart.category.development": "Programación",
   "smart.category.design": "Diseño",
   "smart.category.writing": "Escritura",
   "smart.category.media": "Medios",
   "smart.category.video": "Vídeo",
   "smart.category.audio": "Sonido",
-  "smart.category.picture-photo": "Imágenes y fotos",
+  "smart.category.picture-photo": "Fotos",
   "smart.category.utilities": "Utilidades",
   "smart.category.system": "Apps del sistema",
-  "smart.category.system-enhancement": "Mejoras del sistema",
+  "smart.category.system-enhancement": "Herramientas del sistema",
   "smart.category.entertainment": "Entretenimiento",
   "smart.category.game": "Juegos",
   "smart.category.finance": "Finanzas",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Tareas y GTD",
   "smart.category.Notes": "Notas",
   "smart.category.Meeting": "Reuniones",
-  "smart.category.office": "Oficina",
+  "smart.category.office": "Oficina y documentos",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Herramientas API",
   "smart.category.database-tools": "Bases de datos",
diff --git a/src/Apptag/Localization/fr.json b/src/Apptag/Localization/fr.json
index de9a0a7..599fb7c 100644
--- a/src/Apptag/Localization/fr.json
+++ b/src/Apptag/Localization/fr.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Productivité",
   "smart.category.file-management": "Gestion de fichiers",
   "smart.category.transfer": "Envois et téléchargements",
-  "smart.category.development": "Développement",
+  "smart.category.development": "Programmation",
   "smart.category.design": "Conception",
   "smart.category.writing": "Rédaction",
   "smart.category.media": "Médias",
   "smart.category.video": "Vidéo",
   "smart.category.audio": "Son",
-  "smart.category.picture-photo": "Images et photos",
+  "smart.category.picture-photo": "Images",
   "smart.category.utilities": "Utilitaires",
   "smart.category.system": "Apps système",
-  "smart.category.system-enhancement": "Améliorations système",
+  "smart.category.system-enhancement": "Outils système",
   "smart.category.entertainment": "Divertissement",
   "smart.category.game": "Jeux",
   "smart.category.finance": "Finances",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Tâches et GTD",
   "smart.category.Notes": "Prises de notes",
   "smart.category.Meeting": "Réunions",
-  "smart.category.office": "Bureau",
+  "smart.category.office": "Bureau et documents",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Outils API",
   "smart.category.database-tools": "Bases de données",
diff --git a/src/Apptag/Localization/id.json b/src/Apptag/Localization/id.json
index 950bbc7..2add81c 100644
--- a/src/Apptag/Localization/id.json
+++ b/src/Apptag/Localization/id.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivitas",
   "smart.category.file-management": "Manajemen file",
   "smart.category.transfer": "Unggahan dan unduhan",
-  "smart.category.development": "Pengembangan",
+  "smart.category.development": "Pemrograman",
   "smart.category.design": "Desain",
   "smart.category.writing": "Penulisan",
   "smart.category.media": "Media digital",
   "smart.category.video": "Video digital",
   "smart.category.audio": "Audio digital",
-  "smart.category.picture-photo": "Gambar dan foto",
+  "smart.category.picture-photo": "Foto",
   "smart.category.utilities": "Utilitas",
   "smart.category.system": "Aplikasi sistem",
-  "smart.category.system-enhancement": "Peningkatan sistem",
+  "smart.category.system-enhancement": "Alat sistem",
   "smart.category.entertainment": "Hiburan",
   "smart.category.game": "Game",
   "smart.category.finance": "Keuangan",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Tugas dan GTD",
   "smart.category.Notes": "Catatan",
   "smart.category.Meeting": "Rapat",
-  "smart.category.office": "Kantor",
+  "smart.category.office": "Kantor & dokumen",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Alat API",
   "smart.category.database-tools": "Basis data",
diff --git a/src/Apptag/Localization/it.json b/src/Apptag/Localization/it.json
index cb27fae..8c39924 100644
--- a/src/Apptag/Localization/it.json
+++ b/src/Apptag/Localization/it.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produttività",
   "smart.category.file-management": "Gestione file",
   "smart.category.transfer": "Caricamenti e download",
-  "smart.category.development": "Sviluppo",
+  "smart.category.development": "Programmazione",
   "smart.category.design": "Progettazione",
   "smart.category.writing": "Scrittura",
   "smart.category.media": "Contenuti multimediali",
   "smart.category.video": "Filmati",
   "smart.category.audio": "Suono",
-  "smart.category.picture-photo": "Immagini e foto",
+  "smart.category.picture-photo": "Foto",
   "smart.category.utilities": "Utility",
   "smart.category.system": "App di sistema",
-  "smart.category.system-enhancement": "Miglioramenti di sistema",
+  "smart.category.system-enhancement": "Strumenti di sistema",
   "smart.category.entertainment": "Intrattenimento",
   "smart.category.game": "Giochi",
   "smart.category.finance": "Finanza",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Attività e GTD",
   "smart.category.Notes": "Note",
   "smart.category.Meeting": "Riunioni",
-  "smart.category.office": "Ufficio",
+  "smart.category.office": "Ufficio e documenti",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Strumenti API",
   "smart.category.database-tools": "Database",
diff --git a/src/Apptag/Localization/ja.json b/src/Apptag/Localization/ja.json
index e52078f..c5248ed 100644
--- a/src/Apptag/Localization/ja.json
+++ b/src/Apptag/Localization/ja.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "生産性",
   "smart.category.file-management": "ファイル管理",
   "smart.category.transfer": "アップロードとダウンロード",
-  "smart.category.development": "開発",
+  "smart.category.development": "コーディング",
   "smart.category.design": "デザイン",
   "smart.category.writing": "執筆",
   "smart.category.media": "メディア",
   "smart.category.video": "ビデオ",
   "smart.category.audio": "オーディオ",
-  "smart.category.picture-photo": "画像と写真",
+  "smart.category.picture-photo": "写真",
   "smart.category.utilities": "ユーティリティ",
   "smart.category.system": "システムアプリ",
-  "smart.category.system-enhancement": "システム拡張",
+  "smart.category.system-enhancement": "システムツール",
   "smart.category.entertainment": "エンターテインメント",
   "smart.category.game": "ゲーム",
   "smart.category.finance": "ファイナンス",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "タスクとGTD",
   "smart.category.Notes": "メモ",
   "smart.category.Meeting": "会議",
-  "smart.category.office": "オフィス",
+  "smart.category.office": "オフィスと文書",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "APIツール",
   "smart.category.database-tools": "データベース",
diff --git a/src/Apptag/Localization/ko.json b/src/Apptag/Localization/ko.json
index 5b92d99..662ce02 100644
--- a/src/Apptag/Localization/ko.json
+++ b/src/Apptag/Localization/ko.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "생산성",
   "smart.category.file-management": "파일 관리",
   "smart.category.transfer": "업로드 및 다운로드",
-  "smart.category.development": "개발",
+  "smart.category.development": "코딩",
   "smart.category.design": "디자인",
   "smart.category.writing": "글쓰기",
   "smart.category.media": "미디어",
   "smart.category.video": "비디오",
   "smart.category.audio": "오디오",
-  "smart.category.picture-photo": "이미지와 사진",
+  "smart.category.picture-photo": "사진",
   "smart.category.utilities": "유틸리티",
   "smart.category.system": "시스템 앱",
-  "smart.category.system-enhancement": "시스템 향상",
+  "smart.category.system-enhancement": "시스템 도구",
   "smart.category.entertainment": "엔터테인먼트",
   "smart.category.game": "게임",
   "smart.category.finance": "금융",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "작업 및 GTD",
   "smart.category.Notes": "메모",
   "smart.category.Meeting": "회의",
-  "smart.category.office": "오피스",
+  "smart.category.office": "오피스 및 문서",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API 도구",
   "smart.category.database-tools": "데이터베이스",
diff --git a/src/Apptag/Localization/ms.json b/src/Apptag/Localization/ms.json
index 4d95c02..357d4a6 100644
--- a/src/Apptag/Localization/ms.json
+++ b/src/Apptag/Localization/ms.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktiviti",
   "smart.category.file-management": "Pengurusan fail",
   "smart.category.transfer": "Muat naik dan muat turun",
-  "smart.category.development": "Pembangunan",
+  "smart.category.development": "Pengekodan",
   "smart.category.design": "Reka bentuk",
   "smart.category.writing": "Penulisan",
   "smart.category.media": "Media digital",
   "smart.category.video": "Video digital",
   "smart.category.audio": "Audio digital",
-  "smart.category.picture-photo": "Gambar dan foto",
+  "smart.category.picture-photo": "Foto",
   "smart.category.utilities": "Utiliti",
   "smart.category.system": "Aplikasi sistem",
-  "smart.category.system-enhancement": "Peningkatan sistem",
+  "smart.category.system-enhancement": "Alat sistem",
   "smart.category.entertainment": "Hiburan",
   "smart.category.game": "Permainan",
   "smart.category.finance": "Kewangan",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Tugasan dan GTD",
   "smart.category.Notes": "Nota",
   "smart.category.Meeting": "Mesyuarat",
-  "smart.category.office": "Pejabat",
+  "smart.category.office": "Pejabat & dokumen",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Alat API",
   "smart.category.database-tools": "Pangkalan data",
diff --git a/src/Apptag/Localization/nb.json b/src/Apptag/Localization/nb.json
index 7276bf4..16b71ab 100644
--- a/src/Apptag/Localization/nb.json
+++ b/src/Apptag/Localization/nb.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivitet",
   "smart.category.file-management": "Filbehandling",
   "smart.category.transfer": "Opplastinger og nedlastinger",
-  "smart.category.development": "Utvikling",
+  "smart.category.development": "Koding",
   "smart.category.design": "Utforming",
   "smart.category.writing": "Skriving",
   "smart.category.media": "Medier",
   "smart.category.video": "Videoer",
   "smart.category.audio": "Lyd",
-  "smart.category.picture-photo": "Bilder og foto",
+  "smart.category.picture-photo": "Bilder",
   "smart.category.utilities": "Verktøy",
   "smart.category.system": "Systemapper",
-  "smart.category.system-enhancement": "Systemforbedringer",
+  "smart.category.system-enhancement": "Systemverktøy",
   "smart.category.entertainment": "Underholdning",
   "smart.category.game": "Spill",
   "smart.category.finance": "Økonomi",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Oppgaver og GTD",
   "smart.category.Notes": "Notater",
   "smart.category.Meeting": "Møter",
-  "smart.category.office": "Kontor",
+  "smart.category.office": "Kontor og dokumenter",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-verktøy",
   "smart.category.database-tools": "Databaser",
diff --git a/src/Apptag/Localization/nl.json b/src/Apptag/Localization/nl.json
index 3bfdbfa..a2ee3ce 100644
--- a/src/Apptag/Localization/nl.json
+++ b/src/Apptag/Localization/nl.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Productiviteit",
   "smart.category.file-management": "Bestandsbeheer",
   "smart.category.transfer": "Uploads en downloads",
-  "smart.category.development": "Ontwikkeling",
+  "smart.category.development": "Programmeren",
   "smart.category.design": "Ontwerp",
   "smart.category.writing": "Schrijven",
   "smart.category.media": "Mediabestanden",
   "smart.category.video": "Videomateriaal",
   "smart.category.audio": "Geluid",
-  "smart.category.picture-photo": "Afbeeldingen en foto’s",
+  "smart.category.picture-photo": "Foto’s",
   "smart.category.utilities": "Hulpprogramma’s",
   "smart.category.system": "Systeemapps",
-  "smart.category.system-enhancement": "Systeemverbeteringen",
+  "smart.category.system-enhancement": "Systeemtools",
   "smart.category.entertainment": "Ontspanning",
   "smart.category.game": "Spellen",
   "smart.category.finance": "Financiën",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Taken en GTD",
   "smart.category.Notes": "Notities",
   "smart.category.Meeting": "Vergaderingen",
-  "smart.category.office": "Kantoor",
+  "smart.category.office": "Kantoor en documenten",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-tools",
   "smart.category.database-tools": "Databanken",
diff --git a/src/Apptag/Localization/nn.json b/src/Apptag/Localization/nn.json
index bb62912..51f9c04 100644
--- a/src/Apptag/Localization/nn.json
+++ b/src/Apptag/Localization/nn.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivitet",
   "smart.category.file-management": "Filhandsaming",
   "smart.category.transfer": "Opplastingar og nedlastingar",
-  "smart.category.development": "Utvikling",
+  "smart.category.development": "Koding",
   "smart.category.design": "Utforming",
   "smart.category.writing": "Skriving",
   "smart.category.media": "Medium",
   "smart.category.video": "Videoar",
   "smart.category.audio": "Lyd",
-  "smart.category.picture-photo": "Bilete og foto",
+  "smart.category.picture-photo": "Foto",
   "smart.category.utilities": "Verktøy",
   "smart.category.system": "Systemappar",
-  "smart.category.system-enhancement": "Systemforbetringar",
+  "smart.category.system-enhancement": "Systemverktøy",
   "smart.category.entertainment": "Underhaldning",
   "smart.category.game": "Spel",
   "smart.category.finance": "Økonomi",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Oppgåver og GTD",
   "smart.category.Notes": "Notat",
   "smart.category.Meeting": "Møte",
-  "smart.category.office": "Kontor",
+  "smart.category.office": "Kontor og dokument",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-verktøy",
   "smart.category.database-tools": "Databasar",
diff --git a/src/Apptag/Localization/no.json b/src/Apptag/Localization/no.json
index 7276bf4..16b71ab 100644
--- a/src/Apptag/Localization/no.json
+++ b/src/Apptag/Localization/no.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivitet",
   "smart.category.file-management": "Filbehandling",
   "smart.category.transfer": "Opplastinger og nedlastinger",
-  "smart.category.development": "Utvikling",
+  "smart.category.development": "Koding",
   "smart.category.design": "Utforming",
   "smart.category.writing": "Skriving",
   "smart.category.media": "Medier",
   "smart.category.video": "Videoer",
   "smart.category.audio": "Lyd",
-  "smart.category.picture-photo": "Bilder og foto",
+  "smart.category.picture-photo": "Bilder",
   "smart.category.utilities": "Verktøy",
   "smart.category.system": "Systemapper",
-  "smart.category.system-enhancement": "Systemforbedringer",
+  "smart.category.system-enhancement": "Systemverktøy",
   "smart.category.entertainment": "Underholdning",
   "smart.category.game": "Spill",
   "smart.category.finance": "Økonomi",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Oppgaver og GTD",
   "smart.category.Notes": "Notater",
   "smart.category.Meeting": "Møter",
-  "smart.category.office": "Kontor",
+  "smart.category.office": "Kontor og dokumenter",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-verktøy",
   "smart.category.database-tools": "Databaser",
diff --git a/src/Apptag/Localization/pl.json b/src/Apptag/Localization/pl.json
index 544ce9e..b61b7f3 100644
--- a/src/Apptag/Localization/pl.json
+++ b/src/Apptag/Localization/pl.json
@@ -111,10 +111,10 @@
   "smart.category.media": "Multimedia",
   "smart.category.video": "Wideo",
   "smart.category.audio": "Dźwięk",
-  "smart.category.picture-photo": "Obrazy i zdjęcia",
+  "smart.category.picture-photo": "Zdjęcia",
   "smart.category.utilities": "Narzędzia",
   "smart.category.system": "Aplikacje systemowe",
-  "smart.category.system-enhancement": "Ulepszenia systemu",
+  "smart.category.system-enhancement": "Narzędzia systemowe",
   "smart.category.entertainment": "Rozrywka",
   "smart.category.game": "Gry",
   "smart.category.finance": "Finanse",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Zadania i GTD",
   "smart.category.Notes": "Notatki",
   "smart.category.Meeting": "Spotkania",
-  "smart.category.office": "Biuro",
+  "smart.category.office": "Biuro i dokumenty",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Narzędzia API",
   "smart.category.database-tools": "Bazy danych",
diff --git a/src/Apptag/Localization/pt-BR.json b/src/Apptag/Localization/pt-BR.json
index 7b46e9e..3a17fd9 100644
--- a/src/Apptag/Localization/pt-BR.json
+++ b/src/Apptag/Localization/pt-BR.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produtividade",
   "smart.category.file-management": "Gerenciamento de arquivos",
   "smart.category.transfer": "Uploads e downloads",
-  "smart.category.development": "Desenvolvimento",
+  "smart.category.development": "Programação",
   "smart.category.design": "Projeto",
   "smart.category.writing": "Escrita",
   "smart.category.media": "Mídia",
   "smart.category.video": "Vídeo",
   "smart.category.audio": "Áudio",
-  "smart.category.picture-photo": "Imagens e fotos",
+  "smart.category.picture-photo": "Fotos",
   "smart.category.utilities": "Utilitários",
   "smart.category.system": "Apps do sistema",
-  "smart.category.system-enhancement": "Aprimoramentos do sistema",
+  "smart.category.system-enhancement": "Ferramentas do sistema",
   "smart.category.entertainment": "Entretenimento",
   "smart.category.game": "Jogos",
   "smart.category.finance": "Finanças",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Tarefas e GTD",
   "smart.category.Notes": "Notas",
   "smart.category.Meeting": "Reuniões",
-  "smart.category.office": "Escritório",
+  "smart.category.office": "Escritório e documentos",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Ferramentas API",
   "smart.category.database-tools": "Bancos de dados",
diff --git a/src/Apptag/Localization/ro.json b/src/Apptag/Localization/ro.json
index 8509fd6..f5f70e7 100644
--- a/src/Apptag/Localization/ro.json
+++ b/src/Apptag/Localization/ro.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Productivitate",
   "smart.category.file-management": "Gestionarea fișierelor",
   "smart.category.transfer": "Încărcări și descărcări",
-  "smart.category.development": "Dezvoltare",
+  "smart.category.development": "Programare",
   "smart.category.design": "Proiectare",
   "smart.category.writing": "Scriere",
   "smart.category.media": "Conținut media",
   "smart.category.video": "Videoclipuri",
   "smart.category.audio": "Sunet",
-  "smart.category.picture-photo": "Imagini și fotografii",
+  "smart.category.picture-photo": "Fotografii",
   "smart.category.utilities": "Utilitare",
   "smart.category.system": "Aplicații de sistem",
-  "smart.category.system-enhancement": "Îmbunătățiri de sistem",
+  "smart.category.system-enhancement": "Instrumente de sistem",
   "smart.category.entertainment": "Divertisment",
   "smart.category.game": "Jocuri",
   "smart.category.finance": "Finanțe",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Sarcini și GTD",
   "smart.category.Notes": "Note",
   "smart.category.Meeting": "Întâlniri",
-  "smart.category.office": "Birou",
+  "smart.category.office": "Birou și documente",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Instrumente API",
   "smart.category.database-tools": "Baze de date",
diff --git a/src/Apptag/Localization/ru.json b/src/Apptag/Localization/ru.json
index ddc4598..0238ffe 100644
--- a/src/Apptag/Localization/ru.json
+++ b/src/Apptag/Localization/ru.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Продуктивность",
   "smart.category.file-management": "Управление файлами",
   "smart.category.transfer": "Загрузки и выгрузки",
-  "smart.category.development": "Разработка",
+  "smart.category.development": "Программирование",
   "smart.category.design": "Дизайн",
   "smart.category.writing": "Письмо",
   "smart.category.media": "Медиа",
   "smart.category.video": "Видео",
   "smart.category.audio": "Аудио",
-  "smart.category.picture-photo": "Изображения и фото",
+  "smart.category.picture-photo": "Фото",
   "smart.category.utilities": "Утилиты",
   "smart.category.system": "Системные приложения",
-  "smart.category.system-enhancement": "Улучшения системы",
+  "smart.category.system-enhancement": "Системные инструменты",
   "smart.category.entertainment": "Развлечения",
   "smart.category.game": "Игры",
   "smart.category.finance": "Финансы",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Задачи и GTD",
   "smart.category.Notes": "Заметки",
   "smart.category.Meeting": "Встречи",
-  "smart.category.office": "Офис",
+  "smart.category.office": "Офис и документы",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Инструменты API",
   "smart.category.database-tools": "Базы данных",
diff --git a/src/Apptag/Localization/sr-Cyrl.json b/src/Apptag/Localization/sr-Cyrl.json
index ee023c3..af1ca34 100644
--- a/src/Apptag/Localization/sr-Cyrl.json
+++ b/src/Apptag/Localization/sr-Cyrl.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Продуктивност",
   "smart.category.file-management": "Управљање датотекама",
   "smart.category.transfer": "Отпремања и преузимања",
-  "smart.category.development": "Развој",
+  "smart.category.development": "Програмирање",
   "smart.category.design": "Дизајн",
   "smart.category.writing": "Писање",
   "smart.category.media": "Медији",
   "smart.category.video": "Видео",
   "smart.category.audio": "Аудио",
-  "smart.category.picture-photo": "Слике и фотографије",
+  "smart.category.picture-photo": "Фотографије",
   "smart.category.utilities": "Алатке",
   "smart.category.system": "Системске апликације",
-  "smart.category.system-enhancement": "Побољшања система",
+  "smart.category.system-enhancement": "Системски алати",
   "smart.category.entertainment": "Забава",
   "smart.category.game": "Игре",
   "smart.category.finance": "Финансије",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Задаци и GTD",
   "smart.category.Notes": "Белешке",
   "smart.category.Meeting": "Састанци",
-  "smart.category.office": "Канцеларија",
+  "smart.category.office": "Канцеларија и документи",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API алатке",
   "smart.category.database-tools": "Базе података",
diff --git a/src/Apptag/Localization/sv.json b/src/Apptag/Localization/sv.json
index ca1ea1d..48e3b51 100644
--- a/src/Apptag/Localization/sv.json
+++ b/src/Apptag/Localization/sv.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Produktivitet",
   "smart.category.file-management": "Filhantering",
   "smart.category.transfer": "Uppladdningar och nedladdningar",
-  "smart.category.development": "Utveckling",
+  "smart.category.development": "Kodning",
   "smart.category.design": "Formgivning",
   "smart.category.writing": "Skrivande",
   "smart.category.media": "Medier",
   "smart.category.video": "Videor",
   "smart.category.audio": "Ljud",
-  "smart.category.picture-photo": "Bilder och foton",
+  "smart.category.picture-photo": "Foton",
   "smart.category.utilities": "Verktyg",
   "smart.category.system": "Systemappar",
-  "smart.category.system-enhancement": "Systemförbättringar",
+  "smart.category.system-enhancement": "Systemverktyg",
   "smart.category.entertainment": "Underhållning",
   "smart.category.game": "Spel",
   "smart.category.finance": "Ekonomi",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Uppgifter och GTD",
   "smart.category.Notes": "Anteckningar",
   "smart.category.Meeting": "Möten",
-  "smart.category.office": "Kontor",
+  "smart.category.office": "Kontor och dokument",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API-verktyg",
   "smart.category.database-tools": "Databaser",
diff --git a/src/Apptag/Localization/th.json b/src/Apptag/Localization/th.json
index ef7e228..bdb104f 100644
--- a/src/Apptag/Localization/th.json
+++ b/src/Apptag/Localization/th.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "ประสิทธิภาพงาน",
   "smart.category.file-management": "จัดการไฟล์",
   "smart.category.transfer": "อัปโหลดและดาวน์โหลด",
-  "smart.category.development": "การพัฒนา",
+  "smart.category.development": "การเขียนโค้ด",
   "smart.category.design": "การออกแบบ",
   "smart.category.writing": "การเขียน",
   "smart.category.media": "สื่อ",
   "smart.category.video": "วิดีโอ",
   "smart.category.audio": "เสียง",
-  "smart.category.picture-photo": "รูปภาพและภาพถ่าย",
+  "smart.category.picture-photo": "รูปภาพ",
   "smart.category.utilities": "ยูทิลิตี้",
   "smart.category.system": "แอประบบ",
-  "smart.category.system-enhancement": "ปรับปรุงระบบ",
+  "smart.category.system-enhancement": "เครื่องมือระบบ",
   "smart.category.entertainment": "ความบันเทิง",
   "smart.category.game": "เกม",
   "smart.category.finance": "การเงิน",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "งานและ GTD",
   "smart.category.Notes": "โน้ต",
   "smart.category.Meeting": "การประชุม",
-  "smart.category.office": "สำนักงาน",
+  "smart.category.office": "สำนักงานและเอกสาร",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "เครื่องมือ API",
   "smart.category.database-tools": "ฐานข้อมูล",
diff --git a/src/Apptag/Localization/tr.json b/src/Apptag/Localization/tr.json
index 6dc43e8..aa1d40f 100644
--- a/src/Apptag/Localization/tr.json
+++ b/src/Apptag/Localization/tr.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Verimlilik",
   "smart.category.file-management": "Dosya yönetimi",
   "smart.category.transfer": "Yüklemeler ve indirmeler",
-  "smart.category.development": "Geliştirme",
+  "smart.category.development": "Kodlama",
   "smart.category.design": "Tasarım",
   "smart.category.writing": "Yazma",
   "smart.category.media": "Medya",
   "smart.category.video": "Videolar",
   "smart.category.audio": "Ses",
-  "smart.category.picture-photo": "Resimler ve fotoğraflar",
+  "smart.category.picture-photo": "Fotoğraflar",
   "smart.category.utilities": "Yardımcı araçlar",
   "smart.category.system": "Sistem uygulamaları",
-  "smart.category.system-enhancement": "Sistem iyileştirmeleri",
+  "smart.category.system-enhancement": "Sistem araçları",
   "smart.category.entertainment": "Eğlence",
   "smart.category.game": "Oyunlar",
   "smart.category.finance": "Finans",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Görevler ve GTD",
   "smart.category.Notes": "Notlar",
   "smart.category.Meeting": "Toplantılar",
-  "smart.category.office": "Ofis",
+  "smart.category.office": "Ofis ve belgeler",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API araçları",
   "smart.category.database-tools": "Veritabanları",
diff --git a/src/Apptag/Localization/uk.json b/src/Apptag/Localization/uk.json
index 9169ccb..7fd913b 100644
--- a/src/Apptag/Localization/uk.json
+++ b/src/Apptag/Localization/uk.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Продуктивність",
   "smart.category.file-management": "Керування файлами",
   "smart.category.transfer": "Вивантаження і завантаження",
-  "smart.category.development": "Розробка",
+  "smart.category.development": "Програмування",
   "smart.category.design": "Дизайн",
   "smart.category.writing": "Письмо",
   "smart.category.media": "Медіа",
   "smart.category.video": "Відео",
   "smart.category.audio": "Аудіо",
-  "smart.category.picture-photo": "Зображення і фото",
+  "smart.category.picture-photo": "Фото",
   "smart.category.utilities": "Утиліти",
   "smart.category.system": "Системні програми",
-  "smart.category.system-enhancement": "Покращення системи",
+  "smart.category.system-enhancement": "Системні інструменти",
   "smart.category.entertainment": "Розваги",
   "smart.category.game": "Ігри",
   "smart.category.finance": "Фінанси",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Завдання і GTD",
   "smart.category.Notes": "Нотатки",
   "smart.category.Meeting": "Зустрічі",
-  "smart.category.office": "Офіс",
+  "smart.category.office": "Офіс і документи",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Інструменти API",
   "smart.category.database-tools": "Бази даних",
diff --git a/src/Apptag/Localization/vi.json b/src/Apptag/Localization/vi.json
index 37a643c..c9a3da7 100644
--- a/src/Apptag/Localization/vi.json
+++ b/src/Apptag/Localization/vi.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "Năng suất",
   "smart.category.file-management": "Quản lý tệp",
   "smart.category.transfer": "Tải lên và tải xuống",
-  "smart.category.development": "Phát triển",
+  "smart.category.development": "Lập trình",
   "smart.category.design": "Thiết kế",
   "smart.category.writing": "Viết",
   "smart.category.media": "Phương tiện",
   "smart.category.video": "Video clip",
   "smart.category.audio": "Âm thanh",
-  "smart.category.picture-photo": "Ảnh và hình ảnh",
+  "smart.category.picture-photo": "Ảnh",
   "smart.category.utilities": "Tiện ích",
   "smart.category.system": "Ứng dụng hệ thống",
-  "smart.category.system-enhancement": "Cải tiến hệ thống",
+  "smart.category.system-enhancement": "Công cụ hệ thống",
   "smart.category.entertainment": "Giải trí",
   "smart.category.game": "Trò chơi",
   "smart.category.finance": "Tài chính",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "Công việc và GTD",
   "smart.category.Notes": "Ghi chú",
   "smart.category.Meeting": "Cuộc họp",
-  "smart.category.office": "Văn phòng",
+  "smart.category.office": "Văn phòng & tài liệu",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "Công cụ API",
   "smart.category.database-tools": "Cơ sở dữ liệu",
diff --git a/src/Apptag/Localization/zh-Hans.json b/src/Apptag/Localization/zh-Hans.json
index 94b0c07..fd1ca3b 100644
--- a/src/Apptag/Localization/zh-Hans.json
+++ b/src/Apptag/Localization/zh-Hans.json
@@ -111,10 +111,10 @@
   "smart.category.media": "媒体",
   "smart.category.video": "视频",
   "smart.category.audio": "音频",
-  "smart.category.picture-photo": "图片与照片",
+  "smart.category.picture-photo": "图片",
   "smart.category.utilities": "工具",
   "smart.category.system": "系统应用",
-  "smart.category.system-enhancement": "系统能力强化",
+  "smart.category.system-enhancement": "系统工具",
   "smart.category.entertainment": "影音娱乐",
   "smart.category.game": "游戏",
   "smart.category.finance": "财务",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "任务与 GTD",
   "smart.category.Notes": "笔记",
   "smart.category.Meeting": "会议",
-  "smart.category.office": "办公",
+  "smart.category.office": "办公文档",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API 工具",
   "smart.category.database-tools": "数据库",
diff --git a/src/Apptag/Localization/zh-Hant.json b/src/Apptag/Localization/zh-Hant.json
index 892f5c0..7eff870 100644
--- a/src/Apptag/Localization/zh-Hant.json
+++ b/src/Apptag/Localization/zh-Hant.json
@@ -105,16 +105,16 @@
   "smart.category.productivity": "辦公",
   "smart.category.file-management": "檔案管理",
   "smart.category.transfer": "上傳與下載",
-  "smart.category.development": "程式開發",
+  "smart.category.development": "程式編寫",
   "smart.category.design": "設計",
   "smart.category.writing": "寫作",
   "smart.category.media": "媒體",
   "smart.category.video": "影片",
   "smart.category.audio": "音訊",
-  "smart.category.picture-photo": "圖片與照片",
+  "smart.category.picture-photo": "圖片",
   "smart.category.utilities": "工具",
   "smart.category.system": "系統應用",
-  "smart.category.system-enhancement": "系統能力強化",
+  "smart.category.system-enhancement": "系統工具",
   "smart.category.entertainment": "影音娛樂",
   "smart.category.game": "遊戲",
   "smart.category.finance": "財務",
@@ -190,7 +190,7 @@
   "smart.category.GTD": "任務與 GTD",
   "smart.category.Notes": "筆記",
   "smart.category.Meeting": "會議",
-  "smart.category.office": "辦公",
+  "smart.category.office": "辦公文件",
   "smart.category.PDF": "PDF",
   "smart.category.api-tools": "API 工具",
   "smart.category.database-tools": "資料庫",
diff --git a/src/Apptag/SmartCategorization/SmartCategory.swift b/src/Apptag/SmartCategorization/SmartCategory.swift
index b1b7093..dac8b71 100644
--- a/src/Apptag/SmartCategorization/SmartCategory.swift
+++ b/src/Apptag/SmartCategorization/SmartCategory.swift
@@ -66,7 +66,7 @@
         case .meeting:
             return "Meetings"
         case .office:
-            return "Office"
+            return "Office & Docs"
         case .pdf:
             return "PDF"
         case .fileManagement:
@@ -76,7 +76,7 @@
         case .productivity:
             return "Productivity"
         case .development:
-            return "Development"
+            return "Coding"
         case .design:
             return "Design"
         case .aiTools:
@@ -110,13 +110,13 @@
         case .audio:
             return "Audio"
         case .picturePhoto:
-            return "Pictures & Photos"
+            return "Photos"
         case .utilities:
             return "Utilities"
         case .system:
             return "System Apps"
         case .systemEnhancement:
-            return "System Enhancements"
+            return "System Tools"
         case .systemMaintenance:
             return "System Maintenance"
         case .windowManagement:
@@ -248,6 +248,24 @@
             return 0
         }
     }
+
+    var smartStartDefaultCategoryID: SmartCategoryID {
+        switch self {
+        case .pdf, .productivity, .writing:
+            return .office
+        case .fileManagement, .transfer, .utilities, .system, .systemMaintenance,
+             .windowManagement, .deviceManagement, .inputTools, .networkTools, .security:
+            return .systemEnhancement
+        case .apiTools, .databaseTools, .devops, .ide, .runtimeSDK, .terminalTools, .automation:
+            return .development
+        case .font, .uiPrototyping, .threeDCAD, .diagramming:
+            return .design
+        case .media, .video, .audio, .game:
+            return .entertainment
+        default:
+            return self
+        }
+    }
 }
 
 struct SmartCategoryDefinition: Codable, Hashable, Identifiable {
@@ -277,38 +295,14 @@
         .notes,
         .meeting,
         .office,
-        .pdf,
-        .fileManagement,
-        .transfer,
+        .systemEnhancement,
         .aiTools,
-        .apiTools,
-        .databaseTools,
-        .devops,
-        .ide,
-        .runtimeSDK,
-        .terminalTools,
-        .font,
-        .uiPrototyping,
-        .threeDCAD,
-        .diagramming,
-        .writing,
-        .media,
-        .video,
-        .audio,
+        .development,
+        .design,
         .picturePhoto,
-        .utilities,
-        .system,
-        .systemMaintenance,
-        .windowManagement,
-        .deviceManagement,
-        .inputTools,
-        .automation,
-        .networkTools,
         .entertainment,
-        .game,
         .finance,
         .education,
-        .security,
         .other
     ]
 
diff --git a/src/Apptag/SmartCategorization/SmartStartService.swift b/src/Apptag/SmartCategorization/SmartStartService.swift
index d377f99..c1451d4 100644
--- a/src/Apptag/SmartCategorization/SmartStartService.swift
+++ b/src/Apptag/SmartCategorization/SmartStartService.swift
@@ -529,6 +529,7 @@
             let tagIDs = entry.defaultTag
                 .compactMap { SmartCategoryID(rawValue: $0) }
                 .filter { $0 != .other }
+                .map(\.smartStartDefaultCategoryID)
             guard !tagIDs.isEmpty else { return nil }
 
             return SmartStartCatalogEntry(
diff --git a/src/CHANGELOG.md b/src/CHANGELOG.md
index 5831d95..3571b68 100644
--- a/src/CHANGELOG.md
+++ b/src/CHANGELOG.md
@@ -2,6 +2,14 @@
 
 ## [Unreleased]
 
+## [8.1.3] — 2026-06-27
+
+- 精简 SmartStart 智能初始化默认分类:新用户 / 重置智能初始化方案后的默认标签从 39 个收敛为 15 个,降低初次使用时的分类冗余
+- 合并细分分类:`Office / PDF / Writing` 归入 `Office & Docs`,系统工具相关分类归入 `System Tools`,开发相关分类归入 `Coding`,设计相关分类归入 `Design`,`Video / Audio / Games` 归入 `Entertainment`
+- SmartStart 第三方应用 catalog 和 Apple 自带应用 catalog 在写入前统一归并到 15 个默认标签;已有用户的旧标签保持原样,本轮不做老用户旧 39 标签自动迁移
+- 更新 29 个语种中 15 默认分类的关键目标文案,并新增 `Scripts/smartstart_default_categories_qa.sh`,防止默认分类数量、归并入口和首次 starter tags 回退
+- 版本号更新为 `8.1.3`,Build 更新为 `20260627.1605`
+
 ## [8.1.2] — 2026-06-27
 
 - 优化样式 2 / 样式 3 的底部特殊容器排版:`未分类`和`Mac 自带`都固定在瀑布流底部并横向占满,`未分类`倒数第二、`Mac 自带`最后显示
diff --git a/src/Docs/Requirements/2026-06-27-smartstart-category-simplification.md b/src/Docs/Requirements/2026-06-27-smartstart-category-simplification.md
new file mode 100644
index 0000000..c7208b2
--- /dev/null
+++ b/src/Docs/Requirements/2026-06-27-smartstart-category-simplification.md
@@ -0,0 +1,259 @@
+# SmartStart 智能初始化默认标签精简方案
+
+日期:2026-06-27
+
+状态:产品已确认 `network-tools` 归入 `System Tools / 系统工具`;确认 `system-tools` 的用户可见名称采用 `System Tools / 系统工具`;确认 `office`、`PDF`、`writing` 合并为 `Office & Docs / 办公文档`;确认 `Video / Audio / Games` 合并进 `Entertainment / 影音娱乐`,最终默认智能分类为 15 个。
+
+## 1. 本轮目标
+
+用户反馈当前智能初始化使用 39 个默认标签,过于冗余。本方案把默认标签精简为 15 个,并明确合并关系、最终标签列表与后续落地注意事项。
+
+## 2. 当前 39 个初始化标签
+
+来源:`src/Apptag/SmartCategorization/SmartCategory.swift` 中 `SmartCategoryDefaults.orderedIDs`。
+
+| 序号 | category id | 英文默认名 | 简体中文 |
+|---:|---|---|---|
+| 1 | `browser` | Browsers | 浏览器 |
+| 2 | `communication` | Communication | 沟通 |
+| 3 | `GTD` | Tasks & GTD | 任务与 GTD |
+| 4 | `Notes` | Notes | 笔记 |
+| 5 | `Meeting` | Meetings | 会议 |
+| 6 | `office` | Office | 办公 |
+| 7 | `PDF` | PDF | PDF |
+| 8 | `file-management` | File Management | 文件管理 |
+| 9 | `transfer` | Uploads & Downloads | 上传与下载 |
+| 10 | `ai-tools` | AI Tools | AI 工具 |
+| 11 | `api-tools` | API Tools | API 工具 |
+| 12 | `database-tools` | Databases | 数据库 |
+| 13 | `devops` | DevOps | DevOps |
+| 14 | `ide` | IDEs | IDE |
+| 15 | `runtime-sdk` | Runtimes & SDKs | 运行时与 SDK |
+| 16 | `terminal-tools` | Terminal Tools | 终端工具 |
+| 17 | `Font` | Fonts | 字体 |
+| 18 | `ui-prototyping` | UI Prototyping | UI 原型 |
+| 19 | `3d-cad` | 3D & CAD | 3D 与 CAD |
+| 20 | `diagramming` | Diagramming | 图表绘制 |
+| 21 | `writing` | Writing | 写作 |
+| 22 | `media` | Media | 媒体 |
+| 23 | `video` | Video | 视频 |
+| 24 | `audio` | Audio | 音频 |
+| 25 | `picture-photo` | Pictures & Photos | 图片与照片 |
+| 26 | `utilities` | Utilities | 工具 |
+| 27 | `system` | System Apps | 系统应用 |
+| 28 | `system-maintenance` | System Maintenance | 系统维护 |
+| 29 | `window-management` | Window Management | 窗口管理 |
+| 30 | `device-management` | Device Management | 设备管理 |
+| 31 | `input-tools` | Input Tools | 输入工具 |
+| 32 | `Automation` | Automation | 自动化 |
+| 33 | `network-tools` | Network Tools | 网络工具 |
+| 34 | `entertainment` | Entertainment | 影音娱乐 |
+| 35 | `game` | Games | 游戏 |
+| 36 | `finance` | Finance | 财务 |
+| 37 | `education` | Education | 学习 |
+| 38 | `security` | Security | 安全 |
+| 39 | `other` | Other | 其他 |
+
+## 3. 已确认的合并规则
+
+### 改动 1:合并为 Coding / 编程
+
+11、12、13、14、15、16、32 合并成 `Coding / 编程`。
+
+涉及:
+
+- API 工具
+- 数据库
+- DevOps
+- IDE
+- 运行时与 SDK
+- 终端工具
+- 自动化
+
+说明:第 33 项 `network-tools / 网络工具` 不归入 Coding,已确认归入 System Tools。
+
+### 改动 2:合并为 Design / 设计
+
+17、18、19、20 合并成 `Design / 设计`。
+
+涉及:
+
+- 字体
+- UI 原型
+- 3D 与 CAD
+- 图表绘制
+
+### 改动 3:合并为 System Tools / 系统工具
+
+8、9、28、29、30、31、33、38 合并成 `System Tools / 系统工具`。
+
+涉及:
+
+- 文件管理
+- 上传与下载
+- 系统维护
+- 窗口管理
+- 设备管理
+- 输入工具
+- 网络工具
+- 安全
+
+确认理由:
+
+- 网络工具在普通用户心智里更接近系统能力、连接、代理、网络诊断,而不是纯编程。
+- coding 已经覆盖 API、数据库、DevOps、IDE、SDK、终端、自动化,范围足够大。
+- 把网络工具归入 system-tools,可以避免 coding 继续膨胀成“所有技术工具”的大杂烩。
+
+### 改动 4:合并为 Office & Docs / 办公文档
+
+6、7、21 合并成 `Office & Docs / 办公文档`。
+
+涉及:
+
+- 办公
+- PDF
+- 写作
+
+确认理由:
+
+- 这三类都属于文档生产、文档阅读、文档处理。
+- 合并后能减少普通用户在“办公 / PDF / 写作”之间选择的成本。
+- `Office & Docs / 办公文档`比单独的 `Office / 办公`覆盖范围更准确,也比 `Docs & Writing / 文档写作`更贴近用户已确认的命名方向。
+
+
+### 改动 5:合并为 Entertainment / 影音娱乐
+
+11、12、15(基于 18 标签方案中的 `Video`、`Audio`、`Games`)合并进 `Entertainment / 影音娱乐`。
+
+涉及原始 39 标签中的:
+
+- 媒体
+- 视频
+- 音频
+- 影音娱乐
+- 游戏
+
+确认理由:
+
+- 这些标签面向普通用户时都属于休闲、影音、游戏和娱乐心智。
+- 合并后能进一步降低默认标签数量,避免新用户第一屏出现过多细分分类。
+- `Entertainment / 影音娱乐`作为总标签更适合默认初始化;如果用户需要细分,可后续手动拆分。
+
+## 4. 命名确认
+
+### System Tools
+
+- 英文:`System Tools`
+- 简体中文:`系统工具`
+
+实现建议:
+
+- 代码里优先复用既有 `SmartCategoryID.systemEnhancement`,避免新增 category id。
+- 只把用户可见文案改为 `System Tools / 系统工具`。
+- 不使用 `系统能力强化`作为最终展示文案,因为它偏长、偏抽象,且在标签栏和容器标题里不够利落。
+
+### Office & Docs
+
+- 英文:`Office & Docs`
+- 简体中文:`办公文档`
+
+实现建议:
+
+- 可优先复用既有 `SmartCategoryID.office` 作为合并目标,减少新增 category id。
+- 将 `office` 的用户可见文案从 `Office / 办公`调整为 `Office & Docs / 办公文档`。
+- `PDF` 和 `writing` 不再作为默认初始化标签出现,但仍可作为内部识别来源映射到 `office`。
+
+## 5. 合并后的最终标签数量
+
+当前:39 个默认标签。
+
+合并后:15 个默认标签。
+
+减少:24 个标签。
+
+## 6. 最终 15 个默认标签列表
+
+以下列表按“尽量保留原始顺序 + 合并项放在首次出现位置”的原则排列。
+
+| 新序号 | category id | 英文显示名 | 简体中文显示名 | 来源 |
+|---:|---|---|---|---|
+| 1 | `browser` | Browsers | 浏览器 | 原 1 |
+| 2 | `communication` | Communication | 沟通 | 原 2 |
+| 3 | `GTD` | Tasks & GTD | 任务与 GTD | 原 3 |
+| 4 | `Notes` | Notes | 笔记 | 原 4 |
+| 5 | `Meeting` | Meetings | 会议 | 原 5 |
+| 6 | `office` | Office & Docs | 办公文档 | 原 6、7、21 |
+| 7 | `system-enhancement` | System Tools | 系统工具 | 原 8、9、26、27、28、29、30、31、33、38 |
+| 8 | `ai-tools` | AI Tools | AI 工具 | 原 10 |
+| 9 | `development` | Coding | 编程 | 原 11、12、13、14、15、16、32 |
+| 10 | `design` | Design | 设计 | 原 17、18、19、20 |
+| 11 | `picture-photo` | Photos | 图片 | 原 25 |
+| 12 | `entertainment` | Entertainment | 影音娱乐 | 原 22、23、24、34、35 |
+| 13 | `finance` | Finance | 财务 | 原 36 |
+| 14 | `education` | Education | 学习 | 原 37 |
+| 15 | `other` | Other | 其他 | 原 39 |
+
+## 7. 完整合并映射表
+
+| 原序号 | 原 category id | 原简体中文 | 新 category id | 新显示名 |
+|---:|---|---|---|---|
+| 1 | `browser` | 浏览器 | `browser` | 浏览器 |
+| 2 | `communication` | 沟通 | `communication` | 沟通 |
+| 3 | `GTD` | 任务与 GTD | `GTD` | 任务与 GTD |
+| 4 | `Notes` | 笔记 | `Notes` | 笔记 |
+| 5 | `Meeting` | 会议 | `Meeting` | 会议 |
+| 6 | `office` | 办公 | `office` | 办公文档 |
+| 7 | `PDF` | PDF | `office` | 办公文档 |
+| 8 | `file-management` | 文件管理 | `system-enhancement` | 系统工具 |
+| 9 | `transfer` | 上传与下载 | `system-enhancement` | 系统工具 |
+| 10 | `ai-tools` | AI 工具 | `ai-tools` | AI 工具 |
+| 11 | `api-tools` | API 工具 | `development` | 编程 |
+| 12 | `database-tools` | 数据库 | `development` | 编程 |
+| 13 | `devops` | DevOps | `development` | 编程 |
+| 14 | `ide` | IDE | `development` | 编程 |
+| 15 | `runtime-sdk` | 运行时与 SDK | `development` | 编程 |
+| 16 | `terminal-tools` | 终端工具 | `development` | 编程 |
+| 17 | `Font` | 字体 | `design` | 设计 |
+| 18 | `ui-prototyping` | UI 原型 | `design` | 设计 |
+| 19 | `3d-cad` | 3D 与 CAD | `design` | 设计 |
+| 20 | `diagramming` | 图表绘制 | `design` | 设计 |
+| 21 | `writing` | 写作 | `office` | 办公文档 |
+| 22 | `media` | 媒体 | `entertainment` | 影音娱乐 |
+| 23 | `video` | 视频 | `entertainment` | 影音娱乐 |
+| 24 | `audio` | 音频 | `entertainment` | 影音娱乐 |
+| 25 | `picture-photo` | 图片与照片 | `picture-photo` | 图片 |
+| 26 | `utilities` | 工具 | `system-enhancement` | 系统工具 |
+| 27 | `system` | 系统应用 | `system-enhancement` | 系统工具 |
+| 28 | `system-maintenance` | 系统维护 | `system-enhancement` | 系统工具 |
+| 29 | `window-management` | 窗口管理 | `system-enhancement` | 系统工具 |
+| 30 | `device-management` | 设备管理 | `system-enhancement` | 系统工具 |
+| 31 | `input-tools` | 输入工具 | `system-enhancement` | 系统工具 |
+| 32 | `Automation` | 自动化 | `development` | 编程 |
+| 33 | `network-tools` | 网络工具 | `system-enhancement` | 系统工具 |
+| 34 | `entertainment` | 影音娱乐 | `entertainment` | 影音娱乐 |
+| 35 | `game` | 游戏 | `entertainment` | 影音娱乐 |
+| 36 | `finance` | 财务 | `finance` | 财务 |
+| 37 | `education` | 学习 | `education` | 学习 |
+| 38 | `security` | 安全 | `system-enhancement` | 系统工具 |
+| 39 | `other` | 其他 | `other` | 其他 |
+
+## 8. 后续落地建议
+
+如果产品确认这版列表,建议后续实现按低风险路径做:
+
+1. 调整 `SmartCategoryDefaults.orderedIDs`,把 39 个默认标签压缩为 15 个。
+2. 复用既有 `SmartCategoryID.office`、`SmartCategoryID.development`、`SmartCategoryID.design`、`SmartCategoryID.systemEnhancement` 作为合并目标。
+3. 建立旧 category id 到新 category id 的映射表,SmartStart 匹配结果统一归并后再写入标签。
+4. 29 个语言包中将 `system-enhancement` 的用户可见文案改为 `System Tools / 系统工具`对应语义,将 `office` 改为 `Office & Docs / 办公文档`对应语义,将 `picture-photo` 简化为 `Photos / 图片`对应语义。
+5. QA 覆盖:
+   - 新用户智能初始化最终标签数是 15。
+   - 合并来源 app 进入正确目标标签。
+   - 第 33 项 `network-tools`归入 `system-enhancement`,不重复创建标签。
+   - `office`、`PDF`、`writing`都归入 `Office & Docs / 办公文档`。
+   - 新默认智能分类结果中 29 语种没有旧细分标签残留、没有英文兜底污染。
+   - 老用户已有标签保持原样;本轮不做旧 39 标签自动迁移。
+
+## 9. 产品边界确认
+
+1. 本轮只影响新用户 / 重置分类方案后的智能初始化。
+2. 不做老用户旧 39 标签自动迁移;已有用户标签保持原样,避免为极少量历史用户增加冗余迁移代码。
diff --git a/src/Scripts/smartstart_default_categories_qa.sh b/src/Scripts/smartstart_default_categories_qa.sh
new file mode 100755
index 0000000..73984e7
--- /dev/null
+++ b/src/Scripts/smartstart_default_categories_qa.sh
@@ -0,0 +1,211 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
+SMART_CATEGORY_SWIFT="$ROOT_DIR/Apptag/SmartCategorization/SmartCategory.swift"
+SMARTSTART_SWIFT="$ROOT_DIR/Apptag/SmartCategorization/SmartStartService.swift"
+APPLE_CATALOG_SWIFT="$ROOT_DIR/Apptag/AppleDefaultAppCatalog.swift"
+DATA_LAYER_SWIFT="$ROOT_DIR/Apptag/DataLayer.swift"
+LOCALIZATION_DIR="$ROOT_DIR/Apptag/Localization"
+SMARTSTART_BASE="$ROOT_DIR/Research/SmartStart/UltimateDefaultCatalog/SmartStart_UltimateDefaultCatalog.base.json"
+APPLE_BASE="$ROOT_DIR/Research/AppleDefaultApps/AppleDefaultApps.base.json"
+
+fail() {
+  printf 'FAIL: %s\n' "$*" >&2
+  exit 1
+}
+
+[[ -f "$SMART_CATEGORY_SWIFT" ]] || fail "missing SmartCategory.swift"
+[[ -f "$SMARTSTART_SWIFT" ]] || fail "missing SmartStartService.swift"
+[[ -f "$APPLE_CATALOG_SWIFT" ]] || fail "missing AppleDefaultAppCatalog.swift"
+[[ -f "$DATA_LAYER_SWIFT" ]] || fail "missing DataLayer.swift"
+[[ -d "$LOCALIZATION_DIR" ]] || fail "missing Localization directory"
+[[ -f "$SMARTSTART_BASE" ]] || fail "missing SmartStart base catalog"
+[[ -f "$APPLE_BASE" ]] || fail "missing Apple default base catalog"
+
+python3 - "$ROOT_DIR" <<'PY'
+import json
+import pathlib
+import re
+import sys
+
+root = pathlib.Path(sys.argv[1])
+smart_category = root / "Apptag" / "SmartCategorization" / "SmartCategory.swift"
+smartstart = root / "Apptag" / "SmartCategorization" / "SmartStartService.swift"
+apple_catalog = root / "Apptag" / "AppleDefaultAppCatalog.swift"
+data_layer = root / "Apptag" / "DataLayer.swift"
+localization_dir = root / "Apptag" / "Localization"
+smartstart_base = root / "Research" / "SmartStart" / "UltimateDefaultCatalog" / "SmartStart_UltimateDefaultCatalog.base.json"
+apple_base = root / "Research" / "AppleDefaultApps" / "AppleDefaultApps.base.json"
+
+EXPECTED_ORDERED_CASES = [
+    "browser",
+    "communication",
+    "gtd",
+    "notes",
+    "meeting",
+    "office",
+    "systemEnhancement",
+    "aiTools",
+    "development",
+    "design",
+    "picturePhoto",
+    "entertainment",
+    "finance",
+    "education",
+    "other",
+]
+
+EXPECTED_RAW_IDS = {
+    "browser",
+    "communication",
+    "GTD",
+    "Notes",
+    "Meeting",
+    "office",
+    "system-enhancement",
+    "ai-tools",
+    "development",
+    "design",
+    "picture-photo",
+    "entertainment",
+    "finance",
+    "education",
+    "other",
+}
+
+MERGE_MAP = {
+    "PDF": "office",
+    "productivity": "office",
+    "writing": "office",
+    "file-management": "system-enhancement",
+    "transfer": "system-enhancement",
+    "utilities": "system-enhancement",
+    "system": "system-enhancement",
+    "system-maintenance": "system-enhancement",
+    "window-management": "system-enhancement",
+    "device-management": "system-enhancement",
+    "input-tools": "system-enhancement",
+    "network-tools": "system-enhancement",
+    "security": "system-enhancement",
+    "api-tools": "development",
+    "database-tools": "development",
+    "devops": "development",
+    "ide": "development",
+    "runtime-sdk": "development",
+    "terminal-tools": "development",
+    "Automation": "development",
+    "Font": "design",
+    "ui-prototyping": "design",
+    "3d-cad": "design",
+    "diagramming": "design",
+    "media": "entertainment",
+    "video": "entertainment",
+    "audio": "entertainment",
+    "game": "entertainment",
+}
+
+TARGET_LABELS = {
+    "en": {
+        "smart.category.office": "Office & Docs",
+        "smart.category.development": "Coding",
+        "smart.category.system-enhancement": "System Tools",
+        "smart.category.picture-photo": "Photos",
+    },
+    "zh-Hans": {
+        "smart.category.office": "办公文档",
+        "smart.category.development": "编程",
+        "smart.category.system-enhancement": "系统工具",
+        "smart.category.picture-photo": "图片",
+    },
+    "zh-Hant": {
+        "smart.category.office": "辦公文件",
+        "smart.category.development": "程式編寫",
+        "smart.category.system-enhancement": "系統工具",
+        "smart.category.picture-photo": "圖片",
+    },
+}
+
+
+def fail(message: str) -> None:
+    print(f"FAIL: {message}", file=sys.stderr)
+    sys.exit(1)
+
+
+def load_json(path: pathlib.Path):
+    try:
+        return json.loads(path.read_text(encoding="utf-8"))
+    except Exception as error:
+        fail(f"{path} is not valid JSON: {error}")
+
+
+swift = smart_category.read_text(encoding="utf-8")
+order_match = re.search(
+    r"static\s+let\s+orderedIDs\s*:\s*\[SmartCategoryID\]\s*=\s*\[(.*?)\n\s*\]",
+    swift,
+    re.S,
+)
+if not order_match:
+    fail("could not find SmartCategoryDefaults.orderedIDs")
+ordered_cases = re.findall(r"\.([A-Za-z0-9_]+)", order_match.group(1))
+if ordered_cases != EXPECTED_ORDERED_CASES:
+    fail(f"SmartCategoryDefaults.orderedIDs mismatch: {ordered_cases}")
+
+required_mapping_snippets = [
+    "case .pdf, .productivity, .writing:",
+    "return .office",
+    "case .fileManagement, .transfer, .utilities, .system, .systemMaintenance,",
+    "case .apiTools, .databaseTools, .devops, .ide, .runtimeSDK, .terminalTools, .automation:",
+    "case .font, .uiPrototyping, .threeDCAD, .diagramming:",
+    "case .media, .video, .audio, .game:",
+    "return .entertainment",
+]
+missing_snippets = [snippet for snippet in required_mapping_snippets if snippet not in swift]
+if missing_snippets:
+    fail("SmartStart merge mapping is missing snippets: " + " | ".join(missing_snippets))
+
+for path in [smartstart, apple_catalog]:
+    text = path.read_text(encoding="utf-8")
+    if ".map(\\.smartStartDefaultCategoryID)" not in text:
+        fail(f"{path.name} must normalize catalog category IDs through smartStartDefaultCategoryID")
+
+starter_match = re.search(
+    r"let\s+starterCategoryIDs\s*:\s*\[SmartCategoryID\]\s*=\s*\[(.*?)\n\s*\]",
+    data_layer.read_text(encoding="utf-8"),
+    re.S,
+)
+if not starter_match:
+    fail("could not find starterCategoryIDs")
+starter_cases = re.findall(r"\.([A-Za-z0-9_]+)", starter_match.group(1))
+legacy_starter_cases = set(starter_cases) - set(EXPECTED_ORDERED_CASES)
+if legacy_starter_cases:
+    fail("starterCategoryIDs contains non-default categories: " + ", ".join(sorted(legacy_starter_cases)))
+
+def normalize(raw: str) -> str:
+    return MERGE_MAP.get(raw, raw)
+
+for catalog_path in [smartstart_base, apple_base]:
+    catalog = load_json(catalog_path)
+    unexpected = {}
+    for entry in catalog.get("entries", []):
+        for raw in entry.get("defaultTag", []):
+            if raw == "other":
+                continue
+            normalized = normalize(raw)
+            if normalized not in EXPECTED_RAW_IDS:
+                unexpected.setdefault(raw, normalized)
+    if unexpected:
+        fail(f"{catalog_path.name} normalizes to non-default categories: {unexpected}")
+
+for language_code, expected in TARGET_LABELS.items():
+    data = load_json(localization_dir / f"{language_code}.json")
+    for key, value in expected.items():
+        if data.get(key) != value:
+            fail(f"{language_code}.json {key} is {data.get(key)!r}, expected {value!r}")
+
+print(
+    "PASS SmartStart default categories: "
+    f"{len(EXPECTED_ORDERED_CASES)} defaults, catalog IDs normalized, "
+    "starter tags restricted, target labels checked"
+)
+PY

--
Gitblit v1.9.3