Tool tree
gradeNot graded
resume_taskAction
Persistent, human-supervised checkpoint for the current task. It holds: binding constraints, work done with its evidence, ruled-out approaches, the next action, and unapproved proposals kept separate. Call this BEFORE doing any work if you do not know the state: at the start of a new conversation, after any context loss, and whenever a write is refused as stale. It answers for ONE task, named by TASK ID in the reply. If that is not the task you meant, say so rather than working on it.
View tool JSON
{
"name": "resume_task",
"kind": "act",
"impl": "imperative",
"description": "Persistent, human-supervised checkpoint for the current task. It holds:\nbinding constraints, work done with its evidence, ruled-out approaches,\nthe next action, and unapproved proposals kept separate.\n\nCall this BEFORE doing any work if you do not know the state: at the\nstart of a new conversation, after any context loss, and whenever a\nwrite is refused as stale.\n\nIt answers for ONE task, named by TASK ID in the reply. If that is not\nthe task you meant, say so rather than working on it.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}what_changedAnswer
List what has been written to this task since a version you hold. Call this when a write is refused as stale, and whenever you come back to a task you read earlier. It answers: what did the human do while I was working? The reply separates what changes what you may do (a rule added, a proposal accepted, a question answered) from what merely happened. If the log had to drop older entries it says so; fall back to resume_task. Read-only: this never changes the task.
View tool JSON
{
"name": "what_changed",
"kind": "answer",
"impl": "imperative",
"description": "List what has been written to this task since a version you hold.\n\nCall this when a write is refused as stale, and whenever you come back\nto a task you read earlier. It answers: what did the human do while I\nwas working?\n\nThe reply separates what changes what you may do (a rule added, a\nproposal accepted, a question answered) from what merely happened. If\nthe log had to drop older entries it says so; fall back to resume_task.\n\nRead-only: this never changes the task.",
"inputSchema": {
"type": "object",
"properties": {
"since_version": {
"type": "integer",
"minimum": 1,
"description": "The version you last read, from resume_task or from the reply to your last write. Everything written after it is listed."
}
},
"required": [
"since_version"
],
"additionalProperties": false
}
}read_task_detailAnswer
Read the parts of the task record that resume_task had to cut. Call this when the summary is not enough: to re-read evidence, to see a rejection's whole reason, to page through older work, or to check what is proposed but not approved. Ask for one section at a time. Pages are small; the reply says how many entries remain and the offset to continue from. To get one entry whole, including evidence that pages truncate, pass its id. Read-only: this never changes the task, and needs no version.
View tool JSON
{
"name": "read_task_detail",
"kind": "answer",
"impl": "imperative",
"description": "Read the parts of the task record that resume_task had to cut.\n\nCall this when the summary is not enough: to re-read evidence, to see a\nrejection's whole reason, to page through older work, or to check what\nis proposed but not approved.\n\nAsk for one section at a time. Pages are small; the reply says how many\nentries remain and the offset to continue from. To get one entry whole,\nincluding evidence that pages truncate, pass its id.\n\nRead-only: this never changes the task, and needs no version.",
"inputSchema": {
"type": "object",
"properties": {
"section": {
"type": "string",
"enum": [
"steps",
"decisions",
"rejections",
"constraints",
"proposals",
"credentials",
"questions",
"approvals",
"audit"
],
"description": "Which part of the record to read. \"proposals\" holds agent-written rules and rejections no human approved; \"credentials\" lists names, never values."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "How many entries to skip. Take it from the MORE line of the previous page."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Entries per page, at most 20. Defaults to 5."
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "One entry, returned in full and unpaginated, including whole evidence, which pages truncate. Take the id from a page."
}
},
"required": [
"section"
],
"additionalProperties": false
}
}search_taskAnswer
Search this task's record for a word or phrase. Call this before trying something, to find out whether it has already been tried here and what came of it. It looks through the steps and their evidence, the rules, the ruled-out approaches, the decisions, and the history of refused writes. Finding nothing does not prove the work was never attempted: the log may use other words. Say so rather than concluding it is untried. Read-only: this never changes the task, and needs no version.
View tool JSON
{
"name": "search_task",
"kind": "answer",
"impl": "imperative",
"description": "Search this task's record for a word or phrase.\n\nCall this before trying something, to find out whether it has already\nbeen tried here and what came of it. It looks through the steps and\ntheir evidence, the rules, the ruled-out approaches, the decisions, and\nthe history of refused writes.\n\nFinding nothing does not prove the work was never attempted: the log\nmay use other words. Say so rather than concluding it is untried.\n\nRead-only: this never changes the task, and needs no version.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "The word or phrase to look for. Accents and case are ignored. One term works better than a sentence."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "How many matches to return. Defaults to 12."
}
},
"required": [
"query"
],
"additionalProperties": false
}
}create_taskAction
Open the shared log for a task, when none is open yet. Nothing is sent anywhere. The log is written to this browser's own storage: no account, no server, no request leaves the page. Creating one discloses nothing. Call this when resume_task says no task is open and the human has described work to do. Name it and its next action from what they said. It turns on the write tools. Add what you know with add_constraint and reject_approach after; both land as proposals the human accepts.
View tool JSON
{
"name": "create_task",
"kind": "act",
"impl": "imperative",
"description": "Open the shared log for a task, when none is open yet.\n\nNothing is sent anywhere. The log is written to this browser's own\nstorage: no account, no server, no request leaves the page. Creating\none discloses nothing.\n\nCall this when resume_task says no task is open and the human has\ndescribed work to do. Name it and its next action from what they said.\n\nIt turns on the write tools. Add what you know with add_constraint and\nreject_approach after; both land as proposals the human accepts.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "What the work is, in one line. The human will read this first.",
"minLength": 1,
"maxLength": 200
},
"next_action": {
"type": "string",
"description": "The single next action to take, stated so it can be acted on.",
"minLength": 1,
"maxLength": 400
},
"mutation_id": {
"type": "string",
"minLength": 8,
"maxLength": 64,
"pattern": "^[A-Za-z0-9_.:-]{8,64}$",
"description": "A fresh unique id for THIS write. If you get no reply, retry with the SAME mutation_id and arguments: the write happens once. Never reuse one."
}
},
"required": [
"title",
"next_action",
"mutation_id"
],
"additionalProperties": false
}
}