docs(kilo-docs): list all 21 mayor tools in the Mayor page

Replace the abbreviated 6-tool table with the complete list of all 21
gt_* tools grouped by category: Work Creation, Convoy Management,
Bead Management, Agent Management, and Town & UI.
This commit is contained in:
John Fawcett
2026-05-01 10:34:56 -05:00
parent 0b8606cf22
commit 286fcdafd5
4 changed files with 73 additions and 42 deletions
@@ -83,7 +83,7 @@ const nodes: Node[] = [
position: { x: 240, y: 220 },
data: { label: "Polecat revises" },
sourcePosition: "right" as Position,
targetPosition: "left" as Position,
targetPosition: "top" as Position,
style: {
...baseStyle,
background: "rgba(59,130,246,0.1)",
@@ -12,14 +12,16 @@ const nodeBase = {
textAlign: "center" as const,
minWidth: "120px",
},
}
} as const satisfies Pick<Node, "style">
const nodes: Node[] = [
const nodes = [
{
id: "open",
position: { x: 0, y: 100 },
position: { x: 0, y: 120 },
data: { label: "open" },
sourcePosition: "top" as Position,
// not sure why, but using Position.Top results in everything breaking at runtime
// we just settle for casing as Position instead
sourcePosition: "right" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
@@ -30,9 +32,9 @@ const nodes: Node[] = [
},
{
id: "in_progress",
position: { x: 200, y: 100 },
position: { x: 200, y: 120 },
data: { label: "in_progress" },
sourcePosition: "top" as Position,
sourcePosition: "right" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
@@ -43,9 +45,9 @@ const nodes: Node[] = [
},
{
id: "in_review",
position: { x: 420, y: 100 },
position: { x: 420, y: 120 },
data: { label: "in_review" },
sourcePosition: "top" as Position,
sourcePosition: "right" as Position,
targetPosition: "top" as Position,
style: {
...nodeBase.style,
@@ -56,7 +58,7 @@ const nodes: Node[] = [
},
{
id: "closed",
position: { x: 640, y: 100 },
position: { x: 640, y: 120 },
data: { label: "closed" },
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
@@ -69,7 +71,7 @@ const nodes: Node[] = [
},
{
id: "failed",
position: { x: 310, y: 240 },
position: { x: 310, y: 280 },
data: { label: "failed" },
sourcePosition: "top" as Position,
targetPosition: "top" as Position,
@@ -80,14 +82,14 @@ const nodes: Node[] = [
color: "#ef4444",
},
},
]
] as const satisfies Node[]
const edgeBase = {
style: { strokeWidth: 2 },
animated: true,
}
const edges: Edge[] = [
const edges = [
{
id: "open-progress",
source: "open",
@@ -104,7 +106,7 @@ const edges: Edge[] = [
target: "in_review",
type: "smoothstep",
label: "work complete",
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888" },
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888", zIndex: 10 },
...edgeBase,
style: { ...edgeBase.style, stroke: "#fbbf24" },
},
@@ -118,28 +120,20 @@ const edges: Edge[] = [
...edgeBase,
style: { ...edgeBase.style, stroke: "#8b5cf6" },
},
{
id: "review-open",
source: "in_review",
target: "open",
type: "smoothstep",
label: "review rejected",
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888" },
style: { strokeWidth: 2, stroke: "#f97316", strokeDasharray: "5 3" },
},
{
id: "progress-failed",
source: "in_progress",
target: "failed",
type: "smoothstep",
label: "max retries",
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888" },
style: { strokeWidth: 2, stroke: "#ef4444", strokeDasharray: "5 3" },
labelStyle: { fontSize: 10, fontFamily: "'JetBrains Mono', monospace", fill: "#888", marginTop: "100px" },
...edgeBase,
style: { ...edgeBase.style, strokeWidth: 2, stroke: "#ef4444", strokeDasharray: "5 3" },
},
]
] as const satisfies Edge[]
export const beadLifecycle: DiagramDefinition = {
export const beadLifecycle = {
nodes,
edges,
caption: "The bead lifecycle — from open to closed, with adversarial review in between",
}
} as const satisfies DiagramDefinition
@@ -24,13 +24,13 @@ const nodes: Node[] = [
id: "bead1",
position: { x: 0, y: 0 },
data: { label: "1. Explore codebase" },
sourcePosition: "right" as Position,
sourcePosition: "bottom" as Position,
targetPosition: "left" as Position,
style: { ...stageStyle(closedColor), color: "#8b5cf6" },
},
{
id: "review1",
position: { x: 0, y: 70 },
position: { x: 0, y: 100 },
data: { label: "✓ reviewed" },
sourcePosition: "right" as Position,
targetPosition: "top" as Position,
@@ -40,13 +40,13 @@ const nodes: Node[] = [
id: "bead2",
position: { x: 200, y: 0 },
data: { label: "2. Design schema" },
sourcePosition: "right" as Position,
sourcePosition: "bottom" as Position,
targetPosition: "left" as Position,
style: { ...stageStyle(closedColor), color: "#8b5cf6" },
},
{
id: "review2",
position: { x: 200, y: 70 },
position: { x: 200, y: 100 },
data: { label: "✓ reviewed" },
sourcePosition: "right" as Position,
targetPosition: "top" as Position,
@@ -56,13 +56,13 @@ const nodes: Node[] = [
id: "bead3",
position: { x: 400, y: 0 },
data: { label: "3. Implement API" },
sourcePosition: "right" as Position,
sourcePosition: "bottom" as Position,
targetPosition: "left" as Position,
style: { ...stageStyle(activeColor), color: "#3b82f6" },
},
{
id: "review3",
position: { x: 400, y: 70 },
position: { x: 400, y: 100 },
data: { label: "⟳ in review" },
sourcePosition: "right" as Position,
targetPosition: "top" as Position,
@@ -72,7 +72,7 @@ const nodes: Node[] = [
id: "bead4",
position: { x: 600, y: 0 },
data: { label: "4. Write tests" },
sourcePosition: "right" as Position,
sourcePosition: "bottom" as Position,
targetPosition: "left" as Position,
style: { ...stageStyle(pendingColor), color: "#666", opacity: 0.6 },
},
@@ -63,16 +63,53 @@ The Mayor can modify town settings on your behalf through natural language.
## Mayor Tools
The Mayor has access to specialized tools for town management:
The Mayor has access to 21 specialized tools for town management:
### Work Creation
| Tool | What it does |
|---|---|
| `gt_sling` | Create a bead or convoy |
| `gt_convoy_close` | Force-close a stuck convoy |
| `gt_agent_reset` | Reset a stuck agent |
| `gt_bead_delete` | Delete beads (single or bulk) |
| `gt_report_bug` | File a bug report about town behavior |
| `gt_done` | Mark work as complete |
| `gt_sling` | Delegate a single task to a polecat agent in a specific rig |
| `gt_sling_batch` | Create a multi-bead convoy with dependency ordering, merge mode, and staging options |
### Convoy Management
| Tool | What it does |
|---|---|
| `gt_convoy_status` | Show detailed status of a convoy — each bead's progress and assignee |
| `gt_convoy_start` | Start a staged convoy — begin agent dispatch |
| `gt_convoy_close` | Force-close a convoy and optionally its tracked beads |
| `gt_convoy_update` | Edit convoy metadata (merge mode, feature branch) |
| `gt_convoy_add_bead` | Add an existing bead to a convoy's tracking |
| `gt_convoy_remove_bead` | Remove a bead from a convoy |
| `gt_list_convoys` | List active convoys with progress counts |
### Bead Management
| Tool | What it does |
|---|---|
| `gt_bead_update` | Edit a bead's status, title, body, priority, labels, or dependencies |
| `gt_bead_reassign` | Reassign a bead to a different agent |
| `gt_bead_delete` | Delete one or more beads (supports bulk — up to 5000) |
| `gt_list_beads` | List beads in a rig, filterable by status and type |
### Agent Management
| Tool | What it does |
|---|---|
| `gt_agent_reset` | Force-reset an agent to idle, unhooking it from any bead |
| `gt_nudge` | Send a real-time nudge to a polecat (immediate, wait-idle, or queued) |
| `gt_list_agents` | List all agents in a rig with their roles and status |
| `gt_mail_send` | Send a persistent mail message to any agent in any rig |
### Town & UI
| Tool | What it does |
|---|---|
| `gt_list_rigs` | List all rigs (repositories) in the town |
| `gt_ui_action` | Trigger UI actions — open drawers, navigate pages, highlight items |
| `gt_escalation_acknowledge` | Acknowledge an escalation as reviewed |
| `gt_report_bug` | File a bug report on the Gastown GitHub repo (checks for duplicates first) |
These tools are used automatically when you make requests — you don't need to invoke them directly.