Task and stream tools
Task and stream tools coordinate parallel work. A stream is the shared integration branch for an area, such asstream/os-skills. A task is an isolated branch, worktree, metadata bundle, and draft PR for one focused change.
This page describes the tool surface. It does not replace the Task Workflow skill, which owns the required lifecycle, workpad rules, validation order, conflict handling, PR promotion, and cleanup policy.
Start with stream.context when the stream area is known. It reports the stream branch, open task PRs, recent commits, current worktrees, and recent workpads. That gives the agent enough situational awareness to avoid colliding with other agents:
stream.list only when the correct area is unknown. It lists stream branches so the agent can ask for or confirm the right target instead of silently choosing one.
stream.sync is the mutating stream maintenance tool. It syncs a stream branch with main. Because it changes shared integration state, it should be used deliberately, usually when a stream PR has drifted from main or the task workflow calls for stream repair. In a parallel-agent stream, read context first and treat conflicts involving source docs, code, tests, config, or generated files as real conflicts.
Once the stream is known, task.start creates the isolated task branch and worktree. It returns the taskSession, which is the durable handle for subsequent task-scoped calls:
task.start, pass taskSession at the top level of task-scoped calls. Do not rely on the current branch, root .task/current.json, or ambient task selection:
task.push publishes the task branch update. It usually sends changed task files with a commit message:
task.pr promotes the task into the stream and creates or refreshes the stream review PR. By default, the review path is task/<area>/<slug> into stream/<area>, then stream/<area> into main:
taskOnly: true is an explicit stop mode, not the default.
task.finish cleans up the task worktree and local task state after merge proof exists and cleanup is safe. It is intentionally last:
taskSession, validation evidence, and stream PR promotion rather than from local branch assumptions.