forked from fa/breadcrumb-the-shire
129 lines
4.9 KiB
JSON
129 lines
4.9 KiB
JSON
{
|
|
"task_id": "AUTH-LOGIN-A11Y-REGRESSION-001",
|
|
"summary": "Isolierter Fix fuer den QG-001 Blocker im Auth-Login-Flow: fehlender Tenant-Label-Marker login-tenant-select-label in der choose_tenant-Stage wiederherstellen, Accessibility-Semantik intakt halten und Full PHPUnit wieder gruen bekommen.",
|
|
"assumptions": [
|
|
"Der Fehler ist eine Regression im Markup von pages/auth/login(login).phtml und nicht in Service- oder Auth-Logik.",
|
|
"Der bestehende Contract-Test AuthLoginAccessibilityContractTest bleibt bestehen und wird nicht abgeschwaecht.",
|
|
"Es sind keine DB- oder Backend-Flow-Aenderungen erforderlich."
|
|
],
|
|
"scope": {
|
|
"in": [
|
|
"Tenant-Auswahl-Markup in pages/auth/login(login).phtml (choose_tenant stage)",
|
|
"Bei Bedarf minimale, additive CSS-Korrektur in web/css/pages/app-login.css fuer legend/label Darstellung",
|
|
"Verifikation ueber bestehenden Architecture-Contract-Test und Full PHPUnit"
|
|
],
|
|
"out": [
|
|
"Theme-Flow oder Tenant-Switch Logik ausserhalb Auth-Login",
|
|
"Aenderungen an Auth-Service-Businesslogik in lib/Service/Auth",
|
|
"Neues UI-Redesign oder Umbau des gesamten Auth-Login-Bereichs"
|
|
]
|
|
},
|
|
"guardrails": {
|
|
"required_guard_ids": [
|
|
"GR-UI-009",
|
|
"GR-UI-013",
|
|
"GR-UI-010",
|
|
"GR-TEST-001"
|
|
],
|
|
"required_quality_gate_ids": [
|
|
"QG-001",
|
|
"QG-002",
|
|
"QG-003",
|
|
"QG-006"
|
|
]
|
|
},
|
|
"success_criteria": [
|
|
{
|
|
"id": "SC-001",
|
|
"criterion": "Die choose_tenant-Stage enthaelt wieder eine klare textuelle Gruppenbezeichnung mit dem Marker login-tenant-select-label im Fieldset-Kontext."
|
|
},
|
|
{
|
|
"id": "SC-002",
|
|
"criterion": "AuthLoginAccessibilityContractTest ist gruen ohne Abschwaechung der Assertions."
|
|
},
|
|
{
|
|
"id": "SC-003",
|
|
"criterion": "QG-001 (Full PHPUnit) laeuft wieder erfolgreich ohne diesen Fail."
|
|
},
|
|
{
|
|
"id": "SC-004",
|
|
"criterion": "Keine Regression bei PHPStan/CoreStarterkitContract/CS-Check."
|
|
}
|
|
],
|
|
"implementation_steps": [
|
|
{
|
|
"id": "S1",
|
|
"title": "Regression reproduzieren und Ursache fixieren",
|
|
"description": "Aktuellen Failure in AuthLoginAccessibilityContractTest bestaetigen und die fehlende Marker-Stelle im choose_tenant Fieldset lokalisieren.",
|
|
"guard_refs": [
|
|
"GR-TEST-001",
|
|
"GR-UI-009"
|
|
]
|
|
},
|
|
{
|
|
"id": "S2",
|
|
"title": "Tenant-Label semantisch wiederherstellen",
|
|
"description": "In pages/auth/login(login).phtml innerhalb von fieldset.login-tenant-fieldset eine textuelle Gruppenbezeichnung mit Klasse login-tenant-select-label einfuegen (bevorzugt als legend), i18n-konform mit t().",
|
|
"guard_refs": [
|
|
"GR-UI-013",
|
|
"GR-UI-010"
|
|
]
|
|
},
|
|
{
|
|
"id": "S3",
|
|
"title": "Darstellung stabilisieren",
|
|
"description": "Nur falls notwendig minimale additive CSS-Anpassung fuer legend/label vornehmen, ohne bestehende Tastatur- oder Screenreader-Semantik zu verschlechtern.",
|
|
"guard_refs": [
|
|
"GR-UI-009",
|
|
"GR-UI-013"
|
|
]
|
|
},
|
|
{
|
|
"id": "S4",
|
|
"title": "Gates ausfuehren und evidenzbasiert abschliessen",
|
|
"description": "QG-001, QG-002, QG-003 und QG-006 ausfuehren und in execution-report dokumentieren.",
|
|
"guard_refs": [
|
|
"GR-TEST-001",
|
|
"GR-UI-009"
|
|
]
|
|
}
|
|
],
|
|
"tests": [
|
|
"docker compose exec php vendor/bin/phpunit tests/Architecture/AuthLoginAccessibilityContractTest.php --no-progress",
|
|
"docker compose exec php vendor/bin/phpunit",
|
|
"docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon --no-progress",
|
|
"docker compose exec php vendor/bin/phpunit tests/Architecture/CoreStarterkitContractTest.php",
|
|
"docker compose exec php composer cs:check"
|
|
],
|
|
"acceptance_checks": [
|
|
"SC-001: login-tenant-select-label ist in pages/auth/login(login).phtml im choose_tenant-Fieldset vorhanden und textuell befuellt.",
|
|
"SC-002: AuthLoginAccessibilityContractTest meldet PASS.",
|
|
"SC-003: Full PHPUnit (QG-001) meldet PASS ohne den bisherigen Tenant-Label-Fehler.",
|
|
"SC-004: QG-002, QG-003 und QG-006 melden PASS."
|
|
],
|
|
"ux_notes": {
|
|
"affected_patterns": [
|
|
"Auth tenant selection fieldset in login choose_tenant stage"
|
|
],
|
|
"ui_states_required": [
|
|
"error",
|
|
"success"
|
|
],
|
|
"a11y_touchpoints": [
|
|
"Fieldset/legend semantics for tenant radio group",
|
|
"Text label visibility for tenant selection group",
|
|
"Keyboard-operable radio selection unchanged"
|
|
]
|
|
},
|
|
"risks": [
|
|
{
|
|
"risk": "Visuelle Nebenwirkung durch legend-Einfuehrung im bestehenden Login-Layout.",
|
|
"mitigation": "Nur minimale additive CSS-Anpassung, keine strukturellen Layout-Umbauten."
|
|
},
|
|
{
|
|
"risk": "Scheinbarer Fix durch Test-Anpassung statt Markup-Korrektur.",
|
|
"mitigation": "Contract-Test nicht abschwaechen; Marker semantisch im Template wiederherstellen."
|
|
}
|
|
]
|
|
}
|