diff --git a/cmd/work-graph-runtime/main.go b/cmd/work-graph-runtime/main.go index 3392f9c..e9e11a3 100644 --- a/cmd/work-graph-runtime/main.go +++ b/cmd/work-graph-runtime/main.go @@ -44,6 +44,7 @@ func main() { } graph, ready, err := application.AdmitAndSchedule(r.Context(), repository, request) if err != nil { + log.Printf("work graph schedule rejected: %v", err) http.Error(w, err.Error(), http.StatusUnprocessableEntity) return } @@ -57,6 +58,7 @@ func main() { } graph, ready, err := application.AdmitAndScheduleTaskEvaluation(r.Context(), repository, request) if err != nil { + log.Printf("task evaluation graph schedule rejected: %v", err) http.Error(w, err.Error(), http.StatusUnprocessableEntity) return } diff --git a/dev/ACTIVE_TASK.json b/dev/ACTIVE_TASK.json index 4a69794..abc35de 100644 --- a/dev/ACTIVE_TASK.json +++ b/dev/ACTIVE_TASK.json @@ -1,5 +1,5 @@ { - "task_file": "dev/tasks/DEV-000247-research-runtime-status.json", - "task_id": "DEV-000247", + "task_file": "dev/tasks/DEV-000248-live-task-evaluation-scheduling.json", + "task_id": "DEV-000248", "task_revision": 1 } diff --git a/dev/tasks/DEV-000248-live-task-evaluation-scheduling.json b/dev/tasks/DEV-000248-live-task-evaluation-scheduling.json new file mode 100644 index 0000000..f224b01 --- /dev/null +++ b/dev/tasks/DEV-000248-live-task-evaluation-scheduling.json @@ -0,0 +1,23 @@ +{ + "task_id": "DEV-000248", + "task_revision": 1, + "architecture_revision": "ADR-0018", + "base_repo_revision": "cdc72e17be46c843737eabcd654cb69ae32d6268", + "risk_tier": "E", + "intent": "Diagnose and repair the live Work Graph task-evaluation scheduling path exposed by the production canary, preserving durable fan-out and callback semantics.", + "requirement_ids": ["live task evaluation", "model quality qualification", "Work Graph integration"], + "allowed_change_scope": {"modules": ["work", "capability"], "paths": ["cmd/work-graph-runtime/**", "adapters/postgres/work_repository.go", "modules/work/application/**", "modules/work/domain/**", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000248-live-task-evaluation-scheduling.json"]}, + "forbidden_change_scope": {"paths": ["architecture/**", "security/**", "database/**", "deploy/**", "contracts/**", "LLM-local/**", "modules/work/secrets/**"]}, + "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": ["existing TaskEvaluationGraphRequest", "existing AgentDispatchIntent", "existing Work Graph repository"], "may_change": ["diagnostic logging and local integration behavior"]}, + "semantic_owner": "Work Graph task-evaluation scheduling", + "canonical_state": ["existing graph, dispatch and evaluation records only"], + "state_transitions": ["schedule -> queue -> evaluator -> verifier -> evidence callback"], + "side_effects_and_privileges": ["existing work/capability owner writes; no new privileges"], + "persistence_and_migrations": ["none unless current schema mismatch is proven"], + "failure_retry_restart": ["failed scheduling leaves no partial graph or dispatch mutation; durable retries remain existing worker behavior"], + "assumptions": ["production canary payload is provider-neutral and contains no secret"], + "acceptance_scenarios": ["live general evaluation graph schedules", "worker executes and verifier accepts one case", "TaskEvaluation persists", "graph callback reaches terminal state"], + "required_tests": ["go test ./cmd/work-graph-runtime ./modules/work/application ./modules/work/domain ./adapters/postgres", "go vet ./cmd/work-graph-runtime ./modules/work/application ./modules/work/domain ./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", "live task-evaluation canary"], + "terminal_gap_states": ["BLOCKED_BY_MISSING_CAPABILITY", "BLOCKED_BY_SPEC_GAP"] +}