Tasks
@arbe/task is repo-native planning state — local on purpose. Lives in .arbe/tasks/ as meta.json + deps.json + one JSON file per task, committed alongside the code it motivated. Not the substrate’s universal planning model — it’s the planning surface for code work in one repo.
status open · in_progress · blocked · closed · deferredtype bug · feature · task · chore · epicpriority 0..4deps blocks · discovered-fromarbe task list shows tasks by status. arbe task ready is narrower: only open and in_progress tasks with no open blocks deps — the starting point for every session. List output annotates open blockers; --json and view --json include is_ready + open_blockers so callers don’t recompute readiness. Normal loop is still ready → claim → implement → close.
A task body is a commitment pointer, not a design doc. Keep it to one screen — Why, Outcome, scope. Reasoning, full type shapes, and decision histories live in docs/ and get linked. When a task body grows past that, it’s two things: task + doc, or epic + subtasks.
Code: packages/task/src/task.ts (CRUD, dep cycle detection, ready/blocked computation). CLI: arbe task --help.
See cli, system/control-plane, thinking/layers, threads.