Reference
The ready set, ranked — or any slice of open work you ask for
The get-next tool, and the REST call it is generated from.
The ready set — active tasks nothing holds — ranked by priority, then unblocks (how many open tasks each frees), then the oldest review_due_at. With no slice, status or state it answers one task, the next action: give the person that one, not a list. To divide work among agents, ask limit for as many as you will start; total says how many matched. Goals (kind: project) appear only in slice=review.
Every answer carries `counts`: how many tasks slice=review, hold_cleared, date_came, active_held and waiting_on_me would list under the same filters. Read them at the start of a run and ask for each slice that is not 0: review is what a week (a month for incubated and reference) without a write or a confirmation left due, the three drifts are where status and readiness disagree, and waiting_on_me is what waits on the person. Propose the moves they call for; never make them.
After an absence, in order: slice=risks, deadlines, waiting, blocked, then no filter. Nothing here reads the inbox.
Parameters
- project
Only these
proj_…ids (repeat or comma-separate); omit for all of yours. One you are not a member of answers404. - tag
Only tasks carrying any of these tags.
- upstream_of
Only this task and the open work before it: every task that
blocksit, transitively, stopping at a closed one — what is left before a milestone. Composes with the other filters; a task you cannot see answers404. - slice
A question by name instead of its filters.
risks:active,waiting,calendarandblockedtasks with a priority and a review due.deadlines:calendar, soonest date first.waiting,blocked: that status.waiting_on_me: every open task with a waitonyou or your teams, whoever holds it.review: due reviews, oldest first.hold_cleared: waiting or blocked, and nothing holds it.date_came: on the calendar, and the date came; for both, run the check the wait states, else proposeactive.active_held: active and held, expected behind an earlier wave, a stale hold otherwise. Filters beside it narrow it (slice=hold_cleared&status=blockedis the blocked half); an explicitsortreplaces its own.One of: risks, deadlines, waiting, blocked, hold_cleared, date_came, active_held, review, waiting_on_me.
- status
Only these open statuses (repeat or comma-separate); a closed task is never next.
- state
Only these computed readiness states.
- priority
Only these levels;
noneis the tasks nobody prioritised. - kind
Only these kinds; absent, every kind but
project. Adecisionwaits on whoever decides: askstatus=waitingorslice=waiting_on_mefor one. - review_due
true: only tasks whosereview_due_athas passed. - sort
rank(the default): the description's ranking.review_due_at: the longest overdue review first.until: the soonestscheduleddate first, a passed one before all; undated tasks last. A tie falls back torank.One of: rank, review_due_at, until.
- assignee
Whose work:
me(you and your teams),none(untaken), auser_…orteam_…, orany. Defaults tonone,me: never another's. - limit
Defaults to 1 for the ready set and 10 otherwise. Ask for more when the person asks to choose, to divide work among agents, or in a review slice.
Responses
Generated from the spec this operation is implemented against, so the two names above cannot disagree with the surface a client sees.