diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39fbafa..9bcf9a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
## [Unreleased] - 2026-09-23 (Pfad A: Technical Hygiene, CI Lifecycle & Lock Defense)
+### Documentation and localization
+- Add complete Bengali and Portuguese guides, completing the eleven World Set documentation languages with reciprocal navigation and discovery indexing. Runtime UI remains six locales; runtime and version1.2.0 unchanged.
+- Add the complete Arabic guide with reciprocal nine-language documentation navigation and discovery indexing. Runtime UI remains six locales; runtime and version1.2.0 unchanged.
+- Add the complete Hindi guide with reciprocal eight-language documentation navigation and discovery indexing. Runtime UI remains six locales; runtime and version1.2.0 unchanged.
+- Add the complete French guide with reciprocal seven-language documentation navigation and discovery indexing. Runtime UI remains six locales; runtime and version1.2.0 unchanged.
+- Add the complete Russian guide, reciprocal six-language navigation and discovery indexing. Documentation languages and the existing six runtime UI languages remain distinct; no runtime or version change.
+- Add the complete Japanese README against the corrected source, with reciprocal five-language navigation and discovery indexing. Runtime UI remains six locales; runtime and version1.2.0 are unchanged.
+- Correct EN/DE/ES/ZH source descriptions before further translations: describe confirmed profile replacement, user-controlled export fields, platform launch and network limits, QSettings persistence, product separation, actual CI scope, and separate dependency licenses. Replace unsupported competitor guarantees with project capabilities and limits; align discovery text and existing metadata checks. No runtime or version change.
+- Added the Simplified Chinese README (`README_zh.md`) and synchronized the EN/DE/ES language selectors and `llms.txt` index. The runtime UI language set remains six locales (`de`, `en`, `es`, `zh`, `ja`, `ru`).
+
### Fixed (Repo Hygiene, T-20260926-510472849)
- Untracked `BEFUNDE.md`, `STORE_CONTRACT.md` (internal Store release/versioning bookkeeping) and `_WARTUNG/msix_staging/` (staged MSIX build output) -- all stay on disk locally (gitignored), nothing was deleted. `PRODUCT_BOUNDARIES.md`, `scripts/verify_product_boundaries.py` and `tests/test_store_contract.py` now cite/check `STORE_LISTING.md`/`WINDOWS_STORE_PREP.md`/`store_package.json` only.
- `MARKETING-LOG.txt` and `RUNTIME_DAILY_CARE.md` were untracked in an earlier, over-eager pass on this branch and are restored here: `MARKETING-LOG.txt` is a deliberate public artifact (`pyproject.toml` project.url, a dedicated test); `RUNTIME_DAILY_CARE.md` is linked from README.md/README_de.md/README.es.md and is genuine migration/ops documentation, not agent scratch state.
diff --git a/README.es.md b/README.es.md
index 5285e04..54c3195 100644
--- a/README.es.md
+++ b/README.es.md
@@ -6,7 +6,7 @@
[](NOTICE)
[](https://docs.pytest.org/)
[](https://github.com/file-bricks/SoftwareCenter)
-[](SECURITY.md)
+[](SECURITY.md)
[](SECURITY.md)
[](LICENSE)
[](https://doc.qt.io/qtforpython-6/)
@@ -14,7 +14,7 @@
[](https://github.com/open-bricks)
[](llms.txt)
-[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md)
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
Un organizador de escritorio ligero y multiplataforma para gestionar accesos directos de software mediante categorización basada en pestañas.
@@ -28,10 +28,10 @@ Un organizador de escritorio ligero y multiplataforma para gestionar accesos dir
- [Referencia rápida](#referencia-rápida)
- [Características](#características)
- [Personas objetivo y descubribilidad](#personas-objetivo-y-descubribilidad)
-- [Matriz comparativa frente a alternativas](#matriz-comparativa-frente-a-alternativas)
+- [Capacidades y límites de SoftwareCenter](#matriz-comparativa-frente-a-alternativas)
- [Arquitectura del sistema](#arquitectura-del-sistema)
- [Flujo del ciclo de vida](#flujo-del-ciclo-de-vida)
-- [Capacidades centrales e invariantes de seguridad](#capacidades-centrales-e-invariantes-de-seguridad)
+- [Capacidades centrales y límites de evidencia](#capacidades-centrales-e-invariantes-de-seguridad)
- [Ecosistema hermano y productos relacionados](#ecosistema-hermano-y-productos-relacionados)
- [Contexto de descubrimiento](#contexto-de-descubrimiento)
- [Requisitos](#requisitos)
@@ -56,7 +56,7 @@ Un organizador de escritorio ligero y multiplataforma para gestionar accesos dir
| Atributo | Detalles |
|---|---|
| **Pila tecnológica** | Python 3.10+ / PySide6 (Qt) / QSettings |
-| **Licencia** | MIT (PySide6 vinculado dinámicamente bajo LGPLv3) |
+| **Licencia** | Código del proyecto: MIT; PySide6 y las demás dependencias tienen condiciones propias (véase [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
| **Formato de intercambio** | `softwarecenter-profile-v1.json` (ver [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
| **Última verificación** | 2026-09-23 (local: suite completa pytest, pruebas de plataforma, compileall, Ruff, auditoría de dependencias, integración con menús contextuales, atribución NOTICE, blindaje CI) |
@@ -74,7 +74,7 @@ Un organizador de escritorio ligero y multiplataforma para gestionar accesos dir
- **Lanzadores de escritorio Linux** - Las entradas `.desktop` muestran su nombre real y se ejecutan mediante su comando nativo
- **Exportación e importación de perfiles** - Formato versionado `softwarecenter-profile-v1.json` para copias de seguridad y migraciones
- **Selección múltiple** - Eliminación masiva de accesos directos seleccionados
-- **Local-First y sin telemetría** - Sin cuentas, sin servicios en la nube, sin recopilación de datos
+- **Funcionamiento local** - El código del organizador no implementa cuentas, telemetría ni sincronización con la nube. Las URL HTTP(S) y los programas se abren mediante la plataforma y pueden usar la red.
## Personas objetivo y descubribilidad
@@ -83,9 +83,9 @@ SoftwareCenter está diseñado para resolver cuellos de botella de flujo de trab
| Persona | Perfil y responsabilidades clave | Punto de fricción principal | Solución de SoftwareCenter |
|---|---|---|---|
| **Persona 1: Usuarios avanzados de escritorio y curadores** | Usuarios que gestionan decenas de herramientas, carpetas de trabajo y utilidades a diario. | Escritorio de Windows saturado, lentitud de búsqueda en el Menú Inicio, falta de agrupación personalizada. | Tableros basados en pestañas rápidas, organización de archivos por arrastrar y soltar, cambio instantáneo. |
-| **Persona 2: Desarrolladores de software y DevOps** | Ingenieros que gestionan toolchains, lanzadores de CLI, entornos virtuales y aplicaciones portátiles. | Mezcla de herramientas de desarrollo en el menú de inicio general; lanzadores pesados con consumo de RAM. | Aislamiento multi-perfil, preservación del directorio de trabajo (`_startfile_in_dir`), cero sobrecarga en segundo plano. |
-| **Persona 3: Operadores multi-PC y sincronización** | Usuarios que sincronizan configuraciones entre múltiples estaciones de trabajo (p. ej. sobremesa y portátil). | Rutas absolutas fijas, diferencias en letras de unidad y filtraciones de credenciales locales. | Exportación validada por esquema (`softwarecenter-profile-v1.json`), depuración de secretos, importación no destructiva. |
-| **Persona 4: Equipos de privacidad y seguridad** | Ingenieros de seguridad y entornos corporativos con requisitos estrictos de zero-egress. | Organizadores comerciales con cuentas en la nube obligatorias, telemetría y rastreo constante. | Ejecución 100% local y sin conexión (INV-LOCAL-01), cero salida a la red, permisos de usuario estándar (`RunAsInvoker`). |
+| **Persona 2: Desarrolladores de software y DevOps** | Ingenieros que gestionan toolchains, lanzadores de CLI, entornos virtuales y aplicaciones portátiles. | Mezcla de herramientas de desarrollo en el menú de inicio general; lanzadores pesados con consumo de RAM. | SoftwareCenter y LaunchBoards tienen identidades de producto separadas; en Windows, los lanzamientos de archivos solicitan el directorio de destino como directorio de trabajo cuando es posible. No es un gestor de entornos de proyecto; el comportamiento depende del sistema y de la aplicación objetivo. |
+| **Persona 3: Usuarios de varias estaciones de trabajo** | Usuarios que trasladan perfiles manualmente entre varios equipos. | Las rutas absolutas pueden no existir en otro dispositivo; las etiquetas y notas opcionales pueden revelar detalles privados. | Exportación/importación versionada con `softwarecenter-profile-v1.json`; revise rutas y notas antes de compartirlo. Tras la confirmación, la importación sustituye el perfil actual; no se copian los archivos de destino. |
+| **Persona 4: Usuarios preocupados por la privacidad** | Personas que prefieren ajustes del organizador guardados localmente y sin funciones integradas de cuenta o telemetría. | Las rutas y notas guardadas pueden revelar detalles locales; las URL abiertas y los programas ejecutados pueden comunicarse por la red. | El código revisado del organizador no implementa cuentas, telemetría ni sincronización con la nube. No garantiza confidencialidad, cero salida de red de los procesos iniciados ni los privilegios de los programas objetivo. |
### Términos de búsqueda destacados
@@ -96,20 +96,21 @@ SoftwareCenter está diseñado para resolver cuellos de botella de flujo de trab
- `SoftwareCenter vs LaunchBoards cambio de perfil`
- `organizador de programas de escritorio de código abierto`
-## Matriz comparativa frente a alternativas
-
-| Capacidad / Dimensión | SoftwareCenter | Menú Inicio de Windows | Stardock Fences | SyMenu | Launchy / Flow Launcher |
-|---|:---:|:---:|:---:|:---:|:---:|
-| **Categorización por pestañas** | **SÍ** (Tableros dinámicos) | NO (Lista plana / Carpetas) | SÍ (Áreas de escritorio) | SÍ (Menú jerárquico) | NO (Solo caja de búsqueda) |
-| **Código abierto (Licencia MIT)** | **SÍ** (100% Permisivo) | NO (Propietario integrado) | NO (Comercial cerrado) | SÍ (Freeware cerrado) | SÍ (Código abierto) |
-| **Cero telemetría / 100% Offline**| **SÍ** (Estricto Zero-Egress) | NO (Búsqueda Bing y telemetría)| NO (Licencia y telemetría)| SÍ (Capacidad offline) | PARCIAL (Red de plugins) |
-| **Separación multi-perfil** | **SÍ** (Núcleo de doble identidad) | NO (Perfil de usuario único) | NO (Solo superficie escritorio)| PARCIAL (Perfiles de config)| NO (Configuración única) |
-| **Exportación portátil sin secretos**| **SÍ** (`softwarecenter-profile-v1.json`)| NO (Dependiente del registro)| NO (Copia propietaria) | PARCIAL (Formato XML) | NO (Sin estándar de exportación)|
-| **Preservación directorio de trabajo**| **SÍ** (CWD padre garantizado) | PARCIAL (CWD variable) | PARCIAL (Por defecto Explorer)| SÍ (Configurable) | PARCIAL (CWD raíz de ejecución)|
-| **Capa universal de archivos/carpetas**| **SÍ** (Cualquier destino/objeto)| PARCIAL (Apps y pines fijos) | SÍ (Archivos de escritorio) | SÍ (Entradas de menú) | PARCIAL (Rastreador de índice)|
-| **Mantenimiento desatendido de catálogo**| **SÍ** (Conciliador automático) | NO (Solo interactivo) | NO (Solo interactivo) | NO (Solo interfaz manual) | NO (Solo interactivo) |
-| **Navegación rápida en bandeja del sistema**| **SÍ** (Menú integrado en bandeja)| NO (Barra de tareas fija) | NO (Superficie de escritorio) | SÍ (Centrado en bandeja) | NO (Solo atajo de teclado) |
-| **Ejecución no elevada (`RunAsInvoker`)**| **SÍ** (Sin elevación UAC) | SYSTEM / Alto privilegio | Usuario estándar / Admin | Usuario estándar | Usuario estándar |
+
+## Capacidades y límites de SoftwareCenter
+
+| Capacidad | Comportamiento implementado | Límite |
+|---|---|---|
+| **Organización por pestañas** | Agrupa entradas de rutas en pestañas con nombre y vistas de mosaico o lista. | Las pestañas organizan referencias; no son entornos de ejecución por proyecto. |
+| **Rutas locales y URL** | El arrastrar y soltar puede registrar rutas locales compatibles y URL HTTP(S). | Las entradas apuntan a destinos; el organizador no copia su contenido. |
+| **Tratamiento de destinos según plataforma** | En Windows, la resolución de `.lnk` acepta destinos `.exe` o carpetas existentes; macOS abre paquetes de apps mediante `open`; Linux lee nombre, icono y `Exec` de entradas `.desktop`. | La resolución y el lanzamiento dependen del sistema. Linux ejecuta `Exec` como comando; no es un entorno aislado para scripts. |
+| **Directorio de trabajo** | En Windows, los lanzamientos de archivos solicitan la carpeta del destino como directorio de trabajo cuando es posible. | Los fallbacks pueden omitirlo; no se garantiza el CWD del proceso padre ni un directorio de trabajo común a todas las plataformas. |
+| **Ajustes locales** | Qt `QSettings` guarda pestañas, entradas, vistas y estado de ventana en el espacio de ajustes del producto. | Qt y el sistema operativo proporcionan el almacenamiento; no se garantiza escritura atómica ni descriptores de seguridad. |
+| **Exportación de perfiles** | `softwarecenter-profile-v1.json` incluye metadatos del perfil, pestañas, vistas y entradas con `label`, `path`, `kind` y `notes` opcionales. | Las rutas, etiquetas y notas pueden revelar detalles locales; no se copian los archivos de destino. |
+| **Importación de perfiles** | El importador comprueba el formato y la versión, normaliza las entradas y pide confirmación antes de sustituir el perfil. | Tras confirmar, la importación sustituye el perfil actual; no combina perfiles ni garantiza que no se pierdan datos en general. |
+| **Identidades de producto** | SoftwareCenter y LaunchBoards comparten implementación, pero tienen espacios de ajustes, endpoints de instancia única e identidades de Store separados. | Separa dos productos; no ofrece perfiles seleccionables por usuario dentro de SoftwareCenter. |
+| **Límite de red** | El código revisado del organizador no implementa cuentas, telemetría ni sincronización con la nube. | Abrir URL HTTP(S) o destinos externos puede usar la red; no se garantiza cero salida de red para la aplicación ni para los procesos iniciados. |
+| **Alcance de las verificaciones** | Las pruebas del repositorio cubren contratos concretos; CI ejecuta la matriz de versiones de Python en Ubuntu y trabajos smoke separados para Linux/macOS. | Esto no demuestra CI en un runner Windows, certificación WACK, publicación en Store ni seguridad universal en tiempo de ejecución. |
## Arquitectura del sistema
@@ -124,12 +125,12 @@ graph TD
E --> E2["macOS (.app Bundles)"]
E --> E3["Linux (.desktop Launchers)"]
- C --> F["Persistencia de estado (QSettings / Registro)"]
+ C --> F["Persistencia de estado (QSettings; backend según el sistema operativo)"]
C --> G["Importador/Exportador JSON (softwarecenter-profile-v1.json)"]
B --> H["Pipeline de compilación y tienda"]
H --> H1["Compilación PyInstaller EXE"]
- H --> H2["Simulación WACK / Empaquetado MSIX"]
+ H --> H2["Preflight WACK / MSIX (no es certificación)"]
H --> H3["Generador reproducible de capturas de pantalla"]
```
@@ -142,37 +143,39 @@ sequenceDiagram
participant SC as Interfaz SoftwareCenter (PySide6)
participant Res as Resolutor de plataforma (.lnk / .app / .desktop)
participant Tab as Gestor de pestañas y tableros
- participant Set as Persistencia QSettings (Registro / INI)
+ participant Set as Persistencia QSettings (backend según el sistema operativo)
participant Exp as Exportador de perfiles (softwarecenter-profile-v1.json)
+ participant OS as Sistema operativo
Usuario->>SC: Arrastra y suelta un archivo/acceso directo en una pestaña
SC->>Res: Resuelve la ruta (p. ej. .lnk -> ejecutable/carpeta original)
- Res-->>SC: Ruta de destino validada e icono del sistema
+ Res-->>SC: Ruta resuelta e icono del sistema disponible
SC->>Tab: Comprueba duplicados y registra el elemento
Tab->>SC: Renderiza mosaico / fila de lista
- Tab->>Set: Persiste pestañas, orden y geometría de forma atómica
+ Tab->>Set: Escribe pestañas, orden y geometría mediante QSettings
Set-->>SC: Estado guardado localmente
Usuario->>SC: Doble clic en elemento o activa "Exportar perfil"
alt Iniciar elemento
- SC->>Usuario: Ejecuta el binario de destino con permisos estándar
+ SC->>OS: Abre el archivo, la aplicación o la URL mediante las API de la plataforma
else Exportar perfil
- SC->>Exp: Serializa tableros, pestañas y elementos
- Exp-->>Usuario: Escribe softwarecenter-profile-v1.json sanitizado (sin secretos)
+ SC->>Exp: Serializa metadatos del perfil, pestañas y campos de elementos
+ Exp-->>Usuario: Escribe softwarecenter-profile-v1.json a partir de los campos del perfil actual
end
```
-## Capacidades centrales e invariantes de seguridad
+
+## Capacidades centrales y límites de evidencia
-| Invariante / Capacidad | Garantía arquitectónica | Mecanismo de verificación |
+| Tema | Evidencia en código y pruebas revisados | Alcance y límite |
|---|---|---|
-| **100% Local-First y Zero Egress** | Se ejecuta exclusivamente en el equipo local; cero telemetría, cero rastreo en la nube, sin llamadas remotas | Auditoría de código, comprobación offline en tiempo de ejecución, suite de pruebas |
-| **Mínimo privilegio (Sin elevación)** | Opera estrictamente con permisos de usuario estándar; nunca solicita elevación UAC | Verificación del descriptor de seguridad del proceso |
-| **Operaciones no destructivas** | Eliminar una entrada solo quita el metadato del acceso directo; nunca modifica ni borra archivos del disco | Pruebas de aislamiento de acción de borrado en UI |
-| **Resolución segura de rutas** | Resuelve destinos `.lnk` de Windows, `.app` de macOS y `.desktop` de Linux sin invocar scripts de shell | Pruebas de contrato de resolución estática |
-| **Persistencia de estado atómica** | QSettings guarda de forma segura la geometría, orden de pestañas y vista activa en el almacenamiento del SO | Suite de pruebas de persistencia de ida y vuelta |
-| **Intercambio de perfiles sanitizado** | Exportación JSON validada (`softwarecenter-profile-v1.json`) que solo contiene rutas y etiquetas; sin credenciales | Pruebas de regresión en `tests/test_export_contract.py` |
-| **Aislamiento de producto hermano** | Espacio de nombres QSettings independiente, mutex aislado e identidad propia entre SoftwareCenter y LaunchBoards | `scripts/verify_product_boundaries.py` |
-| **Verificación Multi-SO en CI** | Validado en Python 3.10-3.12 en entornos Windows, macOS y Linux | Flujos de trabajo de GitHub Actions y pruebas de plataforma |
+| **Red del organizador** | El código revisado no implementa cuentas, telemetría ni sincronización con la nube; `open_file` delega las URL HTTP(S) a Qt o al navegador del sistema. | Revisar el código no mide la actividad de red en ejecución de SoftwareCenter, del navegador ni de los procesos iniciados. |
+| **Contexto de lanzamiento** | La apertura de archivos y URL se delega a las API de la plataforma; en Windows, el código solicita el directorio de destino como directorio de trabajo cuando está disponible. | El código y las pruebas revisados no verifican descriptores de seguridad de procesos ni imponen privilegios a procesos secundarios. |
+| **Eliminación de entradas** | La interfaz quita entradas de la lista y del estado del perfil guardado sin borrar los archivos referenciados. | Esto no describe los destinos que abra o modifique un programa externo. |
+| **Resolución por plataforma** | La búsqueda de destinos Windows `.lnk` usa COM con una alternativa en PowerShell; se parsea `Exec` de Linux `.desktop` y después se ejecuta. | Estos controladores no aíslan el comportamiento del destino; pueden ejecutar comandos configurados o programas externos. |
+| **Persistencia QSettings** | `save_settings` escribe pestañas, entradas, vistas, geometría e idioma mediante Qt `QSettings`. | El código no afirma que las escrituras sean transaccionales o resistentes a fallos. |
+| **Datos del perfil** | `softwarecenter-profile-v1.json` incluye campos del perfil y entradas con `label`, `path`, `kind` y `notes` opcionales; la importación sustituye el perfil actual tras confirmación. | Los valores pueden revelar detalles locales; las pruebas cubren casos de prueba y una operación de exportación e importación de ida y vuelta, pero no demuestran la detección ni la eliminación de secretos arbitrarios. Véase `tests/test_export_contract.py`. |
+| **Separación de productos** | `scripts/verify_product_boundaries.py` y las pruebas de producto comprueban espacios de ajustes y endpoints de instancia única separados para SoftwareCenter y LaunchBoards. | Es separación entre productos, no perfiles de usuario o de proyecto. Véase `PRODUCT_BOUNDARIES.md` y `tests/test_product_boundaries.py`. |
+| **Alcance de CI y las versiones** | CI ejecuta la matriz de versiones de Python en Ubuntu y trabajos smoke independientes para Linux/macOS. | Esto no implica CI en un runner Windows, certificación WACK, publicación en Store ni seguridad universal en tiempo de ejecución. Véase `CI_CONTRACT.md`. |
## Ecosistema hermano y productos relacionados
@@ -201,7 +204,7 @@ Frases de búsqueda útiles:
- `local-first app launcher Python PySide6`
- `desktop shortcut organizer with tabs`
- `softwarecenter-profile-v1.json`
-- `offline software launcher no cloud no telemetry`
+- `organizador de escritorio local con exportación de perfiles`
No es Microsoft Configuration Manager Software Center, ni una tienda de aplicaciones, ni un gestor de paquetes de red, ni un portal de despliegue remoto.
@@ -265,7 +268,7 @@ El reconciliador opcional de catálogo se proporciona como código de tiempo de
## Formato de intercambio
-Los perfiles se pueden exportar como `softwarecenter-profile-v1.json` e importar posteriormente. El formato transporta pestañas, modos de vista y entradas con `label`, `path`, `kind` y notas opcionales, pero no copia archivos locales ni credenciales. Las rutas inexistentes permanecen visibles como referencias. Consulte [EXPORTFORMAT.md](EXPORTFORMAT.md) para más detalles.
+Los perfiles se pueden exportar como `softwarecenter-profile-v1.json` e importar posteriormente. El formato incluye metadatos del perfil, pestañas, modos de vista y entradas con `label`, `path`, `kind` y notas opcionales. La aplicación no copia los archivos locales referenciados, pero las rutas, etiquetas y notas pueden contener datos sensibles; la aplicación no detecta ni elimina automáticamente los secretos que puedan contener. Tras la confirmación, la importación sustituye el perfil actual. Las rutas inexistentes permanecen visibles como referencias. Consulte [EXPORTFORMAT.md](EXPORTFORMAT.md) para más detalles.
## LaunchBoards
@@ -283,7 +286,7 @@ LaunchBoards comparte la implementación pero dispone de su propio espacio de no
## Activos de Windows Store
-La vía de Windows Store incluye un generador reproducible de capturas de pantalla para la interfaz actual. Ejecute `python generate_store_screenshots.py` para regenerar las imágenes sanitizadas de la tienda y `summary.json` en `README/screenshots/store/`.
+La vía de Windows Store incluye un generador reproducible de capturas de pantalla para la interfaz actual. Ejecute `python generate_store_screenshots.py` para regenerar las capturas de Store y `summary.json` en `README/screenshots/store/`.
## Pila tecnológica
@@ -292,27 +295,27 @@ La vía de Windows Store incluye un generador reproducible de capturas de pantal
| Lenguaje | Python 3.10+ |
| Framework de interfaz | PySide6 (Qt para Python) |
| Almacenamiento | QSettings (Registro de Windows / INI) |
-| Tamaño de código | ~690 líneas |
+| Tamaño del código | No se fija un recuento de líneas |
## Política de seguridad
-La seguridad y la privacidad son prioridades arquitectónicas fundamentales. Consulte [SECURITY.md](SECURITY.md) para consultar nuestra política completa de divulgación de vulnerabilidades, el SLA de respuesta de 48 horas y las garantías locales.
+[SECURITY.md](SECURITY.md) describe las versiones compatibles, los canales para comunicar vulnerabilidades, una primera respuesta declarada dentro de 48 horas y un plazo de clasificación de 5 días laborables. Las afirmaciones de la política no equivalen a una verificación en tiempo de ejecución.
## Licencias de terceros y gobernanza
-SoftwareCenter incorpora componentes de código abierto de terceros bajo licencias permisivas y conformes. Los detalles completos de la auditoría, los identificadores SPDX y las declaraciones de enlace dinámico están disponibles en [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+La licencia MIT del repositorio se aplica al código fuente del proyecto. Las dependencias tienen condiciones propias; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) recoge metadatos de componentes, pero no garantiza que todas las licencias sean permisivas ni la conformidad de cualquier paquete.
- **Atribución:** [NOTICE](NOTICE) (Atribución canónica de código abierto Lukas Geiger, organizaciones file-bricks y open-bricks).
-- **PySide6 y shiboken6:** [LGPL-3.0-only](https://www.gnu.org/licenses/lgpl-3.0.html) (enlazado dinámicamente mediante Qt for Python; garantiza la sustitución completa por parte del usuario según LGPLv3 §4).
-- **Biblioteca estándar de Python:** [PSFL-2.0](https://docs.python.org/3/license.html) (100% sin conexión, cero tráfico de red saliente).
-- **PyInstaller:** [GPL-2.0-or-later con PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) (herramienta de compilación; los ejecutables empaquetados están exentos del copyleft de GPL).
-- **Invariantes de gobernanza:** 10 garantías de tiempo de ejecución (INV-LOCAL-01 a INV-ZEROCOPY-10) verificadas mediante pruebas automatizadas.
+- **PySide6 y shiboken6:** El inventario recoge términos LGPL-3.0-only; consulte el [texto LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html) y los [metadatos del componente](THIRD_PARTY_LICENSES.md). La licencia MIT del proyecto no se aplica de forma general a estas dependencias.
+- **Biblioteca estándar de Python:** [PSF-2.0](https://docs.python.org/3/license.html). Esta licencia no indica si el organizador o los programas que inicia funcionan sin conexión.
+- **PyInstaller:** [GPL-2.0-or-later con PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) es una herramienta de compilación; para un paquete distribuido, consulte la licencia upstream y los avisos de distribución en vez de asumir una exención general.
+- **Límite de verificación:** Las pruebas cubren contratos concretos de código y documentación; no establecen garantías universales de tiempo de ejecución.
## Licencia
[MIT](LICENSE)
-**Nota:** Esta aplicación utiliza [PySide6](https://doc.qt.io/qtforpython-6/), bajo licencia LGPLv3. PySide6 se vincula de forma dinámica.
+**Nota:** MIT es la licencia del código fuente del proyecto en este repositorio. La aplicación utiliza [PySide6](https://doc.qt.io/qtforpython-6/), que tiene condiciones de licencia propias; véase [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
---
diff --git a/README.md b/README.md
index a88fcf1..2de952d 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
[](NOTICE)
[](https://docs.pytest.org/)
[](https://github.com/file-bricks/SoftwareCenter)
-[](SECURITY.md)
+[](SECURITY.md)
[](SECURITY.md)
[](LICENSE)
[](https://doc.qt.io/qtforpython-6/)
@@ -14,7 +14,7 @@
[](https://github.com/open-bricks)
[](llms.txt)
-[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md)
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
A lightweight, cross-platform desktop organizer for managing software shortcuts with tab-based categorization.
@@ -28,10 +28,10 @@ A lightweight, cross-platform desktop organizer for managing software shortcuts
- [Quick Reference](#quick-reference)
- [Features](#features)
- [Target Personas & Discoverability](#target-personas--discoverability)
-- [Comparative Matrix vs. Alternatives](#comparative-matrix-vs-alternatives)
+- [SoftwareCenter Capabilities & Boundaries](#comparative-matrix-vs-alternatives)
- [System Architecture](#system-architecture)
- [Lifecycle Sequence Flow](#lifecycle-sequence-flow)
-- [Core Capabilities & Safety Invariants](#core-capabilities--safety-invariants)
+- [Core Capabilities & Evidence Boundaries](#core-capabilities--safety-invariants)
- [Sibling Ecosystem & Sister Products](#sibling-ecosystem--sister-products)
- [Discovery Context](#discovery-context)
- [Requirements](#requirements)
@@ -56,7 +56,7 @@ A lightweight, cross-platform desktop organizer for managing software shortcuts
| Attribute | Details |
|---|---|
| **Tech Stack** | Python 3.10+ / PySide6 (Qt) / QSettings |
-| **License** | MIT (PySide6 dynamically linked under LGPLv3) |
+| **License** | Project code: MIT; PySide6 and other dependencies have separate terms (see [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
| **Exchange Format** | `softwarecenter-profile-v1.json` (see [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
| **Last Checked** | 2026-09-23 (local: full pytest suite, platform smokes, compileall, Ruff, dependency audit, file manager context menu integration, NOTICE attribution, CI lifecycle hardening; WACK remains dry-run only) |
@@ -75,7 +75,7 @@ A lightweight, cross-platform desktop organizer for managing software shortcuts
- **Linux Desktop Launchers** - `.desktop` entries show their app name and launch via their desktop command
- **Profile Export/Import** - Versioned `softwarecenter-profile-v1.json` format for migrations and backups
- **Multi-Selection** - Delete multiple entries at once
-- **Offline-First** - No telemetry, no accounts, no cloud connection
+- **Local-first operation** - The organizer code has no account, telemetry, or cloud-sync feature; HTTP(S) URLs and launched programs are opened through the platform and may use the network
## Target Personas & Discoverability
@@ -84,9 +84,9 @@ SoftwareCenter is designed to address specific workflow bottlenecks across four
| Persona | Core Profile & Responsibilities | Key Pain Point | SoftwareCenter Solution |
|---|---|---|---|
| **Persona 1: Desktop Power Users & Curators** | Power users running dozens of tools, workspace folders, and utilities daily. | Cluttered Windows desktop, slow Start Menu search latency, lack of persistent custom grouping. | Fast tab-based boards, drag-and-drop file organization, custom notes, and instant switching. |
-| **Persona 2: Solo Developers & DevOps Engineers** | Developers managing toolchains, CLI wrappers, portable apps, and virtual environments. | Mixing dev tools into consumer start menus; heavy launcher daemons consuming memory. | Isolated multi-profile identity, working directory preservation (`_startfile_in_dir`), zero daemon overhead. |
-| **Persona 3: Multi-PC Workstation Operators** | Users synchronizing configurations across multiple workstations (e.g. Workstation and Laptop). | Hardcoded absolute paths, drive letter mismatches, and machine-local secret leakages. | Schema-validated export (`softwarecenter-profile-v1.json`), strict secret scrubbing, non-destructive import. |
-| **Persona 4: Privacy-Conscious & Security Teams** | Security engineers and enterprise users requiring complete data confidentiality. | Commercial organizers with forced cloud accounts, telemetry, and background trackers. | 100% local-first offline execution (INV-LOCAL-01), zero network egress, unprivileged user rights (`RunAsInvoker`). |
+| **Persona 2: Solo Developers & DevOps Engineers** | Developers managing toolchains, CLI wrappers, portable apps, and virtual environments. | Mixing dev tools into consumer start menus; heavy launcher daemons consuming memory. | SoftwareCenter and LaunchBoards have separate app identities; Windows file launches request the target directory as working directory where supported. This is not a project-environment manager, and target behavior remains OS- and app-dependent. |
+| **Persona 3: Multi-PC Workstation Operators** | Users who manually move profiles between workstations. | Absolute paths may not resolve on another device; labels and optional notes may contain private details. | Versioned `softwarecenter-profile-v1.json` export/import; review paths and notes before sharing. Import replaces the current profile after confirmation; target files are not copied. |
+| **Persona 4: Privacy-Conscious Users** | People who prefer locally stored organizer settings and no in-app account or telemetry feature. | Saved paths and notes can reveal local details; opening a URL or launched program can communicate over the network. | The inspected organizer code has no account, telemetry, or cloud-sync feature. It does not guarantee confidentiality, zero egress for launched processes, or the privilege behavior of target programs. |
### High-Intent Search Phrases
@@ -97,20 +97,21 @@ SoftwareCenter is designed to address specific workflow bottlenecks across four
- `SoftwareCenter vs LaunchBoards profile switcher`
- `privacy friendly Windows app launcher with tabs`
-## Comparative Matrix vs. Alternatives
-
-| Capability / Dimension | SoftwareCenter | Windows Start Menu | Stardock Fences | SyMenu | Launchy / Flow Launcher |
-|---|:---:|:---:|:---:|:---:|:---:|
-| **Tab-Based Categorization** | **YES** (Dynamic Boards) | NO (Flat List / Folders) | YES (Desktop Fences) | YES (Hierarchical Menu) | NO (Search Box Only) |
-| **Open Source (MIT License)** | **YES** (100% Permissive) | NO (Proprietary Bundled) | NO (Commercial Closed) | YES (Freeware Closed) | YES (Open Source) |
-| **Zero Telemetry & 100% Offline** | **YES** (Strict Zero-Egress) | NO (Bing Search & Telemetry) | NO (License & Telemetry) | YES (Offline Capable) | PARTIAL (Plugin Network) |
-| **Multi-Profile Separation** | **YES** (Dual-Identity Core) | NO (Single User Profile) | NO (Desktop Surface Only) | PARTIAL (Config Profiles) | NO (Single Configuration) |
-| **Portable Redacted Profile Export** | **YES** (`softwarecenter-profile-v1.json`) | NO (Registry Dependent) | NO (Proprietary Backup) | PARTIAL (Custom XML) | NO (No Export Standard) |
-| **Working Directory Preservation** | **YES** (Parent CWD Guaranteed) | PARTIAL (Variable CWD) | PARTIAL (Explorer Default) | YES (Configurable CWD) | PARTIAL (Launch Root CWD) |
-| **Universal File/Doc/Folder Layer** | **YES** (Any FS Target / Droppable) | PARTIAL (Apps & Fixed Pins) | YES (Desktop Files) | YES (Menu Entries) | PARTIAL (Index Crawler) |
-| **Headless Batch Catalog Care** | **YES** (Automated Reconciler) | NO (Interactive Only) | NO (Interactive Only) | NO (Manual GUI) | NO (Interactive Only) |
-| **System Tray Quick Navigation** | **YES** (Integrated Tray Menu) | NO (Taskbar Fixed) | NO (Desktop Surface) | YES (Tray Centric) | NO (Keyboard Shortcut) |
-| **Unprivileged Execution (`RunAsInvoker`)** | **YES** (Strict Non-Elevation) | SYSTEM / High Privilege | Standard User / Admin | Standard User | Standard User |
+
+## SoftwareCenter Capabilities & Boundaries
+
+| Capability | Implemented behavior | Boundary |
+|---|---|---|
+| **Tab organization** | Groups path entries into named tabs, with tile and list views. | Tabs organize references; they are not per-project execution environments. |
+| **Local paths and URLs** | Drag-and-drop can register supported local paths and HTTP(S) URLs. | Entries point to targets; the organizer does not copy their contents. |
+| **Platform target handling** | Windows `.lnk` resolution accepts existing `.exe` or folder targets; macOS app bundles use `open`; Linux `.desktop` entries are parsed for name, icon, and `Exec`. | Resolution and launch are OS-specific. Linux `Exec` is launched as a command; this is not a script sandbox. |
+| **Working directory** | Windows file launches use `_startfile_in_dir` to request the target file's containing folder as working directory where supported. | Fallbacks may omit an explicit working directory; no parent CWD or cross-platform working-directory guarantee is made. |
+| **Local settings** | Qt `QSettings` stores tabs, entries, views, and window state in the product's settings namespace. | Qt and the OS provide the storage backend; no atomic-write or security-descriptor guarantee is claimed. |
+| **Profile export** | `softwarecenter-profile-v1.json` carries profile metadata, tabs, views, and entries with `label`, `path`, `kind`, and optional `notes`. | Paths, labels, and notes may reveal local details; target files are not copied. |
+| **Profile import** | The importer checks the format/version, normalizes entries, and requests confirmation. | Confirming import replaces the current profile; it is not a merge or a general no-data-loss guarantee. |
+| **Product identities** | SoftwareCenter and LaunchBoards share implementation but have separate settings namespaces, single-instance endpoints, and Store identities. | This separates two products; it does not provide user-selectable profiles within SoftwareCenter. |
+| **Network boundary** | The inspected organizer source has no account, telemetry, or cloud-sync implementation. | It opens HTTP(S) URLs and launches external targets, which may use the network; no whole-application or launched-process zero-egress guarantee is claimed. |
+| **Verification scope** | Repository tests cover named contracts; CI runs the Python version matrix on Ubuntu and separate Linux/macOS smoke jobs. | These checks do not establish behavior on every host, certify WACK/Store submission, or prove universal security properties. |
## System Architecture
@@ -119,18 +120,18 @@ graph TD
A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
B --> C["Tab & Board Manager"]
B --> D["Tiles & List Views"]
-
+
C --> E["Platform Resolvers"]
E --> E1["Windows (.lnk / .exe / Folders)"]
E --> E2["macOS (.app Bundles)"]
E --> E3["Linux (.desktop Launchers)"]
-
- C --> F["State Persistence (QSettings / Registry)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
-
+
B --> H["Windows Store & Build Pipeline"]
H --> H1["PyInstaller EXE Build"]
- H --> H2["WACK Dry-Run / MSIX Packaging"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
H --> H3["Reproducible Store Screenshot Generator"]
```
@@ -145,35 +146,37 @@ sequenceDiagram
participant Tab as Tab & Board Manager
participant Set as QSettings Persistence (Registry / INI)
participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
User->>SC: Drag & drop file / shortcut into tab
SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
- Res-->>SC: Validated target path & system icon
+ Res-->>SC: Resolved path and available system icon
SC->>Tab: Check duplicate & register item
Tab->>SC: Render item tile / list row
- Tab->>Set: Persist tabs, order & geometry atomically
+ Tab->>Set: Write tabs, order & geometry through QSettings
Set-->>SC: State saved locally
User->>SC: Double-click item or trigger "Export Profile"
alt Launch item
- SC->>User: Execute target binary via standard unprivileged launch
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
else Export profile
- SC->>Exp: Serialize boards, tabs, and items
- Exp-->>User: Write redacted softwarecenter-profile-v1.json (Zero secrets)
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
end
```
-## Core Capabilities & Safety Invariants
+
+## Core Capabilities & Evidence Boundaries
-| Invariant / Capability | Architecture Guarantee | Verification Mechanism |
+| Topic | Evidence in inspected code/tests | Scope and limit |
|---|---|---|
-| **100% Local-First & Zero Egress** | Runs entirely on the local machine; zero telemetry, zero cloud tracking, zero remote network calls | Source audit, offline runtime check, test suite |
-| **Non-Elevation (Least Privilege)** | Operates strictly with unprivileged standard user rights; never requests UAC administrative elevation | Process security descriptor verification |
-| **Non-Destructive Shortcut Operations** | Removing an entry only untracks shortcut metadata; never touches or deletes target executables or filesystem files | UI delete action isolation tests |
-| **Safe Path & Link Resolution** | Resolves Windows `.lnk`, macOS `.app`, and Linux `.desktop` targets without invoking shell scripting | Static target resolution contract tests |
-| **Atomic State Persistence** | QSettings safely flushes window geometry, tab order, and active view states to local OS storage | Atomic roundtrip persistence test suite |
-| **Portable & Redacted Profile Exchange** | Schema-validated JSON (`softwarecenter-profile-v1.json`) export containing only paths and labels; zero credential extraction | `tests/test_export_contract.py` regression tests |
-| **Sister-Product Isolation** | Separate QSettings namespace, mutex endpoint, and store identity between SoftwareCenter and LaunchBoards | `scripts/verify_product_boundaries.py` |
-| **Multi-OS CI Matrix Verification** | Validated across Python 3.10-3.12 on Windows, macOS, and Linux runners | GitHub Actions workflows and smoke checks |
+| **Organizer network behavior** | The app code has no account, telemetry, or cloud-sync client; `open_file` delegates HTTP(S) URLs to Qt or the platform browser. | Source inspection is not a runtime egress test for SoftwareCenter, the browser, or launched processes. |
+| **Launch context** | File and URL launches are delegated to platform APIs; Windows launch code requests a target working directory when available. | The reviewed code and tests do not verify process security descriptors or enforce child-process privileges. |
+| **Entry removal** | The UI removes entries from its list and saved profile state without deleting referenced files. | This says nothing about targets opened or modified by an external program. |
+| **Platform resolution** | Windows `.lnk` lookup uses COM with a PowerShell fallback; Linux `.desktop` `Exec` data is parsed and then launched. | These handlers do not sandbox target behavior; launching can run configured commands or external programs. |
+| **QSettings persistence** | `save_settings` writes tab, entry, view, geometry, and language values through Qt `QSettings`. | The code does not claim an atomic transaction or crash-proof write. |
+| **Profile data** | `softwarecenter-profile-v1.json` includes profile fields and entry `label`, `path`, `kind`, and optional `notes`; import replaces the current profile after confirmation. | Values can expose local details; tests cover fixtures and a round trip, not arbitrary secret scrubbing. See `tests/test_export_contract.py`. |
+| **Sibling product separation** | `scripts/verify_product_boundaries.py` and the product-boundary tests check separate settings namespaces and single-instance endpoints for SoftwareCenter and LaunchBoards. | This is product separation, not multi-user or per-project profiles. See `PRODUCT_BOUNDARIES.md` and `tests/test_product_boundaries.py`. |
+| **CI and release scope** | CI has the Python-version regression matrix on Ubuntu and separate Linux/macOS smoke jobs. | This does not imply Windows-host CI, WACK certification, Store publication, or universal runtime security. See `CI_CONTRACT.md`. |
## Sibling Ecosystem & Sister Products
@@ -202,7 +205,7 @@ Useful search phrases:
- `local-first app launcher Python PySide6`
- `desktop shortcut organizer with tabs`
- `softwarecenter-profile-v1.json`
-- `offline software launcher no cloud no telemetry`
+- `local-first desktop organizer with profile export`
It is not Microsoft Configuration Manager Software Center, an app store, a package manager, or a remote deployment portal.
@@ -276,7 +279,7 @@ procedure are documented in [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md).
## Exchange Format
-Profiles can be exported as `softwarecenter-profile-v1.json` and imported again later. The format carries tabs, view modes, and entries with `label`, `path`, `kind`, and optional `notes`, but does not copy local files or credentials. Missing paths remain visible as references. See [EXPORTFORMAT.md](EXPORTFORMAT.md) for details.
+Profiles can be exported as `softwarecenter-profile-v1.json` and imported again later. The format carries profile metadata, tabs, view modes, and entries with `label`, `path`, `kind`, and optional `notes`. The app does not copy referenced local files, but paths, labels, and notes can contain sensitive details; the format is not a secret-scrubbing boundary. After confirmation, import replaces the current profile. Missing paths remain visible as references. See [EXPORTFORMAT.md](EXPORTFORMAT.md) for details.
## LaunchBoards
@@ -298,7 +301,7 @@ documented in [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md).
The Windows Store track now includes a reproducible screenshot generator for the
current desktop UI. Run `python generate_store_screenshots.py` to refresh
-`README/screenshots/store/` with four redacted Store images and `summary.json`.
+`README/screenshots/store/` with four generated Store screenshots and `summary.json`.
## Tech Stack
@@ -307,27 +310,27 @@ current desktop UI. Run `python generate_store_screenshots.py` to refresh
| Language | Python 3.10+ |
| GUI Framework | PySide6 (Qt for Python) |
| Storage | QSettings (Windows Registry / INI) |
-| Code Size | ~690 lines |
+| Code Size | See current repository files; no fixed line-count claim |
## Security Policy
-Security and privacy are core architectural priorities. See [SECURITY.md](SECURITY.md) for our full vulnerability disclosure guidelines, 48-hour response SLA, and local-first invariants.
+The repository's [SECURITY.md](SECURITY.md) describes supported versions, vulnerability-reporting channels, a stated 48-hour initial-response window, and a 5-business-day triage window. Its policy statements should not be read as runtime verification.
## Third-Party Licenses & Governance
-SoftwareCenter incorporates third-party open-source components under compliant, permissive licensing. Complete audit details, SPDX identifiers, and dynamic linking compliance statements are available in [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+The repository's MIT license applies to project source code. Third-party dependencies have their own terms; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) records the component metadata but is not a blanket permissive-license or package-compliance guarantee.
-- **Attribution:** [NOTICE](NOTICE) (Canonical open-source copyright attribution Lukas Geiger, file-bricks and open-bricks umbrella).
-- **PySide6 & shiboken6:** [LGPL-3.0-only](https://www.gnu.org/licenses/lgpl-3.0.html) (dynamically linked via Qt for Python, preserving full user replaceability under LGPLv3 §4).
-- **Python Standard Library:** [PSF-2.0](https://docs.python.org/3/license.html) (100% offline, zero network egress).
-- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) (build-time tooling; output executables are exempt from GPL copyleft).
-- **Governance Invariants:** 10 core runtime guarantees (INV-LOCAL-01 through INV-ZEROCOPY-10) enforced by automated tests.
+- **Attribution:** [NOTICE](NOTICE) (copyright attribution for Lukas Geiger and the file-bricks / open-bricks organizations).
+- **PySide6 & shiboken6:** The inventory records LGPL-3.0-only terms; see the [LGPL-3.0 text](https://www.gnu.org/licenses/lgpl-3.0.html) and [component metadata](THIRD_PARTY_LICENSES.md). The project MIT license does not apply as a blanket license to these dependencies.
+- **Python Standard Library:** [PSF-2.0](https://docs.python.org/3/license.html). This license does not imply that the organizer or programs it launches operate offline.
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) is build tooling; review the upstream license and distribution notices for a packaged build rather than inferring a blanket exemption.
+- **Verification boundary:** Tests cover named code and documentation contracts; they do not establish universal runtime guarantees.
## License
[MIT](LICENSE)
-**Note:** This application uses [PySide6](https://doc.qt.io/qtforpython-6/), licensed under LGPLv3. PySide6 is dynamically linked.
+**Note:** MIT is the repository's project-source license. The application uses [PySide6](https://doc.qt.io/qtforpython-6/), which has separate dependency licensing terms; see [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
---
diff --git a/README_ar.md b/README_ar.md
new file mode 100644
index 0000000..331e068
--- /dev/null
+++ b/README_ar.md
@@ -0,0 +1,349 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+منظّم سطح مكتب خفيف ومتعدد المنصات لإدارة اختصارات البرامج باستخدام تصنيف قائم على علامات التبويب.
+
+> [!NOTE]
+> **تكامل LLM / AI وفهرس قابل للقراءة آليًا:** يوفّر SoftwareCenter بيانات وصفية منظّمة وقابلة للقراءة آليًا في [`llms.txt`](llms.txt)، ويدعم ترحيل الملفات الشخصية عبر JSON ذي إصدار (`softwarecenter-profile-v1.json`).
+
+
+
+## تنقّل سريع
+
+- [مرجع سريع](#quick-reference)
+- [الميزات](#features)
+- [الفئات المستهدفة وسهولة الاكتشاف](#target-personas--discoverability)
+- [إمكانات SoftwareCenter وحدوده](#comparative-matrix-vs-alternatives)
+- [بنية النظام](#system-architecture)
+- [تسلسل دورة الحياة](#lifecycle-sequence-flow)
+- [الإمكانات الأساسية وحدود الأدلة](#core-capabilities--safety-invariants)
+- [النظام البيئي الشقيق والمنتجات المرتبطة](#sibling-ecosystem--sister-products)
+- [سياق الاكتشاف](#discovery-context)
+- [المتطلبات](#requirements)
+- [التثبيت](#installation)
+- [التشغيل](#run)
+- [الاستخدام](#usage)
+- [إنشاء الملف التنفيذي](#build-executable)
+- [فحوص الجودة](#quality-checks)
+- [صيانة فهرس المشغّلات دون واجهة رسومية](#headless-launcher-catalog-care)
+- [تنسيق التبادل](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [حدود المنتج الشقيق](#sister-product-boundary)
+- [موارد Windows Store](#windows-store-assets)
+- [المكدس التقني](#tech-stack)
+- [سياسة الأمان](#security-policy)
+- [تراخيص الأطراف الثالثة والحوكمة](#third-party-licenses--governance)
+- [الترخيص](#license)
+- [المسؤولية](#liability)
+
+
+## مرجع سريع
+
+| الخاصية | التفاصيل |
+|---|---|
+| **المكدس التقني** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **الترخيص** | شفرة المشروع: MIT؛ لـ PySide6 والتبعيات الأخرى شروط منفصلة (راجع [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **تنسيق التبادل** | `softwarecenter-profile-v1.json` (راجع [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **آخر فحص** | 2026-09-23 (محليًا: مجموعة pytest كاملة، اختبارات smoke للمنصات، compileall، Ruff، تدقيق التبعيات، تكامل قائمة السياق لمدير الملفات، إسناد NOTICE، وتعزيز دورة حياة CI؛ ما يزال WACK في وضع dry-run فقط) |
+
+
+## الميزات
+
+- **التنظيم بعلامات تبويب** — جمّع البرامج والمستندات والمجلدات في لوحات يمكن إعادة تسميتها ونقلها
+- **السحب والإفلات ومنظّم شامل** — أسقط التطبيقات والبرامج النصية والمستندات والمجلدات والاختصارات مباشرة على اللوحات؛ يعمل كطبقة تنظيم مستقلة فوق نظام الملفات
+- **إرشادات اللوحة الفارغة** — تعرض مساحة إرشادية على اللوحات الفارغة أنواع العناصر التي يمكن إسقاطها
+- **طريقتا عرض** — مربعات بأيقونات كبيرة وقائمة
+- **الحفظ التلقائي** — تُحفَظ علامات التبويب ومحتوياتها وموضع النافذة
+- **قائمة السياق** — افتح عنصرًا أو أزله بالنقر بزر الفأرة الأيمن
+- **متعدد المنصات** — Windows وmacOS وLinux
+- **أيقونات أصلية** — عرض تلقائي لأيقونات تطبيقات النظام
+- **حل اختصارات Windows** — تُحفَظ ملفات `.lnk` المسقطة التي تشير إلى `.exe` أو مجلد بوصفها الهدف الأصلي
+- **حزم تطبيقات macOS** — اسحب تطبيقات `.app` وأفلتها مباشرة في المنظّم
+- **مشغّلات Linux لسطح المكتب** — تعرض إدخالات `.desktop` اسم التطبيق وتشغّله باستخدام أمر سطح المكتب الخاص بها
+- **تصدير/استيراد الملفات الشخصية** — تنسيق `softwarecenter-profile-v1.json` ذي الإصدار للترحيل والنسخ الاحتياطي
+- **تحديد متعدد** — احذف عدة إدخالات دفعة واحدة
+- **العمل مع تفضيل المحلي** — لا تتضمن شفرة المنظّم ميزة حساب أو قياس عن بُعد أو مزامنة سحابية؛ تُفتح عناوين HTTP(S) والبرامج التي يجري تشغيلها عبر المنصة وقد تستخدم الشبكة
+
+
+## الفئات المستهدفة وسهولة الاكتشاف
+
+صُمّم SoftwareCenter لمعالجة عوائق محددة في سير العمل لدى أربع فئات مختلفة من المستخدمين:
+
+| الفئة | الملف الشخصي والمسؤوليات الأساسية | المشكلة الرئيسية | حل SoftwareCenter |
+|---|---|---|---|
+| **الفئة 1: مستخدمو سطح المكتب المتقدمون ومنظّمو الأدوات** | يستخدمون يوميًا عشرات الأدوات ومجلدات مساحات العمل والأدوات المساعدة. | فوضى سطح مكتب Windows، وبطء البحث في قائمة Start، وغياب التجميع المخصص الدائم. | لوحات سريعة بعلامات تبويب، وتنظيم الملفات بالسحب والإفلات، وملاحظات مخصصة، والتبديل الفوري. |
+| **الفئة 2: المطورون المستقلون ومهندسو DevOps** | يديرون سلاسل الأدوات وأغلفة CLI والتطبيقات المحمولة والبيئات الافتراضية. | اختلاط أدوات التطوير بقوائم Start للمستخدمين العاديين؛ وخدمات المشغّل الثقيلة التي تستهلك الذاكرة. | لكل من SoftwareCenter وLaunchBoards هوية تطبيق منفصلة؛ وعند تشغيل الملفات في Windows يُطلب مجلد الهدف بوصفه دليل العمل حيثما كان ذلك مدعومًا. هذا ليس مديرًا لبيئات المشاريع، ويظل سلوك الهدف معتمدًا على نظام التشغيل والتطبيق. |
+| **الفئة 3: مستخدمون يعملون على عدة حواسيب** | ينقلون الملفات الشخصية يدويًا بين محطات العمل. | قد لا تعمل المسارات المطلقة على جهاز آخر؛ وقد تتضمن التسميات والملاحظات الاختيارية تفاصيل خاصة. | تصدير/استيراد بإصدار عبر `softwarecenter-profile-v1.json`؛ راجع المسارات والملاحظات قبل المشاركة. بعد التأكيد، يستبدل الاستيراد الملف الشخصي الحالي؛ ولا تُنسخ الملفات المستهدفة. |
+| **الفئة 4: مستخدمون مهتمون بالخصوصية** | يفضّلون تخزين إعدادات المنظّم محليًا وعدم وجود ميزة حساب أو قياس عن بُعد داخل التطبيق. | قد تكشف المسارات والملاحظات المحفوظة تفاصيل محلية؛ وقد يؤدي فتح عنوان URL أو تشغيل برنامج إلى اتصال بالشبكة. | لا تتضمن شفرة المنظّم التي جرى فحصها ميزة حساب أو قياس عن بُعد أو مزامنة سحابية. ولا يضمن ذلك السرية أو انعدام الاتصالات الصادرة من العمليات التي يجري تشغيلها أو سلوك الامتيازات للبرامج المستهدفة. |
+
+### عبارات بحث ذات نية واضحة
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## إمكانات SoftwareCenter وحدوده
+
+| الإمكانية | السلوك المطبّق | الحد |
+|---|---|---|
+| **التنظيم بعلامات تبويب** | يجمع إدخالات المسارات في علامات تبويب مسماة، مع عرض المربعات والقائمة. | تنظّم علامات التبويب المراجع؛ وليست بيئات تنفيذ لكل مشروع. |
+| **المسارات المحلية وعناوين URL** | يمكن للسحب والإفلات تسجيل المسارات المحلية المدعومة وعناوين HTTP(S). | تشير الإدخالات إلى أهداف؛ ولا ينسخ المنظّم محتوياتها. |
+| **معالجة الأهداف حسب المنصة** | يقبل حل `.lnk` في Windows أهداف `.exe` أو مجلدات موجودة؛ وتُفتح حزم تطبيقات macOS عبر `open`؛ وتُحلّل إدخالات `.desktop` في Linux لاستخراج الاسم والأيقونة و`Exec`. | يختلف الحل والتشغيل حسب نظام التشغيل. ويُشغّل `Exec` في Linux كأمر؛ وهذا ليس عزلًا للبرامج النصية. |
+| **دليل العمل** | تستخدم عمليات تشغيل الملفات في Windows الرمز `_startfile_in_dir` لطلب مجلد الملف المستهدف بوصفه دليل العمل متى كان ذلك مدعومًا. | قد لا تحدد مسارات التشغيل الاحتياطية دليل عمل صريحًا؛ ولا يوجد ضمان لدليل العمل الخاص بالعملية الأم أو لسلوك موحّد عبر المنصات. |
+| **الإعدادات المحلية** | يخزن Qt `QSettings` علامات التبويب والإدخالات وطرق العرض وحالة النافذة ضمن مساحة أسماء إعدادات المنتج. | يوفّر Qt ونظام التشغيل الواجهة الخلفية للتخزين؛ ولا يُدّعى وجود ضمان للكتابة الذرية أو واصف الأمان. |
+| **تصدير الملف الشخصي** | يتضمن `softwarecenter-profile-v1.json` بيانات الملف الشخصي الوصفية وعلامات التبويب وطرق العرض والإدخالات ذات `label` و`path` و`kind` و`notes` الاختيارية. | قد تكشف المسارات والتسميات والملاحظات تفاصيل محلية؛ ولا تُنسخ الملفات المستهدفة. |
+| **استيراد الملف الشخصي** | يتحقق المستورد من التنسيق/الإصدار، ويطبّع الإدخالات، ويطلب التأكيد. | عند تأكيد الاستيراد يُستبدل الملف الشخصي الحالي؛ ولا يحدث دمج، ولا يوجد ضمان عام بعدم فقدان البيانات. |
+| **هويات المنتجات** | يشترك SoftwareCenter وLaunchBoards في التنفيذ، لكن لكل منهما مساحة أسماء إعدادات ونقاط نهاية للمثيل الواحد وهويات Store منفصلة. | يفصل ذلك بين منتجين؛ ولا يوفر ملفات شخصية قابلة للاختيار من المستخدم داخل SoftwareCenter. |
+| **حدود الشبكة** | لا يتضمن مصدر المنظّم الذي جرى فحصه تنفيذًا للحساب أو القياس عن بُعد أو المزامنة السحابية. | يفتح عناوين HTTP(S) ويشغّل أهدافًا خارجية قد تستخدم الشبكة؛ ولا يوجد ضمان بانعدام الاتصالات الصادرة عن التطبيق ككل أو العمليات التي يشغّلها. |
+| **نطاق التحقق** | تغطي اختبارات المستودع عقودًا مسماة؛ وتشغّل CI مصفوفة إصدارات Python على Ubuntu واختبارات smoke منفصلة لـ Linux وmacOS. | لا تثبت هذه الفحوص السلوك على كل مضيف، ولا تصادق على WACK أو إرسال Store، ولا تثبت خصائص أمان عامة. |
+
+
+## بنية النظام
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## تسلسل دورة الحياة
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## الإمكانات الأساسية وحدود الأدلة
+
+| الموضوع | الأدلة في الشفرة والاختبارات التي جرى فحصها | النطاق والحدود |
+|---|---|---|
+| **سلوك المنظّم على الشبكة** | لا تتضمن شفرة التطبيق عميلًا للحساب أو القياس عن بُعد أو المزامنة السحابية؛ ويفوّض `open_file` عناوين HTTP(S) إلى Qt أو متصفح المنصة. | لا يشكّل فحص المصدر اختبارًا للاتصالات الصادرة وقت التشغيل من SoftwareCenter أو المتصفح أو العمليات التي يجري تشغيلها. |
+| **سياق التشغيل** | تُفوّض عمليات تشغيل الملفات وعناوين URL إلى واجهات المنصة؛ وتطلب شفرة التشغيل في Windows دليل عمل للهدف متى توفر ذلك. | لا تتحقق الشفرة والاختبارات التي روجعت من واصفات أمان العمليات ولا تفرض امتيازات العمليات الفرعية. |
+| **إزالة الإدخالات** | تزيل الواجهة الإدخالات من قائمتها ومن حالة الملف الشخصي المحفوظة دون حذف الملفات المشار إليها. | لا يصف ذلك ما قد يفعله برنامج خارجي بالأهداف التي يفتحها أو يعدّلها. |
+| **الحل حسب المنصة** | يستخدم البحث عن هدف `.lnk` في Windows واجهة COM مع بديل PowerShell؛ وتُحلّل بيانات `Exec` في `.desktop` على Linux ثم تُشغّل. | لا تعزل هذه المعالجات سلوك الأهداف؛ فقد يؤدي التشغيل إلى تنفيذ أوامر مضبوطة أو برامج خارجية. |
+| **استمرارية QSettings** | تكتب `save_settings` قيم علامات التبويب والإدخالات وطرق العرض وأبعاد النافذة واللغة عبر Qt `QSettings`. | لا تدّعي الشفرة معاملة ذرية أو كتابة مقاومة للأعطال. |
+| **بيانات الملف الشخصي** | يتضمن `softwarecenter-profile-v1.json` حقول الملف الشخصي وإدخالات `label` و`path` و`kind` و`notes` الاختيارية؛ ويستبدل الاستيراد الملف الحالي بعد التأكيد. | قد تكشف القيم تفاصيل محلية؛ وتغطي الاختبارات بيانات fixtures وذهابًا وإيابًا، لا إزالة الأسرار من البيانات عمومًا. راجع `tests/test_export_contract.py`. |
+| **فصل المنتجات الشقيقة** | يتحقق `scripts/verify_product_boundaries.py` واختبارات حدود المنتجات من فصل مساحات أسماء الإعدادات ونقاط نهاية المثيل الواحد بين SoftwareCenter وLaunchBoards. | هذا فصل بين المنتجات، لا ملفات شخصية متعددة المستخدمين أو خاصة بكل مشروع. راجع `PRODUCT_BOUNDARIES.md` و`tests/test_product_boundaries.py`. |
+| **نطاق CI والإصدار** | تتضمن CI مصفوفة انحدار لإصدارات Python على Ubuntu واختبارات smoke منفصلة لـ Linux وmacOS. | لا يعني ذلك وجود CI على مضيف Windows أو اعتماد WACK أو نشر Store أو أمان شامل وقت التشغيل. راجع `CI_CONTRACT.md`. |
+
+
+## النظام البيئي الشقيق والمنتجات المرتبطة
+
+ينتمي SoftwareCenter إلى مجموعة أدوات سطح المكتب الأوسع **file-bricks** وإلى مبادرة المصدر المفتوح الجامعة **open-bricks**:
+
+| المشروع | النظام البيئي | التركيز الأساسي | التكامل / أوجه التكامل |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | فحص المستندات والوسائط | تطبيق مكمل لفرز الملفات وتحليل المستندات جنائيًا |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | مستكشف ملفات متعدد التبويبات | إدارة ملفات تكميلية بلوحتين لاختصارات SoftwareCenter |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | فتح أقفال السحابة وإصلاحها | يفتح عناصر المزامنة النائبة المتجمدة وملفات OneDrive المشار إليها بالاختصارات |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | قاعدة معرفة Markdown ومستندات | منظّم محلي لملخصات المستندات ضمن سير عمل البحث |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | إنشاء النماذج والقوالب | منشئ مستندات لسطح المكتب يمكن تشغيله عبر مربعات SoftwareCenter |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | أداة كلمات مرور PDF وفتحه | أداة محلية لفتح PDF دون تغيير الملف الأصلي |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | بوابة بدء الأتمتة | تحمي بيئات محطات عمل سطح المكتب من طفرات بدء التشغيل |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | محلل شفرة مصدر AST | تحليل ساكن لأدوات ووحدات سطح المكتب المكتوبة بـ Python |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | جسر اتصال الوكلاء | موائمات مراسلة ونقل بلا تبعيات |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | مظلة منتجات سطح المكتب مفتوحة المصدر | مظلة للمعايير والحوكمة والتغليف |
+
+
+## سياق الاكتشاف
+
+يسهل العثور على SoftwareCenter بوصفه **local-first PySide6 app launcher** أو **desktop shortcut organizer**. ويقع بين قائمة Start في Windows ومجلدات اختصارات سطح المكتب وأنظمة جرد البرامج الكاملة: فهو يشغّل ما هو موجود أصلًا على جهازك، ويجمع الاختصارات في علامات تبويب، ويصدّر الملفات الشخصية المحمولة ويستوردها.
+
+عبارات بحث مفيدة:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+هذا ليس Microsoft Configuration Manager Software Center، ولا متجر تطبيقات أو مدير حزم أو بوابة نشر عن بُعد.
+
+
+## المتطلبات
+
+- Python 3.10+
+- PySide6
+
+
+## التثبيت
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## التشغيل
+
+```bash
+python SoftwareCenter.py
+```
+
+في Windows يمكنك أيضًا استخدام `START.bat` أو النسخة المسبقة البناء `SoftwareCenter.exe` من [Releases](https://github.com/file-bricks/SoftwareCenter/releases).
+
+
+## الاستخدام
+
+| الإجراء | التعليمات |
+|--------|-------------|
+| إضافة البرامج | اسحب الملفات والمجلدات والاختصارات وحزم `.app` على macOS أو مشغّلات `.desktop` على Linux إلى النافذة؛ وتُحل ملفات Windows `.lnk` التي تشير إلى ملفات `.exe` أو مجلدات إلى الهدف الأصلي |
+| تنظيم علامات التبويب | Toolbar > "New Tab"، وانقر نقرًا مزدوجًا لإعادة التسمية |
+| تبديل طريقة العرض | Toolbar > Tiles / List |
+| تشغيل البرامج | انقر نقرًا مزدوجًا أو انقر بالزر الأيمن > Open/Start |
+| إزالة الإدخالات | انقر بالزر الأيمن > Delete (يزيل الاختصار فقط) |
+| تصدير الملف الشخصي | `File > Export Profile` أو إجراء شريط الأدوات |
+| استيراد الملف الشخصي | `File > Import Profile` أو إجراء شريط الأدوات؛ ويستبدل الملف الشخصي الحالي |
+
+
+## إنشاء الملف التنفيذي
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+سيكون ملف EXE في `dist/SoftwareCenter.exe`. وفي Windows ينسخه `build_exe.bat` أيضًا إلى جذر المشروع للاستخدام المحلي.
+
+
+## فحوص الجودة
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+تُوثّق [CI_CONTRACT.md](CI_CONTRACT.md) سير العمل المستضاف والحد الصريح لجزء الويب الاختياري.
+
+تشغّل GitHub Actions اختبارات smoke هذه. يتحقق اختبار macOS على `macos-latest` من استيراد `.app` والتشغيل عبر `open` واستمرارية QSettings وتصدير الملف الشخصي؛ ويغطي اختبار Linux على `ubuntu-latest` استيراد `.desktop` والتشغيل عبر `Exec`/`xdg-open` واستمرارية QSettings وتصدير الملف الشخصي. تُتجاهل مخرجات البناء وملفات المهام والاختبارات المحلية، وينبغي عدم إيداعها.
+
+لمسار Windows Store، يفحص `python scripts/run_windows_wack.py --dry-run` مسارات MSIX/AppCert المحلية ويطبع أمر WACK القابل لإعادة الإنتاج. ينبغي إجراء تشغيل الاعتماد الفعلي من PowerShell مرتفع الصلاحيات على MSIX حديث التوقيع قبل الإرسال.
+ينشئ `python generate_store_screenshots.py` مجموعة لقطات Store القابلة لإعادة الإنتاج ضمن `README/screenshots/store/`.
+
+
+## صيانة فهرس المشغّلات دون واجهة رسومية
+
+تتوفر أداة مواءمة الفهرس الاختيارية كشفرة تشغيل من Plan-D في `scripts/softwarecenter_sync.py`. ملفات الفهرس والسجل المتزامنة مدخلات CLI صريحة؛ والأمر للقراءة فقط ما لم يُمرر `--apply`. وتُوثّق حمولة المجدول ذات runtime المثبّتة وبوابات التطبيق والقراءة الراجعة الأصلية وإجراء التراجع في [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md).
+
+
+## تنسيق التبادل
+
+يمكن تصدير الملفات الشخصية بصيغة `softwarecenter-profile-v1.json` ثم استيرادها لاحقًا. يتضمن التنسيق بيانات الملف الشخصي الوصفية وعلامات التبويب وأوضاع العرض والإدخالات ذات `label` و`path` و`kind` و`notes` الاختيارية. لا ينسخ التطبيق الملفات المحلية المشار إليها، لكن المسارات والتسميات والملاحظات قد تحتوي على تفاصيل حساسة؛ ولا يضمن هذا التنسيق إزالة الأسرار من البيانات. بعد التأكيد، يستبدل الاستيراد الملف الشخصي الحالي. وتظل المسارات المفقودة ظاهرة كمراجع. راجع [EXPORTFORMAT.md](EXPORTFORMAT.md) للتفاصيل.
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) هو المنتج الشقيق لـ SoftwareCenter: يشترك معه في قاعدة الشفرة، وله علامة وهوية خاصتان، ويركز على لوحات مساحة العمل القابلة للتبديل بدلًا من مشغّل اختصارات عام. ويشترك مع هذا المستودع وخط الإصدار — فلا توجد شجرة مصدر منفصلة لـ LaunchBoards تحتاج إلى صيانة.
+
+
+## حدود المنتج الشقيق
+
+يشترك LaunchBoards في التنفيذ، لكن له مساحة أسماء QSettings ونقطة نهاية للمثيل الواحد وأيقونة وملفًا تنفيذيًا وهوية Store ومسار إصدار خاصًا به. وتُوثّق [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md) الفحوص الساكنة القابلة لإعادة الإنتاج، وفحوص العمليات المتوازية المعزولة، وفحوص الملفات الناتجة.
+
+
+## موارد Windows Store
+
+يتضمن مسار Windows Store الآن مولّدًا قابلًا لإعادة الإنتاج للقطات واجهة سطح المكتب الحالية. شغّل `python generate_store_screenshots.py` لتحديث `README/screenshots/store/` بأربع لقطات Store مولّدة و`summary.json`.
+
+
+## المكدس التقني
+
+| المكوّن | التقنية |
+|-----------|-----------|
+| اللغة | Python 3.10+ |
+| إطار الواجهة الرسومية | PySide6 (Qt for Python) |
+| التخزين | QSettings (Windows Registry / INI) |
+| حجم الشفرة | راجع ملفات المستودع الحالية؛ لا يوجد ادعاء بعدد ثابت من الأسطر |
+
+
+## سياسة الأمان
+
+تصف [SECURITY.md](SECURITY.md) في المستودع الإصدارات المدعومة وقنوات الإبلاغ عن الثغرات ونافذة استجابة أولية معلنة مدتها 48 ساعة ونافذة تقييم أولي للثغرات مدتها 5 أيام عمل. ولا ينبغي فهم بيانات السياسة هذه على أنها تحقق وقت التشغيل.
+
+
+## تراخيص الأطراف الثالثة والحوكمة
+
+ينطبق ترخيص MIT للمستودع على شفرة مصدر المشروع. وللتبعيات التابعة لأطراف ثالثة شروطها الخاصة؛ ويسجل [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) بيانات المكونات الوصفية، لكنه ليس ضمانًا شاملًا لتراخيص متساهلة أو امتثال الحزم.
+
+- **الإسناد:** [NOTICE](NOTICE) (إسناد حقوق النشر إلى Lukas Geiger ومنظمتي file-bricks / open-bricks).
+- **PySide6 وshiboken6:** يسجل الجرد شروط LGPL-3.0-only؛ راجع [نص LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html) و[بيانات المكونات الوصفية](THIRD_PARTY_LICENSES.md). ولا ينطبق ترخيص MIT للمشروع على هذه التبعيات بوصفه ترخيصًا شاملًا.
+- **مكتبة Python القياسية:** [PSF-2.0](https://docs.python.org/3/license.html). لا يعني هذا الترخيص أن المنظّم أو البرامج التي يشغّلها تعمل دون اتصال.
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) هو ترخيص لأداة بناء؛ راجع الترخيص upstream وإشعارات التوزيع للبناء المعبأ بدل افتراض وجود إعفاء شامل.
+- **حدود التحقق:** تغطي الاختبارات عقودًا مسماة في الشفرة والوثائق؛ ولا تثبت ضمانات عامة وقت التشغيل.
+
+
+## الترخيص
+
+[MIT](LICENSE)
+
+**ملاحظة:** MIT هو ترخيص شفرة مصدر المشروع في المستودع. يستخدم التطبيق [PySide6](https://doc.qt.io/qtforpython-6/)، وله شروط ترخيص تبعية منفصلة؛ راجع [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+
+---
+
+
+## المسؤولية
+
+هذا المشروع مساهمة مفتوحة المصدر مقدمة دون مقابل. تقتصر المسؤولية على القصد والإهمال الجسيم (§ 521 من القانون المدني الألماني). استخدمه على مسؤوليتك الخاصة. ولا يُفترض وجود ضمان أو التزام بالصيانة أو ملاءمة لغرض معين.
diff --git a/README_bn.md b/README_bn.md
new file mode 100644
index 0000000..56f38f9
--- /dev/null
+++ b/README_bn.md
@@ -0,0 +1,349 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+ট্যাবভিত্তিক শ্রেণিবিন্যাসে সফটওয়্যার শর্টকাট পরিচালনার জন্য হালকা, বহু-প্ল্যাটফর্মের ডেস্কটপ সংগঠক।
+
+> [!NOTE]
+> **LLM / AI ইন্টিগ্রেশন ও যন্ত্র-পাঠযোগ্য সূচি:** SoftwareCenter [`llms.txt`](llms.txt)-এ গঠিত যন্ত্র-পাঠযোগ্য মেটাডেটা দেয় এবং সংস্করণযুক্ত JSON (`softwarecenter-profile-v1.json`) দিয়ে প্রোফাইল স্থানান্তর সমর্থন করে।
+
+
+
+## দ্রুত নেভিগেশন
+
+- [দ্রুত তথ্য](#quick-reference)
+- [বৈশিষ্ট্য](#features)
+- [লক্ষ্য ব্যবহারকারী ও সহজে খুঁজে পাওয়া](#target-personas--discoverability)
+- [SoftwareCenter-এর সক্ষমতা ও সীমা](#comparative-matrix-vs-alternatives)
+- [সিস্টেম স্থাপত্য](#system-architecture)
+- [জীবনচক্রের ধাপক্রম](#lifecycle-sequence-flow)
+- [মূল সক্ষমতা ও প্রমাণের সীমা](#core-capabilities--safety-invariants)
+- [সহযোগী ইকোসিস্টেম ও সংশ্লিষ্ট পণ্য](#sibling-ecosystem--sister-products)
+- [অনুসন্ধানের প্রেক্ষাপট](#discovery-context)
+- [প্রয়োজনীয়তা](#requirements)
+- [ইনস্টলেশন](#installation)
+- [চালানো](#run)
+- [ব্যবহার](#usage)
+- [এক্সিকিউটেবল তৈরি](#build-executable)
+- [গুণমান যাচাই](#quality-checks)
+- [GUI ছাড়া লঞ্চার ক্যাটালগ রক্ষণাবেক্ষণ](#headless-launcher-catalog-care)
+- [বিনিময় ফরম্যাট](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [সংশ্লিষ্ট পণ্যের সীমা](#sister-product-boundary)
+- [Windows Store-এর উপকরণ](#windows-store-assets)
+- [প্রযুক্তি স্ট্যাক](#tech-stack)
+- [নিরাপত্তা নীতি](#security-policy)
+- [তৃতীয় পক্ষের লাইসেন্স ও পরিচালনা](#third-party-licenses--governance)
+- [লাইসেন্স](#license)
+- [দায়বদ্ধতা](#liability)
+
+
+## দ্রুত তথ্য
+
+| বৈশিষ্ট্য | বিবরণ |
+|---|---|
+| **প্রযুক্তি স্ট্যাক** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **লাইসেন্স** | প্রকল্পের কোড: MIT; PySide6 ও অন্যান্য নির্ভরতার শর্ত আলাদা (দেখুন [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **বিনিময় ফরম্যাট** | `softwarecenter-profile-v1.json` (দেখুন [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **শেষ যাচাই** | 2026-09-23 (স্থানীয়ভাবে: সম্পূর্ণ pytest suite, প্ল্যাটফর্ম smoke পরীক্ষা, compileall, Ruff, নির্ভরতা নিরীক্ষা, ফাইল ম্যানেজারের context menu ইন্টিগ্রেশন, NOTICE স্বীকৃতি, CI জীবনচক্র শক্তিশালীকরণ; WACK এখনও শুধু dry-run পর্যায়ে) |
+
+
+## বৈশিষ্ট্য
+
+- **ট্যাবভিত্তিক সংগঠন** — প্রোগ্রাম, নথি ও ফোল্ডারকে নাম বদলানো ও সরানো যায় এমন বোর্ডে গুছিয়ে রাখুন
+- **ড্র্যাগ-অ্যান্ড-ড্রপ ও সর্বজনীন সংগঠক** — অ্যাপ, স্ক্রিপ্ট, নথি, ফোল্ডার বা শর্টকাট সরাসরি বোর্ডে ফেলুন; এটি ফাইল সিস্টেমের ওপর একটি স্বতন্ত্র সংগঠন-স্তর হিসেবে কাজ করে
+- **ফাঁকা বোর্ডের নির্দেশনা** — ফাঁকা বোর্ডে সহায়ক স্থানধারক দেখায়, কোন ধরনের উপাদান ফেলা যায়
+- **দুটি দেখার ধরন** — বড় আইকনের টাইল এবং তালিকা
+- **স্বয়ংক্রিয় সংরক্ষণ** — ট্যাব, সেগুলোর বিষয়বস্তু ও উইন্ডোর অবস্থান সংরক্ষিত হয়
+- **প্রাসঙ্গিক মেনু** — ডান-ক্লিক করে খুলুন বা সরান
+- **বহু-প্ল্যাটফর্ম** — Windows, macOS এবং Linux
+- **নেটিভ আইকন** — সিস্টেম অ্যাপ্লিকেশনের আইকন স্বয়ংক্রিয়ভাবে দেখানো হয়
+- **Windows শর্টকাট সমাধান** — ফেলা `.lnk` ফাইল `.exe` বা ফোল্ডারকে লক্ষ্য করলে, মূল লক্ষ্য হিসেবেই সংরক্ষিত হয়
+- **macOS অ্যাপ বান্ডল** — `.app` অ্যাপ্লিকেশন সরাসরি সংগঠকে টেনে এনে ফেলুন
+- **Linux ডেস্কটপ লঞ্চার** — `.desktop` এন্ট্রি অ্যাপের নাম দেখায় এবং তার desktop command দিয়ে চালু হয়
+- **প্রোফাইল রপ্তানি/আমদানি** — স্থানান্তর ও ব্যাকআপের জন্য সংস্করণযুক্ত `softwarecenter-profile-v1.json` ফরম্যাট
+- **একাধিক নির্বাচন** — একবারে একাধিক এন্ট্রি মুছুন
+- **স্থানীয় ব্যবহারে অগ্রাধিকার** — সংগঠকের কোডে অ্যাকাউন্ট, টেলিমেট্রি বা cloud-sync বৈশিষ্ট্য নেই; HTTP(S) URL ও চালু করা প্রোগ্রাম প্ল্যাটফর্মের মাধ্যমে খোলা হয় এবং নেটওয়ার্ক ব্যবহার করতে পারে
+
+
+## লক্ষ্য ব্যবহারকারী ও সহজে খুঁজে পাওয়া
+
+SoftwareCenter চারটি স্বতন্ত্র ব্যবহারকারী-গোষ্ঠীর কর্মপ্রবাহের নির্দিষ্ট বাধা দূর করার জন্য তৈরি:
+
+| ব্যবহারকারী-গোষ্ঠী | মূল ভূমিকা ও দায়িত্ব | প্রধান সমস্যা | SoftwareCenter-এর সমাধান |
+|---|---|---|---|
+| **গোষ্ঠী 1: ডেস্কটপের অভিজ্ঞ ব্যবহারকারী ও কিউরেটর** | প্রতিদিন অনেক টুল, কর্মক্ষেত্রের ফোল্ডার ও ইউটিলিটি ব্যবহার করেন। | Windows ডেস্কটপে জট, Start Menu-তে ধীর অনুসন্ধান, স্থায়ী কাস্টম শ্রেণিবিন্যাসের অভাব। | দ্রুত ট্যাবভিত্তিক বোর্ড, টেনে এনে ফাইল সংগঠন, কাস্টম নোট ও তাৎক্ষণিক বদল। |
+| **গোষ্ঠী 2: একক ডেভেলপার ও DevOps প্রকৌশলী** | টুলচেইন, CLI wrapper, পোর্টেবল অ্যাপ ও ভার্চুয়াল পরিবেশ সামলান। | ডেভেলপমেন্ট টুল সাধারণ ব্যবহারকারীর Start Menu-তে মিশে যায়; লঞ্চারের ভারী ব্যাকগ্রাউন্ড প্রক্রিয়া মেমোরি ব্যবহার করে। | SoftwareCenter ও LaunchBoards-এর অ্যাপ পরিচয় আলাদা; Windows-এ ফাইল চালানোর সময় সমর্থিত হলে লক্ষ্য ফোল্ডারকে কার্যকর ডিরেক্টরি হিসেবে অনুরোধ করা হয়। এটি প্রকল্পভিত্তিক পরিবেশ ব্যবস্থাপক নয়, আর লক্ষ্য প্রোগ্রামের আচরণ OS ও অ্যাপের ওপর নির্ভরশীল। |
+| **গোষ্ঠী 3: একাধিক PC-তে কাজ করা ব্যবহারকারী** | ওয়ার্কস্টেশনগুলোর মধ্যে প্রোফাইল হাতে হাতে সরান। | অন্য ডিভাইসে পূর্ণ পাথ নাও মিলতে পারে; লেবেল ও ঐচ্ছিক নোটে ব্যক্তিগত তথ্য থাকতে পারে। | সংস্করণযুক্ত `softwarecenter-profile-v1.json` দিয়ে রপ্তানি/আমদানি; ভাগ করার আগে পাথ ও নোট যাচাই করুন। নিশ্চিত করার পর আমদানি বর্তমান প্রোফাইল প্রতিস্থাপন করে; লক্ষ্য ফাইল কপি হয় না। |
+| **গোষ্ঠী 4: গোপনীয়তা-সচেতন ব্যবহারকারী** | সংগঠকের সেটিংস স্থানীয়ভাবে রাখা এবং অ্যাপের ভেতরে অ্যাকাউন্ট বা টেলিমেট্রি বৈশিষ্ট্য না থাকা পছন্দ করেন। | সংরক্ষিত পাথ ও নোট স্থানীয় তথ্য প্রকাশ করতে পারে; URL খোলা বা প্রোগ্রাম চালালে নেটওয়ার্কে যোগাযোগ হতে পারে। | পরীক্ষা করা সংগঠক কোডে অ্যাকাউন্ট, টেলিমেট্রি বা cloud-sync বৈশিষ্ট্য নেই। এটি গোপনীয়তা, চালু করা প্রক্রিয়ার শূন্য বহির্গামী নেটওয়ার্ক যোগাযোগ, বা লক্ষ্য প্রোগ্রামের privilege আচরণের নিশ্চয়তা দেয় না। |
+
+### স্পষ্ট অনুসন্ধান-উদ্দেশ্যের বাক্যাংশ
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## SoftwareCenter-এর সক্ষমতা ও সীমা
+
+| সক্ষমতা | বাস্তবায়িত আচরণ | সীমা |
+|---|---|---|
+| **ট্যাবভিত্তিক সংগঠন** | পাথ-সংবলিত এন্ট্রিগুলোকে নাম দেওয়া ট্যাবে গুছিয়ে রাখে; টাইল ও তালিকা—দুই দৃশ্যই আছে। | ট্যাব রেফারেন্স সংগঠিত করে; এগুলো প্রকল্পভিত্তিক নির্বাহ পরিবেশ নয়। |
+| **স্থানীয় পাথ ও URL** | টেনে এনে সমর্থিত স্থানীয় পাথ ও HTTP(S) URL নিবন্ধন করা যায়। | এন্ট্রি লক্ষ্যকে নির্দেশ করে; সংগঠক তার বিষয়বস্তু কপি করে না। |
+| **প্ল্যাটফর্মভিত্তিক লক্ষ্য ব্যবস্থাপনা** | Windows-এ `.lnk` সমাধান বিদ্যমান `.exe` বা ফোল্ডার লক্ষ্য গ্রহণ করে; macOS অ্যাপ বান্ডল `open` দিয়ে খোলে; Linux-এর `.desktop` এন্ট্রি থেকে নাম, আইকন ও `Exec` পার্স করা হয়। | সমাধান ও চালু করা OS-নির্ভর। Linux-এ `Exec` কমান্ড হিসেবে চালানো হয়; এটি স্ক্রিপ্টের sandbox নয়। |
+| **কার্যকর ডিরেক্টরি** | Windows-এ ফাইল চালানোর সময় `_startfile_in_dir` সমর্থিত হলে লক্ষ্য ফাইলের ধারণকারী ফোল্ডারকে কার্যকর ডিরেক্টরি হিসেবে অনুরোধ করে। | বিকল্প চালু করার পথে কার্যকর ডিরেক্টরি স্পষ্টভাবে নাও সেট হতে পারে; parent CWD বা সব প্ল্যাটফর্মে একই কার্যকর ডিরেক্টরির নিশ্চয়তা নেই। |
+| **স্থানীয় সেটিংস** | Qt `QSettings` পণ্যটির settings namespace-এ ট্যাব, এন্ট্রি, দৃশ্য ও উইন্ডোর অবস্থা সংরক্ষণ করে। | স্টোরেজ backend Qt ও OS সরবরাহ করে; atomic write বা security descriptor-এর নিশ্চয়তার দাবি করা হয় না। |
+| **প্রোফাইল রপ্তানি** | `softwarecenter-profile-v1.json`-এ প্রোফাইল মেটাডেটা, ট্যাব, দৃশ্য এবং `label`, `path`, `kind`, ও ঐচ্ছিক `notes`-সহ এন্ট্রি থাকে। | পাথ, লেবেল ও নোট স্থানীয় তথ্য প্রকাশ করতে পারে; লক্ষ্য ফাইল কপি হয় না। |
+| **প্রোফাইল আমদানি** | আমদানিকারক ফরম্যাট/সংস্করণ পরীক্ষা করে, এন্ট্রি স্বাভাবিক করে এবং নিশ্চিতকরণ চায়। | আমদানি নিশ্চিত করলে বর্তমান প্রোফাইল প্রতিস্থাপিত হয়; এটি মার্জ নয় এবং তথ্য-ক্ষতি হবে না—এমন সাধারণ নিশ্চয়তাও নয়। |
+| **পণ্যের পরিচয়** | SoftwareCenter ও LaunchBoards একই implementation ভাগ করে, তবে settings namespace, single-instance endpoint এবং Store পরিচয় আলাদা। | এতে দুটি পণ্য আলাদা থাকে; SoftwareCenter-এর মধ্যে ব্যবহারকারী-নির্বাচনযোগ্য প্রোফাইল দেওয়া হয় না। |
+| **নেটওয়ার্কের সীমা** | পরীক্ষা করা সংগঠক source-এ account, telemetry বা cloud-sync implementation নেই। | এটি HTTP(S) URL খোলে এবং বাইরের লক্ষ্য চালু করে, যা নেটওয়ার্ক ব্যবহার করতে পারে; পুরো অ্যাপ বা চালু করা প্রক্রিয়ায় শূন্য বহির্গামী যোগাযোগের নিশ্চয়তা নেই। |
+| **যাচাইয়ের পরিধি** | রিপোজিটরির পরীক্ষা নামযুক্ত contract যাচাই করে; CI Ubuntu-তে Python সংস্করণের matrix এবং Linux/macOS-এর আলাদা smoke job চালায়। | এসব পরীক্ষা প্রত্যেক host-এর আচরণ প্রতিষ্ঠা করে না, WACK/Store submission প্রত্যয়ন করে না বা সর্বজনীন নিরাপত্তা বৈশিষ্ট্য প্রমাণ করে না। |
+
+
+## সিস্টেম স্থাপত্য
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## জীবনচক্রের ধাপক্রম
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## মূল সক্ষমতা ও প্রমাণের সীমা
+
+| বিষয় | পরীক্ষা করা কোড/পরীক্ষায় প্রমাণ | পরিধি ও সীমা |
+|---|---|---|
+| **সংগঠকের নেটওয়ার্ক আচরণ** | অ্যাপ কোডে account, telemetry বা cloud-sync client নেই; `open_file` HTTP(S) URL Qt বা প্ল্যাটফর্মের browser-এ পাঠায়। | উৎস পরীক্ষা, SoftwareCenter, browser বা চালু করা প্রক্রিয়ার চলাকালীন বহির্গামী নেটওয়ার্ক যোগাযোগ মাপে না। |
+| **চালুর প্রসঙ্গ** | ফাইল ও URL চালু করার কাজ প্ল্যাটফর্ম API-তে অর্পণ করা হয়; Windows launch code পাওয়া গেলে লক্ষ্য working directory অনুরোধ করে। | পর্যালোচিত কোড ও পরীক্ষা process security descriptor যাচাই করে না বা child-process privilege প্রয়োগ করে না। |
+| **এন্ট্রি সরানো** | UI তালিকা ও সংরক্ষিত profile state থেকে এন্ট্রি সরায়, কিন্তু নির্দেশিত ফাইল মুছে দেয় না। | কোনো বাইরের প্রোগ্রাম খোলা বা পরিবর্তিত লক্ষ্যের সঙ্গে কী করে, এটি সে বিষয়ে কিছু বলে না। |
+| **প্ল্যাটফর্মভিত্তিক সমাধান** | Windows-এ `.lnk` লক্ষ্য খুঁজতে COM ব্যবহৃত হয়, সঙ্গে PowerShell fallback আছে; Linux `.desktop`-এর `Exec` তথ্য পার্স করে পরে চালানো হয়। | এসব handler লক্ষ্য আচরণকে sandbox করে না; চালালে নির্ধারিত কমান্ড বা বাইরের প্রোগ্রাম চলতে পারে। |
+| **QSettings সংরক্ষণ** | `save_settings` Qt `QSettings` দিয়ে ট্যাব, এন্ট্রি, দৃশ্য, জ্যামিতি ও ভাষার মান লেখে। | কোড atomic transaction বা crash-proof লেখার দাবি করে না। |
+| **প্রোফাইল তথ্য** | `softwarecenter-profile-v1.json`-এ প্রোফাইল ক্ষেত্র এবং `label`, `path`, `kind`, ও ঐচ্ছিক `notes`-সহ এন্ট্রি থাকে; নিশ্চিতকরণের পর import বর্তমান প্রোফাইল প্রতিস্থাপন করে। | মান স্থানীয় তথ্য প্রকাশ করতে পারে; পরীক্ষা fixture ও round trip যাচাই করে, সাধারণভাবে গোপন তথ্য অপসারণ নয়। দেখুন `tests/test_export_contract.py`। |
+| **সংশ্লিষ্ট পণ্য পৃথকীকরণ** | `scripts/verify_product_boundaries.py` এবং product-boundary পরীক্ষা SoftwareCenter ও LaunchBoards-এর আলাদা settings namespace ও single-instance endpoint যাচাই করে। | এটি পণ্য পৃথকীকরণ, বহু-ব্যবহারকারী বা প্রকল্পভিত্তিক প্রোফাইল নয়। দেখুন `PRODUCT_BOUNDARIES.md` এবং `tests/test_product_boundaries.py`। |
+| **CI ও রিলিজের পরিধি** | CI-তে Ubuntu-র Python সংস্করণ regression matrix এবং Linux/macOS-এর আলাদা smoke job আছে। | এর অর্থ Windows-host CI, WACK প্রত্যয়ন, Store প্রকাশনা বা সর্বজনীন runtime security নয়। দেখুন `CI_CONTRACT.md`। |
+
+
+## সহযোগী ইকোসিস্টেম ও সংশ্লিষ্ট পণ্য
+
+SoftwareCenter বৃহত্তর **file-bricks** ডেস্কটপ টুলসমূহের সংগ্রহ এবং ছাতাসদৃশ **open-bricks** ওপেন-সোর্স উদ্যোগের অংশ:
+
+| প্রকল্প | ইকোসিস্টেম | প্রধান কাজ | ইন্টিগ্রেশন / পরিপূরকতা |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | নথি ও মিডিয়া পরিদর্শন | ফাইল বাছাই ও নথির ফরেনসিক প্রোফাইলিংয়ের সহযোগী অ্যাপ |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | বহু-ট্যাব ফাইল-সিস্টেম এক্সপ্লোরার | SoftwareCenter শর্টকাটের জন্য পরিপূরক দুই-প্যানেলের ফাইল ব্যবস্থাপনা |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | cloud lock খোলা ও মেরামত | শর্টকাটে উল্লেখিত আটকে থাকা sync placeholder ও OneDrive ফাইল খুলে দেয় |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | Markdown ও নথির জ্ঞানভান্ডার | গবেষণা কর্মপ্রবাহের জন্য স্থানীয় document digest সংগঠক |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | ফর্ম তৈরি ও টেমপ্লেটিং | SoftwareCenter টাইল থেকে চালানো যায় এমন ডেস্কটপ document generator |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | PDF password ও unlock tool | মূল ফাইল না বদলে PDF খোলার স্থানীয় utility |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | অটোমেশন startup gate | ডেস্কটপ ওয়ার্কস্টেশন পরিবেশকে একসঙ্গে অনেক startup থেকে রক্ষা করে |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | AST source-code বিশ্লেষক | Python ডেস্কটপ টুল ও মডিউলের static analysis |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | এজেন্ট যোগাযোগ সেতু | নির্ভরতাবিহীন বার্তা ও পরিবহন adapter |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | ডেস্কটপ ওপেন-সোর্স ছাতা | মান, পরিচালনা ও প্যাকেজিংয়ের সমন্বিত উদ্যোগ |
+
+
+## অনুসন্ধানের প্রেক্ষাপট
+
+SoftwareCenter-কে **local-first PySide6 app launcher** বা **desktop shortcut organizer** হিসেবে খুঁজে পাওয়া সবচেয়ে সহজ। এটি Windows Start menu, ডেস্কটপ shortcut folder এবং পূর্ণাঙ্গ software inventory system-এর মাঝামাঝি: আপনার যন্ত্রে আগে থেকেই থাকা প্রোগ্রাম চালায়, shortcut-গুলো ট্যাবে গুছিয়ে রাখে এবং বহনযোগ্য profile রপ্তানি/আমদানি করে।
+
+উপযোগী অনুসন্ধান বাক্যাংশ:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+এটি Microsoft Configuration Manager Software Center, অ্যাপ স্টোর, প্যাকেজ ম্যানেজার বা দূরবর্তী deployment portal নয়।
+
+
+## প্রয়োজনীয়তা
+
+- Python 3.10+
+- PySide6
+
+
+## ইনস্টলেশন
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## চালানো
+
+```bash
+python SoftwareCenter.py
+```
+
+Windows-এ [Releases](https://github.com/file-bricks/SoftwareCenter/releases) থেকে আগে তৈরি `SoftwareCenter.exe` অথবা `START.bat` ব্যবহার করতে পারেন।
+
+
+## ব্যবহার
+
+| কাজ | নির্দেশনা |
+|--------|-------------|
+| প্রোগ্রাম যোগ | ফাইল, ফোল্ডার, শর্টকাট, macOS-এর `.app` bundle বা Linux-এর `.desktop` launcher উইন্ডোতে টেনে আনুন; `.exe` ফাইল বা ফোল্ডার নির্দেশ করা Windows `.lnk` ফাইল মূল লক্ষ্যে সমাধান করা হয় |
+| ট্যাব গুছানো | Toolbar > "New Tab", নাম বদলাতে ডাবল-ক্লিক করুন |
+| দৃশ্য বদল | Toolbar > Tiles / List |
+| প্রোগ্রাম চালানো | ডাবল-ক্লিক অথবা ডান-ক্লিক > Open/Start |
+| এন্ট্রি সরানো | ডান-ক্লিক > Delete (শুধু শর্টকাট সরায়) |
+| প্রোফাইল রপ্তানি | `File > Export Profile` অথবা toolbar action |
+| প্রোফাইল আমদানি | `File > Import Profile` অথবা toolbar action; বর্তমান প্রোফাইল প্রতিস্থাপন করে |
+
+
+## এক্সিকিউটেবল তৈরি
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+EXE থাকবে `dist/SoftwareCenter.exe`-এ। Windows-এ `build_exe.bat` স্থানীয় ব্যবহারের জন্য এটি প্রকল্পের মূল ফোল্ডারেও কপি করে।
+
+
+## গুণমান যাচাই
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+হোস্টেড workflow এবং ঐচ্ছিক web অংশের স্পষ্ট সীমা [CI_CONTRACT.md](CI_CONTRACT.md)-এ নথিভুক্ত।
+
+GitHub Actions এই smoke পরীক্ষা চালায়। macOS smoke, `macos-latest`-এ `.app` আমদানি, `open` দিয়ে চালু করা, QSettings সংরক্ষণ এবং profile export যাচাই করে; Linux smoke, `ubuntu-latest`-এ `.desktop` আমদানি, `Exec`/`xdg-open` দিয়ে চালু করা, QSettings সংরক্ষণ এবং profile export যাচাই করে। Build artifact ও স্থানীয় task/test ফাইল উপেক্ষা করা হয় এবং commit করা উচিত নয়।
+
+Windows Store পথে `python scripts/run_windows_wack.py --dry-run` স্থানীয় MSIX/AppCert path পরীক্ষা করে এবং পুনরুৎপাদনযোগ্য WACK command দেখায়। জমা দেওয়ার আগে নতুন স্বাক্ষরিত MSIX-এ elevated PowerShell থেকে প্রকৃত certification চালানো উচিত।
+`python generate_store_screenshots.py` `README/screenshots/store/`-এ পুনরুৎপাদনযোগ্য Store screenshot set তৈরি করে।
+
+
+## GUI ছাড়া লঞ্চার ক্যাটালগ রক্ষণাবেক্ষণ
+
+ঐচ্ছিক catalog reconciler, `scripts/softwarecenter_sync.py`-তে Plan-D runtime code হিসেবে দেওয়া আছে। সিঙ্ক করা catalog ও registry file স্পষ্ট CLI input; `--apply` না দিলে command কেবল পড়ে। নির্দিষ্ট পিন করা runtime-সহ scheduler payload, apply gate, native readback এবং rollback procedure [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md)-এ নথিভুক্ত।
+
+
+## বিনিময় ফরম্যাট
+
+প্রোফাইল `softwarecenter-profile-v1.json` হিসেবে রপ্তানি করে পরে আবার আমদানি করা যায়। ফরম্যাটে প্রোফাইল metadata, ট্যাব, দৃশ্যের ধরন এবং `label`, `path`, `kind` ও ঐচ্ছিক `notes`-সহ এন্ট্রি থাকে। অ্যাপ নির্দেশিত স্থানীয় ফাইল কপি করে না, তবে পাথ, লেবেল ও নোটে সংবেদনশীল তথ্য থাকতে পারে; এই ফরম্যাট গোপন তথ্য মুছে ফেলার নিশ্চয়তা দেয় না। নিশ্চিত করার পর আমদানি বর্তমান প্রোফাইল প্রতিস্থাপন করে। অনুপস্থিত পাথ রেফারেন্স হিসেবে দৃশ্যমান থাকে। বিস্তারিত জানতে [EXPORTFORMAT.md](EXPORTFORMAT.md) দেখুন।
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) হলো SoftwareCenter-এর সংশ্লিষ্ট পণ্য: একই codebase, নিজস্ব ব্র্যান্ড ও পরিচয়, এবং সাধারণ shortcut launcher-এর বদলে পাল্টানো যায় এমন workspace board-কেন্দ্রিক। এটি একই repository ও release pipeline ভাগ করে — রক্ষণাবেক্ষণের জন্য আলাদা LaunchBoards source tree নেই।
+
+
+## সংশ্লিষ্ট পণ্যের সীমা
+
+LaunchBoards একই implementation ভাগ করে, তবে এর নিজস্ব QSettings namespace, single-instance endpoint, icon, executable, Store identity এবং release path আছে। পুনরুৎপাদনযোগ্য static check, বিচ্ছিন্ন parallel-process পরীক্ষা এবং artifact check [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md)-এ নথিভুক্ত।
+
+
+## Windows Store-এর উপকরণ
+
+Windows Store track-এ এখন বর্তমান desktop UI-এর পুনরুৎপাদনযোগ্য screenshot generator আছে। চারটি তৈরি Store screenshot ও `summary.json`-সহ `README/screenshots/store/` হালনাগাদ করতে `python generate_store_screenshots.py` চালান।
+
+
+## প্রযুক্তি স্ট্যাক
+
+| উপাদান | প্রযুক্তি |
+|-----------|-----------|
+| ভাষা | Python 3.10+ |
+| GUI framework | PySide6 (Qt for Python) |
+| স্টোরেজ | QSettings (Windows Registry / INI) |
+| কোডের আকার | বর্তমান repository file দেখুন; নির্দিষ্ট line count-এর দাবি নেই |
+
+
+## নিরাপত্তা নীতি
+
+রিপোজিটরির [SECURITY.md](SECURITY.md)-এ সমর্থিত সংস্করণ, দুর্বলতা জানানোর মাধ্যম, ঘোষিত 48 ঘণ্টার প্রাথমিক প্রতিক্রিয়া-সময় এবং 5 কর্মদিবসের প্রাথমিক মূল্যায়নের সময় বর্ণিত। নীতির এই বক্তব্যগুলোকে runtime যাচাই হিসেবে ধরা উচিত নয়।
+
+
+## তৃতীয় পক্ষের লাইসেন্স ও পরিচালনা
+
+রিপোজিটরির MIT license প্রকল্পের source code-এ প্রযোজ্য। তৃতীয় পক্ষের নির্ভরতার নিজস্ব শর্ত রয়েছে; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) উপাদানের metadata নথিভুক্ত করে, তবে এটি সব ক্ষেত্রে permissive license বা package compliance-এর নিশ্চয়তা নয়।
+
+- **স্বীকৃতি:** [NOTICE](NOTICE) (Lukas Geiger এবং file-bricks / open-bricks সংগঠনের copyright attribution)।
+- **PySide6 ও shiboken6:** inventory-তে LGPL-3.0-only শর্ত নথিভুক্ত; [LGPL-3.0-এর পাঠ](https://www.gnu.org/licenses/lgpl-3.0.html) ও [উপাদানের metadata](THIRD_PARTY_LICENSES.md) দেখুন। প্রকল্পের MIT license এসব নির্ভরতায় সামগ্রিকভাবে প্রযোজ্য নয়।
+- **Python Standard Library:** [PSF-2.0](https://docs.python.org/3/license.html)। এই license-এর অর্থ নয় যে সংগঠক বা তার চালু করা প্রোগ্রাম অফলাইনে কাজ করে।
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) হলো build tooling; packaged build-এর ক্ষেত্রে blanket exemption ধরে না নিয়ে upstream license ও distribution notice পর্যালোচনা করুন।
+- **যাচাইয়ের সীমা:** পরীক্ষা নামযুক্ত code ও documentation contract যাচাই করে; সর্বজনীন runtime guarantee প্রতিষ্ঠা করে না।
+
+
+## লাইসেন্স
+
+[MIT](LICENSE)
+
+**নোট:** MIT হলো রিপোজিটরির প্রকল্প-উৎসের লাইসেন্স। অ্যাপ [PySide6](https://doc.qt.io/qtforpython-6/) ব্যবহার করে, যার নির্ভরতা-লাইসেন্সের শর্ত আলাদা; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) দেখুন।
+
+---
+
+
+## দায়বদ্ধতা
+
+এই প্রকল্পটি বিনা পারিশ্রমিকে দেওয়া একটি ওপেন-সোর্স অনুদান। দায় কেবল ইচ্ছাকৃত কাজ ও গুরুতর অবহেলার ক্ষেত্রে সীমাবদ্ধ (§ 521 জার্মান দেওয়ানি বিধি)। নিজ ঝুঁকিতে ব্যবহার করুন। কোনো ওয়ারেন্টি, রক্ষণাবেক্ষণের নিশ্চয়তা বা নির্দিষ্ট উদ্দেশ্যে উপযোগিতা ধরে নেওয়া হয় না।
diff --git a/README_de.md b/README_de.md
index 4c9b76f..d5de08e 100644
--- a/README_de.md
+++ b/README_de.md
@@ -6,7 +6,7 @@
[](NOTICE)
[](https://docs.pytest.org/)
[](https://github.com/file-bricks/SoftwareCenter)
-[](SECURITY.md)
+[](SECURITY.md)
[](SECURITY.md)
[](LICENSE)
[](https://doc.qt.io/qtforpython-6/)
@@ -14,7 +14,7 @@
[](https://github.com/open-bricks)
[](llms.txt)
-[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md)
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
Ein leichtgewichtiger, plattformübergreifender Desktop-Organizer für Software-Verknüpfungen mit Tab-basierter Kategorisierung.
@@ -28,10 +28,10 @@ Ein leichtgewichtiger, plattformübergreifender Desktop-Organizer für Software-
- [Einstieg](#einstieg)
- [Funktionen](#funktionen)
- [Zielgruppen & Auffindbarkeit](#zielgruppen--auffindbarkeit)
-- [Vergleichsmatrix gegenüber Alternativen](#vergleichsmatrix-gegenüber-alternativen)
+- [Fähigkeiten und Grenzen von SoftwareCenter](#vergleichsmatrix-gegenüber-alternativen)
- [Systemarchitektur](#systemarchitektur)
- [Lebenszyklus-Ablaufdiagramm](#lebenszyklus-ablaufdiagramm)
-- [Kernfähigkeiten & Sicherheitsinvarianten](#kernfähigkeiten--sicherheitsinvarianten)
+- [Kernfähigkeiten und Beleggrenzen](#kernfähigkeiten--sicherheitsinvarianten)
- [Geschwister-Ökosystem & Schwesterprodukte](#geschwister-ökosystem--schwesterprodukte)
- [Auffindbarkeit](#auffindbarkeit)
- [Voraussetzungen](#voraussetzungen)
@@ -56,7 +56,7 @@ Ein leichtgewichtiger, plattformübergreifender Desktop-Organizer für Software-
| Eigenschaft | Details |
|---|---|
| **Tech Stack** | Python 3.10+ / PySide6 (Qt) / QSettings |
-| **Lizenz** | MIT (PySide6 dynamisch gelinkt unter LGPLv3) |
+| **Lizenz** | Projektquellcode: MIT; PySide6 und weitere Abhängigkeiten haben eigene Bedingungen (siehe [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
| **Austauschformat** | `softwarecenter-profile-v1.json` (siehe [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
| **Letzte Prüfung** | 2026-09-23 (lokal: vollständige Pytest-Suite, Plattform-Smokes, Compileall, Ruff, Dependency-Audit, Dateimanager-Kontextmenü-Integration, NOTICE-Attribution, CI-Lifecycle-Härtung; WACK weiterhin nur Dry-Run) |
@@ -75,7 +75,7 @@ Ein leichtgewichtiger, plattformübergreifender Desktop-Organizer für Software-
- **Linux-Desktop-Starter** - `.desktop`-Launcher werden mit ihrem App-Namen angezeigt und korrekt gestartet
- **Profil-Export/Import** - Versioniertes Austauschformat `softwarecenter-profile-v1.json` für Migrationen und Backups
- **Mehrfachauswahl** - Mehrere Einträge können gemeinsam gelöscht werden
-- **Offline-first** - keine Telemetrie, keine Accounts, keine Cloud-Anbindung
+- **Lokal orientierter Betrieb** - Der Organizer-Code enthält keine Konto-, Telemetrie- oder Cloud-Sync-Funktion. HTTP(S)-URLs und gestartete Programme werden über die Plattform geöffnet und können das Netzwerk nutzen.
## Zielgruppen & Auffindbarkeit
@@ -84,9 +84,9 @@ SoftwareCenter adressiert gezielte Workflow-Engpässe über vier klar definierte
| Persona | Profil & Kernaufgaben | Zentrales Problem | SoftwareCenter Lösung |
|---|---|---|---|
| **Persona 1: Desktop-Power-User & Kuratoren** | Fachanwender mit Dutzenden parallel genutzten Tools, Projektordnern und Skripten. | Überladener Windows-Desktop, träge Startmenü-Suche, fehlende persistente Board-Gruppierung. | Schnelle tab-basierte Boards, Drag & Drop Dateiablage, individuelle Notizen und sofortiger Wechsel. |
-| **Persona 2: Software-Entwickler & DevOps-Engineers** | Entwickler mit projektbezogenen Launchern, CLI-Tools, portablen Apps und venv-Skripten. | Vermischung von Dev-Toolchains im allgemeinen Startmenü; speicherhungrige Launcher-Hintergrunddienste. | Isolierte Multi-Profil-Trennung, Beibehaltung des Arbeitsverzeichnisses (`_startfile_in_dir`), 0% Daemon-Overhead. |
-| **Persona 3: Multi-PC- & Cloud-Sync-Anwender** | Nutzer, die Konfigurationen über mehrere Arbeitsplatzrechner (z. B. Workstation & Laptop) spiegeln. | Fest codierte absolute Pfade, abweichende Laufwerksbuchstaben und ungewollter Secret-Leakage. | Schema-validierter Export (`softwarecenter-profile-v1.json`), Secret-Bereinigung, zerstörungsfreier Import. |
-| **Persona 4: Datenschutz- & Sicherheits-Teams** | Sicherheitsbewusste Teams und Behördenumgebungen mit strikter Zero-Egress-Vorgabe. | Kommerzielle Launcher mit Kontozwang, Telemetrie und Hintergrund-Trackern. | 100% Offline-Ausführung (INV-LOCAL-01), null Netzwerk-Egress, unprivilegierte Rechte (`RunAsInvoker`). |
+| **Persona 2: Software-Entwickler & DevOps-Engineers** | Entwickler mit projektbezogenen Launchern, CLI-Tools, portablen Apps und venv-Skripten. | Vermischung von Dev-Toolchains im allgemeinen Startmenü; speicherhungrige Launcher-Hintergrunddienste. | SoftwareCenter und LaunchBoards haben getrennte Produktidentitäten; Windows-Dateistarts fordern, soweit unterstützt, das Zielverzeichnis als Arbeitsverzeichnis an. Das ist keine projektbezogene Entwicklungsumgebung; das Verhalten hängt vom Betriebssystem und Zielprogramm ab. |
+| **Persona 3: Nutzer mit mehreren Workstations** | Nutzer, die Profile manuell zwischen mehreren Workstations übertragen. | Absolute Pfade funktionieren auf einem anderen Gerät möglicherweise nicht; Labels und optionale Notizen können private Details enthalten. | Versionierter Export/Import über `softwarecenter-profile-v1.json`; Pfade und Notizen vor dem Teilen prüfen. Nach Bestätigung ersetzt der Import das aktuelle Profil; Zieldateien werden nicht kopiert. |
+| **Persona 4: Datenschutzbewusste Nutzer** | Nutzer, die lokal gespeicherte Organizer-Einstellungen und keine integrierten Konto- oder Telemetriefunktionen bevorzugen. | Gespeicherte Pfade und Notizen können lokale Details offenlegen; geöffnete URLs oder gestartete Programme können Netzwerkkommunikation auslösen. | Im geprüften Organizer-Code gibt es keine Konto-, Telemetrie- oder Cloud-Sync-Funktion. Vertraulichkeit, Null-Egress für gestartete Prozesse und die Rechte von Zielprogrammen werden nicht garantiert. |
### Relevante Suchbegriffe
@@ -97,20 +97,21 @@ SoftwareCenter adressiert gezielte Workflow-Engpässe über vier klar definierte
- `Open Source App Launcher Deutsch Windows`
- `SoftwareCenter vs LaunchBoards Profil Umschaltung`
-## Vergleichsmatrix gegenüber Alternativen
-
-| Fähigkeit / Dimension | SoftwareCenter | Windows-Startmenü | Stardock Fences | SyMenu | Launchy / Flow Launcher |
-|---|:---:|:---:|:---:|:---:|:---:|
-| **Tab-basierte Kategorisierung** | **JA** (Dynamische Boards) | NEIN (Flache Liste) | JA (Desktop-Bereiche) | JA (Hierarchisches Menü)| NEIN (Nur Suchfeld) |
-| **Open Source (MIT-Lizenz)** | **JA** (100% Freie Lizenz) | NEIN (Proprietär) | NEIN (Kommerziell) | JA (Freeware, Closed) | JA (Open Source) |
-| **Keine Telemetrie / 100% Offline**| **JA** (Strikt Zero-Egress) | NEIN (Bing-Suche/Cloud) | NEIN (Lizenz/Telemetrie)| JA (Offline-fähig) | TEILWEISE (Plugins) |
-| **Multi-Profil-Trennung** | **JA** (Dual-Identity Core) | NEIN (Ein Profil) | NEIN (Nur Desktop) | TEILWEISE (Konfig-Profile)| NEIN (Eine Konfiguration) |
-| **Portabler Export ohne Secrets** | **JA** (`softwarecenter-profile-v1.json`) | NEIN (Registry-gebunden)| NEIN (Proprietär) | TEILWEISE (XML-Format) | NEIN (Kein Exportstandard)|
-| **Arbeitsverzeichnis-Erhalt** | **JA** (Ziel-CWD garantiert) | TEILWEISE (Variabel) | TEILWEISE (Explorer) | JA (Konfigurierbar) | TEILWEISE (Root CWD) |
-| **Universelle Datei/Ordner-Ebene**| **JA** (Alle Dateitypen) | TEILWEISE (Feste Pins) | JA (Desktop-Dateien) | JA (Menü-Einträge) | TEILWEISE (Crawler) |
-| **Headless Batch-Katalogpflege** | **JA** (Automatischer Reconciler) | NEIN (Nur GUI) | NEIN (Nur GUI) | NEIN (Nur manuelle GUI)| NEIN (Nur GUI) |
-| **Schnellzugriff über System-Tray**| **JA** (Integriertes Tray-Menü)| NEIN (Taskleiste fest) | NEIN (Desktop-Fokus) | JA (Tray-zentriert) | NEIN (Nur Hotkey) |
-| **Unprivilegierte Rechte (`RunAsInvoker`)** | **JA** (Keine UAC-Elevation)| SYSTEM / Admin | Standard / Admin | Standard-Benutzer | Standard-Benutzer |
+
+## Fähigkeiten und Grenzen von SoftwareCenter
+
+| Fähigkeit | Verhalten laut Quellcode | Grenze |
+|---|---|---|
+| **Tab-Organisation** | Ordnet Pfadeinträge in benannten Tabs mit Kachel- und Listenansicht. | Tabs organisieren Verweise; sie sind keine projektbezogenen Laufzeitumgebungen. |
+| **Lokale Pfade und URLs** | Drag-and-drop kann unterstützte lokale Pfade und HTTP(S)-URLs als Einträge übernehmen. | Einträge verweisen auf Ziele; der Organizer kopiert deren Inhalte nicht. |
+| **Plattformziele** | Windows löst `.lnk`-Ziele zu vorhandenen `.exe`-Dateien oder Ordnern auf; macOS-App-Bundles werden über `open` geöffnet; Linux-`.desktop`-Einträge werden für Namen, Symbole und `Exec` ausgewertet. | Auflösung und Start sind plattformspezifisch. Linux `Exec` wird als Befehl gestartet; dies ist keine Skript-Sandbox. |
+| **Arbeitsverzeichnis** | Windows-Dateistarts verwenden `_startfile_in_dir`, um nach Möglichkeit das Zielverzeichnis als Arbeitsverzeichnis anzufordern. | Fallbacks können ohne explizites Arbeitsverzeichnis starten; es gibt keine Garantie für das Eltern-CWD oder ein plattformübergreifendes Arbeitsverzeichnis. |
+| **Lokale Einstellungen** | Qt `QSettings` speichert Tabs, Einträge, Ansichten und Fensterzustand im Produkt-Namespace. | Qt und Betriebssystem stellen das Backend bereit; atomare Schreibvorgänge oder Sicherheitsdeskriptoren werden nicht garantiert. |
+| **Profilexport** | `softwarecenter-profile-v1.json` enthält Profilmetadaten, Tabs, Ansichten sowie Einträge mit `label`, `path`, `kind` und optionalen `notes`. | Pfade, Labels und Notizen können lokale Details preisgeben; Zieldateien werden nicht kopiert. |
+| **Profilimport** | Der Import prüft Format und Version, normalisiert Einträge und fragt vor dem Ersetzen nach Bestätigung. | Ein bestätigter Import ersetzt das aktuelle Profil; er führt Profile nicht zusammen und bietet keine allgemeine Garantie gegen Datenverlust. |
+| **Produktidentitäten** | SoftwareCenter und LaunchBoards teilen die Implementierung, haben aber getrennte Settings-Namespaces, Single-Instance-Endpunkte und Store-Identitäten. | Das trennt zwei Produkte; es gibt keine Profile je Nutzer oder Projekt innerhalb von SoftwareCenter. |
+| **Netzwerkgrenze** | Im geprüften Organizer-Code gibt es keine Konto-, Telemetrie- oder Cloud-Sync-Implementierung. | HTTP(S)-URLs und externe Ziele können Netzwerkzugriff auslösen; für die Anwendung und gestartete Prozesse wird kein Null-Egress garantiert. |
+| **Prüfumfang** | Repository-Tests prüfen benannte Verträge; CI führt die Python-Versionsmatrix auf Ubuntu sowie separate Linux/macOS-Smokejobs aus. | Daraus folgen weder Windows-Runner-CI, WACK-Zertifizierung, Store-Veröffentlichung noch allgemeine Laufzeitsicherheit. |
## Systemarchitektur
@@ -125,12 +126,12 @@ graph TD
E --> E2["macOS (.app Bundles)"]
E --> E3["Linux (.desktop Launcher)"]
- C --> F["Status-Persistenz (QSettings / Registry)"]
+ C --> F["Status-Persistenz (QSettings; Backend abhängig vom Betriebssystem)"]
C --> G["JSON-Profil Import/Export (softwarecenter-profile-v1.json)"]
B --> H["Windows Store & Build-Pipeline"]
H --> H1["PyInstaller EXE Build"]
- H --> H2["WACK Dry-Run / MSIX-Paketierung"]
+ H --> H2["WACK-Dry-Run / MSIX-Vorprüfung (keine Zertifizierung)"]
H --> H3["Reproduzierbarer Store-Screenshot-Generator"]
```
@@ -143,37 +144,39 @@ sequenceDiagram
participant SC as SoftwareCenter UI (PySide6)
participant Res as Plattform-Auflöser (.lnk / .app / .desktop)
participant Tab as Tab- & Board-Manager
- participant Set as QSettings-Persistenz (Registry / INI)
+ participant Set as QSettings-Persistenz (plattformabhängiges Backend)
participant Exp as Profil-Exporter (softwarecenter-profile-v1.json)
+ participant OS as Betriebssystem
User->>SC: Datei / Verknüpfung per Drag & Drop ablegen
SC->>Res: Pfad auflösen (z. B. .lnk -> reales EXE-/Ordner-Ziel)
- Res-->>SC: Valider Zielpfad & Systemicon ermittelt
+ Res-->>SC: Aufgelöster Zielpfad und verfügbares Systemsymbol
SC->>Tab: Duplikatprüfung & Element im Board registrieren
Tab->>SC: Kachel- / Listenzeile rendern
- Tab->>Set: Tabs, Reihenfolge & Fenstergeometrie atomar speichern
+ Tab->>Set: Tabs, Reihenfolge und Geometrie über QSettings schreiben
Set-->>SC: Zustand lokal persistent gesichert
User->>SC: Doppelklick zum Start oder "Profil exportieren"
alt Programm starten
- SC->>User: Zielanwendung mit normalen Nutzerrechten ausführen
+ SC->>OS: Datei, Anwendung oder URL über Plattform-APIs öffnen
else Profil exportieren
- SC->>Exp: Boards, Tabs und Einträge serialisieren
- Exp-->>User: Bereinigte softwarecenter-profile-v1.json schreiben (Null Secrets)
+ SC->>Exp: Profilmetadaten, Tabs und Eintragsfelder serialisieren
+ Exp-->>User: softwarecenter-profile-v1.json aus den aktuellen Profilfeldern schreiben
end
```
-## Kernfähigkeiten & Sicherheitsinvarianten
+
+## Kernfähigkeiten und Beleggrenzen
-| Invariante / Fähigkeit | Architektur-Garantie | Verifikations-Mechanismus |
+| Thema | Befund in geprüftem Code/Test | Umfang und Grenze |
|---|---|---|
-| **100% Local-First & Zero Egress** | Agiert rein lokal auf dem Client; keinerlei Telemetrie, kein Cloud-Tracking, keine Remote-Netzwerkaufrufe | Quellcode-Audit, Offline-Laufzeitcheck, Testsuite |
-| **Unprivilegierter Betrieb (Non-Elevation)** | Läuft strikt mit Standard-Benutzerrechten; verlangt niemals UAC-Administratorrechte | Prozess-Sicherheitsdeskriptor-Prüfung |
-| **Nicht-destruktive Verknüpfungsverwaltung** | Das Entfernen eines Eintrags löscht lediglich die UI-Referenz; niemals die Zieldatei auf der Festplatte | UI-Entfernungs-Isolationstests |
-| **Sichere Pfad- & Link-Auflösung** | Löst Windows `.lnk`, macOS `.app` und Linux `.desktop` Ziele auf, ohne Skripte oder Befehle auszuführen | Statische Pfadauflösungs-Vertragstests |
-| **Atomare Status-Persistenz** | QSettings sichert Fenstergeometrie, Tab-Anordnung und aktive Ansichtsmodi sicher im Betriebssystem | Atomare Roundtrip-Persistenztests |
-| **Portables & Bereinigtes Austauschformat** | Schema-validierter JSON-Export (`softwarecenter-profile-v1.json`) ohne Passwörter, Token oder Secrets | `tests/test_export_contract.py` Regressionstests |
-| **Schwesterprodukt-Isolation** | Getrennte QSettings-Namespaces, Mutex-Endpunkte und Store-Identitäten zwischen SoftwareCenter und LaunchBoards | `scripts/verify_product_boundaries.py` |
-| **Multi-OS CI-Matrix-Garantie** | Validiert für Python 3.10-3.12 auf Windows, macOS und Linux Runnern | GitHub Actions Workflows und Plattform-Smokes |
+| **Netzwerkverhalten des Organizers** | Der geprüfte App-Code enthält keine Konto-, Telemetrie- oder Cloud-Sync-Implementierung; `open_file` übergibt HTTP(S)-URLs an Qt oder den Systembrowser. | Die Quellcodeprüfung misst nicht das Laufzeitnetzwerkverhalten von SoftwareCenter, Browser oder gestarteten Prozessen. |
+| **Startkontext** | Datei- und URL-Starts werden an Plattform-APIs delegiert; unter Windows fordert der Startcode nach Möglichkeit das Zielverzeichnis als Arbeitsverzeichnis an. | Code und Tests prüfen keine Prozess-Sicherheitsdeskriptoren und erzwingen keine Berechtigungen von Kindprozessen. |
+| **Einträge entfernen** | Die UI entfernt Einträge aus Liste und gespeichertem Profilzustand, ohne referenzierte Dateien zu löschen. | Daraus folgt nichts über Ziele, die ein externes Programm öffnet oder verändert. |
+| **Plattformauflösung** | Windows-`.lnk`-Ziele werden über COM mit PowerShell-Fallback ermittelt; Linux-`.desktop`-`Exec` wird ausgewertet und anschließend gestartet. | Diese Handler isolieren das Zielverhalten nicht; konfigurierte Befehle oder externe Programme können ausgeführt werden. |
+| **QSettings-Speicherung** | `save_settings` schreibt Tab-, Eintrags-, Ansichts-, Geometrie- und Sprachwerte über Qt `QSettings`. | Der Code verspricht weder eine atomare Transaktion noch crashsichere Speicherung. |
+| **Profildaten** | `softwarecenter-profile-v1.json` enthält Profilfelder und Einträge mit `label`, `path`, `kind` und optionalen `notes`; ein Import ersetzt nach Bestätigung das aktuelle Profil. | Werte können lokale Details preisgeben; Tests decken Test-Fixtures und einen Roundtrip ab; sie belegen keine allgemeine Erkennung oder Bereinigung vertraulicher Inhalte. Siehe `tests/test_export_contract.py`. |
+| **Trennung der Schwesterprodukte** | `scripts/verify_product_boundaries.py` und Produkttests prüfen getrennte Settings-Namespaces und Single-Instance-Endpunkte für SoftwareCenter und LaunchBoards. | Das ist Produkttrennung, keine Nutzer- oder Projektprofile. Siehe `PRODUCT_BOUNDARIES.md` und `tests/test_product_boundaries.py`. |
+| **CI- und Release-Umfang** | CI führt die Python-Versionsmatrix auf Ubuntu und separate Linux/macOS-Smokejobs aus. | Daraus folgen weder Windows-Runner-CI, WACK-Zertifizierung, Store-Veröffentlichung noch allgemeine Laufzeitsicherheit. Siehe `CI_CONTRACT.md`. |
## Geschwister-Ökosystem & Schwesterprodukte
@@ -202,7 +205,7 @@ Nützliche Suchphrasen:
- `lokaler App Launcher Python PySide6`
- `Desktop Verknüpfungen in Tabs organisieren`
- `softwarecenter-profile-v1.json`
-- `Offline Software Launcher ohne Cloud ohne Telemetrie`
+- `Lokal orientierter Desktop-Organizer mit Profilexport`
Es ist nicht Microsoft Configuration Manager Software Center, kein App Store, kein Paketmanager und kein Remote-Deployment-Portal.
@@ -277,7 +280,7 @@ Rollback stehen in [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md).
## Austauschformat
-Profile lassen sich als `softwarecenter-profile-v1.json` exportieren und wieder importieren. Das Format enthält Tabs, Ansichtsmodus und Einträge mit `label`, `path`, `kind` und optionalen `notes`, aber keine kopierten Dateien und keine Credentials. Details stehen in [EXPORTFORMAT.md](EXPORTFORMAT.md).
+Profile lassen sich als `softwarecenter-profile-v1.json` exportieren und wieder importieren. Das Format enthält Profilmetadaten, Tabs, Ansichtsmodi und Einträge mit `label`, `path`, `kind` und optionalen `notes`. Die Anwendung kopiert keine referenzierten Dateien; Pfade, Labels und Notizen können jedoch sensible Details enthalten und werden nicht als Geheimnisse bereinigt. Nach Bestätigung ersetzt der Import das aktuelle Profil. Fehlende Pfade bleiben als Verweise sichtbar. Details stehen in [EXPORTFORMAT.md](EXPORTFORMAT.md).
## LaunchBoards
@@ -301,7 +304,7 @@ sind in [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md) dokumentiert.
Der Windows-Store-Track beinhaltet einen reproduzierbaren Screenshot-Generator für
die aktuelle Desktop-Benutzeroberfläche. `python generate_store_screenshots.py`
-aktualisiert `README/screenshots/store/` mit vier bereinigten Store-Grafiken und `summary.json`.
+aktualisiert `README/screenshots/store/` mit vier erzeugten Store-Screenshots und `summary.json`.
## Technik
@@ -310,27 +313,27 @@ aktualisiert `README/screenshots/store/` mit vier bereinigten Store-Grafiken und
| Sprache | Python 3.10+ |
| GUI-Framework | PySide6 (Qt for Python) |
| Speicherung | QSettings (Windows Registry / INI) |
-| Codeumfang | ~690 Zeilen |
+| Codeumfang | Keine feste Zeilenangabe |
## Sicherheitsrichtlinie
-Sicherheit und Datenschutz stehen an erster Stelle. Siehe [SECURITY.md](SECURITY.md) für vollständige Richtlinien zur Meldung von Schwachstellen, unser 48-Stunden-SLA und die Kern-Invarianten.
+[SECURITY.md](SECURITY.md) beschreibt unterstützte Versionen, Meldewege für Schwachstellen, die erklärte erste Rückmeldung innerhalb von 48 Stunden und die Triage innerhalb von 5 Werktagen. Die Richtlinienaussagen sind kein Laufzeitnachweis.
## Drittanbieter-Lizenzen & Governance
-SoftwareCenter bindet Drittanbieter-Open-Source-Komponenten unter konformen, permissiven Lizenzen ein. Vollständige Audit-Details, SPDX-Identifikatoren und dynamische Verlinkungshinweise finden sich in [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+Die MIT-Lizenz des Repositories gilt für den Projektquellcode. Abhängigkeiten haben eigene Lizenzbedingungen; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) dokumentiert Paketmetadaten, ist aber weder eine pauschale Einstufung aller Komponenten als permissiv noch eine Compliance-Garantie für jedes Paket.
- **Attribution:** [NOTICE](NOTICE) (Kanonische Open-Source-Attribution Lukas Geiger, file-bricks und open-bricks Dachorganisation).
-- **PySide6 & shiboken6:** [LGPL-3.0-only](https://www.gnu.org/licenses/lgpl-3.0.html) (dynamisch über Qt for Python gelinkt; vollständige Ersetzbarkeit für Endnutzer gemäß LGPLv3 § 4 gewährleistet).
-- **Python-Standardbibliothek:** [PSFL-2.0](https://docs.python.org/3/license.html) (100% offline, kein Netzwerk-Egress).
-- **PyInstaller:** [GPL-2.0-or-later mit PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) (Build-Tooling; generierte Binärdateien sind von der GPL-Copyleft-Pflicht ausgenommen).
-- **Governance-Invarianten:** 10 zentrale Laufzeit-Garantien (INV-LOCAL-01 bis INV-ZEROCOPY-10) werden durch automatisierte Vertragstests gesichert.
+- **PySide6 & shiboken6:** Das Inventar führt LGPL-3.0-only-Bedingungen auf; siehe den [LGPL-3.0-Text](https://www.gnu.org/licenses/lgpl-3.0.html) und die [Komponentenmetadaten](THIRD_PARTY_LICENSES.md). Die MIT-Lizenz des Projekts gilt nicht pauschal für diese Abhängigkeiten.
+- **Python-Standardbibliothek:** [PSF-2.0](https://docs.python.org/3/license.html). Diese Lizenz sagt nicht aus, ob der Organizer oder gestartete Programme offline arbeiten.
+- **PyInstaller:** [GPL-2.0-or-later mit PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) ist ein Build-Werkzeug; für ein gepacktes Programm sind die Upstream-Lizenz und die Auslieferungshinweise maßgeblich, nicht eine pauschale Ausnahmebehauptung.
+- **Prüfumfang:** Tests prüfen benannte Code- und Dokumentationsverträge; sie belegen keine universellen Laufzeitgarantien.
## Lizenz
[MIT](LICENSE)
-**Hinweis:** Diese Anwendung verwendet [PySide6](https://doc.qt.io/qtforpython-6/), lizenziert unter LGPLv3. PySide6 wird dynamisch gelinkt.
+**Hinweis:** MIT ist die Lizenz des Projektquellcodes in diesem Repository. Die Anwendung verwendet [PySide6](https://doc.qt.io/qtforpython-6/) mit eigenen Lizenzbedingungen; siehe [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
---
diff --git a/README_fr.md b/README_fr.md
new file mode 100644
index 0000000..e20be9c
--- /dev/null
+++ b/README_fr.md
@@ -0,0 +1,349 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+Un organiseur de bureau léger et multiplateforme pour gérer des raccourcis logiciels au moyen d’une classification par onglets.
+
+> [!NOTE]
+> **Intégration IA / LLM et index lisible par machine :** SoftwareCenter fournit des métadonnées structurées et lisibles par machine dans [`llms.txt`](llms.txt), et prend en charge la migration de profils au format JSON versionné (`softwarecenter-profile-v1.json`).
+
+
+
+## Navigation rapide
+
+- [Référence rapide](#quick-reference)
+- [Fonctionnalités](#features)
+- [Profils d’utilisateurs et visibilité](#target-personas--discoverability)
+- [Fonctionnalités et limites de SoftwareCenter](#comparative-matrix-vs-alternatives)
+- [Architecture du système](#system-architecture)
+- [Séquence du cycle de vie](#lifecycle-sequence-flow)
+- [Fonctionnalités principales et limites des éléments vérifiés](#core-capabilities--safety-invariants)
+- [Écosystème et produits apparentés](#sibling-ecosystem--sister-products)
+- [Contexte de recherche](#discovery-context)
+- [Prérequis](#requirements)
+- [Installation](#installation)
+- [Lancement](#run)
+- [Utilisation](#usage)
+- [Création de l’exécutable](#build-executable)
+- [Contrôles qualité](#quality-checks)
+- [Maintenance du catalogue de lanceurs sans interface graphique](#headless-launcher-catalog-care)
+- [Format d’échange](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [Séparation des produits apparentés](#sister-product-boundary)
+- [Ressources Windows Store](#windows-store-assets)
+- [Technologies](#tech-stack)
+- [Politique de sécurité](#security-policy)
+- [Licences tierces et gouvernance](#third-party-licenses--governance)
+- [Licence](#license)
+- [Responsabilité](#liability)
+
+
+## Référence rapide
+
+| Attribut | Détails |
+|---|---|
+| **Technologies** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **Licence** | Code du projet : MIT ; PySide6 et les autres dépendances ont leurs propres conditions (voir [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **Format d’échange** | `softwarecenter-profile-v1.json` (voir [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **Dernière vérification** | 2026-09-23 (en local : suite pytest complète, tests smoke des plateformes, compileall, Ruff, audit des dépendances, intégration au menu contextuel du gestionnaire de fichiers, attribution NOTICE, durcissement du cycle de vie CI ; WACK est toujours en dry-run uniquement) |
+
+
+## Fonctionnalités
+
+- **Organisation par onglets** — regroupez programmes, documents et dossiers dans des tableaux que vous pouvez renommer et déplacer
+- **Glisser-déposer et organisation universelle** — déposez des applications, scripts, documents, dossiers ou raccourcis sur les tableaux ; cela ajoute une couche d’organisation indépendante au-dessus du système de fichiers
+- **Aide pour les tableaux vides** — un espace réservé explique les types d’éléments qu’il est possible d’y déposer
+- **Deux modes d’affichage** — mosaïque avec grandes icônes et liste
+- **Enregistrement automatique** — les onglets, leur contenu et la position de la fenêtre sont enregistrés
+- **Menu contextuel** — ouvrez ou supprimez un élément avec le bouton droit de la souris
+- **Multiplateforme** — Windows, macOS et Linux
+- **Icônes natives** — affichage automatique des icônes des applications système
+- **Résolution des raccourcis Windows** — les fichiers `.lnk` déposés qui pointent vers un `.exe` ou un dossier sont enregistrés sous la forme de leur cible d’origine
+- **Bundles d’applications macOS** — déposez directement les applications `.app` dans l’organiseur
+- **Lanceurs Linux** — les entrées `.desktop` affichent le nom de l’application et la lancent avec la commande du fichier desktop
+- **Export et import de profils** — format versionné `softwarecenter-profile-v1.json` pour les migrations et les sauvegardes
+- **Sélection multiple** — supprimez plusieurs entrées à la fois
+- **Fonctionnement local prioritaire** — le code de l’organiseur n’intègre aucune fonction de compte, de télémétrie ou de synchronisation cloud ; les URL HTTP(S) et les programmes lancés sont ouverts par l’intermédiaire de la plateforme et peuvent utiliser le réseau
+
+
+## Profils d’utilisateurs et visibilité
+
+SoftwareCenter répond à des difficultés précises rencontrées dans les flux de travail de quatre profils d’utilisateurs :
+
+| Profil | Activités et responsabilités principales | Difficulté principale | Réponse de SoftwareCenter |
+|---|---|---|---|
+| **Profil 1 : utilisateurs expérimentés et organisateurs de postes de travail** | Utilisent chaque jour de nombreux outils, dossiers de travail et utilitaires. | Bureau Windows encombré, recherche lente dans le menu Démarrer, absence de regroupements personnalisés persistants. | Tableaux rapides à onglets, organisation des fichiers par glisser-déposer, notes personnalisées et changement instantané. |
+| **Profil 2 : développeurs indépendants et ingénieurs DevOps** | Gèrent des chaînes d’outils, wrappers CLI, applications portables et environnements virtuels. | Mélange des outils de développement avec les applications grand public dans le menu Démarrer ; lanceurs lourds consommant de la mémoire. | SoftwareCenter et LaunchBoards ont des identités d’application distinctes ; sous Windows, le lancement de fichiers demande le dossier cible comme répertoire de travail lorsque cela est pris en charge. Ce n’est pas un gestionnaire d’environnements de projet, et le comportement dépend du système d’exploitation et de l’application cible. |
+| **Profil 3 : utilisateurs de plusieurs postes de travail** | Déplacent manuellement des profils entre plusieurs postes de travail. | Les chemins absolus peuvent ne pas exister sur un autre appareil ; les libellés et notes facultatives peuvent contenir des informations privées. | Export/import versionné via `softwarecenter-profile-v1.json` ; vérifiez les chemins et les notes avant de partager. Après confirmation, l’import remplace le profil actuel ; les fichiers cibles ne sont pas copiés. |
+| **Profil 4 : personnes soucieuses de confidentialité** | Préfèrent des paramètres de l’organiseur stockés localement et l’absence de compte ou de télémétrie intégrés à l’application. | Les chemins et notes enregistrés peuvent révéler des informations locales ; l’ouverture d’une URL ou le lancement d’un programme peut entraîner des communications réseau. | Le code de l’organiseur examiné ne comporte pas de fonction de compte, de télémétrie ou de synchronisation cloud. Il ne garantit ni la confidentialité, ni l’absence de trafic sortant des processus lancés, ni le comportement des programmes cibles en matière de privilèges. |
+
+### Requêtes de recherche à forte intention
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## Fonctionnalités et limites de SoftwareCenter
+
+| Fonctionnalité | Comportement implémenté | Limite |
+|---|---|---|
+| **Organisation par onglets** | Regroupe les entrées de chemin dans des onglets nommés, en mosaïque ou en liste. | Les onglets organisent des références ; ils ne constituent pas des environnements d’exécution par projet. |
+| **Chemins locaux et URL** | Le glisser-déposer permet d’enregistrer les chemins locaux et URL HTTP(S) pris en charge. | Les entrées pointent vers des cibles ; l’organiseur n’en copie pas le contenu. |
+| **Gestion des cibles selon la plateforme** | Sous Windows, la résolution `.lnk` accepte des cibles `.exe` ou des dossiers existants ; les bundles d’applications macOS sont ouverts avec `open` ; les entrées Linux `.desktop` sont analysées pour en extraire le nom, l’icône et `Exec`. | La résolution et le lancement dépendent du système d’exploitation. Sous Linux, `Exec` est lancé comme une commande ; il ne s’agit pas d’un bac à sable pour scripts. |
+| **Répertoire de travail** | Sous Windows, le lancement d’un fichier utilise `_startfile_in_dir` pour demander le dossier contenant le fichier cible comme répertoire de travail lorsque cela est pris en charge. | Les solutions de lancement de repli peuvent ne pas définir explicitement de répertoire de travail ; aucun CWD du processus parent ni comportement commun entre plateformes n’est garanti. |
+| **Paramètres locaux** | Qt `QSettings` stocke les onglets, entrées, vues et l’état de la fenêtre dans l’espace de noms de paramètres du produit. | Qt et le système d’exploitation fournissent le stockage ; aucune garantie d’écriture atomique ou de descripteur de sécurité n’est revendiquée. |
+| **Export de profil** | `softwarecenter-profile-v1.json` contient des métadonnées de profil, des onglets, des vues et des entrées dotées de `label`, `path`, `kind` et d’un `notes` facultatif. | Les chemins, libellés et notes peuvent révéler des informations locales ; les fichiers cibles ne sont pas copiés. |
+| **Import de profil** | L’importeur vérifie le format et la version, normalise les entrées et demande une confirmation. | Après confirmation, l’import remplace le profil actuel ; il ne fusionne pas les profils et n’offre pas de garantie générale contre la perte de données. |
+| **Identité des produits** | SoftwareCenter et LaunchBoards partagent leur implémentation, mais ont des espaces de noms de paramètres, des points de terminaison d’instance unique et des identités Store distincts. | Cela sépare deux produits ; cela ne fournit pas de profils sélectionnables par utilisateur dans SoftwareCenter. |
+| **Limites réseau** | Le code source de l’organiseur examiné ne comporte pas d’implémentation de compte, de télémétrie ou de synchronisation cloud. | Il ouvre des URL HTTP(S) et lance des cibles externes qui peuvent utiliser le réseau ; l’absence totale de trafic réseau pour l’application ou les processus lancés n’est pas garantie. |
+| **Périmètre des vérifications** | Les tests du dépôt vérifient des contrats nommés ; la CI exécute une matrice de versions Python sur Ubuntu et des tests smoke distincts pour Linux/macOS. | Ces vérifications n’établissent pas le comportement sur tous les hôtes, ne certifient pas WACK ou une soumission au Store et ne prouvent pas des propriétés de sécurité universelles. |
+
+
+## Architecture du système
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## Séquence du cycle de vie
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## Fonctionnalités principales et limites des éléments vérifiés
+
+| Sujet | Éléments observés dans le code et les tests examinés | Portée et limites |
+|---|---|---|
+| **Comportement réseau de l’organiseur** | Le code de l’application ne comporte aucun client de compte, de télémétrie ou de synchronisation cloud ; `open_file` transmet les URL HTTP(S) à Qt ou au navigateur de la plateforme. | L’inspection du code source ne mesure pas le trafic réseau de SoftwareCenter, du navigateur ou des processus lancés pendant l’exécution. |
+| **Contexte de lancement** | Le lancement de fichiers et d’URL est délégué aux API de la plateforme ; sous Windows, le code demande le dossier cible comme répertoire de travail lorsque c’est possible. | Le code et les tests examinés ne vérifient pas les descripteurs de sécurité des processus et n’imposent pas les privilèges des processus enfants. |
+| **Suppression d’entrées** | L’interface retire les entrées de la liste et de l’état de profil enregistré sans supprimer les fichiers référencés. | Cela ne décrit pas les cibles ouvertes ou modifiées par un programme externe. |
+| **Résolution selon la plateforme** | Sous Windows, la recherche d’une cible `.lnk` utilise COM avec un repli PowerShell ; les données `Exec` des fichiers Linux `.desktop` sont analysées puis lancées. | Ces gestionnaires n’isolent pas le comportement des cibles ; des commandes configurées ou des programmes externes peuvent être exécutés. |
+| **Persistance QSettings** | `save_settings` écrit les valeurs des onglets, entrées, vues, dimensions de fenêtre et langue via Qt `QSettings`. | Le code ne revendique ni transaction atomique ni écriture résistante aux plantages. |
+| **Données de profil** | `softwarecenter-profile-v1.json` contient les champs du profil et les entrées `label`, `path`, `kind` et `notes` facultatif ; après confirmation, l’import remplace le profil actuel. | Les valeurs peuvent révéler des informations locales ; les tests couvrent des fixtures et un aller-retour, pas le nettoyage arbitraire des secrets. Voir `tests/test_export_contract.py`. |
+| **Séparation des produits apparentés** | `scripts/verify_product_boundaries.py` et les tests de limites des produits vérifient la séparation des espaces de noms de paramètres et des points de terminaison d’instance unique de SoftwareCenter et LaunchBoards. | Il s’agit d’une séparation entre produits, pas de profils multi-utilisateurs ou par projet. Voir `PRODUCT_BOUNDARIES.md` et `tests/test_product_boundaries.py`. |
+| **Périmètre CI et publication** | La CI exécute la matrice de régression des versions Python sur Ubuntu ainsi que des tests smoke distincts pour Linux/macOS. | Cela n’implique ni CI sur un hôte Windows, ni certification WACK, ni publication dans le Store, ni sécurité universelle à l’exécution. Voir `CI_CONTRACT.md`. |
+
+
+## Écosystème et produits apparentés
+
+SoftwareCenter fait partie de la collection plus large d’outils de bureau **file-bricks** et de l’initiative open source fédératrice **open-bricks** :
+
+| Projet | Écosystème | Fonction principale | Intégration / complémentarité |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | Inspection de documents et médias | Application complémentaire pour le tri de fichiers et l’analyse documentaire forensique |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | Explorateur de fichiers à onglets multiples | Gestion complémentaire à deux volets des fichiers liés par les raccourcis SoftwareCenter |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | Déblocage et réparation des verrous cloud | Débloque les fichiers de synchronisation figés et les fichiers OneDrive référencés par des raccourcis |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | Base de connaissances Markdown et documentaire | Organiseur local de synthèses documentaires pour les flux de recherche |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | Création de formulaires et de modèles | Générateur de documents de bureau lançable depuis les tuiles SoftwareCenter |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | Outil d’aide aux mots de passe et au déverrouillage PDF | Utilitaire local de déverrouillage PDF qui ne modifie pas le fichier d’origine |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | Barrière de démarrage pour l’automatisation | Protège les environnements de travail de bureau contre les démarrages en rafale |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | Analyseur de code source fondé sur l’AST | Analyse statique des outils et modules de bureau Python |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | Pont de communication entre agents | Adaptateurs de messagerie et de transport sans dépendances |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | Fédération open source de produits de bureau | Normes, gouvernance et empaquetage |
+
+
+## Contexte de recherche
+
+SoftwareCenter est plus facile à trouver comme **lanceur d’applications local sur PySide6** ou **organiseur de raccourcis de bureau**. Il se situe entre le menu Démarrer de Windows, les dossiers de raccourcis du bureau et les systèmes complets d’inventaire logiciel : il lance les programmes déjà présents sur votre ordinateur, regroupe les raccourcis dans des onglets et exporte ou importe des profils portables.
+
+Exemples de requêtes utiles :
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+Ce n’est ni Microsoft Configuration Manager Software Center, ni une boutique d’applications, ni un gestionnaire de paquets, ni un portail de déploiement à distance.
+
+
+## Prérequis
+
+- Python 3.10+
+- PySide6
+
+
+## Installation
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## Lancement
+
+```bash
+python SoftwareCenter.py
+```
+
+Sous Windows, vous pouvez aussi utiliser `START.bat` ou le fichier prêt à l’emploi `SoftwareCenter.exe` disponible dans les [Releases](https://github.com/file-bricks/SoftwareCenter/releases).
+
+
+## Utilisation
+
+| Action | Instructions |
+|--------|-------------|
+| Ajouter des programmes | Faites glisser dans la fenêtre des fichiers, dossiers, raccourcis, bundles `.app` sous macOS ou lanceurs `.desktop` sous Linux ; les fichiers Windows `.lnk` pointant vers des fichiers `.exe` ou des dossiers sont résolus vers leur cible d’origine |
+| Organiser les onglets | Barre d’outils > "New Tab", double-cliquez pour renommer |
+| Changer de vue | Barre d’outils > Tiles / List |
+| Lancer un programme | Double-clic ou clic droit > Open/Start |
+| Supprimer des entrées | Clic droit > Delete (supprime uniquement le raccourci) |
+| Exporter un profil | `File > Export Profile` ou l’action de la barre d’outils |
+| Importer un profil | `File > Import Profile` ou l’action de la barre d’outils ; remplace le profil actuel |
+
+
+## Créer l’exécutable
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+L’EXE sera placé dans `dist/SoftwareCenter.exe`. Sous Windows, `build_exe.bat` le copie également à la racine du projet pour une utilisation locale.
+
+
+## Contrôles qualité
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+Le workflow hébergé et la limite explicite de la partie Web facultative sont décrits dans [CI_CONTRACT.md](CI_CONTRACT.md).
+
+GitHub Actions exécute ces tests smoke. Le test macOS vérifie l’import `.app`, le lancement avec `open`, la persistance QSettings et l’export du profil sur `macos-latest` ; le test Linux couvre l’import `.desktop`, le lancement avec `Exec`/`xdg-open`, la persistance QSettings et l’export du profil sur `ubuntu-latest`. Les artefacts de build et les fichiers locaux de tâches/tests sont ignorés et ne doivent pas être commités.
+
+Pour le parcours Windows Store, `python scripts/run_windows_wack.py --dry-run` vérifie les chemins MSIX/AppCert locaux et affiche la commande WACK reproductible. La véritable certification doit être exécutée depuis une PowerShell élevée avec un MSIX fraîchement signé avant soumission.
+La commande `python generate_store_screenshots.py` crée le jeu reproductible de captures d’écran Store dans `README/screenshots/store/`.
+
+
+## Maintenance du catalogue de lanceurs sans interface graphique
+
+L’outil facultatif de rapprochement du catalogue est fourni sous forme de code d’exécution Plan-D dans `scripts/softwarecenter_sync.py`. Les fichiers du catalogue synchronisé et du registre sont des entrées CLI explicites ; la commande est en lecture seule sauf si `--apply` est indiqué. La charge utile du planificateur à environnement d’exécution épinglé, les barrières d’application, la lecture de contrôle native et la procédure de retour arrière sont décrites dans [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md).
+
+
+## Format d’échange
+
+Les profils peuvent être exportés dans `softwarecenter-profile-v1.json` puis importés à nouveau. Le format contient les métadonnées du profil, les onglets, les modes d’affichage et les entrées dotées de `label`, `path`, `kind` et d’un `notes` facultatif. L’application ne copie pas les fichiers locaux référencés, mais les chemins, libellés et notes peuvent contenir des informations sensibles ; le format ne constitue pas une barrière de nettoyage des secrets. Après confirmation, l’import remplace le profil actuel. Les chemins manquants restent visibles comme références. Voir [EXPORTFORMAT.md](EXPORTFORMAT.md) pour plus de détails.
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) est le produit apparenté de SoftwareCenter : il partage la même base de code, mais possède sa propre marque et identité et s’articule autour de tableaux d’espace de travail interchangeables plutôt que d’un lanceur de raccourcis généraliste. Il partage ce dépôt et le pipeline de publication ; il n’existe pas d’arborescence source LaunchBoards séparée à maintenir.
+
+
+## Séparation des produits apparentés
+
+LaunchBoards partage l’implémentation, mais dispose de son propre espace de noms QSettings, point de terminaison d’instance unique, icône, exécutable, identité Store et chemin de publication. Les vérifications statiques reproductibles, les tests de processus parallèles isolés et les contrôles d’artefacts sont documentés dans [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md).
+
+
+## Ressources Windows Store
+
+Le parcours Windows Store comprend désormais un générateur reproductible de captures d’écran de l’interface actuelle. Exécutez `python generate_store_screenshots.py` pour actualiser `README/screenshots/store/` avec quatre captures Store générées et `summary.json`.
+
+
+## Technologies
+
+| Composant | Technologie |
+|-----------|-----------|
+| Langage | Python 3.10+ |
+| Interface graphique | PySide6 (Qt for Python) |
+| Stockage | QSettings (registre Windows / INI) |
+| Taille du code | Voir les fichiers actuels du dépôt ; aucun nombre fixe de lignes n’est avancé |
+
+
+## Politique de sécurité
+
+Le [SECURITY.md](SECURITY.md) du dépôt décrit les versions prises en charge, les canaux de signalement des vulnérabilités, un délai initial de réponse annoncé de 48 heures et un délai de triage de 5 jours ouvrés. Ces déclarations de politique ne doivent pas être interprétées comme une vérification du comportement à l’exécution.
+
+
+## Licences tierces et gouvernance
+
+La licence MIT du dépôt s’applique au code source du projet. Les dépendances tierces ont leurs propres conditions ; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) consigne les métadonnées des composants, mais ne constitue pas une garantie générale de permissivité des licences ou de conformité de l’empaquetage.
+
+- **Attribution :** [NOTICE](NOTICE) (mentions de droits d’auteur pour Lukas Geiger et les organisations file-bricks / open-bricks).
+- **PySide6 et shiboken6 :** l’inventaire indique les conditions LGPL-3.0-only ; voir le [texte LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html) et les [métadonnées des composants](THIRD_PARTY_LICENSES.md). La licence MIT du projet ne s’applique pas globalement à ces dépendances.
+- **Bibliothèque standard Python :** [PSF-2.0](https://docs.python.org/3/license.html). Cette licence n’implique pas que l’organiseur ou les programmes qu’il lance fonctionnent hors ligne.
+- **PyInstaller :** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) concerne un outil de build ; pour une distribution empaquetée, examinez la licence amont et les mentions de distribution au lieu de supposer une exemption générale.
+- **Limites des vérifications :** les tests couvrent des contrats de code et de documentation nommés ; ils n’établissent pas de garanties universelles à l’exécution.
+
+
+## Licence
+
+[MIT](LICENSE)
+
+**Remarque :** la licence MIT du dépôt porte sur le code source du projet. L’application utilise [PySide6](https://doc.qt.io/qtforpython-6/), qui a des conditions de licence propres à cette dépendance ; voir [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+
+---
+
+
+## Responsabilité
+
+Ce projet est un don open source non rémunéré. La responsabilité est limitée à l’intention et à la faute lourde (§ 521 du Code civil allemand). Utilisez-le à vos risques. Aucune garantie, aucun engagement de maintenance et aucune aptitude à un usage particulier ne sont présumés.
diff --git a/README_hi.md b/README_hi.md
new file mode 100644
index 0000000..31c29d8
--- /dev/null
+++ b/README_hi.md
@@ -0,0 +1,349 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+टैब-आधारित वर्गीकरण के साथ सॉफ़्टवेयर शॉर्टकट प्रबंधित करने वाला हल्का, क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप आयोजक।
+
+> [!NOTE]
+> **LLM / AI एकीकरण और मशीन-पठनीय अनुक्रमणिका:** SoftwareCenter [`llms.txt`](llms.txt) में संरचित, मशीन-पठनीय मेटाडेटा देता है और संस्करणयुक्त JSON (`softwarecenter-profile-v1.json`) के ज़रिए प्रोफ़ाइल माइग्रेशन का समर्थन करता है।
+
+
+
+## त्वरित नेविगेशन
+
+- [त्वरित संदर्भ](#quick-reference)
+- [विशेषताएँ](#features)
+- [लक्षित उपयोगकर्ता और खोज में दृश्यता](#target-personas--discoverability)
+- [SoftwareCenter की क्षमताएँ और सीमाएँ](#comparative-matrix-vs-alternatives)
+- [सिस्टम आर्किटेक्चर](#system-architecture)
+- [लाइफ़साइकल क्रम प्रवाह](#lifecycle-sequence-flow)
+- [मुख्य क्षमताएँ और साक्ष्य की सीमाएँ](#core-capabilities--safety-invariants)
+- [सहयोगी इकोसिस्टम और संबंधित उत्पाद](#sibling-ecosystem--sister-products)
+- [खोज संदर्भ](#discovery-context)
+- [आवश्यकताएँ](#requirements)
+- [इंस्टॉलेशन](#installation)
+- [चलाएँ](#run)
+- [उपयोग](#usage)
+- [एक्ज़ीक्यूटेबल बनाएँ](#build-executable)
+- [गुणवत्ता जाँच](#quality-checks)
+- [बिना GUI के लॉन्चर कैटलॉग का रखरखाव](#headless-launcher-catalog-care)
+- [आदान-प्रदान प्रारूप](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [संबंधित उत्पादों की सीमा](#sister-product-boundary)
+- [Windows Store संसाधन](#windows-store-assets)
+- [तकनीकी स्टैक](#tech-stack)
+- [सुरक्षा नीति](#security-policy)
+- [तृतीय-पक्ष लाइसेंस और शासन](#third-party-licenses--governance)
+- [लाइसेंस](#license)
+- [दायित्व](#liability)
+
+
+## त्वरित संदर्भ
+
+| विशेषता | विवरण |
+|---|---|
+| **टेक स्टैक** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **लाइसेंस** | प्रोजेक्ट कोड: MIT; PySide6 और अन्य निर्भरताओं की शर्तें अलग हैं (देखें [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **आदान-प्रदान प्रारूप** | `softwarecenter-profile-v1.json` (देखें [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **अंतिम जाँच** | 2026-09-23 (स्थानीय: पूरी pytest suite, प्लेटफ़ॉर्म smoke जाँचें, compileall, Ruff, निर्भरता ऑडिट, फ़ाइल प्रबंधक के संदर्भ मेनू का एकीकरण, NOTICE श्रेय, CI लाइफ़साइकल को मज़बूत करना; WACK अभी केवल dry-run है) |
+
+
+## विशेषताएँ
+
+- **टैब के आधार पर संगठन** — प्रोग्राम, दस्तावेज़ और फ़ोल्डर को बोर्डों में समूहित करें; बोर्डों का नाम बदलें और उन्हें स्थानांतरित करें
+- **ड्रैग-एंड-ड्रॉप और सार्वभौमिक आयोजक** — ऐप, स्क्रिप्ट, दस्तावेज़, फ़ोल्डर या शॉर्टकट सीधे बोर्डों पर छोड़ें; यह फ़ाइल सिस्टम के ऊपर स्वतंत्र संगठन-परत की तरह काम करता है
+- **खाली बोर्ड के लिए मार्गदर्शन** — खाली बोर्ड पर सहायक प्लेसहोल्डर बताता है कि वहाँ किन प्रकार की चीज़ों को छोड़ा जा सकता है
+- **देखने के दो तरीके** — बड़े आइकन वाले टाइल और सूची
+- **स्वतः सहेजना** — टैब, उनकी सामग्री और विंडो की स्थिति सहेजी जाती है
+- **संदर्भ मेनू** — दायाँ-क्लिक करके खोलें या हटाएँ
+- **क्रॉस-प्लेटफ़ॉर्म** — Windows, macOS और Linux
+- **नेटिव आइकन** — सिस्टम ऐप्लिकेशन के आइकन अपने-आप दिखते हैं
+- **Windows शॉर्टकट समाधान** — छोड़ी गई `.lnk` फ़ाइलें यदि `.exe` या फ़ोल्डर को लक्षित करती हैं, तो मूल लक्ष्य के रूप में सहेजी जाती हैं
+- **macOS ऐप बंडल** — `.app` ऐप्लिकेशन सीधे आयोजक में ड्रैग-एंड-ड्रॉप करें
+- **Linux डेस्कटॉप लॉन्चर** — `.desktop` प्रविष्टियाँ ऐप का नाम दिखाती हैं और अपनी desktop command से लॉन्च होती हैं
+- **प्रोफ़ाइल एक्सपोर्ट/इम्पोर्ट** — माइग्रेशन और बैकअप के लिए संस्करणयुक्त `softwarecenter-profile-v1.json` प्रारूप
+- **एकाधिक चयन** — एक बार में कई प्रविष्टियाँ हटाएँ
+- **स्थानीय उपयोग को प्राथमिकता** — आयोजक के कोड में अकाउंट, टेलीमेट्री या क्लाउड-सिंक सुविधा नहीं है; HTTP(S) URL और लॉन्च किए गए प्रोग्राम प्लेटफ़ॉर्म के माध्यम से खोले जाते हैं और नेटवर्क का उपयोग कर सकते हैं
+
+
+## लक्षित उपयोगकर्ता और खोज में दृश्यता
+
+SoftwareCenter चार अलग-अलग उपयोगकर्ता-प्रोफ़ाइलों के कार्यप्रवाह की विशिष्ट अड़चनों को दूर करने के लिए बनाया गया है:
+
+| उपयोगकर्ता-प्रोफ़ाइल | मुख्य गतिविधियाँ और ज़िम्मेदारियाँ | प्रमुख समस्या | SoftwareCenter का समाधान |
+|---|---|---|---|
+| **प्रोफ़ाइल 1: डेस्कटॉप पावर यूज़र और क्यूरेटर** | रोज़ाना अनेक टूल, कार्यक्षेत्र फ़ोल्डर और यूटिलिटी इस्तेमाल करते हैं। | Windows डेस्कटॉप पर अव्यवस्था, Start Menu में खोज धीमी, स्थायी कस्टम समूह बनाने का अभाव। | तेज़ टैब-आधारित बोर्ड, ड्रैग-एंड-ड्रॉप फ़ाइल संगठन, कस्टम नोट और तुरंत स्विच करना। |
+| **प्रोफ़ाइल 2: स्वतंत्र डेवलपर और DevOps इंजीनियर** | टूलचेन, CLI wrapper, पोर्टेबल ऐप और वर्चुअल एनवायरनमेंट सँभालते हैं। | डेवलपमेंट टूल का सामान्य Start Menu में मिल जाना; मेमोरी लेने वाले भारी लॉन्चर daemon। | SoftwareCenter और LaunchBoards की ऐप पहचान अलग है; Windows में फ़ाइल लॉन्च करते समय, जहाँ समर्थित हो, लक्ष्य फ़ोल्डर को working directory के रूप में माँगा जाता है। यह प्रोजेक्ट-एनवायरनमेंट मैनेजर नहीं है और लक्ष्य का व्यवहार OS तथा ऐप पर निर्भर है। |
+| **प्रोफ़ाइल 3: कई PC पर काम करने वाले उपयोगकर्ता** | प्रोफ़ाइलों को हाथ से एक वर्कस्टेशन से दूसरे पर ले जाते हैं। | पूर्ण पथ दूसरे डिवाइस पर काम न करें; लेबल और वैकल्पिक नोट में निजी जानकारी हो सकती है। | संस्करणयुक्त `softwarecenter-profile-v1.json` से एक्सपोर्ट/इम्पोर्ट; साझा करने से पहले पथ और नोट जाँचें। पुष्टि के बाद इम्पोर्ट मौजूदा प्रोफ़ाइल को बदल देता है; लक्ष्य फ़ाइलें कॉपी नहीं होतीं। |
+| **प्रोफ़ाइल 4: गोपनीयता के प्रति सजग उपयोगकर्ता** | आयोजक सेटिंग स्थानीय रूप से रखना और ऐप में अकाउंट या टेलीमेट्री सुविधा न होना पसंद करते हैं। | सहेजे गए पथ और नोट स्थानीय जानकारी उजागर कर सकते हैं; URL खोलने या प्रोग्राम लॉन्च करने पर नेटवर्क संचार हो सकता है। | जाँचे गए आयोजक कोड में अकाउंट, टेलीमेट्री या क्लाउड-सिंक सुविधा नहीं है। यह गोपनीयता, लॉन्च की गई प्रक्रियाओं के लिए शून्य नेटवर्क-निकास, या लक्ष्य प्रोग्राम के विशेषाधिकार व्यवहार की गारंटी नहीं देता। |
+
+### उच्च-इरादे वाली खोज क्वेरी
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## SoftwareCenter की क्षमताएँ और सीमाएँ
+
+| क्षमता | लागू व्यवहार | सीमा |
+|---|---|---|
+| **टैब संगठन** | पथ-संदर्भित प्रविष्टियों को नामित टैब में समूहित करता है; टाइल और सूची दृश्य उपलब्ध हैं। | टैब संदर्भों को व्यवस्थित करते हैं; वे प्रति-प्रोजेक्ट निष्पादन एनवायरनमेंट नहीं हैं। |
+| **स्थानीय पथ और URL** | ड्रैग-एंड-ड्रॉप से समर्थित स्थानीय पथ और HTTP(S) URL दर्ज किए जा सकते हैं। | प्रविष्टियाँ लक्ष्यों का संदर्भ देती हैं; आयोजक उनकी सामग्री कॉपी नहीं करता। |
+| **प्लेटफ़ॉर्म के अनुसार लक्ष्य सँभालना** | Windows में `.lnk` समाधान मौजूदा `.exe` या फ़ोल्डर लक्ष्य स्वीकार करता है; macOS ऐप बंडल `open` से खुलते हैं; Linux `.desktop` प्रविष्टियों से नाम, आइकन और `Exec` निकाले जाते हैं। | समाधान और लॉन्च OS के अनुसार अलग होते हैं। Linux में `Exec` को कमांड की तरह चलाया जाता है; यह स्क्रिप्ट सैंडबॉक्स नहीं है। |
+| **कार्यशील डायरेक्टरी** | Windows में फ़ाइल लॉन्च `_startfile_in_dir` का उपयोग करके समर्थित होने पर लक्ष्य फ़ाइल के फ़ोल्डर को working directory के रूप में माँगता है। | वैकल्पिक लॉन्च तरीकों में working directory स्पष्ट रूप से सेट न हो; parent CWD या सभी प्लेटफ़ॉर्म पर समान working-directory व्यवहार की गारंटी नहीं है। |
+| **स्थानीय सेटिंग** | Qt `QSettings` टैब, प्रविष्टियाँ, दृश्य और विंडो की स्थिति उत्पाद के settings namespace में सहेजता है। | स्टोरेज बैकएंड Qt और OS देते हैं; atomic-write या security-descriptor की कोई गारंटी नहीं दी जाती। |
+| **प्रोफ़ाइल एक्सपोर्ट** | `softwarecenter-profile-v1.json` में प्रोफ़ाइल मेटाडेटा, टैब, दृश्य और `label`, `path`, `kind` तथा वैकल्पिक `notes` वाली प्रविष्टियाँ होती हैं। | पथ, लेबल और नोट स्थानीय जानकारी उजागर कर सकते हैं; लक्ष्य फ़ाइलें कॉपी नहीं होतीं। |
+| **प्रोफ़ाइल इम्पोर्ट** | इम्पोर्टर प्रारूप/संस्करण जाँचता है, प्रविष्टियों को सामान्यीकृत करता है और पुष्टि माँगता है। | इम्पोर्ट की पुष्टि करने पर मौजूदा प्रोफ़ाइल बदल जाती है; प्रोफ़ाइल मर्ज नहीं होती और डेटा-हानि न होने की कोई सामान्य गारंटी नहीं है। |
+| **उत्पाद पहचान** | SoftwareCenter और LaunchBoards एक ही implementation साझा करते हैं, लेकिन इनके settings namespace, single-instance endpoint और Store पहचान अलग हैं। | इससे दोनों उत्पाद अलग रहते हैं; SoftwareCenter के भीतर उपयोगकर्ता-चयन योग्य प्रोफ़ाइलें नहीं मिलतीं। |
+| **नेटवर्क सीमा** | जाँचे गए आयोजक स्रोत में अकाउंट, टेलीमेट्री या क्लाउड-सिंक implementation नहीं है। | यह HTTP(S) URL खोलता और बाहरी लक्ष्य लॉन्च करता है, जो नेटवर्क इस्तेमाल कर सकते हैं; पूरे ऐप या लॉन्च की गई प्रक्रिया के लिए शून्य नेटवर्क-निकास की गारंटी नहीं है। |
+| **सत्यापन का दायरा** | रिपॉज़िटरी परीक्षण नामित अनुबंध जाँचते हैं; CI, Ubuntu पर Python संस्करण मैट्रिक्स और अलग Linux/macOS smoke jobs चलाता है। | ये जाँचें हर होस्ट का व्यवहार स्थापित नहीं करतीं, WACK/Store सबमिशन प्रमाणित नहीं करतीं और सार्वभौमिक सुरक्षा गुण सिद्ध नहीं करतीं। |
+
+
+## सिस्टम आर्किटेक्चर
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## लाइफ़साइकल क्रम प्रवाह
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## मुख्य क्षमताएँ और साक्ष्य की सीमाएँ
+
+| विषय | जाँचे गए कोड/परीक्षणों में साक्ष्य | दायरा और सीमा |
+|---|---|---|
+| **आयोजक का नेटवर्क व्यवहार** | ऐप कोड में अकाउंट, टेलीमेट्री या क्लाउड-सिंक क्लाइंट नहीं है; `open_file` HTTP(S) URL Qt या प्लेटफ़ॉर्म ब्राउज़र को सौंपता है। | स्रोत का निरीक्षण करना SoftwareCenter, ब्राउज़र या लॉन्च की गई प्रक्रियाओं के रनटाइम नेटवर्क-निकास की जाँच नहीं करता। |
+| **लॉन्च संदर्भ** | फ़ाइल और URL लॉन्च प्लेटफ़ॉर्म API को सौंपे जाते हैं; Windows लॉन्च कोड उपलब्ध होने पर लक्ष्य working directory माँगता है। | समीक्षा किए गए कोड और परीक्षण process security descriptor सत्यापित नहीं करते और child-process विशेषाधिकार लागू नहीं करते। |
+| **प्रविष्टि हटाना** | UI सूची और सहेजी गई प्रोफ़ाइल स्थिति से प्रविष्टियाँ हटाता है, पर संदर्भित फ़ाइलें नहीं मिटाता। | इससे यह नहीं पता चलता कि कोई बाहरी प्रोग्राम खोले गए लक्ष्यों के साथ क्या करता है। |
+| **प्लेटफ़ॉर्म समाधान** | Windows में `.lnk` लक्ष्य COM से खोजा जाता है और PowerShell fallback भी है; Linux `.desktop` का `Exec` डेटा पार्स करके चलाया जाता है। | ये handler लक्ष्य के व्यवहार को sandbox नहीं करते; लॉन्च से configured command या बाहरी प्रोग्राम चल सकते हैं। |
+| **QSettings स्थायित्व** | `save_settings` Qt `QSettings` के ज़रिए टैब, प्रविष्टि, दृश्य, विंडो आयाम और भाषा मान लिखता है। | कोड atomic transaction या crash-proof लेखन का दावा नहीं करता। |
+| **प्रोफ़ाइल डेटा** | `softwarecenter-profile-v1.json` में प्रोफ़ाइल फ़ील्ड और `label`, `path`, `kind` तथा वैकल्पिक `notes` वाली प्रविष्टियाँ होती हैं; पुष्टि के बाद इम्पोर्ट मौजूदा प्रोफ़ाइल बदल देता है। | मान स्थानीय जानकारी उजागर कर सकते हैं; परीक्षण fixtures और round trip जाँचते हैं, मनमाने secrets की सफ़ाई नहीं। देखें `tests/test_export_contract.py`। |
+| **संबंधित उत्पादों का पृथक्करण** | `scripts/verify_product_boundaries.py` और उत्पाद-सीमा परीक्षण SoftwareCenter तथा LaunchBoards के अलग settings namespace और single-instance endpoint जाँचते हैं। | यह उत्पादों का पृथक्करण है, multi-user या per-project प्रोफ़ाइल नहीं। देखें `PRODUCT_BOUNDARIES.md` और `tests/test_product_boundaries.py`। |
+| **CI और रिलीज़ का दायरा** | CI में Ubuntu पर Python संस्करण regression matrix और अलग Linux/macOS smoke jobs हैं। | इसका अर्थ Windows-host CI, WACK प्रमाणन, Store प्रकाशन या सार्वभौमिक रनटाइम सुरक्षा नहीं है। देखें `CI_CONTRACT.md`। |
+
+
+## सहयोगी इकोसिस्टम और संबंधित उत्पाद
+
+SoftwareCenter व्यापक **file-bricks** डेस्कटॉप टूल संग्रह और छत्र **open-bricks** ओपन-सोर्स पहल का हिस्सा है:
+
+| प्रोजेक्ट | इकोसिस्टम | मुख्य काम | एकीकरण / पूरक उपयोग |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | दस्तावेज़ और मीडिया निरीक्षण | फ़ाइल छँटाई और फॉरेंसिक दस्तावेज़ प्रोफ़ाइलिंग के लिए सहयोगी ऐप |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | बहु-टैब फ़ाइल-सिस्टम एक्सप्लोरर | SoftwareCenter शॉर्टकट से जुड़ी फ़ाइलों का पूरक दो-पैनल प्रबंधन |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | क्लाउड लॉक खोलना और मरम्मत | शॉर्टकट द्वारा संदर्भित अटके हुए sync placeholder और OneDrive फ़ाइलें खोलता है |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | Markdown और दस्तावेज़ ज्ञान-आधार | शोध कार्यप्रवाहों के लिए स्थानीय दस्तावेज़-सार आयोजक |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | फ़ॉर्म बनाना और टेम्पलेटिंग | SoftwareCenter टाइल से लॉन्च किया जा सकने वाला डेस्कटॉप दस्तावेज़ जनरेटर |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | PDF पासवर्ड और अनलॉक टूल | मूल फ़ाइल बदले बिना PDF खोलने वाली स्थानीय यूटिलिटी |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | ऑटोमेशन स्टार्टअप गेट | डेस्कटॉप वर्कस्टेशन एनवायरनमेंट को अचानक शुरू होने वाले कामों से बचाता है |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | AST स्रोत-कोड विश्लेषक | Python डेस्कटॉप टूल और मॉड्यूल का स्थिर विश्लेषण |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | एजेंट संचार पुल | बिना अतिरिक्त निर्भरताओं के संदेश और परिवहन adapters |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | डेस्कटॉप ओपन-सोर्स छत्र-संगठन | मानक, शासन और पैकेजिंग का साझा ढाँचा |
+
+
+## खोज संदर्भ
+
+SoftwareCenter को **local-first PySide6 app launcher** या **desktop shortcut organizer** के रूप में ढूँढ़ना सबसे आसान है। यह Windows Start menu, डेस्कटॉप शॉर्टकट फ़ोल्डरों और पूर्ण सॉफ़्टवेयर इन्वेंटरी प्रणालियों के बीच आता है: यह आपके कंप्यूटर पर पहले से मौजूद प्रोग्राम लॉन्च करता है, शॉर्टकट को टैब में समूहित करता है और पोर्टेबल प्रोफ़ाइल एक्सपोर्ट/इम्पोर्ट करता है।
+
+उपयोगी खोज वाक्यांश:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+यह Microsoft Configuration Manager Software Center, ऐप स्टोर, पैकेज मैनेजर या रिमोट डिप्लॉयमेंट पोर्टल नहीं है।
+
+
+## आवश्यकताएँ
+
+- Python 3.10+
+- PySide6
+
+
+## इंस्टॉलेशन
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## चलाएँ
+
+```bash
+python SoftwareCenter.py
+```
+
+Windows पर आप `START.bat` या [Releases](https://github.com/file-bricks/SoftwareCenter/releases) से उपलब्ध पहले से बने `SoftwareCenter.exe` का भी उपयोग कर सकते हैं।
+
+
+## उपयोग
+
+| क्रिया | निर्देश |
+|--------|-------------|
+| प्रोग्राम जोड़ें | फ़ाइलें, फ़ोल्डर, शॉर्टकट, macOS पर `.app` बंडल या Linux पर `.desktop` लॉन्चर विंडो में ड्रैग करें; `.exe` फ़ाइल या फ़ोल्डर को इंगित करने वाली Windows `.lnk` फ़ाइलें मूल लक्ष्य में resolve होती हैं |
+| टैब व्यवस्थित करें | Toolbar > "New Tab", नाम बदलने के लिए डबल-क्लिक करें |
+| दृश्य बदलें | Toolbar > Tiles / List |
+| प्रोग्राम लॉन्च करें | डबल-क्लिक या राइट-क्लिक > Open/Start |
+| प्रविष्टियाँ हटाएँ | राइट-क्लिक > Delete (इससे केवल शॉर्टकट हटता है) |
+| प्रोफ़ाइल एक्सपोर्ट करें | `File > Export Profile` या toolbar की कार्रवाई |
+| प्रोफ़ाइल इम्पोर्ट करें | `File > Import Profile` या toolbar की कार्रवाई; मौजूदा प्रोफ़ाइल बदल देता है |
+
+
+## एक्ज़ीक्यूटेबल बनाएँ
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+EXE `dist/SoftwareCenter.exe` में बनेगा। Windows पर `build_exe.bat` इसे स्थानीय उपयोग के लिए प्रोजेक्ट रूट में भी कॉपी करता है।
+
+
+## गुणवत्ता जाँच
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+होस्टेड workflow और वैकल्पिक web सुविधा की स्पष्ट सीमा [CI_CONTRACT.md](CI_CONTRACT.md) में दी गई है।
+
+GitHub Actions ये smoke जाँचें चलाता है। macOS smoke में `macos-latest` पर `.app` इम्पोर्ट, `open` से लॉन्च, QSettings स्थायित्व और प्रोफ़ाइल एक्सपोर्ट जाँचे जाते हैं; Linux smoke में `ubuntu-latest` पर `.desktop` इम्पोर्ट, `Exec`/`xdg-open` से लॉन्च, QSettings स्थायित्व और प्रोफ़ाइल एक्सपोर्ट जाँचे जाते हैं। Build artifacts और स्थानीय task/test फ़ाइलें ignore की जाती हैं और उन्हें commit नहीं करना चाहिए।
+
+Windows Store मार्ग के लिए `python scripts/run_windows_wack.py --dry-run` स्थानीय MSIX/AppCert पथ जाँचता है और दोहराई जा सकने वाली WACK कमांड दिखाता है। वास्तविक प्रमाणन, सबमिशन से पहले, नए हस्ताक्षरित MSIX के लिए elevated PowerShell से चलाया जाना चाहिए।
+`python generate_store_screenshots.py` `README/screenshots/store/` में दोहराई जा सकने वाली Store स्क्रीनशॉट शृंखला बनाता है।
+
+
+## बिना GUI के लॉन्चर कैटलॉग का रखरखाव
+
+वैकल्पिक कैटलॉग समायोजक `scripts/softwarecenter_sync.py` में Plan-D runtime code के रूप में दिया गया है। सिंक किए गए कैटलॉग और registry फ़ाइलें स्पष्ट CLI inputs हैं; `--apply` दिए बिना कमांड केवल पढ़ती है। pinned-runtime scheduler payload, apply gates, native readback और rollback प्रक्रिया [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md) में दी गई है।
+
+
+## आदान-प्रदान प्रारूप
+
+प्रोफ़ाइल को `softwarecenter-profile-v1.json` के रूप में एक्सपोर्ट करके बाद में फिर इम्पोर्ट किया जा सकता है। इस प्रारूप में प्रोफ़ाइल मेटाडेटा, टैब, दृश्य मोड और `label`, `path`, `kind` तथा वैकल्पिक `notes` वाली प्रविष्टियाँ होती हैं। ऐप संदर्भित स्थानीय फ़ाइलों की कॉपी नहीं करता, लेकिन पथ, लेबल और नोट में संवेदनशील जानकारी हो सकती है; यह प्रारूप secrets हटाने की सीमा नहीं है। पुष्टि के बाद इम्पोर्ट मौजूदा प्रोफ़ाइल बदल देता है। गुम पथ संदर्भ के रूप में दिखाई देते रहते हैं। अधिक जानकारी के लिए [EXPORTFORMAT.md](EXPORTFORMAT.md) देखें।
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) SoftwareCenter का संबंधित उत्पाद है: इसका codebase समान है, पर ब्रांड और पहचान अलग हैं; यह सामान्य शॉर्टकट लॉन्चर के बजाय बदल सकने वाले workspace बोर्डों पर केंद्रित है। यह इसी रिपॉज़िटरी और रिलीज़ पाइपलाइन को साझा करता है — अलग LaunchBoards source tree बनाए रखने की ज़रूरत नहीं है।
+
+
+## संबंधित उत्पादों की सीमा
+
+LaunchBoards implementation साझा करता है, लेकिन उसका QSettings namespace, single-instance endpoint, आइकन, executable, Store पहचान और release path अलग हैं। दोहराए जा सकने वाले static checks, अलग-थलग parallel-process जाँचें और artifact जाँचें [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md) में दर्ज हैं।
+
+
+## Windows Store संसाधन
+
+Windows Store ट्रैक में अब मौजूदा desktop UI के लिए दोहराई जा सकने वाला screenshot generator है। चार बनाए गए Store screenshots और `summary.json` के साथ `README/screenshots/store/` अपडेट करने के लिए `python generate_store_screenshots.py` चलाएँ।
+
+
+## तकनीकी स्टैक
+
+| घटक | तकनीक |
+|-----------|-----------|
+| भाषा | Python 3.10+ |
+| GUI framework | PySide6 (Qt for Python) |
+| स्टोरेज | QSettings (Windows Registry / INI) |
+| कोड आकार | मौजूदा रिपॉज़िटरी फ़ाइलें देखें; पंक्तियों की कोई निश्चित संख्या का दावा नहीं |
+
+
+## सुरक्षा नीति
+
+रिपॉज़िटरी की [SECURITY.md](SECURITY.md) समर्थित संस्करणों, सुरक्षा कमज़ोरियों की रिपोर्टिंग के चैनलों, घोषित 48-घंटे की प्रारंभिक प्रतिक्रिया अवधि और 5 कार्यदिवस की प्रारंभिक मूल्यांकन अवधि का वर्णन करती है। इन नीति-वक्तव्यों को रनटाइम सत्यापन नहीं समझना चाहिए।
+
+
+## तृतीय-पक्ष लाइसेंस और शासन
+
+रिपॉज़िटरी का MIT लाइसेंस प्रोजेक्ट स्रोत कोड पर लागू होता है। तृतीय-पक्ष निर्भरताओं की अपनी शर्तें हैं; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) घटकों का मेटाडेटा दर्ज करता है, लेकिन यह व्यापक permissive-license या package-compliance की गारंटी नहीं है।
+
+- **श्रेय:** [NOTICE](NOTICE) (Lukas Geiger और file-bricks / open-bricks संगठनों के कॉपीराइट का उल्लेख)।
+- **PySide6 और shiboken6:** सूची में LGPL-3.0-only शर्तें दर्ज हैं; [LGPL-3.0 पाठ](https://www.gnu.org/licenses/lgpl-3.0.html) और [घटक मेटाडेटा](THIRD_PARTY_LICENSES.md) देखें। प्रोजेक्ट का MIT लाइसेंस इन निर्भरताओं पर समग्र रूप से लागू नहीं होता।
+- **Python Standard Library:** [PSF-2.0](https://docs.python.org/3/license.html)। इस लाइसेंस का अर्थ यह नहीं कि आयोजक या उसके लॉन्च किए गए प्रोग्राम ऑफ़लाइन चलते हैं।
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) build tooling का लाइसेंस है; पैक किए गए build के लिए सामान्य छूट मानने के बजाय upstream लाइसेंस और वितरण नोटिस जाँचें।
+- **सत्यापन सीमा:** परीक्षण नामित कोड और दस्तावेज़ अनुबंध जाँचते हैं; वे सार्वभौमिक रनटाइम गारंटी स्थापित नहीं करते।
+
+
+## लाइसेंस
+
+[MIT](LICENSE)
+
+**नोट:** MIT इस रिपॉज़िटरी के प्रोजेक्ट स्रोत कोड का लाइसेंस है। ऐप [PySide6](https://doc.qt.io/qtforpython-6/) का उपयोग करता है, जिसकी निर्भरता-लाइसेंस शर्तें अलग हैं; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) देखें।
+
+---
+
+
+## दायित्व
+
+यह ओपन-सोर्स परियोजना बिना किसी पारिश्रमिक के उपलब्ध कराई गई है। दायित्व केवल जानबूझकर किए गए कृत्य और गंभीर लापरवाही (§ 521 जर्मन नागरिक संहिता) तक सीमित है। अपने जोखिम पर उपयोग करें। कोई वारंटी, रखरखाव की गारंटी या किसी विशिष्ट उद्देश्य के लिए उपयुक्तता निहित नहीं है।
diff --git a/README_ja.md b/README_ja.md
new file mode 100644
index 0000000..146c102
--- /dev/null
+++ b/README_ja.md
@@ -0,0 +1,351 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+> 本ページは日本語ドキュメントの翻訳です。アプリのUIでは、ドイツ語、英語、スペイン語、簡体字中国語、日本語、ロシア語の6つの実行時言語を引き続き利用できます。ドキュメントの言語とアプリのUI言語は別です。
+
+タブによる分類でソフトウェアのショートカットを管理する、軽量なクロスプラットフォーム対応デスクトップ整理ツールです。
+
+> [!NOTE]
+> **LLM / AI連携と機械可読インデックス:** SoftwareCenter は [`llms.txt`](llms.txt) に構造化された機械可読メタデータを用意し、バージョン管理された JSON(`softwarecenter-profile-v1.json`)によるプロファイル移行をサポートします。
+
+
+
+## クイックナビゲーション
+
+- [クイックリファレンス](#quick-reference)
+- [機能](#features)
+- [対象ユーザーと見つけやすさ](#target-personas--discoverability)
+- [SoftwareCenter の機能と境界](#comparative-matrix-vs-alternatives)
+- [システム構成](#system-architecture)
+- [ライフサイクルのシーケンス図](#lifecycle-sequence-flow)
+- [主要機能と根拠の範囲](#core-capabilities--safety-invariants)
+- [関連エコシステムと姉妹製品](#sibling-ecosystem--sister-products)
+- [検索・発見の背景](#discovery-context)
+- [必要環境](#requirements)
+- [インストール](#installation)
+- [起動](#run)
+- [使い方](#usage)
+- [実行ファイルのビルド](#build-executable)
+- [品質チェック](#quality-checks)
+- [ヘッドレスランチャーカタログの管理](#headless-launcher-catalog-care)
+- [交換形式](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [姉妹製品の境界](#sister-product-boundary)
+- [Windows Store アセット](#windows-store-assets)
+- [技術スタック](#tech-stack)
+- [セキュリティ方針](#security-policy)
+- [サードパーティライセンスとガバナンス](#third-party-licenses--governance)
+- [ライセンス](#license)
+- [責任範囲](#liability)
+
+
+## クイックリファレンス
+
+| 項目 | 詳細 |
+|---|---|
+| **技術スタック** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **ライセンス** | プロジェクトのソースコードは MIT。PySide6 などの依存関係には別の条件が適用されます([THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) を参照) |
+| **交換形式** | `softwarecenter-profile-v1.json`([EXPORTFORMAT.md](EXPORTFORMAT.md) を参照) |
+| **最終確認** | 2026-09-23(ローカル:完全な pytest スイート、各プラットフォームのスモークテスト、compileall、Ruff、依存関係監査、ファイルマネージャーのコンテキストメニュー統合、NOTICE の帰属表示、CI ライフサイクルの強化。WACK は引き続き dry-run のみ) |
+
+
+## 機能
+
+- **タブによる整理** - プログラム、ドキュメント、フォルダーを、名前変更や移動ができるボードにまとめます
+- **ドラッグ&ドロップと汎用オーガナイザー** - アプリ、スクリプト、ドキュメント、フォルダー、ショートカットをボードに直接ドロップできます。ファイルシステム上に独立した整理レイヤーを提供します
+- **空のボードでのガイド** - 空のボードに、対応するドロップ対象を示す分かりやすいプレースホルダーを表示します
+- **2種類の表示モード** - タイル(大きなアイコン)とリスト
+- **自動保存** - タブ、内容、ウィンドウ位置を保存します
+- **コンテキストメニュー** - 右クリックで開く、または削除できます
+- **クロスプラットフォーム** - Windows、macOS、Linux に対応
+- **ネイティブアイコン** - システムアプリケーションのアイコンを自動表示します
+- **Windows ショートカットの解決** - `.lnk` ファイルが `.exe` またはフォルダーのターゲットを指す場合、元のターゲットを保存します
+- **macOS アプリバンドル** - `.app` アプリケーションをオーガナイザーに直接ドラッグ&ドロップできます
+- **Linux デスクトップランチャー** - `.desktop` エントリーにアプリ名を表示し、デスクトップコマンドで起動します
+- **プロファイルのエクスポート/インポート** - 移行とバックアップに使えるバージョン管理済み `softwarecenter-profile-v1.json` 形式
+- **複数選択** - 複数のエントリーを一度に削除できます
+- **ローカル中心の運用** - オーガナイザーのコードにはアカウント、テレメトリー、クラウド同期機能がありません。HTTP(S) URL と起動したプログラムはプラットフォーム経由で開かれ、ネットワークを利用する場合があります
+
+
+## 対象ユーザーと見つけやすさ
+
+SoftwareCenter は、4種類のユーザーが抱える具体的なワークフロー上のボトルネックに対応するよう設計されています。
+
+| ペルソナ | 主なプロフィールと責務 | 主な課題 | SoftwareCenter の解決策 |
+|---|---|---|---|
+| **ペルソナ1:デスクトップのパワーユーザーと整理担当者** | 日常的に多数のツール、ワークスペースフォルダー、ユーティリティを使うパワーユーザー。 | Windows デスクトップの散らかり、スタートメニュー検索の遅延、独自の分類を保持できないこと。 | タブ式ボード、ドラッグ&ドロップによるファイル整理、カスタムメモ、すばやい切り替え。 |
+| **ペルソナ2:個人開発者と DevOps エンジニア** | ツールチェーン、CLI ラッパー、ポータブルアプリ、仮想環境を管理する開発者。 | 開発ツールが一般向けのスタートメニューに混在すること、メモリーを消費する重いランチャーデーモン。 | SoftwareCenter と LaunchBoards は別のアプリ識別情報を持ちます。Windows でファイルを起動する際は、対応していれば対象フォルダーを作業ディレクトリとして指定します。プロジェクト専用の実行環境を提供するものではなく、動作は OS と対象アプリに依存します。 |
+| **ペルソナ3:複数PCのワークステーション利用者** | 複数のワークステーション間でプロファイルを手動で移行するユーザー。 | 絶対パスが別の端末では解決できない場合があります。ラベルや任意のメモには個人情報が含まれることがあります。 | バージョン管理された `softwarecenter-profile-v1.json` のエクスポート/インポートを利用できます。共有前にパスとメモを確認してください。インポートは確認後に現在のプロファイルを置き換えます。参照先のファイルはコピーされません。 |
+| **ペルソナ4:プライバシーを重視するユーザー** | オーガナイザーの設定がローカルに保存され、アプリにアカウントやテレメトリー機能が組み込まれていないことを望む人。 | 保存したパスやメモからローカル情報が漏れることがあります。開いた URL や起動したプログラムがネットワーク通信を行う場合があります。 | 確認したオーガナイザーのコードにはアカウント、テレメトリー、クラウド同期の機能がありません。ただし、機密性、起動したプロセスの通信がゼロであること、対象プログラムの権限動作は保証しません。 |
+
+### 検索意図の強いフレーズ
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## SoftwareCenter の機能と境界
+
+| 能力 | 実装されている動作 | 境界 |
+|---|---|---|
+| **タブによる整理** | パスのエントリーを名前付きタブにまとめ、タイル表示またはリスト表示にできます。 | タブは参照先を整理するもので、プロジェクト別の実行環境ではありません。 |
+| **ローカルパスと URL** | ドラッグ&ドロップで、対応するローカルパスと HTTP(S) URL を登録できます。 | エントリーは対象を参照するだけで、オーガナイザーが内容をコピーすることはありません。 |
+| **プラットフォームごとの対象処理** | Windows の `.lnk` は既存の `.exe` またはフォルダーの対象を解決します。macOS のアプリバンドルは `open` で開き、Linux の `.desktop` エントリーは名前、アイコン、`Exec` を解析します。 | 解決と起動の方法は OS ごとに異なります。Linux の `Exec` はコマンドとして起動され、スクリプト用サンドボックスではありません。 |
+| **作業ディレクトリ** | Windows でファイルを起動する際は、対応していれば `_startfile_in_dir` を使って対象ファイルのあるフォルダーを作業ディレクトリに指定します。 | フォールバックでは作業ディレクトリが明示されない場合があります。親プロセスの CWD や、全 OS に共通する作業ディレクトリは保証しません。 |
+| **ローカル設定** | Qt の `QSettings` は、製品ごとの設定名前空間にタブ、エントリー、表示モード、ウィンドウ状態を保存します。 | 保存先は Qt と OS が提供します。アトミック書き込みやセキュリティ記述子は保証していません。 |
+| **プロファイルのエクスポート** | `softwarecenter-profile-v1.json` にプロファイルのメタデータ、タブ、表示モード、`label`、`path`、`kind`、任意の `notes` を持つエントリーを記録します。 | パス、ラベル、メモからローカル情報が漏れることがあります。参照先のファイルはコピーしません。 |
+| **プロファイルのインポート** | インポーターは形式とバージョンを確認し、エントリーを正規化して、置き換え前に確認を求めます。 | 確認してインポートすると現在のプロファイルが置き換わります。マージではなく、一般的なデータ損失防止も保証しません。 |
+| **製品識別情報** | SoftwareCenter と LaunchBoards は実装を共有しますが、設定名前空間、シングルインスタンスのエンドポイント、Store 識別情報は別です。 | これは2つの製品を分ける仕組みです。SoftwareCenter 内でユーザー別プロファイルを選ぶ機能ではありません。 |
+| **ネットワークの境界** | 確認したオーガナイザーのソースには、アカウント、テレメトリー、クラウド同期の実装はありません。 | HTTP(S) URL を開き、外部の対象を起動するため、それらがネットワークを利用する場合があります。アプリ全体や起動プロセスの通信がゼロであることは保証しません。 |
+| **検証範囲** | リポジトリのテストは明示された契約を確認します。CI は Ubuntu 上で Python バージョンのマトリクスを実行し、Linux と macOS のスモークテストも別に実行します。 | これらの確認は、すべてのホスト上での動作、WACK/Store の認証、普遍的なセキュリティ特性を証明するものではありません。 |
+
+
+## システム構成
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## ライフサイクルのシーケンス図
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## 主要機能と根拠の範囲
+
+| 項目 | 確認したコード/テスト上の根拠 | 範囲と限界 |
+|---|---|---|
+| **オーガナイザーのネットワーク動作** | アプリのコードにはアカウント、テレメトリー、クラウド同期クライアントがありません。`open_file` は HTTP(S) URL を Qt またはプラットフォームのブラウザーに渡します。 | ソースの確認は、SoftwareCenter、ブラウザー、起動したプロセスの実行時通信を測定するものではありません。 |
+| **起動時のコンテキスト** | ファイルや URL の起動はプラットフォーム API に委ねられます。Windows の起動コードは、利用できる場合に対象のフォルダーを作業ディレクトリとして指定します。 | 確認したコードとテストは、プロセスのセキュリティ記述子を検証せず、子プロセスの権限も強制しません。 |
+| **エントリーの削除** | UI は参照先のファイルを削除せずに、一覧と保存されたプロファイル状態からエントリーを取り除きます。 | 外部プログラムが開いたり変更したりする対象の動作までは示しません。 |
+| **プラットフォームごとの解決** | Windows の `.lnk` は COM で検索し、PowerShell によるフォールバックがあります。Linux の `.desktop` の `Exec` データは解析後に起動されます。 | これらの処理は対象の動作を隔離しません。設定されたコマンドや外部プログラムが実行される場合があります。 |
+| **QSettings による保存** | `save_settings` はタブ、エントリー、表示モード、ウィンドウ位置、言語の値を Qt の `QSettings` に書き込みます。 | コードはアトミックなトランザクションや、クラッシュ時にも壊れない書き込みを保証していません。 |
+| **プロファイルのデータ** | `softwarecenter-profile-v1.json` にはプロファイルの項目と、`label`、`path`、`kind`、任意の `notes` を含むエントリーが記録されます。インポートは確認後に現在のプロファイルを置き換えます。 | 値からローカル情報が漏れることがあります。テストはフィクスチャと往復処理を確認しますが、任意の秘密情報を検出・除去するものではありません。`tests/test_export_contract.py` を参照してください。 |
+| **姉妹製品の分離** | `scripts/verify_product_boundaries.py` と製品境界テストは、SoftwareCenter と LaunchBoards の設定名前空間およびシングルインスタンスのエンドポイントが分かれていることを確認します。 | これは製品の分離であり、複数ユーザー用やプロジェクト別のプロファイルではありません。`PRODUCT_BOUNDARIES.md` と `tests/test_product_boundaries.py` を参照してください。 |
+| **CI とリリースの範囲** | CI は Ubuntu 上で Python バージョンの回帰テストマトリクスを実行し、Linux と macOS のスモークテストも別に実行します。 | Windows ホストでの CI、WACK 認証、Store への公開、実行時の普遍的な安全性を意味するものではありません。`CI_CONTRACT.md` を参照してください。 |
+
+
+## 関連エコシステムと姉妹製品
+
+SoftwareCenter は、より広い **file-bricks** デスクトップツール群と、傘下の **open-bricks** オープンソース活動の一部です。
+
+| プロジェクト | エコシステム | 主な用途 | 連携/相乗効果 |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | ドキュメントとメディアの検査 | ファイル整理とフォレンジック文書プロファイリングのためのコンパニオンアプリ |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | マルチタブのファイルシステムエクスプローラー | SoftwareCenter のショートカット管理を補完する2ペインのファイル管理 |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | クラウドロックの解除と修復 | ショートカットが参照する、フリーズした同期プレースホルダーや OneDrive ファイルのロックを解除 |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | Markdown とドキュメントのナレッジベース | 研究ワークフロー向けのローカルファーストなドキュメント整理ツール |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | フォーム作成とテンプレート化 | SoftwareCenter のタイルから起動できるデスクトップ文書生成ツール |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | PDF のパスワード解除とロック解除 | 非破壊で動作するローカルPDFロック解除ツール |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | 自動化の起動ゲート | デスクトップワークステーション環境で起動の急増を防ぎます |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | AST ソースコードアナライザー | Python デスクトップツールとモジュールの静的解析 |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | エージェント間通信ブリッジ | 依存関係ゼロのメッセージングとトランスポートアダプター |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | オープンソースデスクトップ製品の傘下組織 | 標準、ガバナンス、パッケージングを統括 |
+
+
+## 検索・発見の背景
+
+SoftwareCenter は、**ローカルファーストの PySide6 アプリランチャー**または**デスクトップショートカット整理ツール**として見つけやすい製品です。Windows のスタートメニュー、デスクトップのショートカットフォルダー、完全なソフトウェア資産管理システムの中間に位置します。コンピューター上にあるものを起動し、ショートカットをタブにまとめ、持ち運び可能なプロファイルをインポート/エクスポートします。
+
+役立つ検索フレーズ:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+これは Microsoft Configuration Manager Software Center、アプリストア、パッケージマネージャー、リモート展開ポータルではありません。
+
+
+## 必要環境
+
+- Python 3.10+
+- PySide6
+
+
+## インストール
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## 起動
+
+```bash
+python SoftwareCenter.py
+```
+
+Windows では `START.bat`、または [リリース](https://github.com/file-bricks/SoftwareCenter/releases) から入手できるビルド済み `SoftwareCenter.exe` も利用できます。
+
+
+## 使い方
+
+| 操作 | 手順 |
+|--------|-------------|
+| プログラムを追加 | ファイル、フォルダー、ショートカット、macOS の `.app` バンドル、Linux の `.desktop` ランチャーをウィンドウにドラッグします。Windows の `.lnk` ファイルが `.exe` ファイルやフォルダーを指す場合、元のターゲットに解決されます |
+| タブを整理 | ツールバー > "New Tab"(新しいタブ)を選択し、タブをダブルクリックして名前を変更 |
+| 表示を切り替え | ツールバー > Tiles / List |
+| プログラムを起動 | ダブルクリック、または右クリック > Open/Start |
+| エントリーを削除 | 右クリック > Delete(ショートカットのみ削除) |
+| プロファイルをエクスポート | `File > Export Profile`、またはツールバーのアクション |
+| プロファイルをインポート | `File > Import Profile`、またはツールバーのアクション。確認後、現在のプロファイルを置き換えます |
+
+
+## 実行ファイルのビルド
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+EXE は `dist/SoftwareCenter.exe` に生成されます。Windows では `build_exe.bat` により、ローカル利用向けにプロジェクトルートへもコピーされます。
+
+
+## 品質チェック
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+ホスト型ワークフローと、明示されたオプションのWeb境界については [CI_CONTRACT.md](CI_CONTRACT.md) を参照してください。
+
+GitHub Actions はこれらのスモークチェックを実行します。macOS のスモークテストでは、`.app` のインポート、`open` による起動、QSettings の保存、プロファイルのエクスポートを `macos-latest` 上で検証します。Linux のスモークテストでは、`.desktop` のインポート、`Exec`/`xdg-open` による起動、QSettings の保存、プロファイルのエクスポートを `ubuntu-latest` 上で確認します。ビルド成果物とローカルのタスク/テストファイルは無視対象であり、コミットすべきではありません。
+
+Windows Store 向けでは、`python scripts/run_windows_wack.py --dry-run` により、ローカルの MSIX/AppCert パスを確認し、再現可能な WACK コマンドを表示します。実際の認証試験は、提出前に新しい署名済み MSIX を使い、昇格した PowerShell から実行してください。
+`python generate_store_screenshots.py` を実行すると、再現可能な Store スクリーンショット一式が `README/screenshots/store/` に生成されます。
+
+
+## ヘッドレスランチャーカタログの管理
+
+オプションのカタログ照合ツールは Plan-D のランタイムコードとして `scripts/softwarecenter_sync.py` に用意されています。同期するカタログとレジストリのファイルは CLI の明示的な引数で指定します。`--apply` を指定しない場合、コマンドは読み取り専用です。ピン留めされたランタイムスケジューラーのペイロード、適用ゲート、ネイティブの読み戻し、ロールバック手順は [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md) に記載されています。
+
+
+## 交換形式
+
+プロファイルは `softwarecenter-profile-v1.json` としてエクスポートし、後でインポートできます。この形式にはプロファイルのメタデータ、タブ、表示モード、`label`、`path`、`kind`、任意の `notes` を持つエントリーが含まれます。アプリは参照先のローカルファイルをコピーしませんが、パス、ラベル、メモには機微な情報が含まれることがあります。この形式は秘密情報を検出・除去する仕組みではありません。確認後、インポートは現在のプロファイルを置き換えます。見つからないパスも参照として表示されたままです。詳細は [EXPORTFORMAT.md](EXPORTFORMAT.md) を参照してください。
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) は SoftwareCenter の姉妹製品です。同じコードベースを共有し、切り替え可能なワークスペースボードを中心に据えた独自のブランドとアイデンティティを持ちます。リポジトリとリリースパイプラインは共有しており、別個に保守する LaunchBoards のソースツリーはありません。
+
+
+## 姉妹製品の境界
+
+LaunchBoards は実装を共有しますが、QSettings 名前空間、シングルインスタンスのエンドポイント、アイコン、実行ファイル、Store ID、リリースパスは独立しています。再現可能な静的検査、分離された並列プロセス検査、成果物検査は [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md) に記載されています。
+
+
+## Windows Store アセット
+
+Windows Store の工程には、現在のデスクトップ UI 向けの再現可能なスクリーンショット生成ツールが含まれています。`python generate_store_screenshots.py` を実行すると、4枚の Store スクリーンショットと `summary.json` が `README/screenshots/store/` に生成されます。
+
+
+## 技術スタック
+
+| コンポーネント | 技術 |
+|-----------|-----------|
+| 言語 | Python 3.10+ |
+| GUI フレームワーク | PySide6 (Qt for Python) |
+| ストレージ | QSettings(Windows レジストリ/INI) |
+| コード規模 | 現在のリポジトリ内のファイルを参照してください。固定の行数は示していません |
+
+
+## セキュリティ方針
+
+リポジトリの [SECURITY.md](SECURITY.md) には、サポート対象のバージョン、脆弱性の報告窓口、初回応答を48時間以内に行うという方針、5営業日以内のトリアージが記載されています。方針の記述は実行時の検証結果を意味しません。
+
+
+## サードパーティライセンスとガバナンス
+
+リポジトリの MIT ライセンスはプロジェクトのソースコードに適用されます。サードパーティ依存関係には個別の条件があります。[THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) にはコンポーネントのメタデータが記載されていますが、すべての依存関係がパーミッシブライセンスであることや、あらゆるパッケージ形式の適合性を保証するものではありません。
+
+- **帰属表示:** [NOTICE](NOTICE)(オープンソースの著作権表示に関する正本。Lukas Geiger、file-bricks、open-bricks 傘下組織を記載)。
+- **PySide6 と shiboken6:** インベントリには LGPL-3.0-only の条件が記録されています。[LGPL-3.0 の本文](https://www.gnu.org/licenses/lgpl-3.0.html) と[コンポーネントのメタデータ](THIRD_PARTY_LICENSES.md)を参照してください。プロジェクトの MIT ライセンスがこれらの依存関係に一律に適用されるわけではありません。
+- **Python 標準ライブラリ:** [PSF-2.0](https://docs.python.org/3/license.html)。このライセンスは、オーガナイザーや起動したプログラムがオフラインで動作することを意味しません。
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) はビルドツールのライセンスです。パッケージ化したビルドについて一律の例外を推定せず、配布時の通知と上流のライセンスを確認してください。
+- **検証の範囲:** テストは名前を挙げたコードと文書上の契約を確認します。実行時の普遍的な保証を確立するものではありません。
+
+
+## ライセンス
+
+[MIT](LICENSE)
+
+**注:** MIT はリポジトリのプロジェクトソースに適用されるライセンスです。アプリケーションで使用する [PySide6](https://doc.qt.io/qtforpython-6/) には別の依存関係ライセンス条件があります。詳細は [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) を参照してください。
+
+---
+
+
+## 責任範囲
+
+本プロジェクトは無償で提供されるオープンソースの寄付です。責任は故意および重大な過失に限定されます(ドイツ民法 § 521)。ご自身の責任で使用してください。保証はなく、保守の保証も、特定目的への適合性も前提としていません。
diff --git a/README_pt.md b/README_pt.md
new file mode 100644
index 0000000..341177a
--- /dev/null
+++ b/README_pt.md
@@ -0,0 +1,349 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+Um organizador de desktop leve e multiplataforma para gerenciar atalhos de programas em abas.
+
+> [!NOTE]
+> **Integração com LLM / IA e índice legível por máquina:** o SoftwareCenter fornece metadados estruturados e legíveis por máquina em [`llms.txt`](llms.txt) e oferece suporte à migração de perfis por meio de JSON versionado (`softwarecenter-profile-v1.json`).
+
+
+
+## Navegação rápida
+
+- [Referência rápida](#quick-reference)
+- [Recursos](#features)
+- [Perfis de usuário e facilidade de descoberta](#target-personas--discoverability)
+- [Recursos e limites do SoftwareCenter](#comparative-matrix-vs-alternatives)
+- [Arquitetura do sistema](#system-architecture)
+- [Fluxo da sequência do ciclo de vida](#lifecycle-sequence-flow)
+- [Recursos principais e limites das evidências](#core-capabilities--safety-invariants)
+- [Ecossistema relacionado e produtos irmãos](#sibling-ecosystem--sister-products)
+- [Contexto de descoberta](#discovery-context)
+- [Requisitos](#requirements)
+- [Instalação](#installation)
+- [Executar](#run)
+- [Uso](#usage)
+- [Compilar o executável](#build-executable)
+- [Verificações de qualidade](#quality-checks)
+- [Manutenção do catálogo de inicializadores sem interface gráfica](#headless-launcher-catalog-care)
+- [Formato de intercâmbio](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [Limites entre produtos irmãos](#sister-product-boundary)
+- [Recursos da Windows Store](#windows-store-assets)
+- [Tecnologias](#tech-stack)
+- [Política de segurança](#security-policy)
+- [Licenças de terceiros e governança](#third-party-licenses--governance)
+- [Licença](#license)
+- [Responsabilidade](#liability)
+
+
+## Referência rápida
+
+| Atributo | Detalhes |
+|---|---|
+| **Tecnologias** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **Licença** | Código do projeto: MIT; PySide6 e as demais dependências têm termos próprios (consulte [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **Formato de intercâmbio** | `softwarecenter-profile-v1.json` (consulte [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **Última verificação** | 2026-09-23 (local: suíte completa do pytest, testes rápidos das plataformas, compileall, Ruff, auditoria de dependências, integração com o menu de contexto do gerenciador de arquivos, atribuição do NOTICE e reforço do ciclo de vida do CI; o WACK permanece somente em dry-run) |
+
+
+## Recursos
+
+- **Organização por abas** — agrupe programas, documentos e pastas em quadros que podem ser renomeados e movidos
+- **Arrastar e soltar e organização universal** — solte aplicativos, scripts, documentos, pastas ou atalhos diretamente nos quadros; isso cria uma camada de organização independente sobre o sistema de arquivos
+- **Orientação para quadros vazios** — um espaço reservado nos quadros vazios informa quais tipos de itens podem ser soltos ali
+- **Dois modos de visualização** — blocos com ícones grandes e lista
+- **Salvamento automático** — abas, conteúdo e posição da janela são persistidos
+- **Menu de contexto** — clique com o botão direito para abrir ou remover um item
+- **Multiplataforma** — Windows, macOS e Linux
+- **Ícones nativos** — exibição automática dos ícones dos aplicativos do sistema
+- **Resolução de atalhos do Windows** — arquivos `.lnk` soltos que apontam para `.exe` ou pastas são armazenados como o destino original
+- **Pacotes de aplicativos do macOS** — arraste e solte aplicativos `.app` diretamente no organizador
+- **Inicializadores Linux para desktop** — entradas `.desktop` exibem o nome do aplicativo e o iniciam pelo comando definido no arquivo desktop
+- **Exportação/importação de perfis** — formato versionado `softwarecenter-profile-v1.json` para migrações e backups
+- **Seleção múltipla** — remova várias entradas de uma vez
+- **Operação que prioriza o uso local** — o código do organizador não inclui recursos de conta, telemetria ou sincronização na nuvem; URLs HTTP(S) e programas iniciados são abertos pela plataforma e podem usar a rede
+
+
+## Perfis de usuário e facilidade de descoberta
+
+O SoftwareCenter foi projetado para resolver gargalos específicos de fluxo de trabalho de quatro perfis distintos de usuários:
+
+| Perfil | Atividades e responsabilidades principais | Principal dificuldade | Solução do SoftwareCenter |
+|---|---|---|---|
+| **Perfil 1: usuários avançados e organizadores de desktop** | Usam diariamente dezenas de ferramentas, pastas de trabalho e utilitários. | Desktop do Windows desorganizado, busca lenta no menu Iniciar e falta de agrupamentos personalizados persistentes. | Quadros rápidos com abas, organização de arquivos por arrastar e soltar, notas personalizadas e alternância imediata. |
+| **Perfil 2: desenvolvedores independentes e engenheiros de DevOps** | Gerenciam cadeias de ferramentas, wrappers de CLI, aplicativos portáteis e ambientes virtuais. | Mistura de ferramentas de desenvolvimento nos menus Iniciar voltados ao público geral; serviços de inicialização pesados que consomem memória. | SoftwareCenter e LaunchBoards têm identidades de aplicativo separadas; ao iniciar arquivos no Windows, o diretório de destino é solicitado como diretório de trabalho quando há suporte. Este não é um gerenciador de ambientes de projeto, e o comportamento do destino depende do sistema operacional e do aplicativo. |
+| **Perfil 3: usuários de várias estações de trabalho** | Movem perfis manualmente entre diferentes estações de trabalho. | Caminhos absolutos podem não funcionar em outro dispositivo; rótulos e notas opcionais podem conter informações privadas. | Exportação/importação versionada por `softwarecenter-profile-v1.json`; verifique caminhos e notas antes de compartilhar. Após a confirmação, a importação substitui o perfil atual; os arquivos de destino não são copiados. |
+| **Perfil 4: usuários atentos à privacidade** | Preferem configurações do organizador armazenadas localmente e a ausência de recursos de conta ou telemetria no aplicativo. | Caminhos e notas salvos podem revelar detalhes locais; abrir uma URL ou iniciar um programa pode gerar comunicação pela rede. | O código do organizador inspecionado não inclui recursos de conta, telemetria ou sincronização na nuvem. Isso não garante confidencialidade, ausência de tráfego de saída dos processos iniciados nem o comportamento de privilégios dos programas de destino. |
+
+### Expressões de busca com intenção clara
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## Recursos e limites do SoftwareCenter
+
+| Recurso | Comportamento implementado | Limite |
+|---|---|---|
+| **Organização por abas** | Agrupa entradas de caminhos em abas nomeadas, com visualização em blocos e em lista. | As abas organizam referências; não são ambientes de execução por projeto. |
+| **Caminhos locais e URLs** | O recurso de arrastar e soltar pode registrar caminhos locais e URLs HTTP(S) compatíveis. | As entradas apontam para destinos; o organizador não copia o conteúdo deles. |
+| **Tratamento de destinos por plataforma** | No Windows, a resolução de `.lnk` aceita destinos `.exe` ou pastas existentes; pacotes de aplicativos do macOS usam `open`; entradas `.desktop` do Linux são analisadas para obter nome, ícone e `Exec`. | A resolução e a inicialização dependem do sistema operacional. No Linux, `Exec` é iniciado como comando; isso não é uma sandbox para scripts. |
+| **Diretório de trabalho** | No Windows, a inicialização de arquivos usa `_startfile_in_dir` para solicitar que a pasta que contém o arquivo de destino seja o diretório de trabalho, quando há suporte. | Alternativas de inicialização podem não definir um diretório de trabalho explícito; não há garantia para o CWD do processo pai nem para um comportamento uniforme entre plataformas. |
+| **Configurações locais** | Qt `QSettings` armazena abas, entradas, visualizações e estado da janela no namespace de configurações do produto. | Qt e o sistema operacional fornecem o backend de armazenamento; não há garantia de gravação atômica ou de descritor de segurança. |
+| **Exportação de perfil** | `softwarecenter-profile-v1.json` contém metadados do perfil, abas, visualizações e entradas com `label`, `path`, `kind` e `notes` opcional. | Caminhos, rótulos e notas podem revelar detalhes locais; os arquivos de destino não são copiados. |
+| **Importação de perfil** | O importador verifica o formato e a versão, normaliza as entradas e solicita confirmação. | Ao confirmar, a importação substitui o perfil atual; não mescla perfis nem oferece uma garantia geral contra perda de dados. |
+| **Identidade dos produtos** | SoftwareCenter e LaunchBoards compartilham a implementação, mas têm namespaces de configurações, endpoints de instância única e identidades da Store separados. | Isso separa dois produtos; não oferece perfis selecionáveis pelo usuário dentro do SoftwareCenter. |
+| **Limite de rede** | O código-fonte inspecionado do organizador não contém implementação de conta, telemetria ou sincronização na nuvem. | Ele abre URLs HTTP(S) e inicia destinos externos, que podem usar a rede; não há garantia de ausência total de tráfego de rede do aplicativo ou dos processos iniciados. |
+| **Escopo da verificação** | Os testes do repositório cobrem contratos definidos; o CI executa uma matriz de versões do Python no Ubuntu e testes rápidos separados para Linux/macOS. | Essas verificações não estabelecem o comportamento em todos os hosts, não certificam o WACK ou o envio à Store e não provam propriedades universais de segurança. |
+
+
+## Arquitetura do sistema
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## Sequência do ciclo de vida
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## Recursos principais e limites das evidências
+
+| Tema | Evidências no código e nos testes inspecionados | Escopo e limite |
+|---|---|---|
+| **Comportamento de rede do organizador** | O código do aplicativo não inclui cliente de conta, telemetria ou sincronização na nuvem; `open_file` encaminha URLs HTTP(S) ao Qt ou ao navegador da plataforma. | A inspeção do código-fonte não é um teste de tráfego de rede em tempo de execução do SoftwareCenter, do navegador ou dos processos iniciados. |
+| **Contexto de inicialização** | A abertura de arquivos e URLs é delegada às APIs da plataforma; no Windows, o código solicita o diretório de trabalho do destino quando disponível. | O código e os testes revisados não verificam descritores de segurança de processos nem impõem privilégios aos processos filhos. |
+| **Remoção de entradas** | A interface remove entradas da lista e do estado de perfil salvo sem excluir os arquivos referenciados. | Isso não descreve o que um programa externo faz com os destinos que abre ou modifica. |
+| **Resolução por plataforma** | A busca por destinos `.lnk` no Windows usa COM, com alternativa em PowerShell; os dados `Exec` de `.desktop` no Linux são analisados e depois iniciados. | Esses manipuladores não isolam o comportamento do destino; a inicialização pode executar comandos configurados ou programas externos. |
+| **Persistência de QSettings** | `save_settings` grava valores de abas, entradas, visualizações, geometria e idioma por meio do Qt `QSettings`. | O código não afirma que há transação atômica ou gravação resistente a falhas. |
+| **Dados do perfil** | `softwarecenter-profile-v1.json` inclui campos do perfil e entradas `label`, `path`, `kind` e `notes` opcional; após confirmação, a importação substitui o perfil atual. | Os valores podem revelar detalhes locais; os testes cobrem fixtures e um ciclo de exportação e importação, não a remoção de segredos em geral. Consulte `tests/test_export_contract.py`. |
+| **Separação dos produtos relacionados** | `scripts/verify_product_boundaries.py` e os testes de limites entre produtos verificam namespaces de configuração e endpoints de instância única separados para SoftwareCenter e LaunchBoards. | Isso é separação entre produtos, não perfis multiusuário ou por projeto. Consulte `PRODUCT_BOUNDARIES.md` e `tests/test_product_boundaries.py`. |
+| **Escopo do CI e da publicação** | O CI inclui a matriz de regressão de versões do Python no Ubuntu e testes rápidos separados para Linux/macOS. | Isso não implica CI em host Windows, certificação WACK, publicação na Store ou segurança universal em tempo de execução. Consulte `CI_CONTRACT.md`. |
+
+
+## Ecossistema relacionado e produtos irmãos
+
+O SoftwareCenter faz parte da coleção mais ampla de ferramentas de desktop **file-bricks** e da iniciativa guarda-chuva de código aberto **open-bricks**:
+
+| Projeto | Ecossistema | Foco principal | Integração / complementaridade |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | Inspeção de documentos e mídia | Aplicativo complementar para organização de arquivos e análise forense de documentos |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | Explorador de arquivos com várias abas | Gerenciamento complementar de arquivos em dois painéis para atalhos do SoftwareCenter |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | Desbloqueio e reparo de bloqueios na nuvem | Desbloqueia marcadores de sincronização travados e arquivos do OneDrive referenciados por atalhos |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | Base de conhecimento em Markdown e documentos | Organizador local de resumos de documentos para fluxos de pesquisa |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | Criação de formulários e modelos | Gerador de documentos de desktop que pode ser iniciado pelos blocos do SoftwareCenter |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | Ferramenta para senhas e desbloqueio de PDF | Utilitário local para desbloquear PDF sem alterar o arquivo original |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | Barreira de inicialização para automação | Protege ambientes de estações de trabalho contra picos de inicialização |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | Analisador de código-fonte AST | Análise estática de ferramentas e módulos de desktop em Python |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | Ponte de comunicação entre agentes | Adaptadores de mensagens e transporte sem dependências |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | Iniciativa guarda-chuva de código aberto para desktop | Estrutura comum para padrões, governança e empacotamento |
+
+
+## Contexto de descoberta
+
+É mais fácil encontrar o SoftwareCenter como **local-first PySide6 app launcher** ou **desktop shortcut organizer**. Ele fica entre o menu Iniciar do Windows, as pastas de atalhos da área de trabalho e sistemas completos de inventário de software: inicia o que já está no computador, agrupa atalhos em abas e exporta/importa perfis portáteis.
+
+Expressões de busca úteis:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+Ele não é o Microsoft Configuration Manager Software Center, uma loja de aplicativos, um gerenciador de pacotes nem um portal de implantação remota.
+
+
+## Requisitos
+
+- Python 3.10+
+- PySide6
+
+
+## Instalação
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## Executar
+
+```bash
+python SoftwareCenter.py
+```
+
+No Windows, você também pode usar `START.bat` ou o `SoftwareCenter.exe` pré-compilado disponível em [Releases](https://github.com/file-bricks/SoftwareCenter/releases).
+
+
+## Uso
+
+| Ação | Instruções |
+|--------|-------------|
+| Adicionar programas | Arraste arquivos, pastas, atalhos, pacotes `.app` no macOS ou inicializadores `.desktop` no Linux para a janela; arquivos Windows `.lnk` que apontam para arquivos `.exe` ou pastas são resolvidos para o destino original |
+| Organizar abas | Toolbar > "New Tab"; dê um clique duplo para renomear |
+| Alternar visualização | Toolbar > Tiles / List |
+| Iniciar programas | Clique duplo ou clique com o botão direito > Open/Start |
+| Remover entradas | Clique com o botão direito > Delete (remove somente o atalho) |
+| Exportar perfil | `File > Export Profile` ou a ação da barra de ferramentas |
+| Importar perfil | `File > Import Profile` ou a ação da barra de ferramentas; substitui o perfil atual |
+
+
+## Compilar o executável
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+O EXE ficará em `dist/SoftwareCenter.exe`. No Windows, `build_exe.bat` também o copia para a raiz do projeto para uso local.
+
+
+## Verificações de qualidade
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+O fluxo hospedado e o limite explícito da parte opcional para web estão documentados em [CI_CONTRACT.md](CI_CONTRACT.md).
+
+O GitHub Actions executa esses testes rápidos. O teste do macOS valida a importação de `.app`, a inicialização por `open`, a persistência do QSettings e a exportação de perfil em `macos-latest`; o teste do Linux cobre a importação de `.desktop`, a inicialização por `Exec`/`xdg-open`, a persistência do QSettings e a exportação de perfil em `ubuntu-latest`. Artefatos de compilação e arquivos locais de tarefa/teste são ignorados e não devem ser commitados.
+
+Para o fluxo da Windows Store, `python scripts/run_windows_wack.py --dry-run` verifica os caminhos locais de MSIX/AppCert e exibe o comando WACK reproduzível. A certificação real deve ser executada em um PowerShell elevado, com um MSIX recém-assinado, antes do envio.
+`python generate_store_screenshots.py` cria o conjunto reproduzível de capturas de tela da Store em `README/screenshots/store/`.
+
+
+## Manutenção do catálogo de inicializadores sem interface gráfica
+
+O reconciliador opcional do catálogo é fornecido como código de execução Plan-D em `scripts/softwarecenter_sync.py`. Os arquivos sincronizados do catálogo e do registro são entradas explícitas de CLI; o comando é somente leitura, a menos que `--apply` seja informado. A carga do agendador com runtime fixado, as barreiras de aplicação, a leitura de confirmação nativa e o procedimento de reversão estão documentados em [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md).
+
+
+## Formato de intercâmbio
+
+Os perfis podem ser exportados como `softwarecenter-profile-v1.json` e importados novamente depois. O formato contém metadados do perfil, abas, modos de visualização e entradas com `label`, `path`, `kind` e `notes` opcional. O aplicativo não copia os arquivos locais referenciados, mas caminhos, rótulos e notas podem conter informações sensíveis; o formato não garante a remoção de segredos. Após a confirmação, a importação substitui o perfil atual. Caminhos inexistentes continuam visíveis como referências. Consulte [EXPORTFORMAT.md](EXPORTFORMAT.md) para mais detalhes.
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) é o produto irmão do SoftwareCenter: usa a mesma base de código, tem marca e identidade próprias e se concentra em quadros de espaços de trabalho alternáveis, em vez de ser um inicializador geral de atalhos. Compartilha este repositório e o fluxo de publicação — não há uma árvore de código separada do LaunchBoards para manter.
+
+
+## Limites entre produtos irmãos
+
+O LaunchBoards compartilha a implementação, mas tem namespace próprio do QSettings, endpoint de instância única, ícone, executável, identidade da Store e caminho de publicação. As verificações estáticas reproduzíveis, os testes isolados de processos paralelos e as verificações de artefatos estão documentados em [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md).
+
+
+## Recursos da Windows Store
+
+O fluxo da Windows Store agora inclui um gerador reproduzível de capturas de tela da interface atual do desktop. Execute `python generate_store_screenshots.py` para atualizar `README/screenshots/store/` com quatro capturas de tela geradas para a Store e `summary.json`.
+
+
+## Tecnologias
+
+| Componente | Tecnologia |
+|-----------|-----------|
+| Linguagem | Python 3.10+ |
+| Framework de interface gráfica | PySide6 (Qt for Python) |
+| Armazenamento | QSettings (Windows Registry / INI) |
+| Tamanho do código | Consulte os arquivos atuais do repositório; não há alegação de número fixo de linhas |
+
+
+## Política de segurança
+
+O [SECURITY.md](SECURITY.md) do repositório descreve versões compatíveis, canais para relatar vulnerabilidades, um prazo declarado de 48 horas para a resposta inicial e um prazo de triagem de 5 dias úteis. Essas declarações de política não devem ser interpretadas como verificação em tempo de execução.
+
+
+## Licenças de terceiros e governança
+
+A licença MIT do repositório se aplica ao código-fonte do projeto. As dependências de terceiros têm termos próprios; [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) registra os metadados dos componentes, mas não é uma garantia geral de licenças permissivas nem de conformidade do pacote.
+
+- **Atribuição:** [NOTICE](NOTICE) (atribuição de direitos autorais a Lukas Geiger e às organizações file-bricks / open-bricks).
+- **PySide6 e shiboken6:** o inventário registra os termos LGPL-3.0-only; consulte o [texto da LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html) e os [metadados dos componentes](THIRD_PARTY_LICENSES.md). A licença MIT do projeto não se aplica de forma geral a essas dependências.
+- **Biblioteca padrão do Python:** [PSF-2.0](https://docs.python.org/3/license.html). Essa licença não significa que o organizador ou os programas que ele inicia funcionem offline.
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) é uma ferramenta de compilação; para uma versão empacotada, revise a licença upstream e os avisos de distribuição em vez de presumir uma isenção geral.
+- **Limite da verificação:** os testes cobrem contratos definidos de código e documentação; não estabelecem garantias universais em tempo de execução.
+
+
+## Licença
+
+[MIT](LICENSE)
+
+**Observação:** MIT é a licença do código-fonte do projeto no repositório. O aplicativo usa [PySide6](https://doc.qt.io/qtforpython-6/), que tem termos de licenciamento próprios para dependências; consulte [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+
+---
+
+
+## Responsabilidade
+
+Este projeto é uma contribuição de código aberto sem remuneração. A responsabilidade limita-se ao dolo e à negligência grave (§ 521 do Código Civil Alemão). Use por sua conta e risco. Não se presume qualquer garantia, compromisso de manutenção ou adequação a uma finalidade específica.
diff --git a/README_ru.md b/README_ru.md
new file mode 100644
index 0000000..407abee
--- /dev/null
+++ b/README_ru.md
@@ -0,0 +1,349 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+Лёгкий кроссплатформенный настольный органайзер для управления программными ярлыками с помощью категорий на вкладках.
+
+> [!NOTE]
+> **Интеграция ИИ / LLM и машиночитаемый индекс:** SoftwareCenter предоставляет структурированные машиночитаемые метаданные в [`llms.txt`](llms.txt) и поддерживает перенос профилей в версионируемом JSON-формате (`softwarecenter-profile-v1.json`).
+
+
+
+## Быстрая навигация
+
+- [Краткая справка](#quick-reference)
+- [Возможности](#features)
+- [Целевые пользователи и обнаруживаемость](#target-personas--discoverability)
+- [Возможности и границы SoftwareCenter](#comparative-matrix-vs-alternatives)
+- [Архитектура системы](#system-architecture)
+- [Последовательность жизненного цикла](#lifecycle-sequence-flow)
+- [Основные возможности и границы подтверждённых данных](#core-capabilities--safety-invariants)
+- [Экосистема и родственные продукты](#sibling-ecosystem--sister-products)
+- [Контекст поиска](#discovery-context)
+- [Требования](#requirements)
+- [Установка](#installation)
+- [Запуск](#run)
+- [Использование](#usage)
+- [Сборка исполняемого файла](#build-executable)
+- [Проверки качества](#quality-checks)
+- [Обслуживание каталога запусков без графического интерфейса](#headless-launcher-catalog-care)
+- [Формат обмена](#exchange-format)
+- [LaunchBoards](#launchboards)
+- [Граница родственных продуктов](#sister-product-boundary)
+- [Материалы для Windows Store](#windows-store-assets)
+- [Технологический стек](#tech-stack)
+- [Политика безопасности](#security-policy)
+- [Лицензии сторонних компонентов и управление](#third-party-licenses--governance)
+- [Лицензия](#license)
+- [Ответственность](#liability)
+
+
+## Краткая справка
+
+| Параметр | Значение |
+|---|---|
+| **Технологический стек** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **Лицензия** | Код проекта: MIT; для PySide6 и других зависимостей действуют отдельные условия (см. [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **Формат обмена** | `softwarecenter-profile-v1.json` (см. [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **Последняя проверка** | 2026-09-23 (локально: полный набор pytest, платформенные smoke-проверки, compileall, Ruff, аудит зависимостей, интеграция контекстного меню файлового менеджера, атрибуция NOTICE, усиление жизненного цикла CI; WACK по-прежнему только dry-run) |
+
+
+## Возможности
+
+- **Организация по вкладкам** — объединяйте программы, документы и папки в переименовываемые и перемещаемые доски
+- **Drag & Drop и универсальная организация** — перетаскивайте приложения, скрипты, документы, папки и ярлыки на доски; это отдельный слой организации поверх файловой системы
+- **Подсказки для пустых досок** — на пустой доске отображаются понятные подсказки с поддерживаемыми типами перетаскиваемых объектов
+- **Два режима отображения** — плитки с крупными значками и список
+- **Автосохранение** — сохраняются вкладки, их содержимое и положение окна
+- **Контекстное меню** — открытие или удаление элемента правой кнопкой мыши
+- **Кроссплатформенность** — Windows, macOS и Linux
+- **Системные значки** — автоматическое отображение значков системных приложений
+- **Разрешение ярлыков Windows** — для добавленных файлов `.lnk`, ведущих к `.exe` или папкам, сохраняется исходный целевой объект
+- **Пакеты приложений macOS** — перетаскивайте `.app` прямо в органайзер
+- **Средства запуска Linux** — для записей `.desktop` отображается имя приложения, а запуск выполняется указанной в записи командой
+- **Экспорт и импорт профилей** — версионируемый формат `softwarecenter-profile-v1.json` для переноса и резервного копирования
+- **Множественный выбор** — удаляйте несколько записей одновременно
+- **Локальная работа** — в коде органайзера нет функций учётной записи, телеметрии или облачной синхронизации; URL HTTP(S) и запущенные программы открываются средствами платформы и могут использовать сеть
+
+
+## Целевые пользователи и обнаруживаемость
+
+SoftwareCenter помогает устранять конкретные затруднения в рабочих процессах четырёх групп пользователей:
+
+| Группа пользователей | Задачи и профиль | Основная проблема | Решение SoftwareCenter |
+|---|---|---|---|
+| **Группа 1: опытные пользователи настольных систем и кураторы** | Ежедневно работают с десятками инструментов, папок рабочих пространств и утилит. | Загромождённый рабочий стол Windows, медленный поиск в меню «Пуск», отсутствие постоянной пользовательской группировки. | Быстрые доски с вкладками, организация файлов перетаскиванием, пользовательские заметки и мгновенное переключение. |
+| **Группа 2: индивидуальные разработчики и DevOps-инженеры** | Управляют цепочками инструментов, CLI-обёртками, переносимыми приложениями и виртуальными окружениями. | Смешение инструментов разработки с обычными программами в меню «Пуск»; тяжёлые службы запуска, расходующие память. | У SoftwareCenter и LaunchBoards разные идентификаторы приложений; при запуске файлов в Windows программа по возможности запрашивает каталог целевого файла как рабочий. Это не менеджер окружений проекта; поведение зависит от ОС и целевого приложения. |
+| **Группа 3: пользователи нескольких рабочих станций** | Вручную переносят профили между рабочими станциями. | Абсолютные пути могут не разрешиться на другом устройстве; метки и необязательные заметки могут содержать личные сведения. | Версионируемый экспорт и импорт `softwarecenter-profile-v1.json`; перед передачей проверьте пути и заметки. После подтверждения импорт заменяет текущий профиль; целевые файлы не копируются. |
+| **Группа 4: пользователи, заботящиеся о конфиденциальности** | Предпочитают локально сохранённые настройки органайзера и отсутствие встроенной учётной записи или телеметрии. | Сохранённые пути и заметки могут раскрывать локальные сведения; открытие URL или запуск программы может приводить к сетевому обмену. | В изученном коде органайзера нет функций учётной записи, телеметрии или облачной синхронизации. Не гарантируются конфиденциальность данных, отсутствие исходящего трафика у запущенных процессов или поведение целевых программ с точки зрения привилегий. |
+
+### Поисковые запросы с выраженным намерением
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## Возможности и границы SoftwareCenter
+
+| Возможность | Реализованное поведение | Граница |
+|---|---|---|
+| **Организация по вкладкам** | Группирует записи с путями в именованные вкладки с плиточным или списочным представлением. | Вкладки упорядочивают ссылки на объекты, но сами не являются средами выполнения для проектов. |
+| **Локальные пути и URL** | Перетаскивание позволяет добавлять поддерживаемые локальные пути и URL HTTP(S). | Записи ссылаются на целевые объекты; органайзер не копирует их содержимое. |
+| **Обработка целевых объектов платформ** | Windows-разрешение `.lnk` принимает существующие цели `.exe` или папки; пакеты приложений macOS открываются через `open`; из записей Linux `.desktop` извлекаются имя, значок и `Exec`. | Разрешение ссылок и запуск зависят от ОС. В Linux `Exec` запускается как команда; это не песочница для скриптов. |
+| **Рабочий каталог** | При запуске файла в Windows `_startfile_in_dir` запрашивает каталог целевого файла как рабочий, если это поддерживается. | Резервные способы запуска могут не задавать рабочий каталог явно; не гарантируется ни CWD родительского процесса, ни единое для всех платформ поведение рабочего каталога. |
+| **Локальные настройки** | Qt `QSettings` хранит вкладки, записи, режимы просмотра и состояние окна в пространстве имён настроек продукта. | Хранилище предоставляют Qt и ОС; атомарная запись и наличие дескрипторов безопасности не гарантируются. |
+| **Экспорт профиля** | `softwarecenter-profile-v1.json` содержит метаданные профиля, вкладки, режимы просмотра и записи с `label`, `path`, `kind` и необязательным `notes`. | Пути, метки и заметки могут раскрывать локальные сведения; целевые файлы не копируются. |
+| **Импорт профиля** | Импортёр проверяет формат и версию, нормализует записи и запрашивает подтверждение. | После подтверждения импорт заменяет текущий профиль; это не слияние и не гарантирует отсутствия потери данных в общем случае. |
+| **Идентичность продуктов** | SoftwareCenter и LaunchBoards используют общую реализацию, но у них разные пространства имён настроек, каналы связи механизма запуска в одном экземпляре и идентификаторы Store. | Это разделяет два продукта, но не предоставляет выбор профиля пользователя внутри SoftwareCenter. |
+| **Сетевые границы** | В изученном исходном коде органайзера нет реализации учётной записи, телеметрии или облачной синхронизации. | Приложение открывает URL HTTP(S) и запускает внешние целевые объекты, которые могут использовать сеть; отсутствие сетевого трафика у всего приложения или запущенных процессов не гарантируется. |
+| **Объём проверок** | Тесты репозитория проверяют явно описанные контракты; CI выполняет матрицу версий Python на Ubuntu и отдельные smoke-проверки Linux/macOS. | Эти проверки не подтверждают работу на каждом хосте, не сертифицируют WACK/публикацию в Store и не доказывают универсальные свойства безопасности. |
+
+
+## Архитектура системы
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+
+## Последовательность жизненного цикла
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (Registry / INI)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## Основные возможности и границы подтверждённых данных
+
+| Тема | Подтверждение в изученном коде и тестах | Область действия и ограничения |
+|---|---|---|
+| **Сетевое поведение органайзера** | В коде приложения нет клиента учётной записи, телеметрии или облачной синхронизации; `open_file` передаёт URL HTTP(S) в Qt или браузер платформы. | Анализ исходного кода не измеряет сетевой трафик во время работы SoftwareCenter, браузера или запущенных процессов. |
+| **Контекст запуска** | Запуск файлов и URL передаётся API платформы; код запуска в Windows задаёт каталог целевого файла как рабочий, если это доступно. | Изученные код и тесты не проверяют дескрипторы безопасности процессов и не устанавливают привилегии дочерних процессов. |
+| **Удаление записей** | Интерфейс удаляет записи из списка и сохранённого состояния профиля, не удаляя файлы, на которые они ссылаются. | Это ничего не говорит о целевых объектах, которые открывает или изменяет внешняя программа. |
+| **Разрешение объектов для платформ** | Поиск цели Windows `.lnk` выполняется через COM с запасным вариантом на PowerShell; данные `Exec` в Linux `.desktop` разбираются, а затем запускаются. | Эти обработчики не изолируют поведение целевых объектов: могут выполняться заданные команды или внешние программы. |
+| **Сохранение через QSettings** | `save_settings` записывает через Qt `QSettings` значения вкладок, записей, представлений, геометрии окна и языка. | Код не обещает атомарную транзакцию или сохранение, устойчивое к сбою. |
+| **Данные профиля** | `softwarecenter-profile-v1.json` содержит поля профиля и записи с `label`, `path`, `kind` и необязательным `notes`; после подтверждения импорт заменяет текущий профиль. | Значения могут раскрывать локальные сведения; тесты проверяют фикстуры и круговой экспорт/импорт, но не произвольное обнаружение и удаление секретов. См. `tests/test_export_contract.py`. |
+| **Разделение родственных продуктов** | `scripts/verify_product_boundaries.py` и тесты границ продуктов проверяют отдельные пространства имён настроек и каналы связи механизма запуска в одном экземпляре для SoftwareCenter и LaunchBoards. | Это разделение продуктов, а не профили для нескольких пользователей или проектов. См. `PRODUCT_BOUNDARIES.md` и `tests/test_product_boundaries.py`. |
+| **Объём CI и выпуска** | CI запускает матрицу регрессионных тестов версий Python на Ubuntu и отдельные smoke-проверки Linux/macOS. | Это не означает наличие CI на хосте Windows, сертификацию WACK, публикацию в Store или универсальную безопасность во время выполнения. См. `CI_CONTRACT.md`. |
+
+
+## Экосистема и родственные продукты
+
+SoftwareCenter входит в более широкую коллекцию настольных инструментов **file-bricks** и объединение open-source-проектов **open-bricks**:
+
+| Проект | Экосистема | Основное назначение | Интеграция / взаимодополнение |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | Проверка документов и медиафайлов | Дополняющее приложение для сортировки файлов и криминалистического анализа документов |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | Проводник файловой системы с несколькими вкладками | Дополняет ярлыки SoftwareCenter двухпанельным управлением файлами |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | Разблокировка и исправление облачных блокировок | Снимает блокировку с зависших синхронизируемых файлов-заполнителей и файлов OneDrive, на которые ссылаются ярлыки |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | База знаний на Markdown и документах | Локальный органайзер дайджестов документов для исследовательских процессов |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | Создание форм и шаблонов | Настольный генератор документов, запускаемый с плиток SoftwareCenter |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | Помощник по паролям и разблокировке PDF | Локальная утилита для разблокировки PDF без изменения исходного файла |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | Шлюз запуска автоматизаций | Защищает настольные рабочие среды от всплесков одновременного запуска |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | Анализатор исходного кода на AST | Статический анализ инструментов и модулей для настольных приложений Python |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | Мост связи между агентами | Адаптеры обмена сообщениями и транспорта без зависимостей |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | Объединение open-source-продуктов для настольных систем | Стандарты, управление проектами и упаковка |
+
+
+## Контекст поиска
+
+SoftwareCenter проще всего найти как **локальный запускатель приложений на PySide6** или **органайзер настольных ярлыков**. Он занимает промежуточное положение между меню «Пуск» Windows, папками с ярлыками на рабочем столе и полноценными системами учёта программ: запускает уже имеющиеся на компьютере программы, группирует ярлыки по вкладкам и экспортирует/импортирует переносимые профили.
+
+Полезные поисковые фразы:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `local-first desktop organizer with profile export`
+
+Это не Microsoft Configuration Manager Software Center, не магазин приложений, не менеджер пакетов и не портал удалённого развёртывания.
+
+
+## Требования
+
+- Python 3.10+
+- PySide6
+
+
+## Установка
+
+```bash
+pip install -r requirements.txt
+```
+
+
+## Запуск
+
+```bash
+python SoftwareCenter.py
+```
+
+В Windows можно также использовать `START.bat` или готовый файл `SoftwareCenter.exe` со страницы [Releases](https://github.com/file-bricks/SoftwareCenter/releases).
+
+
+## Использование
+
+| Действие | Инструкции |
+|--------|-------------|
+| Добавить программы | Перетащите в окно файлы, папки, ярлыки, пакеты `.app` в macOS или средства запуска `.desktop` в Linux; если файл Windows `.lnk` указывает на `.exe` или папку, он разрешается в исходную цель |
+| Упорядочить вкладки | Панель инструментов > "New Tab" («Новая вкладка»), двойной щелчок по вкладке для переименования |
+| Переключить представление | Панель инструментов > Tiles / List |
+| Запустить программу | Двойной щелчок или щелчок правой кнопкой мыши > Open/Start |
+| Удалить записи | Щелчок правой кнопкой мыши > Delete (удаляется только ярлык) |
+| Экспортировать профиль | `File > Export Profile` или соответствующее действие на панели инструментов |
+| Импортировать профиль | `File > Import Profile` или соответствующее действие на панели инструментов; после подтверждения текущий профиль заменяется |
+
+
+## Сборка исполняемого файла
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+EXE появится в `dist/SoftwareCenter.exe`. В Windows скрипт `build_exe.bat` также копирует его в корень проекта для локального использования.
+
+
+## Проверки качества
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+Размещённый workflow и явно обозначенная граница необязательной веб-части описаны в [CI_CONTRACT.md](CI_CONTRACT.md).
+
+GitHub Actions запускает эти smoke-проверки. macOS smoke проверяет импорт `.app`, запуск через `open`, сохранение в QSettings и экспорт профиля на `macos-latest`; Linux smoke проверяет импорт `.desktop`, запуск через `Exec`/`xdg-open`, сохранение в QSettings и экспорт профиля на `ubuntu-latest`. Артефакты сборки и локальные файлы задач/тестов игнорируются и не должны попадать в коммиты.
+
+Для Windows Store команда `python scripts/run_windows_wack.py --dry-run` проверяет локальные пути MSIX/AppCert и выводит воспроизводимую команду WACK. Перед отправкой настоящую сертификационную проверку следует запускать из повышенной PowerShell для свежего подписанного MSIX.
+Команда `python generate_store_screenshots.py` создаёт воспроизводимый набор снимков Store в `README/screenshots/store/`.
+
+
+## Обслуживание каталога запусков без графического интерфейса
+
+Необязательный инструмент сверки каталога включён в код выполнения Plan-D в `scripts/softwarecenter_sync.py`. Файлы синхронизируемого каталога и реестра задаются как явные аргументы CLI; команда работает только на чтение, если не передан `--apply`. Данные планировщика с закреплённой версией среды выполнения, условия применения изменений, чтение результата средствами системы и процедура отката описаны в [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md).
+
+
+## Формат обмена
+
+Профили можно экспортировать в `softwarecenter-profile-v1.json` и позднее импортировать. Формат содержит метаданные профиля, вкладки, режимы просмотра и записи с `label`, `path`, `kind` и необязательным `notes`. Приложение не копирует файлы, на которые есть ссылки, однако пути, метки и заметки могут содержать чувствительные сведения; формат не предназначен для обнаружения и удаления секретов. После подтверждения импорт заменяет текущий профиль. Отсутствующие пути остаются видимыми как ссылки. Подробности см. в [EXPORTFORMAT.md](EXPORTFORMAT.md).
+
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) — родственный продукт SoftwareCenter: он использует ту же кодовую базу, но имеет собственный бренд и идентичность и предназначен для переключения между досками рабочих пространств, а не для общих ярлыков. Репозиторий и конвейер выпуска общие; отдельного дерева исходников LaunchBoards нет.
+
+
+## Граница родственных продуктов
+
+LaunchBoards использует общую реализацию, но имеет собственное пространство имён QSettings, канал связи механизма запуска в одном экземпляре, значок, исполняемый файл, идентификатор Store и путь выпуска. Воспроизводимые статические проверки, проверки изолированных параллельных процессов и проверки артефактов описаны в [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md).
+
+
+## Материалы для Windows Store
+
+Для канала Windows Store предусмотрен воспроизводимый генератор снимков текущего интерфейса настольного приложения. Запустите `python generate_store_screenshots.py`, чтобы обновить четыре сгенерированных снимка Store и `summary.json` в `README/screenshots/store/`.
+
+
+## Технологический стек
+
+| Компонент | Технология |
+|-----------|-----------|
+| Язык | Python 3.10+ |
+| GUI-фреймворк | PySide6 (Qt for Python) |
+| Хранилище | QSettings (реестр Windows / INI) |
+| Размер кода | См. текущие файлы репозитория; фиксированное число строк не заявляется |
+
+
+## Политика безопасности
+
+В репозитории [SECURITY.md](SECURITY.md) описаны поддерживаемые версии, каналы сообщения об уязвимостях, заявленное окно первичного ответа до 48 часов и срок триажа в 5 рабочих дней. Эти положения политики не следует считать проверкой поведения программы во время выполнения.
+
+
+## Лицензии сторонних компонентов и управление
+
+Лицензия MIT в репозитории распространяется на исходный код проекта. У сторонних зависимостей собственные условия; в [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) записаны метаданные компонентов, но этот файл не гарантирует, что все используемые лицензии разрешительные или что конкретный вариант упаковки соответствует лицензионным требованиям.
+
+- **Атрибуция:** [NOTICE](NOTICE) — сведения об авторских правах Lukas Geiger и организаций file-bricks / open-bricks.
+- **PySide6 и shiboken6:** в реестре указаны условия LGPL-3.0-only; см. [текст LGPL-3.0](https://www.gnu.org/licenses/lgpl-3.0.html) и [метаданные компонентов](THIRD_PARTY_LICENSES.md). Лицензия MIT проекта не распространяется автоматически на эти зависимости.
+- **Стандартная библиотека Python:** [PSF-2.0](https://docs.python.org/3/license.html). Эта лицензия не означает, что органайзер или запускаемые им программы работают без сети.
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) — лицензия инструмента сборки; при распространении упакованной сборки проверьте лицензию PyInstaller и уведомления о распространении; не следует предполагать, что исключение распространяется на всё.
+- **Границы проверок:** тесты проверяют названные контракты кода и документации; они не устанавливают универсальные гарантии для поведения во время выполнения.
+
+
+## Лицензия
+
+[MIT](LICENSE)
+
+**Примечание:** MIT — лицензия исходного кода проекта в репозитории. Для используемой приложением [PySide6](https://doc.qt.io/qtforpython-6/) действуют отдельные условия лицензирования зависимости; см. [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md).
+
+---
+
+
+## Ответственность
+
+Проект предоставляется как безвозмездный open-source-проект. Ответственность ограничена умыслом и грубой неосторожностью (§ 521 Гражданского кодекса Германии). Используйте на свой риск. Гарантии, обязательства по сопровождению и пригодности для конкретной цели не предоставляются.
diff --git a/README_zh.md b/README_zh.md
new file mode 100644
index 0000000..d15de17
--- /dev/null
+++ b/README_zh.md
@@ -0,0 +1,330 @@
+
+
+# SoftwareCenter
+
+[](https://www.python.org/)
+[](NOTICE)
+[](https://docs.pytest.org/)
+[](https://github.com/file-bricks/SoftwareCenter)
+[](SECURITY.md)
+[](SECURITY.md)
+[](LICENSE)
+[](https://doc.qt.io/qtforpython-6/)
+[](https://github.com/file-bricks)
+[](https://github.com/open-bricks)
+[](llms.txt)
+
+[English](README.md) · [Deutsch](README_de.md) · [Español](README.es.md) · [简体中文](README_zh.md) · [日本語](README_ja.md) · [Русский](README_ru.md) · [Français](README_fr.md) · [हिन्दी](README_hi.md) · [العربية](README_ar.md) · [বাংলা](README_bn.md) · [Português](README_pt.md)
+
+> 本页是简体中文文档译文。应用界面仍提供德语、英语、西班牙语、简体中文、日语和俄语六种运行时语言;文档语言与界面语言是两个不同范围。
+
+SoftwareCenter 是一款轻量、跨平台的桌面整理工具,可通过标签页分类管理软件快捷方式。
+
+> [!NOTE]
+> **LLM / AI 集成与机器可读索引:** SoftwareCenter 在 [`llms.txt`](llms.txt) 中提供结构化、机器可读的元数据,并通过带版本的 JSON(`softwarecenter-profile-v1.json`)支持配置文件迁移。
+
+
+
+## 快速导航
+
+- [快速参考](#快速参考)
+- [功能](#功能)
+- [目标用户与搜索发现](#目标用户与搜索发现)
+- [SoftwareCenter 的能力与边界](#与替代方案的对比矩阵)
+- [系统架构](#系统架构)
+- [生命周期顺序流程](#生命周期顺序流程)
+- [核心能力与证据边界](#核心能力与安全不变量)
+- [关联生态与姐妹产品](#关联生态与姐妹产品)
+- [搜索发现背景](#搜索发现背景)
+- [系统要求](#系统要求)
+- [安装](#安装)
+- [运行](#运行)
+- [使用](#使用)
+- [构建可执行文件](#构建可执行文件)
+- [质量检查](#质量检查)
+- [无头模式下的启动器目录维护](#无头模式下的启动器目录维护)
+- [交换格式](#交换格式)
+- [LaunchBoards](#launchboards)
+- [姐妹产品边界](#姐妹产品边界)
+- [Windows 应用商店资源](#windows-应用商店资源)
+- [技术栈](#技术栈)
+- [安全策略](#安全策略)
+- [第三方许可证与治理](#第三方许可证与治理)
+- [许可证](#许可证)
+- [责任限制](#责任限制)
+
+## 快速参考
+
+| 属性 | 详情 |
+|---|---|
+| **技术栈** | Python 3.10+ / PySide6 (Qt) / QSettings |
+| **许可证** | 项目源码:MIT;PySide6 和其他依赖有各自的许可条件(见 [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)) |
+| **交换格式** | `softwarecenter-profile-v1.json`(详见 [EXPORTFORMAT.md](EXPORTFORMAT.md)) |
+| **最后检查** | 2026-09-23(本地:完整 pytest 套件、平台 smoke、compileall、Ruff、依赖审计、文件管理器上下文菜单集成、NOTICE 署名和 CI 生命周期加固;WACK 仍仅为 dry-run) |
+
+## 功能
+
+- **标签页组织** - 将程序、文档和文件夹分组到可重命名、可移动的工作区中
+- **拖放与通用整理** - 将任意应用、脚本、文档、文件夹或快捷方式直接拖到工作区;它在文件系统之上提供独立的整理层
+- **空工作区引导** - 在空工作区中显示有帮助的占位提示,说明支持的拖放目标
+- **两种视图模式** - 瓦片(大图标)和列表
+- **自动保存** - 保存标签页、内容和窗口位置
+- **上下文菜单** - 右键即可打开或移除条目
+- **跨平台** - 支持 Windows、macOS 和 Linux
+- **原生图标** - 自动显示系统应用图标
+- **Windows 快捷方式解析** - 拖入指向 `.exe` 或文件夹目标的 `.lnk` 文件时,会将原始目标保存为条目
+- **macOS 应用包** - 可将 `.app` 应用直接拖入整理器
+- **Linux 桌面启动器** - `.desktop` 条目会显示应用名称,并通过其桌面命令启动
+- **配置文件导出/导入** - 使用带版本的 `softwarecenter-profile-v1.json` 格式进行迁移和备份
+- **多选** - 一次删除多个条目
+- **本地优先运行** - 整理器代码未实现账号、遥测或云同步功能;HTTP(S) URL 和启动的程序通过平台打开,可能使用网络
+
+## 目标用户与搜索发现
+
+SoftwareCenter 面向四类具有明确工作流程需求的用户:
+
+| 用户类型 | 主要特点与职责 | 核心痛点 | SoftwareCenter 的解决方式 |
+|---|---|---|---|
+| **用户类型 1:桌面高级用户与整理者** | 每天使用大量工具、工作区文件夹和实用程序的用户。 | Windows 桌面杂乱、开始菜单搜索缓慢、缺少可持续使用的自定义分组。 | 快速的标签式工作区、拖放式文件整理、自定义备注和即时切换。 |
+| **用户类型 2:独立开发者与 DevOps 工程师** | 管理工具链、CLI 包装器、便携式应用和虚拟环境的开发者。 | 开发工具与普通开始菜单混杂;占用内存的启动器后台进程过重。 | SoftwareCenter 与 LaunchBoards 具有彼此独立的产品身份;在 Windows 上,启动文件时会在支持的情况下请求将目标目录设为工作目录。这不是项目环境管理器;实际行为取决于操作系统和目标程序。 |
+| **用户类型 3:多工作站用户** | 在多台工作站之间手动迁移配置文件的用户。 | 绝对路径在另一台设备上可能无效;标签和可选备注可能包含私人信息。 | 使用带版本的 `softwarecenter-profile-v1.json` 导出/导入;分享前检查路径和备注。确认后,导入会替换当前配置文件;不会复制目标文件。 |
+| **用户类型 4:重视隐私的用户** | 希望整理器设置保存在本地、且应用不内置账号或遥测功能的人。 | 保存的路径和备注可能泄露本地信息;打开 URL 或启动程序可能进行网络通信。 | 经审查的整理器代码未实现账号、遥测或云同步功能。它不保证数据保密、启动进程零外连或目标程序的权限行为。 |
+
+### 高意图搜索词
+
+- `SoftwareCenter Python desktop launcher`
+- `PySide6 desktop shortcut manager`
+- `local-first desktop organizer python`
+- `portable shortcut launcher without cloud account`
+- `SoftwareCenter vs LaunchBoards profile switcher`
+- `privacy friendly Windows app launcher with tabs`
+
+
+## SoftwareCenter 的能力与边界
+
+| 能力 | 已实现的行为 | 边界 |
+|---|---|---|
+| **标签页整理** | 将路径条目分组到可命名标签页,并提供平铺和列表视图。 | 标签页整理的是引用;它们不是按项目隔离的运行环境。 |
+| **本地路径与 URL** | 可通过拖放登记受支持的本地路径和 HTTP(S) URL。 | 条目引用目标;整理器不会复制目标内容。 |
+| **平台目标处理** | Windows 的 `.lnk` 解析接受现有 `.exe` 或文件夹目标;macOS 应用包通过 `open` 打开;Linux `.desktop` 条目会读取名称、图标和 `Exec`。 | 解析和启动方式因操作系统而异。Linux 会将 `Exec` 作为命令启动;这不是脚本沙箱。 |
+| **工作目录** | 在 Windows 上,启动文件时会在支持的情况下请求将目标所在目录设为工作目录。 | 回退路径可能不会显式设置工作目录;不保证父进程 CWD 或跨平台工作目录。 |
+| **本地设置** | Qt `QSettings` 在产品设置命名空间中保存标签页、条目、视图和窗口状态。 | 存储后端由 Qt 和操作系统提供;不保证原子写入或进程安全描述符。 |
+| **配置文件导出** | `softwarecenter-profile-v1.json` 包含配置文件元数据、标签页、视图,以及带有 `label`、`path`、`kind` 和可选 `notes` 的条目。 | 路径、标签和备注可能泄露本地信息;不会复制目标文件。 |
+| **配置文件导入** | 导入器会检查格式和版本、规范化条目,并在替换前请求确认。 | 确认后会替换当前配置文件;这不是合并,也不构成一般性的数据不丢失保证。 |
+| **产品身份** | SoftwareCenter 与 LaunchBoards 共用实现,但使用独立的设置命名空间、单实例端点和 Store 身份。 | 这是两个产品之间的隔离,不是 SoftwareCenter 内供用户选择的配置文件。 |
+| **网络边界** | 经审查的整理器代码未实现账号、遥测或云同步功能。 | 打开 HTTP(S) URL 和外部目标可能使用网络;不保证应用或其启动进程零外连。 |
+| **验证范围** | 仓库测试覆盖明确列出的契约;CI 在 Ubuntu 上运行 Python 版本矩阵,并分别运行 Linux/macOS smoke 作业。 | 这不意味着有 Windows runner CI、WACK 认证、Store 发布或普遍运行时安全保证。 |
+
+## 系统架构
+
+```mermaid
+graph TD
+ A["User / Drag & Drop Input"] --> B["PySide6 Application Window (SoftwareCenter.py)"]
+ B --> C["Tab & Board Manager"]
+ B --> D["Tiles & List Views"]
+
+ C --> E["Platform Resolvers"]
+ E --> E1["Windows (.lnk / .exe / Folders)"]
+ E --> E2["macOS (.app Bundles)"]
+ E --> E3["Linux (.desktop Launchers)"]
+
+ C --> F["State Persistence (QSettings; OS-dependent backend)"]
+ C --> G["JSON Profile Importer/Exporter (softwarecenter-profile-v1.json)"]
+
+ B --> H["Windows Store & Build Pipeline"]
+ H --> H1["PyInstaller EXE Build"]
+ H --> H2["WACK dry-run / MSIX preflight (not certification)"]
+ H --> H3["Reproducible Store Screenshot Generator"]
+```
+
+## 生命周期顺序流程
+
+```mermaid
+sequenceDiagram
+ autonumber
+ actor User as Desktop User
+ participant SC as SoftwareCenter UI (PySide6)
+ participant Res as Platform Resolver (.lnk / .app / .desktop)
+ participant Tab as Tab & Board Manager
+ participant Set as QSettings Persistence (OS-dependent backend)
+ participant Exp as Profile Exporter (softwarecenter-profile-v1.json)
+ participant OS as Operating System
+
+ User->>SC: Drag & drop file / shortcut into tab
+ SC->>Res: Resolve path (e.g. .lnk -> original target EXE / folder)
+ Res-->>SC: Resolved path and available system icon
+ SC->>Tab: Check duplicate & register item
+ Tab->>SC: Render item tile / list row
+ Tab->>Set: Write tabs, order & geometry through QSettings
+ Set-->>SC: State saved locally
+ User->>SC: Double-click item or trigger "Export Profile"
+ alt Launch item
+ SC->>OS: Open configured file, application, or URL using platform launch APIs
+ else Export profile
+ SC->>Exp: Serialize profile metadata, tabs, and item fields
+ Exp-->>User: Write softwarecenter-profile-v1.json from the current profile fields
+ end
+```
+
+
+## 核心能力与证据边界
+
+| 主题 | 经审查代码与测试中的证据 | 范围与限制 |
+|---|---|---|
+| **整理器的网络行为** | 经审查的应用代码未实现账号、遥测或云同步客户端;`open_file` 会将 HTTP(S) URL 交给 Qt 或系统浏览器。 | 源码审查无法测量 SoftwareCenter、浏览器或启动进程的运行时网络活动。 |
+| **启动上下文** | 文件和 URL 通过平台 API 打开;在 Windows 上,启动代码会在支持时请求使用目标目录作为工作目录。 | 经审查的代码和测试未验证进程安全描述符,也不会强制子进程权限。 |
+| **移除条目** | UI 会从列表和已保存的配置文件状态中移除条目,但不会删除所引用的文件。 | 这不约束外部程序打开或修改的目标。 |
+| **平台解析** | Windows `.lnk` 目标解析通过 COM 执行,并以 PowerShell 作为回退;Linux `.desktop` 的 `Exec` 会被解析后启动。 | 这些处理程序不会隔离目标行为;它们可能启动配置的命令或外部程序。 |
+| **QSettings 持久化** | `save_settings` 通过 Qt `QSettings` 写入标签页、条目、视图、窗口几何和语言设置。 | 代码没有承诺原子事务或崩溃安全写入。 |
+| **配置文件数据** | `softwarecenter-profile-v1.json` 包含配置文件字段和带有 `label`、`path`、`kind`、可选 `notes` 的条目;确认后导入会替换当前配置文件。 | 字段值可能暴露本地信息;测试覆盖测试样例和往返流程,不能证明应用会自动识别或过滤用户输入中的敏感信息。见 `tests/test_export_contract.py`。 |
+| **姐妹产品隔离** | `scripts/verify_product_boundaries.py` 和产品测试检查 SoftwareCenter 与 LaunchBoards 的设置命名空间和单实例端点是否分离。 | 这是产品隔离,不是用户或项目配置文件。见 `PRODUCT_BOUNDARIES.md` 和 `tests/test_product_boundaries.py`。 |
+| **CI 与发布验证范围** | CI 在 Ubuntu 上运行 Python 版本矩阵,并分别运行 Linux/macOS smoke 作业。 | 这不代表 Windows runner CI、WACK 认证、Store 发布或普遍运行时安全。见 `CI_CONTRACT.md`。 |
+
+## 关联生态与姐妹产品
+
+SoftwareCenter 是更大的 **file-bricks** 桌面工具集合和 **open-bricks** 开源计划的一部分:
+
+| 项目 | 生态 | 主要用途 | 集成 / 协同 |
+|---|---|---|---|
+| [`ProFiler`](https://github.com/file-bricks/ProFiler) | `file-bricks` | 文档与媒体检查 | 配套文件分类与文档取证分析应用 |
+| [`ExplorerPro`](https://github.com/file-bricks/ExplorerPro) | `file-bricks` | 多标签页文件系统浏览器 | 为 SoftwareCenter 快捷方式提供互补的双窗格文件管理 |
+| [`CloudLockFixer`](https://github.com/file-bricks/CloudLockFixer) | `file-bricks` | 云锁解锁与修复 | 解锁快捷方式所指向的冻结同步占位文件和 OneDrive 文件 |
+| [`knowledgedigest`](https://github.com/file-bricks/knowledgedigest) | `file-bricks` | Markdown 与文档知识库 | 用于研究工作流程的本地优先文档摘要整理器 |
+| [`FormularErstellen`](https://github.com/doc-bricks/FormularErstellen) | `doc-bricks` | 表单创建与模板 | 可通过 SoftwareCenter 磁贴启动的桌面文档生成器 |
+| [`USR_PDFunlock`](https://github.com/doc-bricks/USR_PDFunlock) | `doc-bricks` | PDF 密码与解锁工具 | 非破坏性的本地 PDF 解锁实用程序 |
+| [`safe-start-for-codex`](https://github.com/dev-bricks/safe-start-for-codex) | `dev-bricks` | 自动化启动闸门 | 保护桌面工作站环境,避免启动负载突增 |
+| [`MethodenAnalyser`](https://github.com/dev-bricks/MethodenAnalyser) | `dev-bricks` | AST 源码分析器 | 面向 Python 桌面工具和模块的静态分析 |
+| [`connectors`](https://github.com/ellmos-ai/connectors) | `ellmos-ai` | 代理通信桥接器 | 零依赖消息与传输适配器 |
+| [`open-bricks`](https://github.com/open-bricks) | `open-bricks` | 桌面开源计划 | 标准、治理与打包计划 |
+
+## 搜索发现背景
+
+SoftwareCenter 最容易被描述为**本地优先的 PySide6 应用启动器**或**桌面快捷方式整理器**。它介于 Windows 开始菜单、桌面快捷方式文件夹和完整软件资产管理系统之间:它启动本机已有的内容,将快捷方式分组到标签页中,并支持配置文件的导入与导出。
+
+可用的搜索词:
+
+- `SoftwareCenter PySide6 desktop organizer`
+- `local-first app launcher Python PySide6`
+- `desktop shortcut organizer with tabs`
+- `softwarecenter-profile-v1.json`
+- `本地桌面整理器与配置文件导出`
+
+它不是 Microsoft Configuration Manager Software Center、应用商店、软件包管理器或远程部署门户。
+
+## 系统要求
+
+- Python 3.10+
+- PySide6
+
+## 安装
+
+```bash
+pip install -r requirements.txt
+```
+
+## 运行
+
+```bash
+python SoftwareCenter.py
+```
+
+在 Windows 上,还可使用 `START.bat`,或从 [Releases](https://github.com/file-bricks/SoftwareCenter/releases) 下载预构建的 `SoftwareCenter.exe`。
+
+## 使用
+
+| 操作 | 说明 |
+|--------|-------------|
+| 添加程序 | 将文件、文件夹、快捷方式、macOS 上的 `.app` 包或 Linux 上的 `.desktop` 启动器拖入窗口;指向 `.exe` 文件或文件夹的 Windows `.lnk` 文件会解析为原始目标 |
+| 整理标签页 | 工具栏 > “New Tab”,双击标签页可重命名 |
+| 切换视图 | 工具栏 > Tiles / List |
+| 启动程序 | 双击,或右键选择 Open/Start |
+| 移除条目 | 右键 > Delete(只移除快捷方式条目) |
+| 导出配置文件 | `File > Export Profile` 或工具栏操作 |
+| 导入配置文件 | `File > Import Profile` 或工具栏操作;此操作会替换当前配置文件 |
+
+## 构建可执行文件
+
+```bash
+pip install pyinstaller
+python -m PyInstaller --noconfirm --clean SoftwareCenter.spec
+```
+
+生成的 EXE 位于 `dist/SoftwareCenter.exe`。在 Windows 上,`build_exe.bat` 还会将其复制到项目根目录,供本地使用。
+
+## 质量检查
+
+```bash
+python -m compileall -q SoftwareCenter.py manage_translations.py translator.py
+python -m json.tool locales/translations.json
+python -m json.tool store_package.json
+python -m pytest -q
+python tests/macos_platform_smoke.py
+python tests/linux_platform_smoke.py
+python scripts/verify_product_boundaries.py
+```
+
+托管工作流及其明确的可选 Web 边界详见 [CI_CONTRACT.md](CI_CONTRACT.md)。
+
+GitHub Actions 会运行这些 smoke 检查。macOS smoke 会在 `macos-latest` 上验证 `.app` 导入、`open` 启动、QSettings 持久化和配置导出;Linux smoke 会在 `ubuntu-latest` 上覆盖 `.desktop` 导入、`Exec` / `xdg-open` 启动、QSettings 持久化和配置导出。构建产物以及本地任务/测试文件均被忽略,不应提交。
+
+对于 Windows Store 流程,运行 `python scripts/run_windows_wack.py --dry-run` 可检查本地 MSIX/AppCert 路径并输出可复现的 WACK 命令。正式认证检查应在提交前,针对新的已签名 MSIX,在提升权限的 PowerShell 中执行。
+运行 `python generate_store_screenshots.py` 可为当前桌面界面生成可复现的 Store 截图,更新 `README/screenshots/store/` 中的四张 Store 截图和 `summary.json`。
+
+## 无头模式下的启动器目录维护
+
+可选的目录协调器以 Plan-D 运行时代码的形式提供于 `scripts/softwarecenter_sync.py` 中。同步目录及注册表文件必须作为 CLI 显式输入;除非提供 `--apply`,命令只读。
+固定运行时的计划任务载荷、应用闸门、本地原生回读和回滚步骤见 [RUNTIME_DAILY_CARE.md](RUNTIME_DAILY_CARE.md)。
+
+## 交换格式
+
+配置文件可导出为 `softwarecenter-profile-v1.json`,之后再导入。该格式包含配置文件元数据、标签页、视图模式以及带有 `label`、`path`、`kind` 和可选 `notes` 的条目。应用不会复制所引用的本地文件,但路径、标签和备注可能包含敏感信息,应用不会自动识别或过滤其中的敏感信息。确认后,导入会替换当前配置文件。缺失路径仍会作为引用保留。详情请参阅 [EXPORTFORMAT.md](EXPORTFORMAT.md)。
+
+## LaunchBoards
+
+
+
+[LaunchBoards](https://github.com/file-bricks/SoftwareCenter) 是 SoftwareCenter 的姐妹产品:两者使用同一代码库,但采用独立品牌与身份,更强调可切换的工作区,而非通用快捷方式启动器。它与 SoftwareCenter 共用此仓库和发布流程——无需维护单独的 LaunchBoards 源码树。
+
+## 姐妹产品边界
+
+LaunchBoards 与 SoftwareCenter 共用实现,但拥有独立的 QSettings 命名空间、单实例端点、图标、可执行文件、Store 身份和发布路径。
+可复现的静态检查、隔离的并行进程检查和产物检查详见 [PRODUCT_BOUNDARIES.md](PRODUCT_BOUNDARIES.md)。
+
+## Windows 应用商店资源
+
+Windows Store 流程现包含当前桌面界面的可复现截图生成器。运行 `python generate_store_screenshots.py` 可刷新 `README/screenshots/store/`。
+
+## 技术栈
+
+| 组件 | 技术 |
+|-----------|-----------|
+| 语言 | Python 3.10+ |
+| GUI 框架 | PySide6 (Qt for Python) |
+| 存储 | QSettings (Windows 注册表 / INI) |
+| 代码规模 | 不再列固定行数 |
+
+## 安全策略
+
+[SECURITY.md](SECURITY.md) 说明受支持版本、漏洞报告渠道、声明的 48 小时首次响应时间和 5 个工作日的分流时限。策略文本不等同于运行时验证。
+
+## 第三方许可证与治理
+
+仓库的 MIT 许可证适用于项目源码。第三方依赖有各自的许可条件;[THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md) 记录组件元数据,但不表示所有依赖都采用宽松许可证,也不构成所有打包方式的合规保证。
+
+- **署名:** [NOTICE](NOTICE)(Lukas Geiger、file-bricks 和 open-bricks 计划的规范开源版权署名)。
+- **PySide6 与 shiboken6:** 清单记录了 LGPL-3.0-only 条款;请参阅 [LGPL-3.0 正文](https://www.gnu.org/licenses/lgpl-3.0.html) 和[组件元数据](THIRD_PARTY_LICENSES.md)。项目的 MIT 许可证不笼统适用于这些依赖。
+- **Python 标准库:** [PSF-2.0](https://docs.python.org/3/license.html)。该许可证并不说明整理器或其启动的程序是否离线运行。
+- **PyInstaller:** [GPL-2.0-or-later with PyInstaller-exception](https://pyinstaller.org/en/stable/license.html) 是构建工具;对于分发的打包程序,应查看上游许可证和分发声明,不应据此推断存在普遍豁免。
+- **验证范围:** 测试检查明确列出的代码和文档契约;它们不能证明普遍运行时保证。
+
+## 许可证
+
+[MIT](LICENSE)
+
+**注意:** MIT 是本仓库项目源码的许可证。本应用使用 [PySide6](https://doc.qt.io/qtforpython-6/),其依赖许可证条件另行适用;见 [THIRD_PARTY_LICENSES.md](THIRD_PARTY_LICENSES.md)。
+
+---
+
+## 责任限制
+
+本项目是无偿提供的开源捐赠。责任仅限于故意和重大过失(§ 521 German Civil Code)。使用风险由您自行承担。不提供任何保证、维护承诺,也不保证适用于特定用途。
diff --git a/llms.txt b/llms.txt
index 341086b..e82f108 100644
--- a/llms.txt
+++ b/llms.txt
@@ -6,30 +6,31 @@ Canonical repository: https://github.com/file-bricks/SoftwareCenter
Owner: file-bricks
Primary language: Python
Primary UI stack: PySide6
-License: MIT
+License: MIT for project source; dependencies have separate terms
## Summary
SoftwareCenter is a lightweight, cross-platform desktop organizer for software shortcuts. It organizes files and apps into renamable tabs using a clean PySide6 UI, saves view/tab states dynamically, and supports profile import/export (`softwarecenter-profile-v1.json`).
-Discovery positioning: local-first PySide6 app launcher, desktop shortcut organizer, offline software launcher, tab-based program organizer, portable app profile manager.
+Discovery positioning: local-first PySide6 app launcher, desktop shortcut organizer, tab-based program organizer, profile export and confirmed replacement import.
## Current Scope
- Primary platform: Cross-platform desktop (Windows, macOS, Linux).
- Build targets: PyInstaller standalone executables.
+- Runtime UI languages: German, English, Spanish, Chinese (zh), Japanese, and Russian (six); README editions describe documentation availability and do not add UI locales.
- Non-goals: Network package installation, automatic software updates, cloud-account synchronizations.
## Important Files
-- `README.md`: English GitHub entry point; `README_de.md`: German documentation; `README.es.md`: Spanish documentation.
+- `README.md`: English canonical GitHub entry point and source of truth; `README_de.md`: German documentation; `README.es.md`: Spanish documentation; `README_zh.md`: Simplified Chinese documentation. `README_ja.md`: Japanese documentation. `README_ru.md`: Russian documentation. `README_fr.md`: French documentation. `README_hi.md`: Hindi documentation. `README_ar.md`: Arabic documentation. `README_bn.md`: Bengali documentation. `README_pt.md`: Portuguese documentation.
- `SoftwareCenter.py`: Main PySide6 application.
- `NOTICE`: Open-source attribution notice (Lukas Geiger, file-bricks, open-bricks umbrella).
-- `SECURITY.md`: Hardened bilingual security policy (Supported versions, 48h SLA, invariants).
-- `THIRD_PARTY_LICENSES.md`: Dependency inventory, SPDX identifiers, LGPLv3 dynamic linking guarantees, and 10 runtime invariants.
+- `SECURITY.md`: Bilingual security policy, supported versions, reporting channels, and published response commitments.
+- `THIRD_PARTY_LICENSES.md`: Dependency metadata and license inventory; not a blanket permissive-license or packaged-build compliance guarantee.
- `EXPORTFORMAT.md`: Schema definition for versioned profile JSON.
- `MARKETING-LOG.txt`: Target personas, dual-language search term matrices, competitive comparison, and governance invariants.
-- `tests/`: Pytest suite (260+ tests certifying platform, metadata parity, boundaries, persistence, context-menu entry management, Tier-2 6-language internationalization, and trusted WACK tool discovery).
+- `tests/`: Regression and metadata tests for named fixtures and contracts, including persistence, product separation, six UI languages, and WACK tool discovery; tests are not certification.
## Verification
@@ -58,12 +59,12 @@ SoftwareCenter is a local desktop application (PySide6/Python) for shortcut mana
- A cloud-synced launcher platform
- Microsoft Configuration Manager Software Center, SCCM/MECM, Intune Company Portal, or a remote deployment portal
-## Architecture & Security Invariants
+## Implementation Scope and Boundaries
-- **100% Local-First:** Zero network egress, no background servers, no telemetry.
-- **Unprivileged Execution:** Runs strictly in user space without requesting administrative (UAC) elevation.
-- **Non-Destructive Operations:** Shortcut deletion only detaches UI metadata; target executables are never modified or removed.
-- **Safe Link Resolution:** Safely parses Windows `.lnk`, macOS `.app`, and Linux `.desktop` targets without executing shell scripts.
+- **Network:** The inspected organizer code has no account, telemetry, or cloud-sync implementation. URLs and launched programs can use the network; no runtime egress guarantee is made.
+- **Launch context:** Platform APIs open targets; child-process privileges are not enforced or verified by the organizer.
+- **Entry removal and import:** Removing an entry removes its saved reference without deleting the target. Import replaces the current profile after confirmation. Exported labels, paths, and notes can contain private details.
+- **Platform handlers:** Windows shortcut lookup uses COM with a PowerShell fallback; Linux desktop commands and external applications may execute. Target behavior is not sandboxed.
## Audience
@@ -79,10 +80,10 @@ local-first software shortcuts manager tab organizer
PySide6 application launcher cross-platform Windows macOS Linux
softwarecenter-profile-v1.json profile export import
drag and drop desktop shortcut organizer Python
-offline desktop organizer no cloud no telemetry
+local desktop organizer with profile export
PyInstaller PySide6 portable app launcher
desktop shortcut organizer with tabs
-offline software launcher no cloud no telemetry
+desktop shortcut launcher with local settings
local PySide6 app launcher for Windows macOS Linux
portable software profile export import JSON
```
diff --git a/tests/test_metadata.py b/tests/test_metadata.py
index 663767e..57f6efe 100644
--- a/tests/test_metadata.py
+++ b/tests/test_metadata.py
@@ -317,15 +317,15 @@ def test_target_personas_present_in_all_readmes():
assert "Persona 1:" in text_es and "Persona 2:" in text_es and "Persona 3:" in text_es and "Persona 4:" in text_es
-def test_comparative_matrix_present_in_all_readmes():
+def test_capability_boundaries_present_in_all_readmes():
text_en = (ROOT / "README.md").read_text(encoding="utf-8")
text_de = (ROOT / "README_de.md").read_text(encoding="utf-8")
text_es = (ROOT / "README.es.md").read_text(encoding="utf-8")
for text in [text_en, text_de, text_es]:
- assert "Stardock Fences" in text
- assert "SyMenu" in text
- assert "Launchy / Flow Launcher" in text
+ assert "QSettings" in text
+ assert "softwarecenter-profile-v1.json" in text
+ assert "CI_CONTRACT.md" in text
def test_third_party_licenses_md_contract_and_invariants():