Skip to content
View as .md

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 · deferred
type bug · feature · task · chore · epic
priority 0..4
deps blocks · discovered-from

arbe 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.