[FEATURE] An open-work list that blocks the turn from ending

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 23, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Claude Code already has a task list that the model keeps while it works, but that list is advisory: nothing stops a turn from ending while items on it are still open.

While Claude was part way through building something for me, I asked it a question. It answered the question and never went back to the build. That happened three times in one hour, and nothing in the tool noticed or said anything. The work was simply gone, and I only found out later when I went looking for the thing I thought had been built.

The failure is silent. A user only builds a fix after they notice the loss, and most people will never connect a missing feature to a question they asked an hour earlier.

Proposed Solution

A blocking version of the task list, on by default. Open items are registered when a request arrives, and a turn cannot end while any of them is still open. The only ways past it are finishing the item or deferring it with a stated reason, and the user can always interrupt, so the guard cannot trap a session.

The model should be prompted to register work at the moment the request arrives, not after it answers. And the list should be scoped to the project or working directory, so an item from one session never blocks another.

Alternative Solutions

What I use now: I built this myself with a few hundred lines, most of them comments. A small JSON file holds the open items, a command adds and closes them, and a Stop hook refuses to let a turn end while anything on the list is still open. It works, and it is built entirely from tools Claude Code already provides.

The drawback is that only users who notice the problem will ever build it, and the problem is silent.

Priority

Medium - Would be very helpful

Feature Category

Other

Use Case Example

I use Claude Code for long-running sessions, often several days on one session, on a Max plan. The most common case: I ask for an answer and an action in the same message. Claude answers and finishes its response without returning to the action. A guard that checks at turn end sees an empty list unless the work was registered before the answer was written. With the list registered first, the Stop hook sends Claude back to the build instead of letting the turn end.

Additional Context

The guard closes the dropping half of the problem, not the recording half. Nothing makes the model put the item on the list in the first place, so a built-in version needs the model prompted to register work when the request arrives.

From running it: my list was shared across sessions at first, and an item added in one session blocked an unrelated session from ending its turn. A guard that stops the wrong turn gets read as noise, and then it gets ignored.

I'm happy to share the hook and the command as a reference implementation.

View original on GitHub ↗