ワンクリックで
troubleshoot
跨项目问题排查与诊断。支持 dev(本地编译调试)和 artifact(制品运行)两种模式,引导从数据流全局视角定位问题归属项目,必要时联合 TuringFocus 系统排查。当遇到难以定位的运行时错误、连接失败、数据不通等问题时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
跨项目问题排查与诊断。支持 dev(本地编译调试)和 artifact(制品运行)两种模式,引导从数据流全局视角定位问题归属项目,必要时联合 TuringFocus 系统排查。当遇到难以定位的运行时错误、连接失败、数据不通等问题时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
A2C-SMCP 体系新增功能的流程门控。强制协议先行——任何涉及协议的 Feature 必须先在协议仓库通过评审、合并、发布后,代码仓库才可跟进实现。当用户提出新功能需求或 Feature Request 时调用。
以架构师视角审查代码变更,关注模块边界、DRY 复用性、测试完整性、协议合规和长期可维护性。当需要审查 PR、工作区变更或提交代码时使用。
以架构师视角分析并修复问题,强制 plan 模式,杜绝补丁式修复。涉及协议时严格按协议来,协议有问题则协议先行调整,代码再跟进。当遇到 Bug 反馈、错误日志或功能异常时使用。
把一个较大的 A2C-SMCP Epic / Story / GitHub Issue(或 Jira / CNB Issue)科学拆成多个可独立交付的子任务,输出含依赖图与集成回归守护的拆分方案,并在对应平台用 sub-issue 能力下单。A2C 特有:涉及协议的拆分强制「协议先行」——协议子任务置于依赖图根,代码仓库子任务 blocked-by 它。当用户说「拆分这个任务」「把 Epic 拆成子任务」「分解 Story」「给个切刀方案」时触发。
指导第三方 MCP Server 开发者通过标准 MCP Resource 协议暴露 window://(桌面状态)与 skill://(能力包)资源,接入 A2C-SMCP Desktop / SKILL 通道。当为 MCP Server 增加 A2C-SMCP 集成、把服务实时状态暴露给 Desktop、或通过 MCP 分发 SKILL 时使用。
反馈 A2C-SMCP Marketplace Skill 的问题或改进建议。自动识别当前会话中使用的 Skill,提取优化点,收集版本信息,提交 GitHub Issue 到 a2c-smcp-skills 仓库。当使用某个 Skill 时发现步骤错误、分支遗漏、文档过时等问题时调用。
| name | troubleshoot |
| description | 跨项目问题排查与诊断。支持 dev(本地编译调试)和 artifact(制品运行)两种模式,引导从数据流全局视角定位问题归属项目,必要时联合 TuringFocus 系统排查。当遇到难以定位的运行时错误、连接失败、数据不通等问题时使用。 |
| argument-hint | <dev|artifact> <问题描述或错误日志> |
A2C-SMCP 体系的问题往往跨越多个项目边界。本 Skill 从全局数据流视角出发,定位问题归属并引导排查。
核心工作方式:排查过程中每次做方向判断时,必须使用 AskUserQuestion 与用户沟通——陈述判断理由,请用户确认或纠正。用户是这些项目的开发维护者,他们的经验能帮你少走弯路。不要独自猜测方向。
┌─────────────────────────── A2C-SMCP 协议 ───────────────────────────┐
│ │
│ [Agent] ←─client:*/server:*/notify:*─→ [Server] ←──→ [Computer] │
│ python-sdk / rust-sdk python-sdk python-sdk │
│ rust-sdk rust-sdk │
│ tfrobot │
└──────────────────────────────────────────────────────┬───────────────┘
│ MCP Protocol
┌────────┼────────┐
[office4ai] [ide4ai] [其他MCP]
│ OASP Socket.IO
[office-editor4ai]
│ Office.js API
[Microsoft Office]
问题定位关键:确定故障发生在哪两个节点之间的连接上。
排查模式(第一个 token):
| 模式 | 场景 | 日志特点 |
|---|---|---|
dev | 本地编译调试运行 | 可设置日志级别、可断点、有完整 stdout/stderr |
artifact | 运行构建制品/部署版本 | 日志文件收集、进程日志、系统日志 |
| 留空 | 默认 dev |
模式确定后,对应的环境配置文件为 ~/.a2c_smcp/{mode}-env.json(如 dev-env.json、artifact-env.json)。
从用户提供的错误日志/描述中提取关键信息:
| 信号 | 可能涉及的项目 |
|---|---|
| Socket.IO 连接失败/超时 | Server ↔ Agent/Computer 之间 |
client:tool_call 错误 | Agent → Server → Computer 链路 |
Document not connected | office4ai ↔ office-editor4ai(OASP 层) |
| MCP Server 启动失败 | Computer 的 MCP 配置 |
| 工具调用返回错误 | Computer → MCP Server 之间 |
| Office 操作失败 | office-editor4ai → Office.js API |
| IPC 错误 | tfrobot-client 前后端之间 |
| 序列化/反序列化错误 | 跨 SDK 兼容性(Python ↔ Rust) |
使用 AskUserQuestion 与用户确认故障发生在数据流的哪个区间:
通过 {baseDir}/scripts/smcp-env.sh 管理环境配置(~/.a2c_smcp/{mode}-env.json),避免 LLM 直接操作配置文件。
bash {baseDir}/scripts/smcp-env.sh show {mode} 查看当前配置bash ... verify {mode} 检查有效性,AskUserQuestion 确认是否需要更新bash ... set-agent {mode} <type> <deployment> local|remote [ssh] [key=value...]bash ... set {mode} <project> local <path> 或 ... remote <ssh> <dir> <log>bash ... show {mode} 向用户展示最终配置mcp__ssh-mcp-server__list-servers 验证 SSH 连接可用按项目收集诊断信息:
各项目的日志收集命令参见
{baseDir}/resources/<project>.md"dev 模式日志收集"章节。
通用步骤:
按项目收集诊断信息:
各项目的日志收集命令参见
{baseDir}/resources/<project>.md"artifact 模式日志收集"章节。
通用步骤:
当故障区间涉及 Agent ↔ Server 时,需采集 Agent 侧日志。根据环境配置中的 agent.deployment 选择采集方式:
| 部署方式 | 日志命令 |
|---|---|
| supervisord | supervisorctl tail -f {service} 或读取 log_path |
| docker | docker logs --tail 200 {container} |
| k8s | kubectl logs -n {namespace} -l {pod_selector} --tail=200 |
Agent 为 remote 时,通过 SSH MCP(connectionName 取自 agent.ssh_connection)执行上述命令。
当环境配置中项目 location 为 remote 时,通过 SSH MCP 执行:
mcp__ssh-mcp-server__execute-command,connectionName 取自 ssh_connection,directory 设为 project_dir,命令与本地相同(参见各项目 resource)mcp__ssh-mcp-server__download 拉到本地分析,remotePath 基于 log_path部分环境(如 Office WebView、远程部署制品)的日志无法通过命令行自动获取。此时必须使用 AskUserQuestion 向用户求助,说明需要什么日志、在哪里查看,请用户手动提供:
需要您帮助收集以下日志:
- 在 Office 应用中打开 DevTools Console(F12)
- 复现问题操作
- 将 Console 中的错误日志复制粘贴给我
故障区间确定后,分别检查区间两端的项目状态:
| 检查项 | 方法 |
|---|---|
| 进程是否存活 | `ps aux |
| 端口是否监听 | lsof -i :<port> / netstat |
| 配置是否正确 | 读取配置文件,对比协议要求 |
| 版本是否兼容 | 检查依赖版本,确认 SDK 版本匹配 |
在初步检查后,使用 AskUserQuestion 向用户陈述当前判断:
用户可能基于经验直接指出根因方向,或纠正错误判断,避免在错误方向上浪费时间。
跨项目问题的高频根因是协议不一致:
使用 req_id(A2C 协议)或 requestId(OASP 协议)在多个项目的日志中追踪同一请求的完整链路。
当问题涉及 SDK 连接到 TuringFocus 系统时(如通过 python-sdk/rust-sdk 连接远程 Server),A2C-SMCP 项目侧的排查可能不足以定位问题。
| 信号 | 判定 |
|---|---|
| SDK 连接远程 Server 失败 | 可能需要 |
| 远程 Server 侧事件路由异常 | 需要 |
| 问题仅在连接 TuringFocus 时复现 | 需要 |
| 纯本地问题(本地 Server + 本地 Computer) | 不需要 |
如果需要联合排查,引导用户:
claude plugin add turingfocus/turingfocus-skills
/turingfocus-skills:troubleshoot <问题描述>
输出诊断报告:问题概述、排查模式、故障区间、根因定位(归属项目 + 层级 + 证据)、修复建议(代码问题 → /fix-issue,协议问题 → /add-feature,配置问题 → 直接建议)。
使用 AskUserQuestion 确认是否提报 GitHub Issue。确认后按 {baseDir}/resources/issue-report.md 的模板,用 gh issue create --repo <owner>/<repo> 在根因归属仓库创建 Issue。跨项目问题在主归因项目建 Issue,body 中用 Related: owner/repo#N 关联其他项目。
| 反模式 | 正确做法 |
|---|---|
| 独自猜测方向不与用户确认 | 每次方向判断用 AskUserQuestion 让用户确认 |
| 日志无法获取时自行放弃 | 向用户说明需要什么日志、在哪里查看,请求协助 |
| 只在一个项目内排查跨项目问题 | 从数据流全局定位故障区间 |
| dev 和 artifact 混用排查方式 | 明确模式,使用对应的日志收集手段 |
| 不检查协议一致性 | 跨项目问题优先检查协议对齐 |
| 不关联 req_id 追踪 | 用请求 ID 在多项目日志中追踪同一请求 |
| TuringFocus 问题在本地死磕 | 引导安装 turingfocus-skills 联合排查 |
| 假设所有项目都在本地 | 先确认环境配置,remote 项目走 SSH MCP |
| 每次排查都重新问环境 | 复用 ~/.a2c_smcp/{mode}-env.json,仅确认是否需更新 |