Tack
Concepts

Streams

Parallel work units with file scopes and dependencies.

What is a Stream?

A stream is a unit of parallel work within a plan. Each stream has:

  • Title — what the stream does
  • Description — detailed task specification for the agent
  • File scope — glob patterns defining which files the stream can modify
  • Dependencies — other streams that must complete before this one starts

Streams are the operator-facing execution unit. Each stream carries a task description derived from the discovery dossier. When a builder or reviewer encounters issues, Tack adjusts guidance for subsequent retry attempts within the same objective.

Parallel Execution

Streams without dependencies run in parallel. Tack schedules streams based on:

  • Dependencies — stream B won't start until stream A completes
  • Concurrency limit — configurable max concurrent agents
agents:
  max_concurrent: 4

File Scope

Each stream gets a file scope — a set of glob patterns that define its territory:

Stream 1: ["src/api/routes/**", "src/api/middleware/**"]
Stream 2: ["src/components/**", "src/hooks/**"]

File scope affects:

  • Quality gates — gate failures are only attributed to the stream if errors are in its files
  • Agent guidance — agents know their boundaries

Dependencies

Streams can depend on other streams:

Stream 1: "Add database migration" (no dependencies)
Stream 2: "Add API endpoint" (depends on Stream 1)
Stream 3: "Add frontend form" (depends on Stream 2)

Tack respects dependencies at both execution time (scheduling) and merge time (merge ordering).

Stream Lifecycle

Pending Executing Completed Merge ready Merging Merged Failed Retry

See Also

On this page