forked from fa/breadcrumb-the-shire
config/config.php was gitignored and devs had to copy it from config/config.php.example on every fresh clone. Since the bootstrap config reads everything from .env via $envString() / $envInt() / $envBool() defaults, there is nothing developer-specific in the file — the cp step was dead ceremony. - Remove config/config.php from .gitignore and track it directly - Delete config/config.php.example - Drop the example-existence + per-doc reference checks from bin/docs-drift-check.sh; add a legacy-pattern check that flags any new mention of the removed example file - Update ConfigContractsTest to require config.php and forbid the example - Clean stale references in CLAUDE.md, README.md, six docs files, and the core-guardrails skill Same commit slims README down from 294 to 47 lines: one setup checklist (now 3 commands instead of 4), the seeded login table, the three quality-gate commands, and pointers to CLAUDE.md and docs/index.md for everything else. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Quality Gates
Pflicht-Gates
docker compose exec php vendor/bin/phpunitdocker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progressdocker compose exec php vendor/bin/phpunit tests/Architecture/CoreStarterkitContractTest.phpdocker compose exec php vendor/bin/php-cs-fixer fix --config=tools/php-cs-fixer/.php-cs-fixer.dist.php --dry-run --diff --verbosebin/docs-link-check.shbin/codex-skills-sync.sh --check
Policy-Hinweis:
- Verbindliche Enforcement-Einteilung (
required,manual_non_blocking,periodic_non_blocking) wird zentral in/.agents/checks/enforcement-policy.jsongepflegt.
Struktur-Gates (schnell)
(rg 'new\s+[^\s(]+Factory\(' core/Service || true) | wc -l
(rg --glob '!**/*Factory.php' 'new\s+[^\s(]+(Service|Gateway|Repository)\(' core/Service || true) | wc -l
(rg "\b(accessServicesFactory|directoryServicesFactory|userServicesFactory|authServicesFactory|tenantServicesFactory|settingServicesFactory|userRepositoryFactory|authRepositoryFactory|authGatewayFactory)\(" pages core templates web || true) | wc -l
(rg -n 'new\s+[^\s(]+(Service|Gateway|Repository)\(' pages -g '*.php' || true) | wc -l
(rg -n '\bDB::' pages -g '*.php' || true) | wc -l
(rg -n 'app\([^\n]*Factory::class\)->create' pages/admin -g '*.php' || true) | wc -l
(rg -n 'Factory::class' pages/admin -g '*.php' || true) | wc -l
(rg -n 'ApiResponse::readJsonBody\(' pages/api/v1 -g '*.php' || true) | wc -l
Erwartung: jeweils 0.
JS-Scope
- Bei JS-Aenderungen Browser-Smoke mit DevTools-Console durchfuehren.
- Erwartung: keine neuen JS-Errors.
Docs-/Skills-Gates (schnell)
bin/docs-link-check.sh- prueft Doku-Links in
README.md,docs/**,.agents/skills/**und.agents/** .agents/runs/**ist standardmaessig ausgeschlossen (historische Artefakte)
- prueft Doku-Links in
bin/docs-drift-check.sh- prueft bekannte Legacy-Drifts (entfernte Config-Pfade/Constants, obsolete Search-Marker)
bin/codex-skills-sync.sh --check- prueft Drift zwischen Repo-Skills und
~/.codex/skills
- prueft Drift zwischen Repo-Skills und
Berichtspflicht
- Bei jedem Gate klar angeben:
passed/failed/not run. - Bei
failedden blocker explizit benennen.