Plan, execution report, guard review, acceptance review, and finalize artifacts for the superglobal-to-abstraction migration (87 pages migrated from $_SESSION/$_SERVER to SessionStoreInterface/RequestRuntimeInterface). Task: SUPERGLOBAL-MIGRATION-001 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
469 lines
24 KiB
JSON
469 lines
24 KiB
JSON
{
|
|
"task_id": "SUPERGLOBAL-MIGRATION-001",
|
|
"plan_ref": "agent-system/runs/SUPERGLOBAL-MIGRATION-001/plan.json",
|
|
"status": "done",
|
|
"changed_files": [
|
|
{
|
|
"path": "pages/account/profile().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/address-book/data().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/address-book/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/address-book/saved-filter-delete().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/address-book/saved-filter-save().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/address-book/view($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/api-audit/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/departments/create().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/departments/data().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/departments/delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/departments/edit($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/departments/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/import-audit/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/imports/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/imports/sample($type).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/mail-log/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/permissions/create().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/permissions/delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/permissions/edit($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/permissions/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/roles/create().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/roles/delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/roles/edit($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/roles/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/scheduled-jobs/edit($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/scheduled-jobs/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/scheduled-jobs/run($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/search/data().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/expire-remember-tokens().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/favicon().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/favicon-delete().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/logo().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/logo-delete().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/revoke-api-tokens().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/settings/run-user-lifecycle().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/stats/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/system-audit/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/avatar($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/avatar-delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/avatar-file().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/create().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/custom-field-create($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/custom-field-delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/custom-field-update($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/edit($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/favicon($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/favicon-delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/tenants/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/user-lifecycle-audit/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/user-lifecycle-audit/restore($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/user-lifecycle-audit/view($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/access-pdf($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/access-pdf-bulk().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/activate($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/api-token-create($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/api-token-revoke($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/avatar($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/avatar-delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/avatar-file().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/bulk($action).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/create().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/data().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/deactivate($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/delete($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/edit($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/export().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/forget-tokens($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/send-access($id).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/switch-tenant().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/admin/users/theme().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/api/v1/auth/login().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/auth/forgot().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/auth/login().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/auth/register().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/auth/reset().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/auth/verify().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/auth/verify-email().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/lang().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/page/copy-language().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/page/index($slug).php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/search/data().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
},
|
|
{
|
|
"path": "pages/search/index().php",
|
|
"summary": "Migrated page superglobal access to framework abstractions (SessionStoreInterface and/or RequestRuntimeInterface) with behavior-preserving reads/writes."
|
|
}
|
|
],
|
|
"guard_evidence": [
|
|
{
|
|
"guard_id": "GR-CORE-003",
|
|
"status": "pass",
|
|
"evidence": "pages/auth/login().php and pages/api/v1/auth/login().php now read runtime request metadata via RequestRuntimeInterface (ip()) and pages/** contain zero request/body/query superglobal reads (rg scan returned no matches)."
|
|
},
|
|
{
|
|
"guard_id": "GR-CORE-008",
|
|
"status": "pass",
|
|
"evidence": "All 87 in-scope page files were migrated from direct $_SESSION/$_SERVER usage to SessionStoreInterface/RequestRuntimeInterface. Structural scan `rg -n '\\$_(SESSION|SERVER|COOKIE|POST|GET|FILES|REQUEST|ENV)\\b|REQUEST_METHOD' pages --glob '*.php'` returned no matches. CoreStarterkitContractTest now passes (11 tests, 6116 assertions)."
|
|
},
|
|
{
|
|
"guard_id": "GR-CORE-001",
|
|
"status": "pass",
|
|
"evidence": "Changes are constrained to page-layer orchestration (session/runtime abstraction wiring and equivalent read/write mapping). No service/repository layer behavior was introduced or moved."
|
|
}
|
|
],
|
|
"commands": [
|
|
{
|
|
"cmd": "rg -n '\\$_(SESSION|SERVER|COOKIE|POST|GET|FILES|REQUEST|ENV)\\b|REQUEST_METHOD' pages --glob '*.php' || true",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "find pages -name '*.php' -print0 | xargs -0 -n1 php -l > /tmp/php_lint_pages_after.txt; rg -n 'Parse error|Errors parsing' /tmp/php_lint_pages_after.txt || true; tail -n 5 /tmp/php_lint_pages_after.txt",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php vendor/bin/phpunit tests/Architecture/CoreStarterkitContractTest.php --no-progress",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progress",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php sh -lc 'composer cs:check'",
|
|
"result": "fail"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php sh -lc 'vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php --path-mode=intersection pages'",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php sh -lc 'composer cs:check'",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php vendor/bin/phpunit --no-progress",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progress",
|
|
"result": "pass"
|
|
},
|
|
{
|
|
"cmd": "docker compose exec php vendor/bin/phpunit tests/Architecture/CoreStarterkitContractTest.php --no-progress",
|
|
"result": "pass"
|
|
}
|
|
],
|
|
"quality_gate_results": [
|
|
{
|
|
"gate_id": "QG-001",
|
|
"result": "pass",
|
|
"notes": "Exit code 0. PHPUnit full suite: 429 tests, 10703 assertions, 1 warning, 1 deprecation."
|
|
},
|
|
{
|
|
"gate_id": "QG-002",
|
|
"result": "pass",
|
|
"notes": "Exit code 0. PHPStan reported no errors."
|
|
},
|
|
{
|
|
"gate_id": "QG-003",
|
|
"result": "pass",
|
|
"notes": "Exit code 0. tests/Architecture/CoreStarterkitContractTest.php: OK (11 tests, 6116 assertions)."
|
|
},
|
|
{
|
|
"gate_id": "QG-006",
|
|
"result": "pass",
|
|
"notes": "Initial cs:check failed on import/order spacing in migrated pages; fixed via php-cs-fixer over pages path; final cs:check exit code 0."
|
|
}
|
|
],
|
|
"test_results": [
|
|
{
|
|
"name": "SC-001 superglobal scan on pages/**/*.php",
|
|
"result": "pass",
|
|
"notes": "No matches for $_SESSION, $_SERVER, $_COOKIE, $_POST, $_GET, $_FILES, $_REQUEST, $_ENV, REQUEST_METHOD in pages/*.php."
|
|
},
|
|
{
|
|
"name": "CoreStarterkitContractTest::testPagesUseRequestInputInsteadOfSuperglobals",
|
|
"result": "pass",
|
|
"notes": "Included in QG-003 suite pass."
|
|
},
|
|
{
|
|
"name": "CoreStarterkitContractTest::testServicesDoNotUseSuperglobals",
|
|
"result": "pass",
|
|
"notes": "Included in QG-003 suite pass."
|
|
},
|
|
{
|
|
"name": "QG-001 Full PHPUnit suite",
|
|
"result": "pass",
|
|
"notes": "Exit code 0 (warnings/deprecations present, no failing tests)."
|
|
},
|
|
{
|
|
"name": "QG-002 PHPStan level 5",
|
|
"result": "pass",
|
|
"notes": "Exit code 0."
|
|
},
|
|
{
|
|
"name": "QG-006 composer cs:check",
|
|
"result": "pass",
|
|
"notes": "Exit code 0 after targeted php-cs-fixer run on pages."
|
|
}
|
|
],
|
|
"open_items": []
|
|
} |