24 lines
2.6 KiB
JSON
24 lines
2.6 KiB
JSON
{
|
|
"task_id": "DEV-000243",
|
|
"task_revision": 1,
|
|
"architecture_revision": "ADR-0018",
|
|
"base_repo_revision": "47327cc6d853da9084c96e3bf48502266706ca57",
|
|
"risk_tier": "E",
|
|
"intent": "Make Capability selection consume the latest durable qualification observation for fresh unavailability exclusion and transparent latency rating, without granting quality or activation.",
|
|
"requirement_ids": ["qualification selection loop", "hardware-neutral routing", "quality separated from reachability"],
|
|
"allowed_change_scope": {"modules": ["capability", "adapters/postgres"], "paths": ["adapters/postgres/capability_repository.go", "contracts/capability/cognitive_registry.go", "modules/capability/domain/cognitive_registry.go", "modules/capability/domain/model_rating_test.go", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000243-qualification-selection-evidence.json"]},
|
|
"forbidden_change_scope": {"paths": ["architecture/**", "security/**", "database/**", "deploy/**", "LLM-local/**", "modules/work/secrets/**", "contracts/work/**"]},
|
|
"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": ["durable ModelQualificationObservation"], "may_change": ["resolved binding evidence projection"]},
|
|
"semantic_owner": "Capability selection and rating",
|
|
"canonical_state": ["qualification observation remains evidence; no activation mutation"],
|
|
"state_transitions": ["fresh UNAVAILABLE observation -> candidate excluded", "stale UNAVAILABLE observation -> discovery state remains authoritative", "REACHABLE observation -> latency evidence only"],
|
|
"side_effects_and_privileges": ["read-only projection and deterministic selection"],
|
|
"persistence_and_migrations": ["uses migration 045 from DEV-000242"],
|
|
"failure_retry_restart": ["missing observation preserves existing behavior"],
|
|
"assumptions": ["provider/model observed timestamps define freshness boundary"],
|
|
"acceptance_scenarios": ["fresh unavailable candidate is not selected", "stale unavailable candidate is not permanently poisoned", "quality remains task-evaluation controlled"],
|
|
"required_tests": ["go test ./modules/capability/... ./adapters/postgres/...", "go vet ./modules/capability/... ./adapters/postgres/...", "go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json", "go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json", "go run ./cmd/devctl check-architecture", "git diff --check", "independent", "CI", "production health smoke"],
|
|
"terminal_gap_states": ["BLOCKED_BY_MISSING_CAPABILITY", "BLOCKED_BY_SPEC_GAP"]
|
|
}
|