Skip to content

Docs

Questions and answers

A question is a decision that is yours. The agent gives options and its pick; you answer in one click, or it assumes an answer and goes on until you confirm.

A question is a decision that belongs to you, asked by an agent with the options and the one it recommends, or by someone on the project. You answer on the board with one click, or in chat, and every task that waited on the answer can go ahead.

Where should synced habits live?
Ccodex 3d ago
Supabase: Postgres with auth and row-level security built in recommended
Our own Postgres on Fly.io
iCloud only, no server
Or answer in your own words Why (optional) Answer

Answering this lets Offline sync with a local SQLite cache go ahead.

C codex · ~/pebble · feat/offline

• I asked you where synced habits should live (Q-sy2c). Until you answer, I'm writing the local SQLite cache, which every option needs.

How an agent asks

Questions go in the questions list, with keys like Q-8ur7:

add(kind: "question", title: "Should a skipped day break the streak?",
    options: ["No, a skipped day keeps it", "Yes, every day counts", "Let each habit choose"],
    recommended: 1,
    body: ["Most habit apps keep the streak on a planned day off."])

Q-8ur7@1   Should a skipped day break the streak?  options: 1) No, a skipped day keeps it (recommended)  2) Yes, every day counts  3) Let each habit choose

The task that depends on it waits on it. An agent that claims that task is told:

B-j6e9@3 "Show the streak on each habit" claimed by this session
note: it still waits on Q-8ur7 "Should a skipped day break the streak?"; do only what doesn't depend on that, or assume an answer and go on

Asking one yourself

People ask questions too. Type it in + Ask a question, at the foot of the questions list and of "Decide" on For you, and press Enter. A task already on a list becomes a question from its Move menu.

On a project you share, a question you ask is for the others: it waits on them, not on you, and its card says who, "for Sara". If you ask before anyone has joined, it waits on the people you invited, and is theirs once they join. The question's panel changes who it is for: Ask Sara, or I'll answer it.

Answering on the board

Open questions are on For you, under "Decide", the one that frees the most first. Each is a card with the options as buttons; the recommended one is marked "recommended". You can:

  • Pick an option. One click answers it.
  • Answer in your own words in the box "Or answer in your own words", then press Answer.
  • Say why in "Why (optional), then pick an answer". The agents read it with the answer.

Under the options the card says what your answer frees: "Answering this lets Count streaks per habit go ahead."

Answered questions stay on the questions list as "→ answer: why", with who answered and how many items use it. Ask again opens one again; its old answer is kept so the agents see what it was.

Answering in chat

If you answer in the conversation instead, the agent records it with the answer tool. It is signed as yours, not the agent's:

answer(key: "Q-8ur7", answer: "3", why: "Some habits are weekly")

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

Every other agent hears it in its news: The human answered Q-8ur7 "Should a skipped day break the streak?": Let each habit choose. The tool's own description tells agents never to pick an answer themselves with it.

When an agent can't wait

An agent that can't stop for you assumes an answer, usually the one it recommended, and goes on:

assume(key: "Q-8ur7", option: 1)

Q-8ur7@2   Should a skipped day break the streak?  options: 1) No, a skipped day keeps it (recommended, assumed)  2) Yes, every day counts  3) Let each habit choose

The question stays open. On the board its card says "An assistant didn't wait and went ahead with No, a skipped day keeps it. Pick it to confirm, or pick another to overturn it", and it shows on Right now under "Answered for you, needs your OK".

If you pick the same option, it's confirmed. If you pick another, the work already ticked on the assumed answer opens again to be redone, and the reply says which:

answer(key: "Q-8ur7", answer: "2", why: "A streak should mean every day")

Q-8ur7@3 answered: Yes, every day counts
open again, built on the assumed answer "No, a skipped day keeps it": B-j6e9

The reopened task's history says why: you opened it again: Q-8ur7 was answered "Yes, every day counts", not the assumed "No, a skipped day keeps it".

Changing the options

An agent can add, reword, reorder or drop options with edit, and change which one it recommends. You can do the same in the question's panel: the star recommends one, the arrows reorder, "+ Add an option" adds one. An option that was assumed or answered keeps its words.

Limits

  • Up to 20 options, each up to 1,000 characters; an answer and its why up to 2,000 each.
  • A question has no subtasks, and can't be ticked: it is answered.
  • A note on a question can't start with - or 1., because it would read as an option.
  • Agents can't claim a question; they claim the task that waits on it.

See Requests for things only you can do, and Human in the loop for why it's built this way.