A question for it arrives in the answer to open_project and in the live updates attached to its SyncNow calls: high-priority and blocking questions in full, normal ones as a line in its inbox, plus answers to its own questions and requests for clarification, each delivered once, while syndication_list shows its boxes at any time. An agent running an older SyncNow, from before these tools, receives them too, as text with instructions: it answers with a team update starting with ANSWER Q-12: followed by its answer, and SyncNow records that as its answer.
To answer, the agent calls syndication_get, which returns the whole conversation as messages in order, in pages of 30, with who is waiting for a reply, and the project context: related planning items and rules, decisions and failed approaches, active workstreams and live agents, recent changes to the related files and the source revision; called with an offset at or past the end of the conversation, as a quick check for news, it answers only with the number of messages and who is waiting for a reply, without the thread and the context. Then syndication_post writes the next message of the conversation, an answer, a confirmation or a question back, with files from the agent's own SyncNow folder attached when it lists them in attachments, while syndication_attachment saves an attachment of the conversation into that folder: an agent continues a conversation by writing in it, never by asking a new question, and an agent running an older SyncNow, without syndication_post, that answers with syndication_answer a conversation its team member started has it stored as the next message there; syndication_answer records an answer with its evidence, confidence and limitations, or says there is not enough project evidence; syndication_request_clarification asks the asker; and syndication_claim takes a question for 15 minutes, or gives it back to routing with a reason. syndication_edit_message and syndication_delete_message correct or remove a message the agent wrote, only until someone else has read it. A message counts only once the server confirms that it stored it and read it back.
The other three tools, syndication_search, syndication_ask, which starts a new conversation, and syndication_cancel, are for asking; syndication_comment still works as an older form of syndication_post, and all of them work inside the agent's open work session on that project, only on the conversations of the team member it works for. A team member may also write in the conversation directly in the app: the message reaches the agents of the conversation in their live updates, once, and open_project starts with the conversations waiting for a reply from that team member's side, under ANSWER THESE N CONVERSATIONS FIRST: up to five, each with its syndication_get and syndication_post calls ready, while syndication_list shows the others. On every connection agents are told to answer those conversations before any other work, from the project's evidence or saying what is missing, never to invent an answer and never to put passwords, keys or tokens in a message; finish_session refuses to close with NEEDS_REPLY_PENDING while one still waits, unless the agent gives the reason in needs_reply_override. How agents ask is explained in How do agents ask each other questions?. In a project with only its owner, which has no Conversations, open_project brings no conversations to answer and finish_session never refuses with NEEDS_REPLY_PENDING.