Marketplace / Agents

Plans & Tasks Keeper

Plans & Tasks Keeper answers one question about the status of the workspace's plans and tasks, citing their ids.

  • Read-only
  • Models via ContextStream
  • Reads tasks, plans

What it does

Answers status, what is next, what is blocked, who is on what and what changed, from the workspace's plans and tasks, in about 300 tokens citing their ids.

What it does not do

It does not do these. A task like them is declined, and a declined run is free:

  • Creating, updating, closing or assigning plans and tasks.
  • Questions about code (Code Oracle answers those).
  • Finding duplicate or stale items to clean up (Memory Gardener does that).
  • Reading plans in another workspace: a run reads only its own workspace.

Real runs

What Plans & Tasks Keeper did with a real input: the input, the result (shortened where it is long), how long it took, what it cost, and where it ran. Each live run used public or demo material only. An example marked as from the eval suite is not a live run.

Live run on ContextStream’s task rail

What is next on a release checklist?

Agent
keeper@0.1.0
Outcome
succeeded
Ran
2026-10-27 17:19 UTC
Took
1.5 s
Cost
Free

ContextStream's Demos workspace, on a demo plan written for this example: a five-step release checklist for the public mcp-server repository.

  • Demo plan “Demo: MCP server 1.0.35 release checklist” (written for this example)
Input
{
  "plan_id": "1670be8f-c0e0-4d2b-bbac-1ff1f26343ef",
  "question": "What is next on the 1.0.35 release checklist?"
}

Result

Answer

Next up: finish the in-progress task Bump versions in Cargo.toml, package.json and server.json (0b13d513-1f83-4494-92aa-d7ed11d35521), then start the first pending task, Run the release gate on Depot (e8700758-a602-410f-aaba-32dc6580155e). The plan has 5 tasks: 1 in progress, 2 pending, 1 blocked and 1 completed.

Counts from the plan

  • total: 5
  • blocked: 1
  • pending: 2
  • cancelled: 0
  • completed: 1
  • in progress: 1

Tasks it answered from

TaskStatusBlocked because
Bump versions in Cargo.toml, package.json and server.jsonin progress
Run the release gate on Depotpending
Checks: 3 of 3 passed
  • Passed: plans_read: 1 plan(s) and 5 task(s) read.
  • Passed: citations: Every id in the answer is a plan or task in the facts.
  • Passed: answer_size: About 79 tokens; the target is 300.

Provenance

Task
5dec880d-408c-4aba-842b-ef8dce4bd651

Live run on ContextStream’s task rail

What is blocked?

Agent
keeper@0.1.0
Outcome
succeeded
Ran
2026-10-27 17:19 UTC
Took
1.4 s
Cost
Free

ContextStream's Demos workspace, on the same demo plan.

  • Demo plan “Demo: MCP server 1.0.35 release checklist” (written for this example)
Input
{
  "plan_id": "1670be8f-c0e0-4d2b-bbac-1ff1f26343ef",
  "question": "What is the status of this plan, and what is blocked?"
}

Result

Answer

The plan "Demo: MCP server 1.0.35 release checklist" (1670be8f-c0e0-4d2b-bbac-1ff1f26343ef) is in draft status, with 1 blocked task and no progress recorded. The blocked task is "Publish the MCP registry entry" (5587ee55-2900-43d3-9b48-bdb8fd2cbdd2): it waits for the npm package, since the registry entry points at the published 1.0.35 package. It has no assignee.

Counts from the plan

  • blocked: 1

Tasks it answered from

TaskStatusBlocked because
Publish the MCP registry entryblockedWaits for the npm package: the registry entry points at the published 1.0.35 package.
Checks: 3 of 3 passed
  • Passed: plans_read: 1 plan(s) and 5 task(s) read.
  • Passed: citations: Every id in the answer is a plan or task in the facts.
  • Passed: answer_size: About 92 tokens; the target is 300.

Provenance

Task
6658c349-2260-4174-befd-36b1c075b2d3

Example inputs

Inputs from the agent’s own job contract, each checked against its input schema.

Counts by status, progress, and the open tasks with their ids.

{
  "question": "What is the status of the Slipstream launch plan?"
}
ss run keeper question='What is the status of the Slipstream launch plan?'

The tasks in progress, then the first pending one, in plan order.

{
  "question": "What is next?",
  "plan_id": "00000000-0000-4000-8000-0000000000b1"
}
ss run keeper question='What is next?' plan_id=00000000-0000-4000-8000-0000000000b1

Every blocked task in the workspace, with its reason.

{
  "question": "What is blocked?"
}
ss run keeper question='What is blocked?'

Tasks updated after 2026-10-26T09:00:00Z, newest first.

{
  "question": "What changed since yesterday?",
  "as_of": "2026-10-27T09:00:00Z"
}
ss run keeper question='What changed since yesterday?' as_of=2026-10-27T09:00:00Z

Declined: the Keeper answers questions and changes nothing.

{
  "question": "Mark task 3 as done"
}
ss run keeper question='Mark task 3 as done'

Input

FieldTypeWhat it is
questionstring, requiredOne question about the workspace's plans and tasks: status, what is next, what is blocked, who is on what, or what changed.
plan_idstringThe plan the question is about, when the question does not name it.
project_idstringKeep to the plans and tasks of this project.
sincestringFor "what changed": changes after this time. Defaults to what the question says, else the last 24 hours.
as_ofstringThe time to answer as of, for relative times such as "yesterday". Defaults to now.

Where it runs

Model agent. A program on ContextStream’s model proxy, with a short-lived token that acts for you in one workspace.

It may run for up to 1 min before it is stopped.

ContextStream scopeWhat it lets a run do
items.readList todos, plans and their tasks, tasks and reminders.
model.invokeCall models through ContextStream’s model proxy, under the run’s credit cap.

Evals

106 of 106 offline eval cases pass for version 0.1.0 (baseline saved 2026-10-27). Offline means fakes and fixtures, with no network: the cases check what the agent guarantees, such as declining work that is not its job. They are not measurements of live runs; the live runs above are.