refactor(mcp): rewrite external MCP tool descriptions for trigger clarity
Every tool description now leads with what the tool does AND when to reach for it, since MCP clients rank tools by that text. Per-parameter prose moved onto the parameters as [Description], exhaustive result-shape enumerations and design/history rationale dropped, and the repeated boilerplate clauses (lean-task-ref, batch cap, refused-while-Running) pulled into McpToolDocs, which also documents the style for future tools. Tool-level description text: 20494 -> 13605 chars (-34%); combined with the new parameter descriptions 18517 (-10%). Closes gaps that caused wrong calls rather than just verbose ones: - list_task_attachments returns metadata only, no file content - run_task_now shares continue_task's single override slot and throws when busy - list_runs is ordered oldest-first and feeds get_run - workingDir on create_list/update_list is an existing local git repo path, unvalidated until the first task run - get_task_worktree's behind=0 also means the main ref was unreachable Removes get_task_status_values: a whole tool entry for static reference text. GetTask's description is now the canonical place for status meanings.
This commit is contained in:
@@ -989,19 +989,6 @@ public sealed class ExternalMcpServiceTests : IDisposable
|
||||
Assert.Equal(10, result.Config.MaxTurns);
|
||||
}
|
||||
|
||||
// ── GetTaskStatusValues ───────────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public async Task GetTaskStatusValues_ContainsAllStatuses()
|
||||
{
|
||||
var sut = NewService();
|
||||
var values = await sut.GetTaskStatusValues();
|
||||
var names = values.Select(v => v.Status).ToHashSet();
|
||||
|
||||
foreach (var status in Enum.GetValues<TaskStatus>())
|
||||
Assert.Contains(status.ToString(), names);
|
||||
}
|
||||
|
||||
// ── ListTasks status filter ───────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user