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: 4File 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
See Also
- Quality Gates — how gate failures are attributed to streams
- Recovery & Retries — what happens when a stream fails
- Merge Queue — how merged streams are integrated
- Isolation & Sandboxes — how streams are isolated from each other