Files
Assistant/dev/tasks/DEV-000046-cognitive-advisory-contract.json
m f9cdd67229
CI / test (push) Successful in 12s
CI / test (pull_request) Successful in 11s
feat: add cognitive advisory contract
2026-08-16 20:05:12 +03:00

24 lines
2.4 KiB
JSON

{
"task_id": "DEV-000046",
"task_revision": 1,
"architecture_revision": "ADR-0006",
"base_repo_revision": "b896d218f80af277ccf4e15d28fbffb1c7bad937",
"risk_tier": "E",
"intent": "Implement the provider-neutral creator-advisory-v1 contract, fail-closed validation, deterministic unavailable fake, and cognitive-worker HTTP contract without provider egress, persistence, tools or canonical authority.",
"requirement_ids": ["ADR-0006", "FD-001", "FD-009", "INV-EPI-001"],
"allowed_change_scope": {"modules": [], "paths": ["contracts/cognitive/**", "adapters/models/**", "cmd/cognitive-worker/**", "tests/cognitive_advisory/**", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000046-cognitive-advisory-contract.json"]},
"forbidden_change_scope": {"paths": ["architecture/**", "ci/**", ".gitea/**", "contracts/authority/**", "contracts/commit/**", "modules/**", "adapters/postgres/**", "database/**", "deploy/**", "security/**"]},
"allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0},
"contracts": {"consume": ["contracts.identity@v1", "contracts.authority@v1", "contracts.capability@v1", "ADR-0006"], "may_change": ["new contracts.cognitive creator-advisory-v1"]},
"semantic_owner": "none-cognitive-gateway",
"canonical_state": [],
"state_transitions": [],
"side_effects_and_privileges": ["none; deterministic endpoint performs no network call or mutation"],
"persistence_and_migrations": [],
"failure_retry_restart": ["invalid or secret context rejected before adapter", "fake reports PROVIDER_UNAVAILABLE without fabricated text", "request loss creates no obligation and no retry"],
"assumptions": ["real provider remains unselected and outbound egress disabled", "docker-test remains prohibited"],
"acceptance_scenarios": ["valid typed request serializes without provider types", "secret/unknown/oversized/duplicate context is rejected", "response citations outside supplied excerpts are rejected", "unknown JSON fields are rejected", "fake returns explicit PROVIDER_UNAVAILABLE and no action/tool fields", "existing deterministic proposal fake remains compatible"],
"required_tests": ["unit", "HTTP contract", "adversarial validation", "go test", "go vet", "architecture preflight", "exact diff scope", "CI"],
"terminal_gap_states": ["BLOCKED_BY_ARCHITECTURE_GAP", "BLOCKED_BY_SPEC_GAP", "BLOCKED_BY_CONFLICT"]
}