|
|
|
@@ -0,0 +1,23 @@
|
|
|
|
|
{
|
|
|
|
|
"task_id": "DEV-000153",
|
|
|
|
|
"task_revision": 1,
|
|
|
|
|
"architecture_revision": "ADR-0010",
|
|
|
|
|
"base_repo_revision": "dbbc54171d9c8a9edaa93e5ff5870d3ec434d799",
|
|
|
|
|
"risk_tier": "E",
|
|
|
|
|
"intent": "Wire the production cognitive-worker to the existing protected secret volume for optional local CPU gateway authentication without placing credential material in compose environment values.",
|
|
|
|
|
"requirement_ids": ["AUDIT-WP-003", "AUDIT-WP-201", "CONSTITUTION-1.3.28"],
|
|
|
|
|
"allowed_change_scope": {"modules": ["cognitive"], "paths": ["deploy/docker-compose.prod.yml", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000153-fleet-secret-wiring.json"]},
|
|
|
|
|
"forbidden_change_scope": {"paths": ["architecture/**", "security/**", "cmd/devctl/**", ".gitea/**", "database/**", "contracts/**", "modules/**", "adapters/**"]},
|
|
|
|
|
"allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 1, "new_third_party_dependencies": 0, "new_database_owner_roles": 0},
|
|
|
|
|
"contracts": {"consume": ["assistant_core_secrets read-only volume", "optional LOCAL_CPU_PROVIDER_API_KEY_FILE reference"], "may_change": []},
|
|
|
|
|
"semantic_owner": "capability",
|
|
|
|
|
"canonical_state": ["provider credential material remains outside repository and compose environment"],
|
|
|
|
|
"state_transitions": ["when operators provision the referenced file, cognitive-worker resolves it and authenticates the local CPU gateway; when absent, existing recovery behavior remains available"],
|
|
|
|
|
"side_effects_and_privileges": ["read-only mount only; no secret value is added to compose"],
|
|
|
|
|
"persistence_and_migrations": ["no database migration"],
|
|
|
|
|
"failure_retry_restart": ["empty optional file reference preserves current unauthenticated startup", "configured missing credential file fails closed at worker startup"],
|
|
|
|
|
"assumptions": ["the gateway credential is provisioned by production operators into assistant_core_secrets; this task does not copy or reveal it"],
|
|
|
|
|
"acceptance_scenarios": ["compose renders with empty optional key path", "cognitive-worker receives read-only /run/secrets mount", "no literal provider credential occurs in repository or compose", "CI and production deployment succeed"],
|
|
|
|
|
"required_tests": ["go test", "go vet", "docker compose config", "architecture preflight", "check-diff", "git diff --check", "independent", "CI"],
|
|
|
|
|
"terminal_gap_states": ["BLOCKED_BY_MISSING_CAPABILITY", "BLOCKED_BY_CONFLICT", "BLOCKED_BY_ARCHITECTURE_GAP"]
|
|
|
|
|
}
|