diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
new file mode 100644
index 000000000..75d18b60d
--- /dev/null
+++ b/.github/workflows/lint-php.yml
@@ -0,0 +1,19 @@
+name: lint-php
+
+on: [push, pull_request]
+
+jobs:
+  build:
+    if: ${{ github.ref != 'refs/heads/l10n_development' }}
+    runs-on: ubuntu-22.04
+    steps:
+    - uses: actions/checkout@v1
+
+    - name: Setup PHP
+      uses: shivammathur/setup-php@v2
+      with:
+        php-version: 8.1
+        tools: phpcs
+
+    - name: Run formatting check
+      run: composer lint
diff --git a/composer.json b/composer.json
index 615723be9..cdd9c629e 100644
--- a/composer.json
+++ b/composer.json
@@ -69,6 +69,9 @@
         }
     },
     "scripts": {
+        "format": "phpcbf",
+        "lint": "phpcs",
+        "test": "phpunit",
         "post-autoload-dump": [
             "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
             "@php artisan package:discover --ansi"