> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ctrlnode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Steps and activation

> Predecessors, artifacts, and step hand-offs

## Step → task

Each **work step** node becomes a **task** when the orchestrator activates it. The task inherits:

* Agent assignment from the step
* Instructions (markdown)
* Input files from the step manifest and predecessor outputs

Open a step node to configure it in the right panel.

## Linking steps (sources and destinations)

Edges on the canvas define execution order. The step panel offers precise control with **Sources** and **Destinations**:

![Step panel: assigned agent, new task, sources and destinations](https://raw.githubusercontent.com/ctrlnode-ai/ctrlnode/docs/product-screenshots/docs/product-screenshots/14-step-node-dependencies.png)

| Section                | Meaning                                                            |
| ---------------------- | ------------------------------------------------------------------ |
| **← Sources**          | Steps that must complete (or trigger) **before** this step can run |
| **DESTINATIONS →**     | Steps that run **after** this step finishes                        |
| **+ Add source…**      | Pick an upstream step to add a dependency into this node           |
| **+ Add destination…** | Pick a downstream step this node feeds                             |
| **✕** on a row         | Remove that link (updates the graph)                               |

<Note>
  The trigger node links to **Step 1** automatically when you connect the timer to the first work step. The SET TRIGGER panel lists those links under **Triggers** — see [Schedules & triggers](/routines/schedules-and-triggers).
</Note>

### Typical patterns

* **Linear pipeline** — Step 1 → Step 2 → Step 3 (each step lists the previous as a source and the next as a destination).
* **Fan-out** — One step with multiple destinations (parallel downstream steps once orchestration allows).
* **Join** — One step with multiple sources (waits for several predecessors).

Assign an **agent** and **+ New task** (or link an existing task) on each step before **Run now**, **Activate**, or **Activate schedule** — unassigned steps show **No task assigned** on the canvas.

## Predecessor activation

Steps can also declare **activates when** a specific predecessor task reaches a state (for example `done`). The orchestrator:

1. Waits for the predecessor task to complete
2. Copies relevant **artifacts** into the successor’s `input_files.json`
3. Creates or updates the successor task and dispatches to Bridge

Folder-only manifest rows from predecessors are skipped when cloning inputs to avoid duplicating pipeline links.

## Designer hygiene

Saving a definition may **prune stale step references** on other non–in-flight pipelines that pointed at renamed tasks — keeps the graph consistent.

## Task detail in a workflow

On task detail, **Linked workflow** shows as a chip linking back to the designer. **Linked predecessor tasks** appears only when loaded steps include an `activatesOnTaskId` for this task.

Next: [Status & recovery](/workflows/status-and-recovery)
