Files
Assistant/dev/tasks/DEV-000064-capability-resolution-selection-gap-foundation.json
m 9a84ac942c
CI / test (push) Successful in 15s
CI / test (pull_request) Successful in 14s
DEV-000064 capability resolution foundation
2026-08-17 15:51:25 +03:00

162 lines
5.8 KiB
JSON

{
"task_id": "DEV-000064",
"task_revision": 1,
"architecture_revision": "ADR-0013",
"base_repo_revision": "fe531ab56f43bb37a5786e38b094781d3eccb775",
"risk_tier": "E",
"intent": "Add provider-neutral capability implementation resolution, selection and typed gap handling foundation, with reminder scheduling as the first production end-to-end capability.",
"requirement_ids": [
"ADR-0013",
"INV-AUTH-001",
"INV-EPI-001",
"INV-OWN-001",
"Capability availability is not Authority",
"Cognitive Registry remains the specialized cognitive capability registry"
],
"allowed_change_scope": {
"modules": [
"capability",
"continuity",
"interaction",
"work"
],
"paths": [
"architecture/adrs/ADR-0013-capability-resolution-selection-gap-foundation.md",
"architecture/architecture-registry.yaml",
"architecture/architecture-registry.json",
"contracts/capability/**",
"contracts/continuity/**",
"contracts/interaction/**",
"contracts/work/**",
"modules/capability/**",
"modules/continuity/**",
"modules/work/**",
"adapters/postgres/**",
"database/bootstrap/**",
"database/migrations/**",
"cmd/core-runtime/**",
"cmd/continuity-runtime/**",
"cmd/creator-web/**",
"tests/capability_resolution/**",
"tests/owner_acl/**",
"tests/cognitive_advisory/**",
"docs/PROJECT_STATUS.md",
"dev/ACTIVE_TASK.json",
"dev/tasks/DEV-000064-capability-resolution-selection-gap-foundation.json"
]
},
"forbidden_change_scope": {
"paths": [
"architecture/ARCHITECTURE_CONSTITUTION.md",
"modules/authority/**",
"modules/commit/**",
"cmd/commit-runtime/**",
"security/**",
"ci/**",
".gitea/**"
]
},
"allowed_architecture_delta": {
"new_cross_module_dependencies": 3,
"new_canonical_owners": 0,
"new_privileges": 0,
"new_third_party_dependencies": 0,
"new_provider_adapters": 0
},
"contracts": {
"consume": [
"Work CapabilityRequirement",
"Interaction OriginalHumanIntent",
"Continuity ProspectiveItem",
"Cognitive Registry / Router",
"Secret Resolver CredentialRef",
"Authority boundary concepts"
],
"may_change": [
"contracts/capability@v1",
"contracts/continuity@v1",
"contracts/interaction@v1"
]
},
"semantic_owner": "capability",
"canonical_state": [
"Capability",
"CapabilityImplementation",
"CapabilityResolution",
"CapabilitySelection",
"CapabilityGap",
"AcquisitionStrategyCandidate",
"CapabilityUsageObservation"
],
"state_transitions": [
"implementation qualification DISCOVERED/PROBING/EVALUATING/VALIDATED/REJECTED",
"implementation activation INACTIVE/CANARY/ACTIVE/DEPRECATED/RETIRED",
"implementation health UNKNOWN/AVAILABLE/DEGRADED/UNAVAILABLE",
"resolution AVAILABLE/PARTIALLY_AVAILABLE/UNAVAILABLE/UNKNOWN",
"gap records reasons without executing or granting Authority"
],
"side_effects_and_privileges": [
"Capability registry writes are owner-local",
"Reminder scheduling creates Continuity-owned ProspectiveItem through Continuity runtime boundary",
"No external mutation",
"No Commit/Executor invocation for reminder registration",
"No ACTIVE cognitive binding promotion",
"No OpenAI activation",
"CredentialRef is metadata and does not grant Authority"
],
"persistence_and_migrations": [
"capability owner-local implementation registry",
"capability owner-local gap records",
"capability owner-local generic usage observations",
"continuity owner-local reminder creation endpoint using existing prospective_items",
"no cross-owner FK",
"no cross-owner SQL join dependency"
],
"failure_retry_restart": [
"registered implementation can be unavailable without breaking startup",
"resolver fails closed when implementation is missing, unhealthy, inactive, unqualified or unauthorized",
"capability gap is persisted with OriginalHumanIntent correlation",
"reminder creation is persisted as a Continuity ProspectiveItem",
"cognitive router remains authoritative for cognitive invocation"
],
"assumptions": [
"DEV-000063 is production baseline",
"Capability owner is canonical Capability registry owner per Core Semantic Model",
"Continuity owner remains canonical ProspectiveItem owner",
"existing CPU CANARY remains not ACTIVE",
"docker-test prohibited"
],
"acceptance_scenarios": [
"Reminder resolves to scheduling implementation",
"Reminder is actually created and can be verified",
"Simple question still works without durable Work",
"Unsupported SEND_EMAIL returns persisted CapabilityGap",
"Unavailable implementation is excluded",
"Same capability with two implementations can be represented",
"Selection does not depend on hardcoded provider name",
"CredentialRef does not grant Authority",
"Capability is not Authority",
"Capability gap preserves OriginalHumanIntent correlation",
"One Goal can require multiple capabilities",
"Cognitive binding remains functioning",
"RTX unavailable does not break CPU cognition",
"LLM-free mode passes"
],
"required_tests": [
"go test ./...",
"go vet ./...",
"go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json",
"go run ./cmd/devctl check-architecture",
"go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json",
"tests/cognitive_advisory/cognitive_worker_env_policy_test.ps1",
"tests/owner_acl/verify.ps1 -DockerContext docker-prod -PostgresContainer assistant-postgres-1",
"production live /chat acceptance"
],
"terminal_gap_states": [
"BLOCKED_BY_ARCHITECTURE_GAP",
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_MISSING_CAPABILITY",
"BLOCKED_BY_CONFLICT"
]
}