Tool tree
gradeNot graded
read_chartAnswer
A Mandala chart has one goal in the center, eight pillars around it (the drivers of the goal), and eight actions under each pillar that the person schedules and ticks. Returns the open chart: goal, the person's brief, each pillar with its shelf of links and its eight actions (cell, id, text, kind, board lane, and whether it is done or pinned), today's and tomorrow's lists and ticks by action id, and a running timer. An empty text is a gap. Cells: "p0" to "p7" are the pillars; "a{pillar}_{slot}" is an action, both 0 to 7, so "a2_5" is the sixth action of the third pillar. Kinds: a "routine" is a habit done again and again ("Play Spanish audio at breakfast"); it shows on Today every day and is ticked each day, never finished. A "milestone" happens once and is then done for good ("Book a trial lesson"). A "standard" action is done on some days, picked when it fits.
View tool JSON
{
"name": "read_chart",
"kind": "answer",
"impl": "imperative",
"description": "A Mandala chart has one goal in the center, eight pillars around it (the drivers of the goal), and eight actions under each pillar that the person schedules and ticks. Returns the open chart: goal, the person's brief, each pillar with its shelf of links and its eight actions (cell, id, text, kind, board lane, and whether it is done or pinned), today's and tomorrow's lists and ticks by action id, and a running timer. An empty text is a gap. Cells: \"p0\" to \"p7\" are the pillars; \"a{pillar}_{slot}\" is an action, both 0 to 7, so \"a2_5\" is the sixth action of the third pillar. Kinds: a \"routine\" is a habit done again and again (\"Play Spanish audio at breakfast\"); it shows on Today every day and is ticked each day, never finished. A \"milestone\" happens once and is then done for good (\"Book a trial lesson\"). A \"standard\" action is done on some days, picked when it fits.",
"inputSchema": {
"type": "object",
"properties": {}
}
}review_chartAction
Returns the chart's lines with the method's tests, for you to judge in the language the chart is written in. Nothing on the page judges words; you do. For each line that fails a test, write a rewrite that keeps what the person meant, then send the rewrites with propose_lines.
View tool JSON
{
"name": "review_chart",
"kind": "act",
"impl": "imperative",
"description": "Returns the chart's lines with the method's tests, for you to judge in the language the chart is written in. Nothing on the page judges words; you do. For each line that fails a test, write a rewrite that keeps what the person meant, then send the rewrites with propose_lines.",
"inputSchema": {
"type": "object",
"properties": {}
}
}new_chart_guideAction
Returns the prompt the page hands a chat app to write a new chart, with the method and its tests, so you can write it here instead of the person copying it out. Follow it, then send the chart to propose_chart rather than showing the JSON. Leave out goal to use the open chart's goal. now writes at once on reasonable assumptions; leave it out to ask the person a few questions first.
View tool JSON
{
"name": "new_chart_guide",
"kind": "act",
"impl": "imperative",
"description": "Returns the prompt the page hands a chat app to write a new chart, with the method and its tests, so you can write it here instead of the person copying it out. Follow it, then send the chart to propose_chart rather than showing the JSON. Leave out goal to use the open chart's goal. now writes at once on reasonable assumptions; leave it out to ask the person a few questions first.",
"inputSchema": {
"type": "object",
"properties": {
"goal": {
"type": "string",
"maxLength": 80,
"description": "The person's goal, in their words and language"
},
"now": {
"type": "boolean",
"description": "True when the person asked for the chart straight away, without questions"
}
}
}
}suggest_todayAction
Bindu picks three actions for today, from different pillars, each with why: pinned ones first, then a quiet pillar, then one with momentum. Nothing is set until set_today is called with the ids.
View tool JSON
{
"name": "suggest_today",
"kind": "act",
"impl": "imperative",
"description": "Bindu picks three actions for today, from different pillars, each with why: pinned ones first, then a quiet pillar, then one with momentum. Nothing is set until set_today is called with the ids.",
"inputSchema": {
"type": "object",
"properties": {}
}
}progressAction
The last 7 days: ticks, the pillars they touched, quiet pillars, minutes logged per pillar (passive time counted at the chart's passive weight, and listed apart as it ran), the current streak in days, and up to three insights in words.
View tool JSON
{
"name": "progress",
"kind": "act",
"impl": "imperative",
"description": "The last 7 days: ticks, the pillars they touched, quiet pillars, minutes logged per pillar (passive time counted at the chart's passive weight, and listed apart as it ran), the current streak in days, and up to three insights in words.",
"inputSchema": {
"type": "object",
"properties": {}
}
}week_historyAnswer
What one week held, Monday to Sunday: what was ticked each day, the milestones finished, minutes per pillar, and the note the person kept for it. weeksAgo 0 is this week, up to 12. reflectionDue says the person has not written this week's note yet; propose_reflection can draft it.
View tool JSON
{
"name": "week_history",
"kind": "answer",
"impl": "imperative",
"description": "What one week held, Monday to Sunday: what was ticked each day, the milestones finished, minutes per pillar, and the note the person kept for it. weeksAgo 0 is this week, up to 12. reflectionDue says the person has not written this week's note yet; propose_reflection can draft it.",
"inputSchema": {
"type": "object",
"properties": {
"weeksAgo": {
"type": "integer",
"minimum": 0,
"maximum": 12,
"description": "How many weeks back: 0 is this week, 1 last week, up to 12. Leave out for this week."
}
}
}
}read_shelvesAnswer
Each pillar's shelf: the links (videos, texts, sites) its actions use. For each link: its id, title, url, kind, whether it is known, which action hands it out (an action id, "any routine" in its pillar, or null when nothing does yet), the action Today hands it out for, and on how many of the last 14 days it was opened. Known links wait on the shelf and are not handed out. Pillars with an empty shelf are left out. Kinds: "repeat" comes round until the person marks it known; "once" is put away after its first open; "staple" stays for good and is never asked about, like a dictionary or a course the person always goes back to.
View tool JSON
{
"name": "read_shelves",
"kind": "answer",
"impl": "imperative",
"description": "Each pillar's shelf: the links (videos, texts, sites) its actions use. For each link: its id, title, url, kind, whether it is known, which action hands it out (an action id, \"any routine\" in its pillar, or null when nothing does yet), the action Today hands it out for, and on how many of the last 14 days it was opened. Known links wait on the shelf and are not handed out. Pillars with an empty shelf are left out. Kinds: \"repeat\" comes round until the person marks it known; \"once\" is put away after its first open; \"staple\" stays for good and is never asked about, like a dictionary or a course the person always goes back to.",
"inputSchema": {
"type": "object",
"properties": {}
}
}propose_linesAction
Shows pillars or actions to the person in Bindu, the chart's helper, with what each replaces. Nothing is written until they press Keep, so tell them to look. Use it to fill gaps or rewrite lines that fail the tests. Send only the lines you mean to change; a new call replaces a proposal still waiting. Every action must pass two tests. Calendar: it can be scheduled and marked done ("Study geography for 20 minutes a day", not "Do better in geography"). Control: it is a behaviour the person can do ("Post two videos a day", not "Get 10 million views"). A pillar is a short heading for one driver, a few words. Aim for pillars of at most 32 characters and actions of at most 48; a longer language may run over, up to 120. Write in the chart's own language. The goal is not a cell here. Cells: "p0" to "p7" are the pillars; "a{pillar}_{slot}" is an action, both 0 to 7, so "a2_5" is the sixth action of the third pillar.
View tool JSON
{
"name": "propose_lines",
"kind": "act",
"impl": "imperative",
"description": "Shows pillars or actions to the person in Bindu, the chart's helper, with what each replaces. Nothing is written until they press Keep, so tell them to look. Use it to fill gaps or rewrite lines that fail the tests. Send only the lines you mean to change; a new call replaces a proposal still waiting. Every action must pass two tests. Calendar: it can be scheduled and marked done (\"Study geography for 20 minutes a day\", not \"Do better in geography\"). Control: it is a behaviour the person can do (\"Post two videos a day\", not \"Get 10 million views\"). A pillar is a short heading for one driver, a few words. Aim for pillars of at most 32 characters and actions of at most 48; a longer language may run over, up to 120. Write in the chart's own language. The goal is not a cell here. Cells: \"p0\" to \"p7\" are the pillars; \"a{pillar}_{slot}\" is an action, both 0 to 7, so \"a2_5\" is the sixth action of the third pillar.",
"inputSchema": {
"type": "object",
"properties": {
"lines": {
"type": "array",
"minItems": 1,
"maxItems": 72,
"description": "The pillars and actions to change, each a cell and its new line",
"items": {
"type": "object",
"properties": {
"cell": {
"type": "string",
"pattern": "^(p[0-7]|a[0-7]_[0-7])$",
"description": "p0 to p7 for a pillar, a0_0 to a7_7 for an action"
},
"text": {
"type": "string",
"maxLength": 120,
"description": "The new line"
}
},
"required": [
"cell",
"text"
]
}
}
},
"required": [
"lines"
]
}
}propose_chartAction
Shows a complete chart to the person in Bindu. Keeping it opens it as a new chart beside the one they have, or fills this one if it is empty. Nothing is written until they press Keep. Read new_chart_guide first for the method. Unless the person asked for it straight away, ask about their goal, their time on a normal day, any date, and where they stand before writing. Every action must pass two tests. Calendar: it can be scheduled and marked done ("Study geography for 20 minutes a day", not "Do better in geography"). Control: it is a behaviour the person can do ("Post two videos a day", not "Get 10 million views"). A pillar is a short heading for one driver, a few words. Goal at most 80 characters. Exactly 8 pillars and 8 actions for each, none empty.
View tool JSON
{
"name": "propose_chart",
"kind": "act",
"impl": "imperative",
"description": "Shows a complete chart to the person in Bindu. Keeping it opens it as a new chart beside the one they have, or fills this one if it is empty. Nothing is written until they press Keep. Read new_chart_guide first for the method. Unless the person asked for it straight away, ask about their goal, their time on a normal day, any date, and where they stand before writing. Every action must pass two tests. Calendar: it can be scheduled and marked done (\"Study geography for 20 minutes a day\", not \"Do better in geography\"). Control: it is a behaviour the person can do (\"Post two videos a day\", not \"Get 10 million views\"). A pillar is a short heading for one driver, a few words. Goal at most 80 characters. Exactly 8 pillars and 8 actions for each, none empty.",
"inputSchema": {
"type": "object",
"properties": {
"goal": {
"type": "string",
"maxLength": 80,
"description": "The goal in the center, in the person's words and language"
},
"pillars": {
"type": "array",
"minItems": 8,
"maxItems": 8,
"description": "Eight pillar headings, p0 to p7 in order",
"items": {
"type": "string",
"maxLength": 120
}
},
"actions": {
"type": "array",
"minItems": 8,
"maxItems": 8,
"description": "Eight actions for each pillar, in pillar order",
"items": {
"type": "array",
"minItems": 8,
"maxItems": 8,
"items": {
"type": "string",
"maxLength": 120
}
}
},
"brief": {
"type": "object",
"description": "What the person told you, a few words each. Leave out what they did not say.",
"properties": {
"timeline": {
"type": "string",
"description": "By when, or for how long"
},
"situation": {
"type": "string",
"description": "Where they stand today"
},
"focus": {
"type": "string",
"description": "What matters most to them"
},
"constraint": {
"type": "string",
"description": "What limits them, such as time on a normal day"
}
}
}
},
"required": [
"goal",
"pillars",
"actions"
]
}
}propose_kindsAction
Shows the person which actions you would mark as routines, milestones or standard, in Bindu. Nothing changes until they press Keep. Judge from what each line says, in its own language. Send only the actions whose kind you would change. Kinds: a "routine" is a habit done again and again ("Play Spanish audio at breakfast"); it shows on Today every day and is ticked each day, never finished. A "milestone" happens once and is then done for good ("Book a trial lesson"). A "standard" action is done on some days, picked when it fits.
View tool JSON
{
"name": "propose_kinds",
"kind": "act",
"impl": "imperative",
"description": "Shows the person which actions you would mark as routines, milestones or standard, in Bindu. Nothing changes until they press Keep. Judge from what each line says, in its own language. Send only the actions whose kind you would change. Kinds: a \"routine\" is a habit done again and again (\"Play Spanish audio at breakfast\"); it shows on Today every day and is ticked each day, never finished. A \"milestone\" happens once and is then done for good (\"Book a trial lesson\"). A \"standard\" action is done on some days, picked when it fits.",
"inputSchema": {
"type": "object",
"properties": {
"kinds": {
"type": "array",
"minItems": 1,
"maxItems": 64,
"description": "The actions whose kind would change, each with its new kind",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An action id from read_chart"
},
"kind": {
"type": "string",
"enum": [
"standard",
"routine",
"milestone"
],
"description": "The kind it would be"
}
},
"required": [
"id",
"kind"
]
}
}
},
"required": [
"kinds"
]
}
}propose_reflectionAction
Shows a draft of the person's note for the week in Bindu: one or two sentences on what happened and what they want next week to hold, in their voice and language. Bindu says it back to them when the new week starts. Nothing is saved until they press Keep. Read week_history first. At most 600 characters.
View tool JSON
{
"name": "propose_reflection",
"kind": "act",
"impl": "imperative",
"description": "Shows a draft of the person's note for the week in Bindu: one or two sentences on what happened and what they want next week to hold, in their voice and language. Bindu says it back to them when the new week starts. Nothing is saved until they press Keep. Read week_history first. At most 600 characters.",
"inputSchema": {
"type": "object",
"properties": {
"note": {
"type": "string",
"maxLength": 600,
"description": "One or two sentences in the person's voice and language"
}
},
"required": [
"note"
]
}
}finish_actionAction
Marks an action done today, as a tick on the chart does: a routine is ticked for today, anything else is finished. The person sees a note that it happened.
View tool JSON
{
"name": "finish_action",
"kind": "act",
"impl": "imperative",
"description": "Marks an action done today, as a tick on the chart does: a routine is ticked for today, anything else is finished. The person sees a note that it happened.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An action id from read_chart"
}
},
"required": [
"id"
]
}
}reopen_actionAction
Takes back a done mark: a routine is unticked for today, anything else is open again.
View tool JSON
{
"name": "reopen_action",
"kind": "act",
"impl": "imperative",
"description": "Takes back a done mark: a routine is unticked for today, anything else is open again.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An action id from read_chart"
}
},
"required": [
"id"
]
}
}set_todayAction
Puts these actions on today's list, in this order, replacing what was there. Three from different pillars is the method's usual day. A routine is on Today every day already, as a habit, so pick other actions. Ticks already made today stay; a running timer on an action taken off the list stops, and its time is logged. The reply names what Today now shows; tell the person that, not what you asked for.
View tool JSON
{
"name": "set_today",
"kind": "act",
"impl": "imperative",
"description": "Puts these actions on today's list, in this order, replacing what was there. Three from different pillars is the method's usual day. A routine is on Today every day already, as a habit, so pick other actions. Ticks already made today stay; a running timer on an action taken off the list stops, and its time is logged. The reply names what Today now shows; tell the person that, not what you asked for.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "string"
},
"description": "Action ids from read_chart or suggest_today"
}
},
"required": [
"ids"
]
}
}plan_tomorrowAction
Puts these actions on tomorrow's list, replacing what was planned. Tomorrow opens with them. Same rules as set_today.
View tool JSON
{
"name": "plan_tomorrow",
"kind": "act",
"impl": "imperative",
"description": "Puts these actions on tomorrow's list, replacing what was planned. Tomorrow opens with them. Same rules as set_today.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "string"
},
"description": "Action ids from read_chart or suggest_today"
}
},
"required": [
"ids"
]
}
}pin_actionsAction
Pins actions, or unpins them with pinned false. A pinned action leads Bindu's picks each day until it is unpinned.
View tool JSON
{
"name": "pin_actions",
"kind": "act",
"impl": "imperative",
"description": "Pins actions, or unpins them with pinned false. A pinned action leads Bindu's picks each day until it is unpinned.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": {
"type": "string"
},
"description": "Action ids from read_chart or suggest_today"
},
"pinned": {
"type": "boolean",
"default": true,
"description": "True to pin, false to unpin"
}
},
"required": [
"ids"
]
}
}move_cardAction
Moves an action between the board's lists: "open" (Open), "todo" (To do), "doing" (Doing), "done" (Done). Doing puts it on today's list; Done finishes it, as a tick does. A routine never goes to Done. It goes to the end of the list unless index says where, from 0.
View tool JSON
{
"name": "move_card",
"kind": "act",
"impl": "imperative",
"description": "Moves an action between the board's lists: \"open\" (Open), \"todo\" (To do), \"doing\" (Doing), \"done\" (Done). Doing puts it on today's list; Done finishes it, as a tick does. A routine never goes to Done. It goes to the end of the list unless index says where, from 0.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An action id from read_chart"
},
"lane": {
"type": "string",
"enum": [
"open",
"todo",
"doing",
"done"
],
"description": "The list to move it to"
},
"index": {
"type": "integer",
"minimum": 0,
"description": "Its place in that list, from 0. Leave out for the end."
}
},
"required": [
"id",
"lane"
]
}
}log_timeAction
Logs minutes spent on an action, ending now, as if a stopwatch had run. At most 600 minutes. An optional link id from read_shelves records which video or resource on the shelf was studied. mode "passive" is for time that ran in the background (audio while doing something else); it counts by the chart's passive weight.
View tool JSON
{
"name": "log_time",
"kind": "act",
"impl": "imperative",
"description": "Logs minutes spent on an action, ending now, as if a stopwatch had run. At most 600 minutes. An optional link id from read_shelves records which video or resource on the shelf was studied. mode \"passive\" is for time that ran in the background (audio while doing something else); it counts by the chart's passive weight.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An action id from read_chart"
},
"minutes": {
"type": "integer",
"minimum": 1,
"maximum": 600,
"description": "Whole minutes spent, ending now"
},
"link": {
"type": "string",
"description": "An optional link id from read_shelves"
},
"mode": {
"type": "string",
"enum": [
"active",
"passive"
],
"description": "Leave out for active. \"passive\" for time in the background."
}
},
"required": [
"id",
"minutes"
]
}
}start_timerAction
Starts a stopwatch on an action, or a focus block when minutes is given (25 is the usual block, at most 120). Its time is logged when it stops. One timer runs at a time: starting one logs and stops the one running. An optional link id from read_shelves ties the time to that video or resource.
View tool JSON
{
"name": "start_timer",
"kind": "act",
"impl": "imperative",
"description": "Starts a stopwatch on an action, or a focus block when minutes is given (25 is the usual block, at most 120). Its time is logged when it stops. One timer runs at a time: starting one logs and stops the one running. An optional link id from read_shelves ties the time to that video or resource.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An action id from read_chart"
},
"minutes": {
"type": "integer",
"minimum": 1,
"maximum": 120,
"description": "Length of a focus block. Leave out for a stopwatch."
},
"link": {
"type": "string",
"description": "An optional link id from read_shelves"
}
},
"required": [
"id"
]
}
}stop_timerAction
Stops the running timer and logs its time. A stopwatch left on for hours asks the person how long it really took instead.
View tool JSON
{
"name": "stop_timer",
"kind": "act",
"impl": "imperative",
"description": "Stops the running timer and logs its time. A stopwatch left on for hours asks the person how long it really took instead.",
"inputSchema": {
"type": "object",
"properties": {}
}
}add_shelf_linkAction
Saves a link (a video, an article, a course) to a pillar's shelf, where Bindu hands it out with that pillar's actions. Use the page the person is on when they say "save this". Kinds: "repeat" comes round until the person marks it known; "once" is put away after its first open; "staple" stays for good and is never asked about, like a dictionary or a course the person always goes back to. Leave kind out for "repeat".
View tool JSON
{
"name": "add_shelf_link",
"kind": "act",
"impl": "imperative",
"description": "Saves a link (a video, an article, a course) to a pillar's shelf, where Bindu hands it out with that pillar's actions. Use the page the person is on when they say \"save this\". Kinds: \"repeat\" comes round until the person marks it known; \"once\" is put away after its first open; \"staple\" stays for good and is never asked about, like a dictionary or a course the person always goes back to. Leave kind out for \"repeat\".",
"inputSchema": {
"type": "object",
"properties": {
"pillar": {
"type": "integer",
"minimum": 0,
"maximum": 7,
"description": "The pillar, 0 to 7, as in read_chart"
},
"path": {
"type": "string",
"format": "uri",
"pattern": "^https?://",
"maxLength": 2048,
"description": "An http or https link to save. It is stored on the shelf as text and opened only when the person taps it; nothing here fetches it."
},
"title": {
"type": "string",
"maxLength": 120,
"description": "A short name for the link, as the page titles itself"
},
"kind": {
"type": "string",
"enum": [
"repeat",
"once",
"staple"
],
"description": "How it comes round. Leave out for repeat."
}
},
"required": [
"pillar",
"path"
]
}
}update_shelf_linkAction
Changes how a link on a shelf comes round: its kind, whether it is known (a known link waits on the shelf and is not handed out), or which action hands it out (an action id from the same pillar, or "any" for any routine there). A staple is never known. Link ids come from read_shelves. Kinds: "repeat" comes round until the person marks it known; "once" is put away after its first open; "staple" stays for good and is never asked about, like a dictionary or a course the person always goes back to.
View tool JSON
{
"name": "update_shelf_link",
"kind": "act",
"impl": "imperative",
"description": "Changes how a link on a shelf comes round: its kind, whether it is known (a known link waits on the shelf and is not handed out), or which action hands it out (an action id from the same pillar, or \"any\" for any routine there). A staple is never known. Link ids come from read_shelves. Kinds: \"repeat\" comes round until the person marks it known; \"once\" is put away after its first open; \"staple\" stays for good and is never asked about, like a dictionary or a course the person always goes back to.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A link id from read_shelves"
},
"kind": {
"type": "string",
"enum": [
"repeat",
"once",
"staple"
],
"description": "How it comes round"
},
"known": {
"type": "boolean",
"description": "True once the person knows it, so it waits on the shelf; false to hand it out again"
},
"action": {
"type": "string",
"description": "An action id from read_chart in the same pillar, or \"any\""
}
},
"required": [
"id"
]
}
}