diff --git a/composer.json b/composer.json
index 925f04f4c931c09ab0cb5065bdd4a8b41f196386..3fc76e930ba2d97496139059b54aa6c7d5549a00 100644
--- a/composer.json
+++ b/composer.json
@@ -1,28 +1,70 @@
 {
-  "name": "quiqqer/coupons",
-  "type": "quiqqer-module",
-  "description": "Coupons for QUIQQER",
-  "license": "GPL-3.0+",
-  "authors": [
-    {
-      "name": "Patrick M\u00fcller",
-      "email": "support@pcsg.de",
-      "homepage": "https://www.pcsg.de",
-      "role": "Developer"
+    "name": "quiqqer/coupons",
+    "type": "quiqqer-module",
+    "description": "Coupons for QUIQQER",
+    "license": "GPL-3.0+",
+    "authors": [
+        {
+            "name": "Patrick Müller",
+            "email": "support@pcsg.de",
+            "homepage": "https://www.pcsg.de",
+            "role": "Developer"
+        }
+    ],
+    "support": {
+        "email": "support@pcsg.de"
+    },
+    "require": {
+        "quiqqer/core": "^2",
+        "quiqqer/erp": "^3.2",
+        "quiqqer/discount": "^2",
+        "quiqqer/products": "^2"
+    },
+    "autoload": {
+        "psr-4": {
+            "QUI\\ERP\\Coupons\\": "src/QUI/ERP/Coupons"
+        }
+    },
+    "scripts": {
+        "test": [
+            "@dev:lint",
+            "@dev:phpunit"
+        ],
+        "dev:phpunit": "./tools/phpunit",
+        "dev:lint": [
+            "@dev:lint:phpstan",
+            "@dev:lint:style"
+        ],
+        "dev:lint:phpstan": "./tools/phpstan",
+        "dev:lint:style": "./tools/phpcs",
+        "dev:lint:style:fix": "./tools/phpcbf",
+        "dev:init": [
+            "@dev:init:check-requirements",
+            "@dev:init:tools",
+            "@dev:init:git-hooks"
+        ],
+        "dev:init:check-requirements": [
+            "which composer > /dev/null || (echo 'Error: composer has to be globally installed'; exit 1)",
+            "which phive > /dev/null || (echo 'Error: PHIVE has to be globally installed'; exit 1)"
+        ],
+        "dev:init:tools": "phive install --temporary",
+        "dev:init:git-hooks": "./tools/captainhook install --only-enabled --force"
+    },
+    "scripts-aliases": {
+        "test": [
+            "dev:test"
+        ]
+    },
+    "scripts-descriptions": {
+        "test": "Runs linting, static analysis, and unit tests.",
+        "dev:phpunit": "Run PHPUnit test suites",
+        "dev:lint": "Run PHPStan and code style check",
+        "dev:lint:phpstan": "Run PHPStan",
+        "dev:lint:style": "Run code style check (PHP_CodeSniffer)",
+        "dev:lint:style:fix": "Try to fix code style errors automatically",
+        "dev:init": "Initialize the developer tooling (tools and git hooks)",
+        "dev:init:check-requirements": "Check if the necessary requirements are met",
+        "dev:init:tools": "Install all developer tools (requires PHIVE)",
+        "dev:init:git-hooks": "Install all git hooks (may require tools to be installed)"
     }
-  ],
-  "support": {
-    "email": "support@pcsg.de"
-  },
-  "require": {
-    "quiqqer/core": "^2",
-    "quiqqer/erp": "^3.2",
-    "quiqqer/discount": "^2",
-    "quiqqer/products": "^2"
-  },
-  "autoload": {
-    "psr-4": {
-      "QUI\\ERP\\Coupons\\": "src/QUI/ERP/Coupons"
-    }
-  }
-}
+}
\ No newline at end of file