clew-code 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +45 -45
  2. package/dist/main.js +2906 -2722
  3. package/docs/architecture.html +91 -148
  4. package/docs/assets/clew-agent-loop.png +0 -0
  5. package/docs/assets/clew-general-architecture.png +0 -0
  6. package/docs/assets/clew-mcp-architecture.png +0 -0
  7. package/docs/assets/clew-p2p-swarm.png +0 -0
  8. package/docs/changelog.html +150 -0
  9. package/docs/cli-reference.html +90 -0
  10. package/docs/commands.html +133 -241
  11. package/docs/configuration.html +85 -147
  12. package/docs/contributing.html +91 -0
  13. package/docs/css/styles.css +272 -152
  14. package/docs/daemon.html +62 -129
  15. package/docs/features/bridge-mode.html +61 -66
  16. package/docs/features/evals.html +57 -149
  17. package/docs/features/searxng-search.html +58 -118
  18. package/docs/features/sentry-setup.html +61 -124
  19. package/docs/index.html +185 -148
  20. package/docs/installation.html +77 -105
  21. package/docs/internals/growthbook-ab-testing.html +69 -91
  22. package/docs/internals/hidden-features.html +81 -143
  23. package/docs/js/main.js +29 -0
  24. package/docs/loop.html +69 -181
  25. package/docs/mcp.html +99 -247
  26. package/docs/models.html +63 -92
  27. package/docs/permission-model.html +86 -102
  28. package/docs/plugins.html +84 -102
  29. package/docs/providers.html +87 -127
  30. package/docs/quick-start.html +81 -93
  31. package/docs/research-memory.html +71 -102
  32. package/docs/security.html +71 -0
  33. package/docs/skills.html +67 -117
  34. package/docs/swarm.html +78 -236
  35. package/docs/tools.html +183 -171
  36. package/docs/troubleshooting.html +86 -106
  37. package/docs/voice-mode.html +79 -0
  38. package/package.json +1 -1
  39. package/docs/architecture.th.html +0 -79
  40. package/docs/clew-code-architecture.html +0 -1126
  41. package/docs/commands.th.html +0 -269
  42. package/docs/configuration.th.html +0 -108
  43. package/docs/daemon.th.html +0 -73
  44. package/docs/features/bridge-mode.th.html +0 -62
  45. package/docs/features/evals.th.html +0 -62
  46. package/docs/features/searxng-search.th.html +0 -67
  47. package/docs/features/sentry-setup.th.html +0 -69
  48. package/docs/features/swarm.html +0 -156
  49. package/docs/generated/providers.html +0 -625
  50. package/docs/generated/tools.html +0 -558
  51. package/docs/index.th.html +0 -292
  52. package/docs/installation.th.html +0 -105
  53. package/docs/internals/growthbook-ab-testing.th.html +0 -60
  54. package/docs/internals/hidden-features.th.html +0 -107
  55. package/docs/loop.th.html +0 -227
  56. package/docs/mcp.th.html +0 -207
  57. package/docs/models.th.html +0 -61
  58. package/docs/permission-model.th.html +0 -67
  59. package/docs/plugins.th.html +0 -79
  60. package/docs/prompts-and-features.html +0 -806
  61. package/docs/providers.th.html +0 -81
  62. package/docs/quick-start.th.html +0 -89
  63. package/docs/research-memory.th.html +0 -72
  64. package/docs/skills.th.html +0 -90
  65. package/docs/swarm.th.html +0 -280
  66. package/docs/tools.th.html +0 -84
  67. package/docs/troubleshooting.th.html +0 -85
