Linting References
Reference configurations for linting and code quality setup. Use these as templates when setting up or troubleshooting hooks and CI.
Lefthook Configurations
| Repo | Link | Notes |
|---|---|---|
| Coniglio | .lefthook.yml | PHP-only, container |
| Farfalla | .lefthook.yml | PHP-only, with UX patterns |
| Vito | .lefthook.yml | Non-container JS |
| Micelio | .lefthook.yml | Container JS |
| Castoro | .lefthook.yml | PHP + JS in container |
| Volpe | .lefthook.yml | Container JS |
| Fenice | .lefthook.yml | Monorepo |
CI Configurations
| Repo | Link | Jobs |
|---|---|---|
| Farfalla | .gitlab-ci.yml | lint:php, analyze:static:phpstan |
| Vito | .gitlab-ci.yml | lint:js |
| Micelio | .gitlab-ci.yml | lint:js |
| Castoro | .gitlab-ci.yml | lint:php, analyze:static:phpstan, lint:js |
| Volpe | .gitlab-ci.yml | lint:js (integrated) |
| Fenice | .gitlab-ci.yml | Root install + per-package lint |
PHP Tool Setup
- StyleCI not used; remove
.styleci.ymlif present - Duster: copy
farfalla/.php-cs-fixer.dist.phpverbatim into each repo - Pint: use default config, no
pint.jsonneeded - TLint: copy
farfalla/tlint.jsonverbatim (disables opinionated rules)
Monorepos / Multi-package JS
Use per-package jobs via root: + glob: in Lefthook. Avoid custom file routing.
Pre-commit (auto-fix):
job-name-per-package:
root: '<pkg>/'
glob: '*.{js,jsx,ts,tsx,vue,html,css,scss,json,md,yml,yaml}'
run: npx prettier --write {staged_files} && npx eslint --fix {staged_files} || true
stage_fixed: true
Pre-push (validate):
job-name:
root: '<pkg>/'
glob: '*.{js,jsx,ts,tsx,vue}'
run: npx eslint {push_files}
CI:
yarn installat repo root if root.eslintrc*uses plugins- Per-package install, then
eslint srcand Prettier check for JS/TS/JSON/MD - Exclude CSS/SCSS if it causes churn