Submatter/plans/Plan-automation-foundation/Epic-apps-worker-v1/Task-worker-minimal-tool-loop.md
Randall Stillwell 35def387ae docs(plans): add Autensa benchmark tasks to automation foundation roadmap
Map reliability, operator UX, and spend-control follow-ons onto epics 1–9
so worker, webhooks, and fleet work have bead-scale task briefs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 10:48:36 -05:00

2.3 KiB

kind slug title plan_slug epic_slug status priority tenant_id owner cursor_todo_id updated_at agent_prompt
task worker-minimal-tool-loop apps/worker — minimal tool loop and worktree-per-brief automation-foundation apps-worker-v1 ready P1 global unassigned null 2026-08-03 Epic: apps/worker v1. Read docs/worker.md and docs/adr-model-routing.md. Consume orchestrator jobs from Redis; resolve model via workspace registry. claim_task / complete_task parity with MCP. Run pnpm lint && pnpm type-check && pnpm test before done.

Task summary

Ship the baseline apps/worker consumer: dequeue role_dispatch jobs, run WorkerSession tool loop against a git worktree, and close with model + token metadata on complete_task.

Description

Core v1 scope from Epic-apps-worker-v1. Builds on existing package skeleton (handle-job.ts, minimal-session.ts, allowlisted tools, worktree helpers).

Worker loop

  • BLPOP on echodo:orchestrator:jobs (same key as orchestrator).
  • Load brief path + role from job payload; resolve model via shared resolver.
  • claim_task on matching backlog item; run read_file / write_file / grep / run_command (allowlist: pnpm lint, pnpm type-check, pnpm test, git status, git diff).
  • complete_task with modelAlias, token totals, outcome.

Git

  • One worktree per brief under WORKER_WORKTREE_BASE.
  • Branch naming convention documented for Epic 8 PR linking.

PR output

  • Open draft PR via forge adapter from connected repo (Epic 3).

Subtasks

  • Wire live dequeue loop (non-dry-run) end-to-end
  • Role prompt = .cursor/agents/role-*.md + brief markdown path
  • Worktree create/teardown on success and failure
  • Draft PR via forge adapter when implementer completes
  • docs/worker.md matches shipped behavior

Estimation

L

Acceptance criteria

  • One implementer brief from .convoys/ completes unattended on a connected repo
  • complete_task includes model alias + token totals
  • Failed runs tear down worktree and mark run failed
  • WORKER_DRY_RUN=1 still exits cleanly without Redis
  • Epic: ./Epic-apps-worker-v1.md
  • Plan: ../Plan-automation-foundation.md
  • Design reference: Autensa convoy build phase (concepts only — no OpenClaw dependency)