1
0
Files
breadcrumb-the-shire/.agents/checks/enforcement-policy.json
fs 0e86925464 refactor: rename lib/ to core/ for clearer core-module separation
Rename the top-level lib/ directory to core/ so the project root
immediately communicates which code is core platform and which lives
in modules/. PHP namespaces (MintyPHP\*) are unchanged — only the
Composer PSR-4 path mapping moves from lib/ to core/.

Module-internal lib/ directories (modules/*/lib/) are untouched.

Updated across the full stack:
- composer.json PSR-4 mapping
- bootstrap entry points (web/index.php, bin/*, tests/bootstrap.php)
- tooling configs (phpstan.neon, phpunit.xml, php-cs-fixer)
- 26 architecture contract tests
- enforcement-policy, guard-catalog, quality-gates
- all documentation (CLAUDE.md, README, 25 docs/, .agents/skills/)
- bin/qa-extended.sh search paths
- .claude/settings.local.json permission paths

Workflow: .agents/runs/CORE-LIB-RENAME-001/ (Analyst → Planner →
Executor → Code Review (4 findings fixed) → Security Review →
Acceptance Test → Finalizer)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 23:20:42 +02:00

78 lines
2.2 KiB
JSON

{
"version": "1.0.0",
"phase": "enforcement-ready",
"full_workflow_required_when": [
{
"id": "risk-security",
"description": "Any change touching authentication, authorization, CSRF, encryption, logging redaction, file uploads, or API bootstrap/security behavior.",
"paths": [
"core/Http/**",
"core/Service/Access/**",
"core/Support/Crypto.php",
"pages/api/**",
"pages/**"
]
},
{
"id": "risk-data-boundary",
"description": "Any change touching tenant-scoped data access, repository query boundaries, DB schema updates, or API contracts.",
"paths": [
"core/Repository/**",
"db/updates/**",
"db/init/init.sql",
"docs/openapi.yaml"
]
},
{
"id": "risk-modules",
"description": "Any change touching module manifests, module runtime wiring, module routes, module providers, or module migrations/assets.",
"paths": [
"modules/*/module.php",
"core/App/Module/**",
"storage/runtime/pages/**",
"web/modules/**"
]
},
{
"id": "risk-cross-layer",
"description": "Any feature/addition changing more than one architecture layer (Repository, Service, pages/templates/web, modules, config, db).",
"paths": [
"core/**",
"pages/**",
"templates/**",
"web/**",
"modules/**",
"config/**",
"db/**"
]
}
],
"quick_fix_allowlist": [
"single-file typo fix without behavior change",
"single-file translation text/key correction without flow change",
"single-file CSS visual adjustment without behavioral JS or backend change",
"single-file docs-only update"
],
"gate_policy": {
"required_gates_always": [
"QG-001",
"QG-002",
"QG-003",
"QG-006",
"QG-008",
"QG-009"
],
"manual_non_blocking": [
"QG-005"
],
"periodic_non_blocking": [
"QG-007"
]
},
"ci_rollout": {
"target_platform": "gitea",
"blocking_enabled": false,
"phase_2_activation": "Enable required status checks in repository branch protection once qa-required is stable on runner infrastructure."
}
}