story-kit: merge 342_story_web_ui_button_to_delete_a_story_from_the_pipeline

This commit is contained in:
Dave
2026-03-20 09:10:56 +00:00
parent 3cfe25f97a
commit 60e1d7bf64
5 changed files with 180 additions and 6 deletions

View File

@@ -967,6 +967,20 @@ fn handle_tools_list(id: Option<Value>) -> JsonRpcResponse {
}
}
},
{
"name": "delete_story",
"description": "Delete a work item from the pipeline entirely. Stops any running agent, removes the worktree, and deletes the story file. Use only for removing obsolete or duplicate items.",
"inputSchema": {
"type": "object",
"properties": {
"story_id": {
"type": "string",
"description": "Work item identifier (filename stem, e.g. '28_story_my_feature')"
}
},
"required": ["story_id"]
}
},
{
"name": "move_story",
"description": "Move a work item (story, bug, spike, or refactor) to an arbitrary pipeline stage. Prefer dedicated tools when available: use accept_story to mark items done, move_story_to_merge to queue for merging, or request_qa to trigger QA review. Use move_story only for arbitrary moves that lack a dedicated tool — for example, moving a story back to backlog or recovering a ghost story by moving it back to current.",
@@ -1061,6 +1075,8 @@ async fn handle_tools_call(
"prompt_permission" => diagnostics::tool_prompt_permission(&args, ctx).await,
// Token usage
"get_token_usage" => diagnostics::tool_get_token_usage(&args, ctx),
// Delete story
"delete_story" => story_tools::tool_delete_story(&args, ctx).await,
// Arbitrary pipeline movement
"move_story" => diagnostics::tool_move_story(&args, ctx),
_ => Err(format!("Unknown tool: {tool_name}")),
@@ -1171,7 +1187,8 @@ mod tests {
assert!(names.contains(&"rebuild_and_restart"));
assert!(names.contains(&"get_token_usage"));
assert!(names.contains(&"move_story"));
assert_eq!(tools.len(), 41);
assert!(names.contains(&"delete_story"));
assert_eq!(tools.len(), 42);
}
#[test]