24 lines
2.2 KiB
JSON
24 lines
2.2 KiB
JSON
{
|
|
"task_id": "DEV-000129",
|
|
"task_revision": 1,
|
|
"architecture_revision": "ADR-0018",
|
|
"base_repo_revision": "bab96b7",
|
|
"risk_tier": "E",
|
|
"intent": "Add durable Work-owned dispatch queue with atomic claim, retry attempt count and terminal state transitions as the first real dispatcher runtime foundation.",
|
|
"requirement_ids": ["WP-301", "Durable dispatcher queue", "Atomic claim"],
|
|
"allowed_change_scope": {"modules": ["work-agent-execution", "work-storage"], "paths": ["database/migrations/030_work_agent_dispatch_queue.sql", "contracts/work/dispatch_queue.go", "adapters/postgres/work_repository.go", "tests/agent_execution/dispatch_queue_sql_test.go", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000129-agent-dispatch-queue.json"]},
|
|
"forbidden_change_scope": {"paths": ["architecture/**", "security/**", "deploy/**", "cmd/**", "runtime/**", ".gitea/**"]},
|
|
"allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 1},
|
|
"contracts": {"consume": ["DEV-000121 durable persistence", "DEV-000120 dispatch intent"], "may_change": ["Work dispatch queue contract and repository methods"]},
|
|
"semantic_owner": "work-agent-execution",
|
|
"canonical_state": ["work.agent_dispatch_queue"],
|
|
"state_transitions": ["QUEUED -> CLAIMED -> COMPLETED/FAILED"],
|
|
"side_effects_and_privileges": ["Work schema only; no cross-owner SQL; no runtime entrypoint"],
|
|
"persistence_and_migrations": ["Append-only migration 030; work_role only; production apply is a later canary step"],
|
|
"failure_retry_restart": ["SKIP LOCKED prevents duplicate claim; attempts are durable; terminal transition is worker-fenced"],
|
|
"assumptions": ["A later worker task will enqueue intents and execute claimed work"],
|
|
"acceptance_scenarios": ["Queue schema is durable", "Concurrent claim uses row lock and SKIP LOCKED", "Wrong worker cannot complete another claim"],
|
|
"required_tests": ["go test ./...", "go vet ./...", "preflight", "check-diff", "check-architecture", "independent", "git diff --check"],
|
|
"terminal_gap_states": ["BLOCKED_BY_MIGRATION_DECISION", "BLOCKED_BY_SPEC_GAP", "BLOCKED_BY_CONFLICT"]
|
|
}
|