73 lines
4.4 KiB
JSON
73 lines
4.4 KiB
JSON
{
|
|
"task_id": "DEV-000083",
|
|
"task_revision": 3,
|
|
"architecture_revision": "DEV-000073-baseline",
|
|
"base_repo_revision": "0a2599cfa6255f1a98856d2fd09dc51a2119f525",
|
|
"risk_tier": "C",
|
|
"intent": "Keep Domovoy alive and conversational when the primary cognitive channel is unavailable by running a small local Lifeboat provider and retaining an honest deterministic degraded mode.",
|
|
"requirement_ids": [
|
|
"Primary cognitive settings remain confirmation-controlled while healthy",
|
|
"Unavailable primary cognition exposes a human-readable degraded mode instead of killing chat",
|
|
"A small local-only provider can serve as the Lifeboat through the existing Cognitive Gateway",
|
|
"The core can still accept and explain configuration requests when all model providers are unavailable"
|
|
],
|
|
"allowed_change_scope": {
|
|
"modules": ["cmd/core-runtime", "cmd/cognitive-worker", "cmd/creator-web", "modules/capability", "adapters/postgres", "deployment"],
|
|
"paths": [
|
|
"cmd/core-runtime/main.go",
|
|
"cmd/core-runtime/main_test.go",
|
|
"cmd/cognitive-worker/main.go",
|
|
"cmd/cognitive-worker/main_test.go",
|
|
"modules/capability/domain/cognitive_registry.go",
|
|
"modules/capability/domain/cognitive_registry_test.go",
|
|
"modules/capability/ports/repository.go",
|
|
"contracts/capability/cognitive_registry.go",
|
|
"cmd/creator-web/static/assets/chat.js",
|
|
"cmd/creator-web/static/chat.html",
|
|
"cmd/creator-web/chat_test.go",
|
|
"adapters/postgres/capability_repository.go",
|
|
"tests/cognitive_canary/promotion_test.go",
|
|
"deploy/docker-compose.prod.yml",
|
|
"deploy/docker-compose.dev.yml",
|
|
"dev/tasks/DEV-000083-lifeboat-benchmark-manifest.json",
|
|
"docs/evidence/domovoy-lifeboat-qualification-2026-08-21-v1.json",
|
|
"dev/tasks/DEV-000083-domovoy-lifeboat-mode.json"
|
|
]
|
|
},
|
|
"forbidden_change_scope": {
|
|
"paths": ["architecture/**", "security/**", "database/**", "contracts/**", "adapters/**", "modules/**"]
|
|
},
|
|
"allowed_architecture_delta": {
|
|
"new_cross_module_dependencies": 0,
|
|
"new_canonical_owners": 0,
|
|
"new_privileges": 0,
|
|
"new_third_party_dependencies": 0,
|
|
"new_provider_adapters": 0,
|
|
"new_database_owner_roles": 0
|
|
},
|
|
"contracts": {
|
|
"consume": ["existing Cognitive Gateway and Capability Registry", "existing chat response fields", "existing cognitive health endpoint"],
|
|
"may_change": ["authorized cognitive activation transition"]
|
|
},
|
|
"semantic_owner": "capability-observation-consumer",
|
|
"canonical_state": [],
|
|
"state_transitions": [
|
|
"Healthy primary channel keeps normal configuration handoff and confirmation behavior",
|
|
"Unavailable primary channel renders Domovoy alive in local degraded mode",
|
|
"Optional Lifeboat provider participates only through the existing gateway resolution/failover path"
|
|
],
|
|
"side_effects_and_privileges": ["No new privilege", "No external egress", "No direct provider call from Core", "No configuration mutation from browser chat"],
|
|
"persistence_and_migrations": ["No migration", "Existing conversation and capability observations only"],
|
|
"failure_retry_restart": ["Provider absence falls back to the deterministic core reply", "The Lifeboat container restarts independently from the primary model runtime", "Restart reconstructs the provider registration from environment"],
|
|
"assumptions": ["The Lifeboat endpoint implements the existing OpenAI-compatible local adapter contract", "Capability discovery/promotion remains the existing authorized path", "No real test secrets are in scope for this task"],
|
|
"acceptance_scenarios": [
|
|
"Primary unavailable message says Domovoy remains alive and can help recover",
|
|
"Configuration request in degraded mode no longer falsely requires the primary model",
|
|
"Production Lifeboat container exposes the configured small local model through the existing gateway adapter",
|
|
"Chat status distinguishes primary unavailable from Domovoy unavailable",
|
|
"Healthy mode keeps confirmation/console wording"
|
|
],
|
|
"required_tests": ["go test ./cmd/core-runtime", "go test ./cmd/cognitive-worker", "go test ./cmd/creator-web", "go test ./...", "go vet ./...", "devctl preflight", "devctl check-diff", "devctl check-architecture", "git diff --check", "node --check cmd/creator-web/static/assets/chat.js"],
|
|
"terminal_gap_states": ["BLOCKED_BY_ARCHITECTURE_GAP", "BLOCKED_BY_SPEC_GAP", "BLOCKED_BY_MISSING_CAPABILITY", "BLOCKED_BY_CONFLICT"]
|
|
}
|