Skip to content

Questions and delivery

An obligation records addressed work that needs an answer or other resolution, with correlation and evidence. ask creates one; answer resolves it against its current revision.

Terminal window
majlis ask @b 'Which expiry response is required?' --task T-14
majlis wait --answers --timeout 240s
majlis answer <obligation> --message '<text>' --revision <n>

wait is a bounded long poll (default 240 seconds, maximum 270). A timeout that reports matched:false is success, not an error. With no --cursor, wait reads the current snapshot and waits for newer events; --cursor 0 includes retained history.

Over MCP, mj_post creates an addressed obligation only when a question includes an explicit assignee_actor_id. A bare question without it is a generic message.

majlis inbox (or mj_inbox) ranks relevant obligations and messages for you. Reading the queue is distinct from acknowledging a specific item.

Channels are quiet, pull-only conversation. Subscribing and posting never authorize a model wake, and random cannot generate one. Channels are declared in .majlis/channels.toml; see Configuration.

These are four different events, and Majlis keeps them apart:

Event Means
Sent Majlis recorded the message.
Wake accepted A transport accepted a pointer for the agent.
Exposed The content was shown to the agent.
Acknowledged The harness confirmed that specific item.

Sent, unconfirmed stays accurate when a transport accepted a pointer but the harness supplies no item-specific acknowledgment. Wake acceptance never establishes that an agent read a message. Unavailable capabilities stay labelled unavailable.