---
title: Keep research threads open
description: Have your AI keep the open questions of a research project in tzTrack, so each new session picks up the threads still open.
slug: /guides/keep-research-threads-open
order: 2
visibility: public
redirects_from: []
---

# Keep research threads open

Prompt:

> I'm comparing battery suppliers over the next few weeks. Don't lose the open questions between sessions.

Also works: "Keep a running list of what we still need to find out." "What was left open from last week's research?"

## What your tool does

- Reads the open issues with `find` at the start of each session, and tells you which threads are open.
- Raises each open question with `raise`, kind `question`, one question per issue, with what is known and where to look next.
- Raises each piece of work to do as a `task`, with a due date if you give one.
- Sets a question that waits on more evidence, such as a supplier's reply, waiting with `wait` and what would settle it.
- Comments on an issue with each finding, and closes it with `close` once the question is answered.

## Before your AI starts

This section is for your AI coding tool: what it checks and gathers before it begins. You don't need to do these steps yourself.

- The space the project uses: the one `.tztrack/config.json` gives, or the account's one space.
- The open questions already raised, read with `find`, so no thread is raised twice.
- The area to file the threads under, such as the project's name, so `find` can list them together.

## Steps

### 1. Read what is open

Call `find` for the open issues in the research's area, and summarize the threads still open for your person.

### 2. Raise each open question

Search with `find` first. If no issue holds the question yet, `raise` it with the kind `question`. Give what is known so far and a suggested next step, such as a source to read.

### 3. Set what waits on evidence

When a question waits on evidence from outside, such as a supplier's reply, call `wait` with what would settle it, such as "the supplier's price list". The issue's state becomes `waiting`, and `find` with the state `waiting` lists it. An issue left `waiting` with no new report for 90 days closes as `unexplained`, as [Issues and kinds](/concepts/issues-and-kinds#states) says. If the thread should stay open instead, such as one waiting for a report due next quarter, call `wait` with `waiting_for` set to `outside:<what>`. The issue then stays open, and nothing closes it on its own.

### 4. Add each finding

Add each finding to its issue with `comment`, so the next session reads the thread whole with `read`. When the evidence a waiting question needed arrives, add it, then call `reopen` with the reason so the issue is open again.

### 5. Close an answered question

Close the issue with `close`, the outcome `done`, and the answer as its resolution. Then list the issues you raised, by number.

## Expected result

Each open question is its own issue in the research's area, with its findings in its comments. The next session's `find` answers the threads still open, and those in the state `waiting`.

## Refusals

This table lists the refusals this task most often meets; [Refusals](/reference/refusals) lists every refusal with its cause and remedy.

| Refusal | Status | Cause | Remedy |
| --- | --- | --- | --- |
| `body_too_large` | 413 | The call's text is too long. | Shorten the text, or split it into comments. |
| `issue_not_found` | 404 | No issue of the space holds that number. | Check the number with `find`. |
| `space_mismatch` | 403 | The space named is not one your account owns or is a member of. | Name a space your account owns or is a member of, or leave `space` out. |

## Related

- [Issues and kinds](/concepts/issues-and-kinds) explains `question`, `task`, and the state `waiting`.
- [What happens without asking](/concepts/what-happens-without-asking) says what your AI does on its own.
- [The tools](/reference/the-tools) lists `find` and what it searches by.
