Tool tree
gradeNot graded
get_board_summaryAnswer
Get the current mission (goal, deadline, budget, constraints), whether GitHub is connected and which repository is selected, task counts by column and priority, total estimated cost, whether that's over budget, how many external tasks are still unapproved, and how many decisions are waiting. Call this first, before doing anything else, to understand the current situation.
View tool JSON
{
"name": "get_board_summary",
"kind": "answer",
"impl": "imperative",
"description": "Get the current mission (goal, deadline, budget, constraints), whether GitHub is connected and which repository is selected, task counts by column and priority, total estimated cost, whether that's over budget, how many external tasks are still unapproved, and how many decisions are waiting. Call this first, before doing anything else, to understand the current situation.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}list_tasksAnswer
List tasks on the board, optionally filtered to a single column.
View tool JSON
{
"name": "list_tasks",
"kind": "answer",
"impl": "imperative",
"description": "List tasks on the board, optionally filtered to a single column.",
"inputSchema": {
"type": "object",
"properties": {
"column": {
"type": "string",
"enum": [
"todo",
"doing",
"done"
],
"description": "Only return tasks in this column. Omit for all tasks."
}
}
},
"page": "/"
}search_tasksAnswer
Search task titles and notes for a keyword or phrase.
View tool JSON
{
"name": "search_tasks",
"kind": "answer",
"impl": "imperative",
"description": "Search task titles and notes for a keyword or phrase.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Text to search for, case-insensitive."
}
},
"required": [
"query"
]
},
"page": "/"
}get_activity_ledgerAnswer
Read recent activity — who did what, and why — in chronological order. Useful before proposing a plan, so you don't repeat work already done.
View tool JSON
{
"name": "get_activity_ledger",
"kind": "answer",
"impl": "imperative",
"description": "Read recent activity — who did what, and why — in chronological order. Useful before proposing a plan, so you don't repeat work already done.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "How many recent entries to return. Defaults to 30."
}
}
},
"page": "/"
}set_missionAction
Record the mission the person described: what they're trying to accomplish, the deadline, the budget, and any constraints they stated (e.g. 'don't publish anything without my approval'). Call this as soon as a person states or changes their goal, so it's visible on the shared board rather than left in conversation.
View tool JSON
{
"name": "set_mission",
"kind": "act",
"impl": "imperative",
"description": "Record the mission the person described: what they're trying to accomplish, the deadline, the budget, and any constraints they stated (e.g. 'don't publish anything without my approval'). Call this as soon as a person states or changes their goal, so it's visible on the shared board rather than left in conversation.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Short statement of the goal."
},
"deadline": {
"type": "string",
"description": "ISO date, e.g. 2026-09-12."
},
"budget": {
"type": "number",
"description": "Budget ceiling, in the same currency the person used."
},
"constraints": {
"type": "array",
"items": {
"type": "string"
},
"description": "The rules the agent must operate within, e.g. 'No weekend work'."
}
}
},
"page": "/"
}create_taskAction
Add a new task to the board. Mark external: true for anything that will be publicly or externally visible once done (a published page, a sent email, a live announcement) — that flag is what makes move_task ask for approval before it's marked done.
View tool JSON
{
"name": "create_task",
"kind": "act",
"impl": "imperative",
"description": "Add a new task to the board. Mark external: true for anything that will be publicly or externally visible once done (a published page, a sent email, a live announcement) — that flag is what makes move_task ask for approval before it's marked done.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"column": {
"type": "string",
"enum": [
"todo",
"doing",
"done"
],
"description": "Defaults to 'todo'."
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high"
],
"description": "Defaults to 'medium'."
},
"notes": {
"type": "string"
},
"cost": {
"type": "number",
"description": "Estimated cost of this task, if the mission tracks a budget."
},
"external": {
"type": "boolean",
"description": "True if completing this task makes something publicly visible."
}
},
"required": [
"title"
]
},
"page": "/"
}update_taskAction
Edit an existing task's title, notes, priority, or cost estimate.
View tool JSON
{
"name": "update_task",
"kind": "act",
"impl": "imperative",
"description": "Edit an existing task's title, notes, priority, or cost estimate.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"notes": {
"type": "string"
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"cost": {
"type": "number"
}
},
"required": [
"id"
]
},
"page": "/"
}move_taskAction
Move a task to a different column. Moving a task marked external into 'done' does not execute immediately — it raises a decision in the Decision Room and this call returns { status: 'pending_approval' } instead of the updated task.
View tool JSON
{
"name": "move_task",
"kind": "act",
"impl": "imperative",
"description": "Move a task to a different column. Moving a task marked external into 'done' does not execute immediately — it raises a decision in the Decision Room and this call returns { status: 'pending_approval' } instead of the updated task.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"column": {
"type": "string",
"enum": [
"todo",
"doing",
"done"
]
}
},
"required": [
"id",
"column"
]
},
"page": "/"
}delete_taskSensitive Action
Remove a task. This never executes immediately for an agent — it raises a decision in the Decision Room and returns { status: 'pending_approval' }. Prefer moving to 'done' unless the person specifically wants it gone.
View tool JSON
{
"name": "delete_task",
"kind": "transact",
"impl": "imperative",
"description": "Remove a task. This never executes immediately for an agent — it raises a decision in the Decision Room and returns { status: 'pending_approval' }. Prefer moving to 'done' unless the person specifically wants it gone.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
]
},
"page": "/"
}propose_planAction
Bring a plan to the person instead of just executing it. Use this for anything with a real tradeoff (cost vs. scope, speed vs. risk) or that touches several tasks at once. Give one option if there's a single clear course of action, or two-to-three if there's a genuine choice — each option lists the concrete board changes it would make if approved. Nothing in 'changes' happens until the person (or you, once they've said 'approve it') calls approve_decision.
View tool JSON
{
"name": "propose_plan",
"kind": "act",
"impl": "imperative",
"description": "Bring a plan to the person instead of just executing it. Use this for anything with a real tradeoff (cost vs. scope, speed vs. risk) or that touches several tasks at once. Give one option if there's a single clear course of action, or two-to-three if there's a genuine choice — each option lists the concrete board changes it would make if approved. Nothing in 'changes' happens until the person (or you, once they've said 'approve it') calls approve_decision.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Short name for the decision, e.g. 'Get the launch under budget'."
},
"rationale": {
"type": "string",
"description": "Why you're raising this now, in plain terms."
},
"options": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Short name, e.g. 'Cut the animation work'."
},
"description": {
"type": "string",
"description": "What this option does and what it trades off."
},
"costEstimate": {
"type": "number"
},
"risk": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"changes": {
"type": "array",
"description": "Changes to apply if this option is approved. Board changes (move/update/create/delete) apply instantly. github_* changes are real GitHub writes — they only ever run from here, after approval, never from a direct tool call. github_create_issue needs {action, owner, repo, title, body?, labels?}. github_comment_issue needs {action, owner, repo, number, body}. github_create_branch needs {action, owner, repo, branchName, fromRef?}. github_open_pr needs {action, owner, repo, title, head, base?, body?}.",
"items": {
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"move",
"update",
"create",
"delete",
"github_create_issue",
"github_comment_issue",
"github_create_branch",
"github_open_pr"
]
},
"id": {
"type": "string",
"description": "Task id — required for move, update, delete."
},
"column": {
"type": "string",
"enum": [
"todo",
"doing",
"done"
],
"description": "Required for move."
},
"patch": {
"type": "object",
"description": "Fields to change — used for update."
},
"task": {
"type": "object",
"description": "New task fields — used for create."
},
"owner": {
"type": "string",
"description": "Repo owner — required for github_* actions."
},
"repo": {
"type": "string",
"description": "Repo name — required for github_* actions."
},
"title": {
"type": "string",
"description": "Used by github_create_issue and github_open_pr."
},
"body": {
"type": "string",
"description": "Used by github_create_issue, github_comment_issue, github_open_pr."
},
"labels": {
"type": "array",
"items": {
"type": "string"
},
"description": "Used by github_create_issue."
},
"number": {
"type": "number",
"description": "Issue number — used by github_comment_issue."
},
"branchName": {
"type": "string",
"description": "Used by github_create_branch."
},
"fromRef": {
"type": "string",
"description": "Base branch for github_create_branch. Defaults to the repo's default branch."
},
"head": {
"type": "string",
"description": "Head branch — used by github_open_pr."
},
"base": {
"type": "string",
"description": "Base branch for github_open_pr. Defaults to the repo's default branch."
}
},
"required": [
"action"
]
}
}
},
"required": [
"label",
"description"
]
}
}
},
"required": [
"title",
"options"
]
},
"page": "/"
}approve_decisionAction
Approve a pending decision — use this when the person tells you, in conversation, to go ahead with a proposal or a gated action you raised. This is what actually applies the change (including any GitHub write); approving executes the chosen option's changes immediately.
View tool JSON
{
"name": "approve_decision",
"kind": "act",
"impl": "imperative",
"description": "Approve a pending decision — use this when the person tells you, in conversation, to go ahead with a proposal or a gated action you raised. This is what actually applies the change (including any GitHub write); approving executes the chosen option's changes immediately.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The decision id, from propose_plan's result or get_board_summary."
},
"optionId": {
"type": "string",
"description": "Which option to approve. Omit if the decision only has one."
}
},
"required": [
"id"
]
},
"page": "/"
}reject_decisionAction
Reject a pending decision — use this when the person tells you not to go ahead with something you raised.
View tool JSON
{
"name": "reject_decision",
"kind": "act",
"impl": "imperative",
"description": "Reject a pending decision — use this when the person tells you not to go ahead with something you raised.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"id"
]
},
"page": "/"
}select_repositoryAction
Set which repository the mission is scoped to. owner/repo must be a repository the connected account can access. This doesn't change anything on GitHub — it just tells the board (and the tools below) which repo to read from by default.
View tool JSON
{
"name": "select_repository",
"kind": "act",
"impl": "imperative",
"description": "Set which repository the mission is scoped to. owner/repo must be a repository the connected account can access. This doesn't change anything on GitHub — it just tells the board (and the tools below) which repo to read from by default.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repo": {
"type": "string"
}
},
"required": [
"owner",
"repo"
]
},
"page": "/"
}inspect_repositoryAnswer
Get a repository's basic metadata: description, default branch, whether it's private, open issue count, stars, and when it was last pushed to. Omit owner/repo to use the currently selected repository.
View tool JSON
{
"name": "inspect_repository",
"kind": "answer",
"impl": "imperative",
"description": "Get a repository's basic metadata: description, default branch, whether it's private, open issue count, stars, and when it was last pushed to. Omit owner/repo to use the currently selected repository.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string",
"description": "Omit to use the currently selected repository."
},
"repo": {
"type": "string",
"description": "Omit to use the currently selected repository."
}
}
},
"page": "/"
}list_repo_issuesAnswer
List a repository's issues (pull requests are excluded). Omit owner/repo to use the currently selected repository.
View tool JSON
{
"name": "list_repo_issues",
"kind": "answer",
"impl": "imperative",
"description": "List a repository's issues (pull requests are excluded). Omit owner/repo to use the currently selected repository.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repo": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"open",
"closed",
"all"
],
"description": "Defaults to 'open'."
}
}
},
"page": "/"
}list_repo_pull_requestsAnswer
List a repository's pull requests, including each PR's head/base branches and the head commit SHA (useful for get_repo_check_status). Omit owner/repo to use the currently selected repository.
View tool JSON
{
"name": "list_repo_pull_requests",
"kind": "answer",
"impl": "imperative",
"description": "List a repository's pull requests, including each PR's head/base branches and the head commit SHA (useful for get_repo_check_status). Omit owner/repo to use the currently selected repository.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repo": {
"type": "string"
},
"state": {
"type": "string",
"enum": [
"open",
"closed",
"all"
],
"description": "Defaults to 'open'."
}
}
},
"page": "/"
}list_repo_commitsAnswer
List a repository's most recent commits. Omit owner/repo to use the currently selected repository.
View tool JSON
{
"name": "list_repo_commits",
"kind": "answer",
"impl": "imperative",
"description": "List a repository's most recent commits. Omit owner/repo to use the currently selected repository.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repo": {
"type": "string"
},
"perPage": {
"type": "number",
"description": "How many commits to return. Defaults to 10, maximum 30."
}
}
},
"page": "/"
}get_repo_check_statusAnswer
Get CI/check-run status for a ref — a branch name or a commit SHA (e.g. a PR's head SHA from list_repo_pull_requests). Omit ref to check the repository's default branch. Omit owner/repo to use the currently selected repository.
View tool JSON
{
"name": "get_repo_check_status",
"kind": "answer",
"impl": "imperative",
"description": "Get CI/check-run status for a ref — a branch name or a commit SHA (e.g. a PR's head SHA from list_repo_pull_requests). Omit ref to check the repository's default branch. Omit owner/repo to use the currently selected repository.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repo": {
"type": "string"
},
"ref": {
"type": "string",
"description": "Branch name or commit SHA. Defaults to the default branch."
}
}
},
"page": "/"
}find_repo_blockersAnswer
Scan open issues and pull requests for likely blockers: bodies mentioning 'blocked by #N' / 'depends on #N', and PRs whose latest checks are failing. Returns each flagged item with its likely owner and the reason it was flagged. This is a heuristic, not a guaranteed dependency graph — say so if you relay it. Omit owner/repo to use the currently selected repository.
View tool JSON
{
"name": "find_repo_blockers",
"kind": "answer",
"impl": "imperative",
"description": "Scan open issues and pull requests for likely blockers: bodies mentioning 'blocked by #N' / 'depends on #N', and PRs whose latest checks are failing. Returns each flagged item with its likely owner and the reason it was flagged. This is a heuristic, not a guaranteed dependency graph — say so if you relay it. Omit owner/repo to use the currently selected repository.",
"inputSchema": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"repo": {
"type": "string"
}
}
},
"page": "/"
}