diff --git a/PolicyDefinitions/Softwarekatalog.admx b/PolicyDefinitions/Softwarekatalog.admx
index 13f27d8..9f03546 100644
--- a/PolicyDefinitions/Softwarekatalog.admx
+++ b/PolicyDefinitions/Softwarekatalog.admx
@@ -43,8 +43,32 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/PolicyDefinitions/de-DE/Softwarekatalog.adml b/PolicyDefinitions/de-DE/Softwarekatalog.adml
index 18d9ddf..1a81b8e 100644
--- a/PolicyDefinitions/de-DE/Softwarekatalog.adml
+++ b/PolicyDefinitions/de-DE/Softwarekatalog.adml
@@ -6,14 +6,22 @@
Softwarekatalog
Softwarekatalog konfigurieren
- Aktiviert und konfiguriert den Softwarekatalog. Katalog-Eintraege werden unter HKLM\Software\Policies\STL\Softwarekatalog\Catalog gespeichert. Der Wertname ist der Alias, der Wert hat das Format PackageId|DisplayName|Description. Pflichtsoftware wird unter HKLM\Software\Policies\STL\Softwarekatalog\Required gespeichert. Der Wertname ist der Alias, der Wert ist 1. Der Client liest maximal 500 Eintraege pro Liste.
+ Aktiviert den Softwarekatalog und steuert, ob Benutzer Software installieren oder deinstallieren duerfen und ob Pflichtsoftware automatisch installiert wird.
+ Freigegebene Software konfigurieren
+ Konfiguriert freigegebene Software unter HKLM\Software\Policies\STL\Softwarekatalog\Catalog. Der Wertname ist der Alias, der Wert hat das Format PackageId|DisplayName|Description. Der Client liest maximal 500 Eintraege.
+ Pflichtsoftware konfigurieren
+ Konfiguriert Pflichtsoftware unter HKLM\Software\Policies\STL\Softwarekatalog\Required. Der Wertname ist ein Alias aus dem Katalog, der Wert ist 1. Der Client liest maximal 500 Eintraege.
Benutzer duerfen Software installieren
Benutzer duerfen Software deinstallieren
Pflichtsoftware automatisch installieren
+
+
Freigegebene Software. Name = Alias, Wert = PackageId|DisplayName|Description.
+
+
Pflichtsoftware. Name = Alias aus Katalog, Wert = 1.
diff --git a/PolicyDefinitions/en-US/Softwarekatalog.adml b/PolicyDefinitions/en-US/Softwarekatalog.adml
index 0dbe3b4..849b56c 100644
--- a/PolicyDefinitions/en-US/Softwarekatalog.adml
+++ b/PolicyDefinitions/en-US/Softwarekatalog.adml
@@ -6,14 +6,22 @@
Software Catalog
Configure Software Catalog
- Enables and configures Software Catalog. Catalog entries are stored below HKLM\Software\Policies\STL\Softwarekatalog\Catalog. Value name is alias, value format is PackageId|DisplayName|Description. Required software is stored below HKLM\Software\Policies\STL\Softwarekatalog\Required. Value name is alias, value is 1. Client reads up to 500 entries per list.
+ Enables Software Catalog and controls whether users may install or uninstall software and whether required software is installed automatically.
+ Configure allowed software
+ Configures allowed software below HKLM\Software\Policies\STL\Softwarekatalog\Catalog. Value name is alias, value format is PackageId|DisplayName|Description. Client reads up to 500 entries.
+ Configure required software
+ Configures required software below HKLM\Software\Policies\STL\Softwarekatalog\Required. Value name is a catalog alias, value is 1. Client reads up to 500 entries.
Allow users to install software
Allow users to uninstall software
Automatically install required software
+
+
Allowed software. Name = alias, value = PackageId|DisplayName|Description.
+
+
Required software. Name = catalog alias, value = 1.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a447299
--- /dev/null
+++ b/README.md
@@ -0,0 +1,67 @@
+# Softwarekatalog
+
+Windows self-service software catalog backed by `winget`.
+
+Users install approved software through a small GUI or request helper. A SYSTEM scheduled task runs a named-pipe daemon, authenticates the connecting Windows user, validates requests against Group Policy, then runs `winget install --scope machine`.
+
+## What It Does
+
+- Reads allowed software from GPO registry policy.
+- Lets users install/uninstall only catalog entries allowed by policy.
+- Installs required software automatically.
+- Runs `winget upgrade --all` every 2 hours.
+- Tracks installed state from `winget export`, not from request history.
+
+## Policy
+
+ADMX templates live in `PolicyDefinitions/`.
+
+Copy them to your domain Central Store:
+
+```text
+\\\SYSVOL\\Policies\PolicyDefinitions\Softwarekatalog.admx
+\\\SYSVOL\\Policies\PolicyDefinitions\de-DE\Softwarekatalog.adml
+\\\SYSVOL\\Policies\PolicyDefinitions\en-US\Softwarekatalog.adml
+```
+
+Policy registry path:
+
+```text
+HKLM\Software\Policies\STL\Softwarekatalog
+```
+
+Catalog entries:
+
+```text
+HKLM\Software\Policies\STL\Softwarekatalog\Catalog
+alias = PackageId|DisplayName|Description
+```
+
+Required software:
+
+```text
+HKLM\Software\Policies\STL\Softwarekatalog\Required
+alias = 1
+```
+
+The client reads up to 500 catalog entries and 500 required entries.
+
+## Install
+
+Run as admin or as computer startup script:
+
+```powershell
+powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\setup.ps1 -Mode Install
+```
+
+Generated files are written to:
+
+```text
+C:\ProgramData\__Softwarekatalog\
+```
+
+## Notes
+
+- Requires Windows, Desktop App Installer, and `winget`.
+- The daemon runs as `LocalSystem`; keep catalog policy restricted to trusted admins.
+- Package IDs and silent machine-scope support depend on upstream `winget` packages.