spa/.claude/commands/thread.md

189 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: thread
description: Manage conversation threads (create, switch, update, delete, show)
---
# Thread Manager Command
This command allows you to manage conversation threads using the `thread-manager` MCP server.
## Usage
- `/thread new "Title" [options]`: Create a new thread
- `/thread switch <id>`: Switch to a specific thread
- `/thread update [options]`: Update current thread metadata
- `/thread delete <id>`: Delete a thread
- `/thread show [id]`: Show thread details
- `/thread` or `/thread info`: Show current thread info
## Subcommands
### New Thread
Create a new thread and optionally switch to it.
```bash
/thread new "Implement User Auth" --tags backend,auth
```
**Options:**
- `--desc "Description"`: Add a description
- `--tags tag1,tag2`: Add tags (comma separated)
- `--no-switch`: Do not switch to the new thread immediately
### Switch Thread
Switch context to another thread.
```bash
/thread switch <thread-id>
/thread <thread-id>
```
### Update Thread
Update the metadata of the *current* or specified thread.
```bash
/thread update --title "New Title" --add-tags tag3
```
### Delete Thread
Delete a thread permanently.
```bash
/thread delete <thread-id> --confirm
```
### Show/Info
Show details about a thread.
```bash
/thread show <thread-id>
/thread info # Shows current thread
```
## Implementation Details for Claude
### ⚠️ 前置检查(最高优先级)
**在执行任何操作之前,必须先检查 `thread-manager` MCP 服务器是否可用。**
判断方法:检查当前可用的工具列表中是否包含 `mcp__thread-manager__*` 系列工具(如 `mcp__thread-manager__list_threads`、`mcp__thread-manager__switch_thread` 等)。
**如果 MCP 工具不可用,必须立即输出以下错误信息并停止,不要尝试调用任何工具:**
```
❌ thread-manager MCP 服务器未配置
当前项目未配置 thread-manager MCP 服务器,无法使用线程管理功能。
🔧 解决方案:
方案 1全局安装推荐一次配置全局可用
claude mcp add thread-manager -s user -- node <path-to-thread-manager>/dist/index.js
方案 2项目级安装
claude mcp add thread-manager -s project -- node <path-to-thread-manager>/dist/index.js
方案 3切换到已配置该服务的项目目录
添加后需要重启 Claude Code 会话才能生效。
```
**🔴 重要:绝对不要在 MCP 不可用时尝试调用工具,这会导致命令卡住无响应!**
---
### 正常流程
当用户调用此命令时,您应该:
1. **检查 MCP 可用性**:确认 `mcp__thread-manager__*` 工具存在。如不存在,输出上述错误信息并停止。
2. **解析子命令**:识别它是 `new`、`switch`、`update`、`delete`、`show` 还是 ID这意味着切换
3. **调用相应的 MCP 工具**
- `new` -> `thread-manager.create_thread`
- `switch``<id>` -> `thread-manager.switch_thread`
- `list` -> `thread-manager.list_threads`
- `update` -> `thread-manager.update_thread`
- `delete` -> `thread-manager.delete_thread`
- `show``info` -> `thread-manager.get_thread``thread-manager.get_current_thread`
4. **格式化输出**:将结果美观地呈现给用户。
### 切换线程时的处理
当用户执行 `/thread switch <id>``/thread <id>` 时:
1. **调用 `thread-manager.switch_thread`**
2. **解析返回结果**,特别是 `message` 字段。
3. **显示完整的切换横幅**(即 `thread-manager` 返回的 `message`,包含上下文恢复和启动命令)。
4. **建议用户重启会话以完全隔离上下文**
**重要提示格式 (由 `thread-manager` 返回的 message 字段已包含此内容)**
```
⚠️ 为了完全隔离上下文,请执行以下操作之一:
选项 1推荐重启到新 session
exit
claude --session-id <thread-id>
选项 2在新终端中打开
claude --session-id <thread-id>
```
### 创建线程时的处理
当用户执行 `/thread new "标题"` 时:
1. **调用 `thread-manager.create_thread`**
2. **立即显示创建成功的信息**(即 `thread-manager` 返回的 `message` 字段)。
3. **提供启动命令**(即 `thread-manager` 返回的 `launchCommand` 字段)。
4. **🔴 重要:立即结束响应,不要执行任何额外的任务或继续对话**。
**响应格式要求:**
- ✅ 只输出 `thread-manager` 返回的 `message` 内容
- ✅ 保持输出简洁(不超过 20 行)
- ❌ 不要思考或规划后续任务
- ❌ 不要问用户"接下来要做什么"
- ❌ 不要开始执行创建 thread 之外的其他工作
**示例正确响应:**
```
✨ 新线程已创建
📋 标题测试当前h5
🆔 ID8458e9d2
🚀 启动独立会话:
claude --session-id 8458e9d2-cf78-445b-96ed-c4f286b1c83d
或使用快捷命令:
clt 8458e9d2
```
[响应结束,等待用户下一个命令]
**示例: 创建线程**
如果用户输入: `/thread new "Fix login bug" --tags bug`
您调用:
```javascript
use_mcp_tool({
server_name: "thread-manager",
tool_name: "create_thread",
arguments: {
title: "Fix login bug",
tags: ["bug"],
}
});
```
**示例: 切换线程**
如果用户输入: `/thread T-12345`
您调用:
```javascript
use_mcp_tool({
server_name: "thread-manager",
tool_name: "switch_thread",
arguments: {
threadId: "T-12345"
}
});
```