Skip to content

Feature

Questions your agents ask you

Decisions that are yours come as questions, with options and the one the agent recommends. You answer in one click; the agent carries on.

An agent working for an hour meets decisions that aren't its to make. Which sign-in at launch. Where the data lives. Whether to keep the old addresses. Without a place to put them, the question goes into the chat, you close the window before you answer, and the next session guesses.

With Hamloy the agent puts it on the project's Questions list, with the options it sees and the one it recommends. It stays there until you answer, whichever session or agent asked it.

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

A question is an item like any other, added with the add tool. Here Codex, building offline sync for Pebble, a habit tracker, needs to know where synced habits should live:

• Called hamloy.add({"kind":"question","title":"Where should synced habits live?",
    "options":["Supabase: Postgres with auth and row-level security built in",
               "Our own Postgres on Fly.io","iCloud only, no server"],"recommended":1})
  └ Q-sy2c@1   Where should synced habits live?  options: 1) Supabase: Postgres with auth and
    row-level security built in (recommended)  2) Our own Postgres on Fly.io  3) iCloud only, no server

The work that depends on it says so. A task can wait on a question, the same way it waits on another task:

• Called hamloy.add({"title":"Sync habits between devices","section":"Next","needs":["Q-sy2c"]})
  └ B-m7tw@1   Sync habits between devices  (waits on Q-sy2c)

The rules every agent gets with its first reply say it plainly: questions are the human's decisions, with options and the agent's recommendation. An agent never answers one itself.

How you answer

On the board, the question shows its options with the recommended one marked, a box for an answer in your own words, and an optional why. Under it, what your answer lets go ahead: "Answering this lets Offline sync with a local SQLite cache go ahead." Click an option and you're done.

Questions come first under For you, with requests, the one that frees the most work at the top. In Claude Code's status line, the count of what waits for you drops as you answer. And because the board is a web page, you can answer from your phone.

You can also answer in the chat. Tell the agent, and it records your answer with the answer tool, as yours:

⏺ hamloy - Record an answer (MCP)(key: "Q-sy2c", answer: "1", why: "We want auth too")
  ⎿ Q-sy2c@2 answered: Supabase: Postgres with auth and row-level security built in
    no longer waiting on it: B-m7tw

Every agent on the project hears it under its next tool reply:

Hamloy news (what changed since you last looked):
- The human answered Q-sy2c "Where should synced habits live?": Supabase: Postgres with auth
  and row-level security built in

When the agent can't wait

Sometimes you're away and the work can't stop. The agent can assume an answer with the assume tool: it picks an option and goes on, and the question stays open, marked assumed, until you confirm or overturn it.

• Called hamloy.assume({"key":"Q-sy2c","option":1})
  └ Q-sy2c@2   Where should synced habits live?  options: 1) Supabase: Postgres with auth and
    row-level security built in (recommended, assumed)  2) Our own Postgres on Fly.io  3) iCloud only, no server

The other agents are told that codex assumed an answer, and that "the human confirms or overturns it". The work that waited on it can go ahead.

If you then pick something else, Hamloy opens again the tasks that were finished on the assumed answer, and tells the agents why:

Hamloy news (what changed since you last looked):
- The human answered Q-sy2c "Where should synced habits live?": Our own Postgres on Fly.io
- The human opened B-m7tw "Sync habits between devices" again: Q-sy2c was answered "Our own
  Postgres on Fly.io", not the assumed "Supabase: Postgres with auth and row-level security
  built in". Redo it for the real answer.

Nothing built on a guess is left counted as done.

The details

  • Options can change after the question is asked: the agent rewords, adds or drops one with edit, and the recommendation follows its words.
  • An answered question can be asked again, from the board or with hamloy reopen Q-sy2c in the terminal.
  • Every question keeps its history: who asked, who assumed, who answered and why.
  • Questions, like everything else, go out in an export as plain Markdown.

More on how questions work in the docs: Questions and answers. The other half of what's yours is Requests: the things only you can do.