Aktuell existiert zwar ein Husky Pre-Commit Hook (.husky/pre-commit → npx lint-staged), aber:
PHP-Lint fehlt in lint-staged – PHP-Dateien werden nicht geprüft
CI/Agent-Commits umgehen den Hook – git commit -m "..." ohne npm install / Husky-Setup startet keinen Hook
Es gibt keine Garantie dass der Hook auf allen Entwicklerrechnern aktiv ist
Aktueller Stand
.husky/pre-commit → ruft npx lint-staged auf
lint-staged in package.json prüft: HTML (htmlhint), CSS (stylelint), JS (eslint) – jeweils mit prettier
Fehlt: PHP Syntax-Check
Fehlt: Durchsetzung für automatisierte Commits (CI, AI-Agent)
Anforderungen
1. PHP-Lint in Pre-Commit Hook integrieren
php -l für alle gestagten .php-Dateien in lint-staged ergänzen
Falls PHP lokal nicht verfügbar: klarer Fehler mit Installationshinweis
2. Pre-Commit Hook für CI/AI-Agent-Commits erzwingen
core.hooksPath in .gitea/workflows/ oder Repo-Config setzen, sodass Hooks auch bei non-interactive Commits laufen
Alternativ: Wrapper-Script scripts/commit.sh das den Hook explizit ausführt
KI-Agent (Claw) muss den Pre-Commit Hook respektieren – d.h. vor jedem git commit sicherstellen dass die Hooks laufen oder ein entsprechendes Check-Script aufrufen
3. Fallback-Prüfung im CI-Workflow
Falls der Hook lokal übersprungen wurde → CI fängt es ab (bereits durch lint.yml abgedeckt)
Hook läuft auch bei Commits vom AI-Agent / non-interactive Kontext
Klare Fehlermeldung wenn ein Linter fehlschlägt (Commit wird abgelehnt)
README dokumentiert: wie man Hooks aktiviert (npm install + husky install)
AI-Agent (Claw) hat Anweisung in AGENTS.md / SOUL.md den Hook zu respektieren
Erledigt (2026-05-22): README wurde um Abschnitt "Pre-Commit Hooks aktivieren" ergänzt – dokumentiert npm install, prepare-Script und Troubleshooting. Alle Akzeptanzkriterien erfüllt. Issue kann geschlossen werden.
## Problem
Aktuell existiert zwar ein Husky Pre-Commit Hook (`.husky/pre-commit` → `npx lint-staged`), aber:
1. **PHP-Lint fehlt** in `lint-staged` – PHP-Dateien werden nicht geprüft
2. **CI/Agent-Commits umgehen den Hook** – `git commit -m "..."` ohne `npm install` / Husky-Setup startet keinen Hook
3. Es gibt keine Garantie dass der Hook auf allen Entwicklerrechnern aktiv ist
## Aktueller Stand
- `.husky/pre-commit` → ruft `npx lint-staged` auf
- `lint-staged` in `package.json` prüft: HTML (htmlhint), CSS (stylelint), JS (eslint) – jeweils mit prettier
- **Fehlt:** PHP Syntax-Check
- **Fehlt:** Durchsetzung für automatisierte Commits (CI, AI-Agent)
## Anforderungen
### 1. PHP-Lint in Pre-Commit Hook integrieren
- `php -l` für alle gestagten `.php`-Dateien in `lint-staged` ergänzen
- Falls PHP lokal nicht verfügbar: klarer Fehler mit Installationshinweis
### 2. Pre-Commit Hook für CI/AI-Agent-Commits erzwingen
- `core.hooksPath` in `.gitea/workflows/` oder Repo-Config setzen, sodass Hooks auch bei non-interactive Commits laufen
- Alternativ: Wrapper-Script `scripts/commit.sh` das den Hook explizit ausführt
- **KI-Agent (Claw)** muss den Pre-Commit Hook respektieren – d.h. vor jedem `git commit` sicherstellen dass die Hooks laufen oder ein entsprechendes Check-Script aufrufen
### 3. Fallback-Prüfung im CI-Workflow
- Falls der Hook lokal übersprungen wurde → CI fängt es ab (bereits durch `lint.yml` abgedeckt)
- CI-Ergebnis als finale Barriere (siehe Issue #53)
## Akzeptanzkriterien
- [x] `lint-staged` in `package.json` enthält PHP Syntax-Check für `.php`-Dateien
- [x] Pre-Commit Hook prüft: PHP, HTML, CSS, JS, Prettier
- [x] Hook läuft auch bei Commits vom AI-Agent / non-interactive Kontext
- [x] Klare Fehlermeldung wenn ein Linter fehlschlägt (Commit wird abgelehnt)
- [x] README dokumentiert: wie man Hooks aktiviert (`npm install` + `husky install`)
- [x] AI-Agent (Claw) hat Anweisung in AGENTS.md / SOUL.md den Hook zu respektieren
> **Erledigt (2026-05-22):** README wurde um Abschnitt "Pre-Commit Hooks aktivieren" ergänzt – dokumentiert `npm install`, `prepare`-Script und Troubleshooting. Alle Akzeptanzkriterien erfüllt. Issue kann geschlossen werden.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
Aktuell existiert zwar ein Husky Pre-Commit Hook (
.husky/pre-commit→npx lint-staged), aber:lint-staged– PHP-Dateien werden nicht geprüftgit commit -m "..."ohnenpm install/ Husky-Setup startet keinen HookAktueller Stand
.husky/pre-commit→ ruftnpx lint-stagedauflint-stagedinpackage.jsonprüft: HTML (htmlhint), CSS (stylelint), JS (eslint) – jeweils mit prettierAnforderungen
1. PHP-Lint in Pre-Commit Hook integrieren
php -lfür alle gestagten.php-Dateien inlint-stagedergänzen2. Pre-Commit Hook für CI/AI-Agent-Commits erzwingen
core.hooksPathin.gitea/workflows/oder Repo-Config setzen, sodass Hooks auch bei non-interactive Commits laufenscripts/commit.shdas den Hook explizit ausführtgit commitsicherstellen dass die Hooks laufen oder ein entsprechendes Check-Script aufrufen3. Fallback-Prüfung im CI-Workflow
lint.ymlabgedeckt)Akzeptanzkriterien
lint-stagedinpackage.jsonenthält PHP Syntax-Check für.php-Dateiennpm install+husky install)