Files
Assistant/dev/tasks/DEV-000138-ui-operations-acceptance-contract.json
2026-08-22 13:49:03 +03:00

24 lines
2.0 KiB
JSON

{
"task_id": "DEV-000138",
"task_revision": 1,
"architecture_revision": "ADR-0018",
"base_repo_revision": "1ccd43c",
"risk_tier": "E",
"intent": "Add executable contract coverage for authenticated cabinet, operations, learning, accessibility, responsive, and reduced-motion surfaces.",
"requirement_ids": ["WP-801", "WP-802", "WP-805", "Authenticated cabinet acceptance"],
"allowed_change_scope": {"modules": ["creator-web"], "paths": ["tests/creator_web/cabinet_acceptance_contract_test.go", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000138-ui-operations-acceptance-contract.json"]},
"forbidden_change_scope": {"paths": ["architecture/**", "security/**", "deploy/**", "database/**", "cmd/**", "contracts/**", ".gitea/**"]},
"allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 0},
"contracts": {"consume": ["Existing creator-web authenticated API and static cabinet"], "may_change": ["Acceptance tests only"]},
"semantic_owner": "creator-web",
"canonical_state": ["None; tests inspect existing UI contract"],
"state_transitions": ["login session gates cabinet; operations and learning request authenticated API data"],
"side_effects_and_privileges": ["No external mutation; live authenticated browser acceptance remains a separate production verification"],
"persistence_and_migrations": ["None"],
"failure_retry_restart": ["Missing auth, learning, or responsive contract fails CI"],
"assumptions": ["Credentials are never embedded in acceptance tests"],
"acceptance_scenarios": ["cabinet exposes operations and reflection surfaces", "session and learning routes are authenticated", "mobile/reduced motion rules are present"],
"required_tests": ["go test ./...", "go vet ./...", "preflight", "check-diff", "check-architecture", "independent", "git diff --check"],
"terminal_gap_states": ["BLOCKED_BY_AUTHENTICATED_BROWSER_SESSION", "BLOCKED_BY_CONFLICT"]
}