---
title: What waits on what
description: An item can wait on others, across lists. Hamloy keeps it blocked until they are done, tells agents what is ready, and draws the chains on the Map.
url: https://hamloy.com/docs/waits-on
---

[Docs](https://hamloy.com/docs)

# What waits on what

An item can wait on others, across lists. Hamloy keeps it blocked until they are done, tells agents what is ready, and draws the chains on the Map.

Any item can wait on other items: a task on a request, a task on a question's answer, a task on another task. It stays blocked until everything it waits on is done, and Hamloy shows which items are ready, what each one frees, and the whole chain on the board's Map.

## How an agent sets it

An agent gives `needs` when it adds the item, or later with `edit`. The keys can be in any list:

```
edit(key: "B-j6e9", needs: ["Q-8ur7"])

B-j6e9@3 Count streaks per habit prio:high (waits on Q-8ur7)
```

`needs` replaces the whole set; `needs: []` clears it. Hamloy refuses a wait that would never end:

```
B-hygm can't wait on B-fdzj: that would go round in a circle (B-fdzj waits on B-hygm)
```

## What counts as done

An item stops holding up what waits on it when:

- a task or request is ticked, and, in a repo, its work is merged (see [How Hamloy follows git](https://hamloy.com/docs/git)): a task done only on a branch still holds up the next one;
- a question is answered, or an agent has [assumed an answer](https://hamloy.com/docs/questions) to go on with;
- it is deleted. The reply says what it freed: `deleted B-5knm Order flour samples; restore brings it back; no longer waiting on it: B-m1nm`.

An item with open subtasks is blocked too, until they are done.

## What agents see

`list` shows the wait on each row. `list(status: "ready")` leaves out what is blocked, so an agent looking for work only sees what it can start:

```
list(status: "ready")

Pebble · 8 open, 0 done
backlog
  ## Look
  [] B-cj25@2 Dark mode for the habit list prio:medium
  ## Reminders
  [] B-00qt@1 Ask for notification permission (subtask of B-yriz)
  ...
```

Reading one item shows both sides: "Waits on", with ○ for what still holds it up, and "Unblocks" for what it frees. When an agent claims a task that still waits, it is told what it waits on and to do only what doesn't depend on it. When a question is answered, the reply names what can go now:

```
Q-8ur7@3 answered: Let each habit choose
no longer waiting on it: B-j6e9
```

A session that starts in a connected folder is given its next task: ready, nobody on it, not meant for someone else, most important first.

## On the board

- **A row** shows what holds it up: "Waits on a task: …", "Waits on you: …" for a request, "Waits on your answer: …" for a question, or "Waits on feat-streaks to merge: …". A met wait shows as "✓ Had: …", and an answered question as "✓ question → answer".
- **A request or question** says what it frees: "Doing this lets … go ahead" or "Answering this lets … go ahead".
- **The panel** of an item has "Waits on", where you add a wait with "+ Wait on an item" or remove one with ×, and "Lets go ahead".
- **For you** lists your open requests and questions, the one that frees the most first, each saying what it lets go ahead.
- **Right now** lists "Ready, nobody on it", most important first.

## The Map

The Map is an Overview page that draws only the items linked by waits. Columns run left to right: "Start here", "Then", "After that". Each item sits to the right of everything it waits on, and the first column has the item that frees the most on top.

Each card shows the key, the title, how many items it frees ("Frees 3 items") and its state: "Ready", "Waiting", "claude is on it", "Needs your answer", "Needs you", "Done", or "Not merged yet" for work still on a branch. Point at a card and its chain lights up. Done items are hidden until you press "Show done", except work not merged yet, which still holds things up. Items that wait on nothing and free nothing fold away at the end as "N items on their own".

## In a view

`blocked` is a field every [view](https://hamloy.com/docs/views) can use. Agents make a view of what is stuck with a filter like `blocked=waiting`, and the board's "Waiting on something" recipe does the same.

## Limits

- An item can't wait on itself, on a deleted item, or in a circle.
- Waits go between items of one project.
- A wait is only a wait: Hamloy doesn't stop an agent from working on a blocked task. It tells it, and says what to leave for later.