@@ -1,558 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Tools & Prompts (Auto-generated) — Clew</title>
7
- <meta name="description" content="Auto-generated tool reference with 57 system prompts for Clew Code.">
8
- <link rel="preconnect" href="https://fonts.googleapis.com">
9
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
- <link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
11
- <link rel="stylesheet" href="../css/styles.css">
12
- <link rel="icon" type="image/svg+xml" href="../assets/clew.svg">
13
- </head>
14
- <body>
15
- <header class="header">
16
- <div class="header-inner">
17
- <a href="../index.html" class="logo"><span class="logo-mark">C</span><span>Clew Code</span></a>
18
- <nav class="header-nav">
19
- <a href="../index.html">Home</a>
20
- <a href="../commands.html">Commands</a>
21
- <a href="../tools.html">Tools</a>
22
- <a href="../providers.html">Providers</a>
23
- <a href="../prompts-and-features.html">Reference</a>
24
- <a href="../quick-start.html">Docs</a>
25
- </nav>
26
- </div>
27
- </header>
28
- <div class="app">
29
- <aside class="sidebar" id="sidebar">
30
- <div class="sidebar-section">
31
- <div class="sidebar-label">Generated Docs</div>
32
- <a href="providers.html" class="sidebar-link"><span class="link-icon"></span>Providers</a>
33
- <a href="tools.html" class="sidebar-link"><span class="link-icon"></span>Tools</a>
34
- </div>
35
- <div class="sidebar-section">
36
- <div class="sidebar-label">Static Docs</div>
37
- <a href="../commands.html" class="sidebar-link"><span class="link-icon"></span>Commands</a>
38
- <a href="../tools.html" class="sidebar-link"><span class="link-icon"></span>Tools</a>
39
- <a href="../providers.html" class="sidebar-link"><span class="link-icon"></span>Providers</a>
40
- </div>
41
- </aside>
42
- <div class="sidebar-overlay"></div>
43
- <div class="content-wrap"><main class="content">
44
- <div class="breadcrumbs"><a href="../index.html">Home</a><span class="sep">/</span><span>Tools & Prompts (Auto-generated)</span></div>
45
- <h1>Tools & Prompts (Auto-generated)</h1>
46
- <p class="section-subtitle"><em>Auto-generated from source code. Last updated: 2026-06-14.</em></p>
47
-
48
- <h2>All Tools with Prompts</h2>
49
- <p>Clew provides <strong>57 tools</strong> with system prompts. These prompts are injected into the AI model's context at session start to define the tool interface.</p>
50
- <div class="table-wrap"><table>
51
- <tr><th>Tool</th><th>Description</th></tr>
52
- <tr><td><code>Agent</code></td><td>Built-in tool &quot;Agent&quot;. See system prompt for details.</td></tr>
53
- <tr><td><code>AskUserQuestion</code></td><td>Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices.</td></tr>
54
- <tr><td><code>Bash</code></td><td>Built-in tool &quot;Bash&quot;. See system prompt for details.</td></tr>
55
- <tr><td><code>Brief</code></td><td>Send a message to the user</td></tr>
56
- <tr><td><code>Config</code></td><td>Get or set Clew Code configuration settings.</td></tr>
57
- <tr><td><code>EnterPlanMode</code></td><td>Built-in tool &quot;EnterPlanMode&quot;. See system prompt for details.</td></tr>
58
- <tr><td><code>EnterWorktree</code></td><td>Built-in tool &quot;EnterWorktree&quot;. See system prompt for details.</td></tr>
59
- <tr><td><code>ExitPlanMode</code></td><td>Built-in tool &quot;ExitPlanMode&quot;. See system prompt for details.</td></tr>
60
- <tr><td><code>ExitWorktree</code></td><td>Built-in tool &quot;ExitWorktree&quot;. See system prompt for details.</td></tr>
61
- <tr><td><code>FileEdit</code></td><td>Built-in tool &quot;FileEdit&quot;. See system prompt for details.</td></tr>
62
- <tr><td><code>FileRead</code></td><td>Read a file or multiple files from the local filesystem. Supports batch reading multiple files in parallel for better performance.</td></tr>
63
- <tr><td><code>FileWrite</code></td><td>Write a file to the local filesystem.</td></tr>
64
- <tr><td><code>Glob</code></td><td>- Fast file pattern matching tool that works with any codebase size
65
- - Supports glob patterns like &quot;**/*.js&quot; or &quot;src/**/*.ts&quot;
66
- - Returns matching file paths sorted by modification time
67
- - Use this tool when you need to find files by name patterns
68
- - When you are doing an open ended search that may require multiple rounds of globbing and grepping, use the Agent tool instead</td></tr>
69
- <tr><td><code>Grep</code></td><td>Built-in tool &quot;Grep&quot;. See system prompt for details.</td></tr>
70
- <tr><td><code>JsonPath</code></td><td>Query, validate, format, and minify JSON data</td></tr>
71
- <tr><td><code>ListMcpResources</code></td><td>
72
- Lists available resources from configured MCP servers.
73
- Each resource object includes a 'server' field indicating which server it's from.
74
-
75
- Usage examples:
76
- - List all resources from all servers: \</td></tr>
77
- <tr><td><code>LSP</code></td><td>Interact with Language Server Protocol (LSP) servers to get code intelligence features.
78
-
79
- Supported operations:
80
- - goToDefinition: Find where a symbol is defined
81
- - findReferences: Find all references to a symbol
82
- - hover: Get hover information (documentation, type info) for a symbol
83
- - documentSymbol: Get all symbols (functions, classes, variables) in a document
84
- - workspaceSymbol: Search for symbols across the entire workspace
85
- - goToImplementation: Find implementations of an interface or abstract method
86
- - prepareCallHierarchy: Get call hierarchy item at a position (functions/methods)
87
- - incomingCalls: Find all functions/methods that call the function at a position
88
- - outgoingCalls: Find all functions/methods called by the function at a position
89
-
90
- All operations require:
91
- - filePath: The file to operate on
92
- - line: The line number (1-based, as shown in editors)
93
- - character: The character offset (1-based, as shown in editors)
94
-
95
- Note: LSP servers must be configured for the file type. If no server is available, an error will be returned.</td></tr>
96
- <tr><td><code>MCP</code></td><td>';
97
- export const DESCRIPTION =</td></tr>
98
- <tr><td><code>MeshBroadcast</code></td><td>Broadcast a task to ALL currently connected peers at once. </td></tr>
99
- <tr><td><code>MeshDisconnect</code></td><td>Disconnect and remove a mesh node from the connection list. </td></tr>
100
- <tr><td><code>MeshDiscover</code></td><td>Discover Clew Code workers on the local network. </td></tr>
101
- <tr><td><code>MeshHelp</code></td><td>Complete guide to agent-to-agent tools. </td></tr>
102
- <tr><td><code>MeshInfo</code></td><td>Get detailed information about a specific peer/worker by hostname or ID. </td></tr>
103
- <tr><td><code>MeshJoin</code></td><td>Connect to a mesh node by host and port. Fetches the mesh node info (hostname, name, role, shell, cwd) </td></tr>
104
- <tr><td><code>MeshListMessages</code></td><td>List chat messages received from peers. </td></tr>
105
- <tr><td><code>MeshListRoles</code></td><td>List all discovered mesh nodes with their display names and roles. </td></tr>
106
- <tr><td><code>MeshPing</code></td><td>Check if a specific peer is still online and reachable. </td></tr>
107
- <tr><td><code>MeshRun</code></td><td>Run a shell command on a remote mesh node and get the output back. </td></tr>
108
- <tr><td><code>MeshSendMessage</code></td><td>Send a chat message to a mesh node Clew Code instance on the LAN. </td></tr>
109
- <tr><td><code>MeshSetName</code></td><td>Set a custom display name for a mesh node. This name is shown in the mesh list </td></tr>
110
- <tr><td><code>MeshSetRole</code></td><td>Assign a role to a mesh node (e.g., &quot;builder&quot;, &quot;tester&quot;, &quot;deployer&quot;). </td></tr>
111
- <tr><td><code>MeshShare</code></td><td>Start or stop advertising this Clew Code instance as a worker. </td></tr>
112
- <tr><td><code>MeshSpawn</code></td><td>Spawn a new peer terminal window on the local machine with optional custom settings </td></tr>
113
- <tr><td><code>NotebookEdit</code></td><td>Replace the contents of a specific cell in a Jupyter notebook.</td></tr>
114
- <tr><td><code>PowerShell</code></td><td>Built-in tool &quot;PowerShell&quot;. See system prompt for details.</td></tr>
115
- <tr><td><code>PR</code></td><td>Manage GitHub pull requests — create, list, view, review, merge, and check CI status.</td></tr>
116
- <tr><td><code>ProcessMesh</code></td><td>Delegate a task to a local process-backed worker (e.g. Codex CLI) and return its output. </td></tr>
117
- <tr><td><code>PrSubscription</code></td><td>Built-in tool &quot;PrSubscription&quot;. See system prompt for details.</td></tr>
118
- <tr><td><code>ReadMcpResource</code></td><td>
119
- Reads a specific resource from an MCP server.
120
- - server: The name of the MCP server to read from
121
- - uri: The URI of the resource to read
122
-
123
- Usage examples:
124
- - Read a resource from a server: \</td></tr>
125
- <tr><td><code>RemoteTrigger</code></td><td>Manage scheduled remote Clew Code agents (triggers) via the claude.ai CCR API. Auth is handled in-process — the token never reaches the shell.</td></tr>
126
- <tr><td><code>RequestShutdown</code></td><td>Built-in tool &quot;RequestShutdown&quot;. See system prompt for details.</td></tr>
127
- <tr><td><code>ScheduleCron</code></td><td>Built-in tool &quot;ScheduleCron&quot;. See system prompt for details.</td></tr>
128
- <tr><td><code>SendMessage</code></td><td>Send a message to another agent</td></tr>
129
- <tr><td><code>SessionSearch</code></td><td>Built-in tool &quot;SessionSearch&quot;. See system prompt for details.</td></tr>
130
- <tr><td><code>Skill</code></td><td>Built-in tool &quot;Skill&quot;. See system prompt for details.</td></tr>
131
- <tr><td><code>Sleep</code></td><td>Wait for a specified duration</td></tr>
132
- <tr><td><code>TaskCreate</code></td><td>Create a new task in the task list</td></tr>
133
- <tr><td><code>TaskGet</code></td><td>Get a task by ID from the task list</td></tr>
134
- <tr><td><code>TaskList</code></td><td>List all tasks in the task list</td></tr>
135
- <tr><td><code>TaskStop</code></td><td>
136
- - Stops a running background task by its ID
137
- - Takes a task_id parameter identifying the task to stop
138
- - Returns a success or failure status
139
- - Use this tool when you need to terminate a long-running task
140
- </td></tr>
141
- <tr><td><code>TaskUpdate</code></td><td>Update a task in the task list</td></tr>
142
- <tr><td><code>TeamCreate</code></td><td>Built-in tool &quot;TeamCreate&quot;. See system prompt for details.</td></tr>
143
- <tr><td><code>TeamDelete</code></td><td>Built-in tool &quot;TeamDelete&quot;. See system prompt for details.</td></tr>
144
- <tr><td><code>TodoWrite</code></td><td>Update the todo list for the current session. To be used proactively and often to track progress and pending tasks. Make sure that at least one task is in_progress at all times. Always provide both content (imperative) and activeForm (present continuous) for each task.</td></tr>
145
- <tr><td><code>ToolSearch</code></td><td>Built-in tool &quot;ToolSearch&quot;. See system prompt for details.</td></tr>
146
- <tr><td><code>WebFetch</code></td><td>
147
- - Fetches content from a specified URL and processes it using an AI model
148
- - Takes a URL and a prompt as input
149
- - Fetches the URL content, converts HTML to markdown
150
- - Processes the content with the prompt using a small, fast model
151
- - Returns the model's response about the content
152
- - Use this tool when you need to retrieve and analyze web content
153
-
154
- Usage notes:
155
- - IMPORTANT: If an MCP-provided web fetch tool is available, prefer using that tool instead of this one, as it may have fewer restrictions.
156
- - The URL must be a fully-formed valid URL
157
- - HTTP URLs will be automatically upgraded to HTTPS
158
- - The prompt should describe what information you want to extract from the page
159
- - This tool is read-only and does not modify any files
160
- - Results may be summarized if the content is very large
161
- - Includes a self-cleaning 15-minute cache for faster responses when repeatedly accessing the same URL
162
- - When a URL redirects to a different host, the tool will inform you and provide the redirect URL in a special format. You should then make a new WebFetch request with the redirect URL to fetch the content.
163
- - For GitHub URLs, prefer using the gh CLI via Bash instead (e.g., gh pr view, gh issue view, gh api).
164
- </td></tr>
165
- <tr><td><code>WebSearch</code></td><td>Built-in tool &quot;WebSearch&quot;. See system prompt for details.</td></tr>
166
-
167
- </table></div>
168
-
169
- <h2>Tool Prompts</h2>
170
- <p>Each tool's system prompt, as seen by the AI model:</p>
171
- <div class="tool-prompts"><details>
172
- <summary><code>JsonPath</code> — System Prompt</summary>
173
- <div class="prompt-box">A tool for querying, validating, formatting, and minifying JSON data. Use this tool when you need to extract specific values from JSON, validate JSON structure, or transform JSON for storage/transmission.
174
-
175
- ## When to Use This Tool
176
-
177
- 1. **Query JSON** - Extract specific values, keys, or paths from JSON data using JSONPath expressions
178
- 2. **Validate JSON** - Check if JSON data matches an expected schema or structure
179
- 3. **Format JSON** - Pretty-print JSON with configurable indentation
180
- 4. **Minify JSON** - Compact JSON to remove unnecessary whitespace
181
- 5. **Convert to/from JSON** - Parse stringified JSON or stringify objects
182
-
183
- ## Features
184
-
185
- - **query**: Extract data using JSONPath or key paths (e.g., &quot;user.address.city&quot;, &quot;items[0].name&quot;)
186
- - **validate**: Validate JSON structure and optionally check against expected shape
187
- - **format**: Pretty-print with custom indent (2, 4, or tab)
188
- - **minify**: Remove all whitespace for compact storage
189
- - **stringify**: Convert JavaScript object to JSON string
190
- - **parse**: Convert JSON string to object (with optional validation)
191
-
192
- ## Examples
193
-
194
- &lt;example&gt;
195
- User: What's the email address in this JSON?
196
- Assistant: *Uses json_path with query to extract the email*
197
- \</div>
198
- </details>
199
- <details>
200
- <summary><code>ListMcpResources</code> — System Prompt</summary>
201
- <div class="prompt-box">List available resources from configured MCP servers.
202
- Each returned resource will include all standard MCP resource fields plus a 'server' field
203
- indicating which server the resource belongs to.
204
-
205
- Parameters:
206
- - server (optional): The name of a specific MCP server to get resources from. If not provided,
207
- resources from all servers will be returned.</div>
208
- </details>
209
- <details>
210
- <summary><code>MCP</code> — System Prompt</summary>
211
- <div class="prompt-box">';
212
- export const DESCRIPTION =</div>
213
- </details>
214
- <details>
215
- <summary><code>MeshBroadcast</code> — System Prompt</summary>
216
- <div class="prompt-box">This tool sends the same task to every connected peer simultaneously.</div>
217
- </details>
218
- <details>
219
- <summary><code>MeshDisconnect</code> — System Prompt</summary>
220
- <div class="prompt-box">This tool removes a mesh node from the local connection list.</div>
221
- </details>
222
- <details>
223
- <summary><code>MeshDiscover</code> — System Prompt</summary>
224
- <div class="prompt-box">This tool scans the local network for other Clew Code instances that are</div>
225
- </details>
226
- <details>
227
- <summary><code>MeshInfo</code> — System Prompt</summary>
228
- <div class="prompt-box">Fetches detailed information about a mesh node from the local peer store,</div>
229
- </details>
230
- <details>
231
- <summary><code>MeshJoin</code> — System Prompt</summary>
232
- <div class="prompt-box">Connects to a remote peer by making an HTTP request to their peer-info endpoint.</div>
233
- </details>
234
- <details>
235
- <summary><code>MeshListMessages</code> — System Prompt</summary>
236
- <div class="prompt-box">This tool lists peer chat messages in the local store.</div>
237
- </details>
238
- <details>
239
- <summary><code>MeshListRoles</code> — System Prompt</summary>
240
- <div class="prompt-box">Lists all discovered mesh nodes and their assigned metadata (display name, role).</div>
241
- </details>
242
- <details>
243
- <summary><code>MeshPing</code> — System Prompt</summary>
244
- <div class="prompt-box">This tool pings a mesh node to check if they are online.</div>
245
- </details>
246
- <details>
247
- <summary><code>MeshRun</code> — System Prompt</summary>
248
- <div class="prompt-box">Executes a shell command on a remote mesh node via its HTTP API.</div>
249
- </details>
250
- <details>
251
- <summary><code>MeshSendMessage</code> — System Prompt</summary>
252
- <div class="prompt-box">This tool sends a chat message to a mesh node Clew Code instance on the LAN.</div>
253
- </details>
254
- <details>
255
- <summary><code>MeshSetName</code> — System Prompt</summary>
256
- <div class="prompt-box">Assigns a human-readable display name to a mesh node. The name is stored locally and</div>
257
- </details>
258
- <details>
259
- <summary><code>MeshSetRole</code> — System Prompt</summary>
260
- <div class="prompt-box">Assigns a functional role to a mesh node. The role is displayed in the mesh list and</div>
261
- </details>
262
- <details>
263
- <summary><code>MeshShare</code> — System Prompt</summary>
264
- <div class="prompt-box">Controls whether this Clew Code instance advertises itself as a worker on the LAN.</div>
265
- </details>
266
- <details>
267
- <summary><code>MeshSpawn</code> — System Prompt</summary>
268
- <div class="prompt-box">Spawns a new local peer terminal window running Clew Code. The spawned peer will share automatically.</div>
269
- </details>
270
- <details>
271
- <summary><code>NotebookEdit</code> — System Prompt</summary>
272
- <div class="prompt-box">Completely replaces the contents of a specific cell in a Jupyter notebook (.ipynb file) with new source. Jupyter notebooks are interactive documents that combine code, text, and visualizations, commonly used for data analysis and scientific computing. The notebook_path parameter must be an absolute path, not a relative path. The cell_number is 0-indexed. Use edit_mode=insert to add a new cell at the index specified by cell_number. Use edit_mode=delete to delete the cell at the index specified by cell_number.</div>
273
- </details>
274
- <details>
275
- <summary><code>ProcessMesh</code> — System Prompt</summary>
276
- <div class="prompt-box">Runs a local process-backed AI worker for one task and returns stdout/stderr.</div>
277
- </details>
278
- <details>
279
- <summary><code>ReadMcpResource</code> — System Prompt</summary>
280
- <div class="prompt-box">Reads a specific resource from an MCP server, identified by server name and resource URI.
281
-
282
- Parameters:
283
- - server (required): The name of the MCP server from which to read the resource
284
- - uri (required): The URI of the resource to read</div>
285
- </details>
286
- <details>
287
- <summary><code>RemoteTrigger</code> — System Prompt</summary>
288
- <div class="prompt-box">Call the claude.ai remote-trigger API. Use this instead of curl — the OAuth token is added automatically in-process and never exposed.
289
-
290
- Actions:
291
- - list: GET /v1/code/triggers
292
- - get: GET /v1/code/triggers/{trigger_id}
293
- - create: POST /v1/code/triggers (requires body)
294
- - update: POST /v1/code/triggers/{trigger_id} (requires body, partial update)
295
- - run: POST /v1/code/triggers/{trigger_id}/run
296
-
297
- The response is the raw JSON from the API.</div>
298
- </details>
299
- <details>
300
- <summary><code>TaskGet</code> — System Prompt</summary>
301
- <div class="prompt-box">Use this tool to retrieve a task by its ID from the task list.
302
-
303
- ## When to Use This Tool
304
-
305
- - When you need the full description and context before starting work on a task
306
- - To understand task dependencies (what it blocks, what blocks it)
307
- - After being assigned a task, to get complete requirements
308
-
309
- ## Output
310
-
311
- Returns full task details:
312
- - **subject**: Task title
313
- - **description**: Detailed requirements and context
314
- - **status**: 'pending', 'in_progress', or 'completed'
315
- - **blocks**: Tasks waiting on this one to complete
316
- - **blockedBy**: Tasks that must complete before this one can start
317
-
318
- ## Tips
319
-
320
- - After fetching a task, verify its blockedBy list is empty before beginning work.
321
- - Use TaskList to see all tasks in summary form.</div>
322
- </details>
323
- <details>
324
- <summary><code>TaskUpdate</code> — System Prompt</summary>
325
- <div class="prompt-box">Use this tool to update a task in the task list.
326
-
327
- ## When to Use This Tool
328
-
329
- **Mark tasks as resolved:**
330
- - When you have completed the work described in a task
331
- - When a task is no longer needed or has been superseded
332
- - IMPORTANT: Always mark your assigned tasks as resolved when you finish them
333
- - After resolving, call TaskList to find your next task
334
-
335
- - ONLY mark a task as completed when you have FULLY accomplished it
336
- - If you encounter errors, blockers, or cannot finish, keep the task as in_progress
337
- - When blocked, create a new task describing what needs to be resolved
338
- - Never mark a task as completed if:
339
- - Tests are failing
340
- - Implementation is partial
341
- - You encountered unresolved errors
342
- - You couldn't find necessary files or dependencies
343
-
344
- **Delete tasks:**
345
- - When a task is no longer relevant or was created in error
346
- - Setting status to \</div>
347
- </details>
348
- <details>
349
- <summary><code>TodoWrite</code> — System Prompt</summary>
350
- <div class="prompt-box">Use this tool to create and manage a structured task list for your current coding session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
351
- It also helps the user understand the progress of the task and overall progress of their requests.
352
-
353
- ## When to Use This Tool
354
- Use this tool proactively in these scenarios:
355
-
356
- 1. Complex multi-step tasks - When a task requires 3 or more distinct steps or actions
357
- 2. Non-trivial and complex tasks - Tasks that require careful planning or multiple operations
358
- 3. User explicitly requests todo list - When the user directly asks you to use the todo list
359
- 4. User provides multiple tasks - When users provide a list of things to be done (numbered or comma-separated)
360
- 5. After receiving new instructions - Immediately capture user requirements as todos
361
- 6. When you start working on a task - Mark it as in_progress BEFORE beginning work. Ideally you should only have one todo as in_progress at a time
362
- 7. After completing a task - Mark it as completed and add any new follow-up tasks discovered during implementation
363
-
364
- ## When NOT to Use This Tool
365
-
366
- Skip using this tool when:
367
- 1. There is only a single, straightforward task
368
- 2. The task is trivial and tracking it provides no organizational benefit
369
- 3. The task can be completed in less than 3 trivial steps
370
- 4. The task is purely conversational or informational
371
-
372
- NOTE that you should not use this tool if there is only one trivial task to do. In this case you are better off just doing the task directly.
373
-
374
- ## Examples of When to Use the Todo List
375
-
376
- &lt;example&gt;
377
- User: I want to add a dark mode toggle to the application settings. Make sure you run the tests and build when you're done!
378
- Assistant: *Creates todo list with the following items:*
379
- 1. Creating dark mode toggle component in Settings page
380
- 2. Adding dark mode state management (context/store)
381
- 3. Implementing CSS-in-JS styles for dark theme
382
- 4. Updating existing components to support theme switching
383
- 5. Running tests and build process, addressing any failures or errors that occur
384
- *Begins working on the first task*
385
-
386
- &lt;reasoning&gt;
387
- The assistant used the todo list because:
388
- 1. Adding dark mode is a multi-step feature requiring UI, state management, and styling changes
389
- 2. The user explicitly requested tests and build be run afterward
390
- 3. The assistant inferred that tests and build need to pass by adding &quot;Ensure tests and build succeed&quot; as the final task
391
- &lt;/reasoning&gt;
392
- &lt;/example&gt;
393
-
394
- &lt;example&gt;
395
- User: Help me rename the function getCwd to getCurrentWorkingDirectory across my project
396
- Assistant: *Uses grep or search tools to locate all instances of getCwd in the codebase*
397
- I've found 15 instances of 'getCwd' across 8 different files.
398
- *Creates todo list with specific items for each file that needs updating*
399
-
400
- &lt;reasoning&gt;
401
- The assistant used the todo list because:
402
- 1. First, the assistant searched to understand the scope of the task
403
- 2. Upon finding multiple occurrences across different files, it determined this was a complex task with multiple steps
404
- 3. The todo list helps ensure every instance is tracked and updated systematically
405
- 4. This approach prevents missing any occurrences and maintains code consistency
406
- &lt;/reasoning&gt;
407
- &lt;/example&gt;
408
-
409
-
410
- &lt;example&gt;
411
- User: I need to implement these features for my e-commerce site: user registration, product catalog, shopping cart, and checkout flow.
412
- Assistant: *Creates a todo list breaking down each feature into specific tasks based on the project architecture*
413
- Let's start with user registration. This will involve creating database models, API endpoints, and frontend forms that integrate with your existing authentication system.
414
-
415
- &lt;reasoning&gt;
416
- The assistant used the todo list because:
417
- 1. The user provided multiple complex features to implement in a comma separated list
418
- 2. The todo list helps organize these large features into manageable tasks
419
- 3. This approach allows for tracking progress across the entire implementation
420
- &lt;/reasoning&gt;
421
- &lt;/example&gt;
422
-
423
- &lt;example&gt;
424
- User: Can you help optimize my React application? It's rendering slowly and has performance issues.
425
- Assistant: *Reviews component structure, render patterns, state management, and data fetching*
426
- After analyzing your codebase, I've identified several performance issues.
427
- *Creates todo list with items like: 1) Implementing memoization for expensive calculations in ProductList, 2) Adding virtualization for long lists in Dashboard, 3) Optimizing image loading in Gallery component, 4) Fixing state update loops in ShoppingCart, 5) Reviewing bundle size and implementing code splitting*
428
- Let's start by implementing memoization for the expensive calculations in your ProductList component.
429
-
430
- &lt;reasoning&gt;
431
- The assistant used the todo list because:
432
- 1. First, the assistant examined the codebase to identify specific performance issues
433
- 2. Based on this analysis, it identified multiple optimization opportunities
434
- 3. Performance optimization is a non-trivial task requiring multiple steps
435
- 4. The todo list helps methodically track improvements across different components
436
- 5. This systematic approach ensures all performance bottlenecks are addressed
437
- &lt;/reasoning&gt;
438
- &lt;/example&gt;
439
-
440
- ## Examples of When NOT to Use the Todo List
441
-
442
- &lt;example&gt;
443
- User: How do I print 'Hello World' in Python?
444
- Assistant: In Python, you can print &quot;Hello World&quot; with this simple code:
445
-
446
- python
447
- print(&quot;Hello World&quot;)
448
-
449
- This will output the text &quot;Hello World&quot; to the console when executed.
450
-
451
- &lt;reasoning&gt;
452
- The assistant did not use the todo list because this is a single, trivial task that can be completed in one step. There's no need to track multiple tasks or steps for such a straightforward request.
453
- &lt;/reasoning&gt;
454
- &lt;/example&gt;
455
-
456
- &lt;example&gt;
457
- User: What does the git status command do?
458
- Assistant: The git status command shows the current state of your working directory and staging area. It displays which changes have been staged, which haven't, and which files aren't being tracked by Git. This is a fundamental command for understanding the current state of your repository before making commits.
459
-
460
- &lt;reasoning&gt;
461
- The assistant did not use the todo list because this is an informational request with no actual coding task to complete. The user is simply asking for an explanation, not for the assistant to perform multiple steps or tasks.
462
- &lt;/reasoning&gt;
463
- &lt;/example&gt;
464
-
465
- &lt;example&gt;
466
- User: Can you add a comment to the calculateTotal function to explain what it does?
467
- Assistant: Sure, let me add a comment to the calculateTotal function to explain what it does.
468
- * Uses the ${FILE_EDIT_TOOL_NAME} tool to add a comment to the calculateTotal function *
469
-
470
- &lt;reasoning&gt;
471
- The assistant did not use the todo list because this is a single, straightforward task confined to one location in the code. Adding a comment doesn't require tracking multiple steps or systematic organization.
472
- &lt;/reasoning&gt;
473
- &lt;/example&gt;
474
-
475
- &lt;example&gt;
476
- User: Run npm install for me and tell me what happens.
477
- Assistant: I'll run the npm install command for you.
478
-
479
- *Executes: npm install*
480
-
481
- The command completed successfully. Here's the output:
482
- [Output of npm install command]
483
-
484
- All dependencies have been installed according to your package.json file.
485
-
486
- &lt;reasoning&gt;
487
- The assistant did not use the todo list because this is a single command execution with immediate results. There are no multiple steps to track or organize, making the todo list unnecessary for this straightforward task.
488
- &lt;/reasoning&gt;
489
- &lt;/example&gt;
490
-
491
- ## Task States and Management
492
-
493
- 1. **Task States**: Use these states to track progress:
494
- - pending: Task not yet started
495
- - in_progress: Currently working on (limit to ONE task at a time)
496
- - completed: Task finished successfully
497
-
498
- **IMPORTANT**: Task descriptions must have two forms:
499
- - content: The imperative form describing what needs to be done (e.g., &quot;Run tests&quot;, &quot;Build the project&quot;)
500
- - activeForm: The present continuous form shown during execution (e.g., &quot;Running tests&quot;, &quot;Building the project&quot;)
501
-
502
- 2. **Task Management**:
503
- - Update task status in real-time as you work
504
- - Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
505
- - Exactly ONE task must be in_progress at any time (not less, not more)
506
- - Complete current tasks before starting new ones
507
- - Remove tasks that are no longer relevant from the list entirely
508
-
509
- 3. **Task Completion Requirements**:
510
- - ONLY mark a task as completed when you have FULLY accomplished it
511
- - If you encounter errors, blockers, or cannot finish, keep the task as in_progress
512
- - When blocked, create a new task describing what needs to be resolved
513
- - Never mark a task as completed if:
514
- - Tests are failing
515
- - Implementation is partial
516
- - You encountered unresolved errors
517
- - You couldn't find necessary files or dependencies
518
-
519
- 4. **Task Breakdown**:
520
- - Create specific, actionable items
521
- - Break complex tasks into smaller, manageable steps
522
- - Use clear, descriptive task names
523
- - Always provide both forms:
524
- - content: &quot;Fix authentication bug&quot;
525
- - activeForm: &quot;Fixing authentication bug&quot;
526
-
527
- When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.</div>
528
- </details>
529
- </div>
530
-
531
- <style>
532
- .tool-prompts details {
533
- background: var(--bg-card);
534
- border: 1px solid var(--border-subtle);
535
- border-radius: 8px;
536
- margin: 0.5rem 0;
537
- padding: 0.75rem 1rem;
538
- }
539
- .tool-prompts summary { cursor: pointer; font-weight: 600; font-size: var(--text-sm); }
540
- .prompt-box {
541
- background: var(--code-bg);
542
- border: 1px solid var(--code-border);
543
- border-radius: 6px;
544
- padding: 1rem;
545
- margin: 0.75rem 0;
546
- font-family: var(--font-mono);
547
- font-size: var(--text-xs);
548
- line-height: 1.6;
549
- color: var(--code-text);
550
- white-space: pre-wrap;
551
- overflow-x: auto;
552
- }
553
- </style>
554
-
555
- </main></div>
556
- </div>
557
- </body>
558
- </html>