Tack
Guides

Custom Blueprints

Design your own agent workflows with YAML state machines.

How Blueprint Overrides Work

Place custom blueprints in one of these locations:

  • ~/.config/tack/blueprints/
  • <repo>/.tack/blueprints/

Blueprints override each other by id, not by filename. Filenames are organizational only.

Example: Skip Review

Remove the reviewer step for faster iteration:

# .tack/blueprints/review-lite.yaml
id: build-review
name: Review lite

retry:
  profile: balanced

steps:
  - id: build
    type: agent
    role: builder
    commit: auto
    next: lint

  - id: lint
    type: deterministic
    action: run_quality_gates
    retry:
      max_attempts: 3
    on_fail: build
    max_fix_iterations: 5
    next: merge_ready

  - id: merge_ready
    type: deterministic
    action: signal_merge_ready

Because the blueprint id is still build-review, this definition replaces the shipped nested workflow for the current project.

Example: Add Scout Step

Add a reconnaissance step before building:

# .tack/blueprints/build-review-with-scout.yaml
id: build-review
name: Build and review with scout

retry:
  profile: self_healing

steps:
  - id: scout
    type: agent
    role: scout
    commit: none
    optional: true
    next: build

  - id: build
    type: agent
    role: builder
    commit: auto
    next: lint

  - id: lint
    type: deterministic
    action: run_quality_gates
    retry:
      max_attempts: 2
    on_fail: build
    max_fix_iterations: 3
    next: merge_ready

  - id: merge_ready
    type: deterministic
    action: signal_merge_ready

Example: Replace The Top-Level Workflow

You can also replace the shipped standard blueprint by reusing its id:

# .tack/blueprints/team-standard.yaml
id: standard
name: Team standard workflow
default: true
steps:
  - id: plan
    type: agent
    role: planner
    commit: none
    next: approve

  - id: approve
    type: human
    next: execute

  - id: execute
    type: blueprint_ref
    ref: build-review
    foreach: work_item
    on_work_item_failure: escalate
    next: merge

  - id: merge
    type: deterministic
    action: merge_queue

Nested blueprint references now use ref: <blueprint-id>. Do not reference filenames or file paths.

Step Reference

See the Blueprints concept page for the full list of step types and options.

On this page