Skip to main content

mda-issue-log-analysis

分析 MDA 公开 Issue、日志包或本地日志。用于 `https://github.com/1204244136/MDA/issues/...`、`#1234`、MDA 日志压缩包、识别失败、任务卡死、控制器差异、Pipeline/Agent/MXU 问题。会从 maafw.log、maafw.bak.*.log、go-service.log、mxu-tauri.log、mxu-web-*.log、mxu-agent*.log、config/*、on_error/ 中筛选证据,并结合 MDA、MaaFramework、MXU 代码和文档判断根因。

Ir a la instalación

Datos de origen

Repositorio
1204244136/MDA
Última actividad en el origen
28 de mayo de 2026 a las 22:01
Idioma detectado de SKILL.md
chino
Estrellas
114
Forks
32

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
mda-issue-log-analysis
description
分析 MDA 公开 Issue、日志包或本地日志。用于 `https://github.com/1204244136/MDA/issues/...`、`#1234`、MDA 日志压缩包、识别失败、任务卡死、控制器差异、Pipeline/Agent/MXU 问题。会从 maafw.log、maafw.bak.*.log、go-service.log、mxu-tauri.log、mxu-web-*.log、mxu-agent*.log、config/*、on_error/ 中筛选证据,并结合 MDA、MaaFramework、MXU 代码和文档判断根因。
# MDA Issue / Log Analysis ## Scope - 用于 MDA 仓库:`https://github.com/1204244136/MDA`。 - 输入可以是完整 issue URL、`#1234` 形式的 issue 编号、本地日志目录或日志压缩包路径。 - 只分析用户授权访问的公开 issue、用户提供的日志包或本地文件。 - 如果 issue 没有日志包,且问题明确需要运行证据,先说明证据不足;不要凭空推断根因。 - 如果发现 `.dmp` 文件,必须联动 `dmp-analysis` skill,不要只凭文本日志猜测崩溃原因。 ## Workflow ### 1. 规范化输入 - `#1234` 视为 `https://github.com/1204244136/MDA/issues/1234`。 - 如果 URL 不是 `1204244136/MDA`,说明本 skill 不适用,除非用户明确要求按 MDA 同类日志格式分析。 - 如果输入是本地路径,先识别它是目录、zip 包还是单个日志文件。 ### 2. 获取 issue / 日志上下文 从 issue 或用户描述中提取: - MDA 版本。 - MaaFramework / MXU 版本。 - 控制器类型。 - 任务名 / 入口名。 - 用户期望行为。 - 实际行为。 - 复现步骤。 - 维护者评论。 维护者评论只能作为线索;仍需用日志和代码自行验证。 ### 3. 提取日志附件 关注 MDA 导出的日志压缩包。附件命名可能随打包工具变化,不要只匹配单一文件名;优先寻找包含以下文件或目录的 zip: - `maafw.log` - `maafw.bak.*.log` - `go-service.log` - `mxu-tauri.log` - `mxu-web-YYYY-MM-DD.log` - `mxu-agent*.log` - `config/` - `on_error/` - `.dmp` 如果同一个 issue 有多个日志包: 1. 先看最新一次复现。 2. 若 issue 在对比版本、控制器或配置,再补看前面的包。 ### 4. 下载 / 解压日志包 二进制 zip 不要用网页抓取工具直接读取。使用终端下载到临时目录,例如: ```text .cache/issue-logs/issue-<number>/ .cache/log-analysis/local-<timestamp>/ ``` 解压后先列目录,不要假定结构固定。常见差异: - 多份 `mxu-agent-<index>-<pid>.log`。 - 多天 `mxu-web-YYYY-MM-DD.log`。 - `maafw.log` 过短,需要看 `maafw.bak.*.log`。 - 没有 `on_error/`。 - 现场图被日志导出体积限制截断。 - 包内存在 `.dmp`。 ### 5. DMP 崩溃转储分析 如果发现 `.dmp`: 1. 立即读取并执行 `.claude/skills/dmp-analysis/SKILL.md`。 2. 解析异常类型、崩溃模块、crashing thread。 3. 需要时下载 MaaFramework / MXU PDB 并符号化。 4. 用 DMP 文件名中的 PID 与 `maafw.log` 的 `[Px<pid>]` 或 MXU 日志交叉验证。 5. 最终报告必须包含 DMP 分析区域,并列出 crashing thread 的全部有效帧。 不要把 `.dmp` 当作普通附件跳过。 ### 6. 建立时间线 先定位用户认为出问题的时间,再串联日志: 1. `mxu-web-*`:前端提交了什么任务和配置。 2. `mxu-tauri.log`:实例、控制器、资源、任务开始/停止、agent 生命周期。 3. `maafw.log` / `maafw.bak.*.log`:Pipeline 节点识别、动作、超时、回调。 4. `go-service.log`:Go 自定义逻辑、环境检查、业务日志。 5. `mxu-agent*.log`:agent stdout/stderr 和用户运行日志面板。 6. `on_error/`:错误现场截图。 优先锁定本次复现的 `task_id`,后续分析都限定到该任务实例。一个日志包里经常混有历史运行,不要串任务。 ### 7. 回溯到 MDA 代码和配置 MDA 代码证据优先顺序: - 任务入口、控制器限制、用户选项: - `assets/tasks/*.json` - `assets/interface.json` - `assets/tasks/preset/*.json` - Pipeline 节点: - `assets/resource/pipeline/**/*.json` - Go 扩展逻辑: - `agent/go-service/**` - Schema / 协议: - `tools/schema/*.json` - 本地化文案: - `assets/locales/interface/zh_cn.json` - `assets/locales/interface/en_us.json` 总结任务、选项、界面提示时,优先读取 `zh_cn.json` 的中文文案,不要直接把 task id 当成用户可见名称。 ### 8. 必要时查上游 先用 issue、日志、MDA 仓库和 MaaFramework 文档做初步归因。只有证据指向上游实现或现有证据不足时,再看: - MaaFramework:`https://github.com/MaaXYZ/MaaFramework` - MXU:`https://github.com/MistEO/MXU` - maa-framework-go:`https://github.com/MaaXYZ/maa-framework-go` - maa-framework-rs:`https://github.com/MaaXYZ/maa-framework-rs` 不要为了普通 Pipeline 配置问题过早下钻上游源码。 ## Log Map ### `maafw.log` MaaFramework 核心运行时日志。 最适合看: - Pipeline 是否按预期推进。 - `next` / `on_error` 是否命中。 - `Tasker.Task.Starting` / `Succeeded` / `Failed`。 - `Node.Recognition.Failed` 连续重复。 - `Node.Action.Failed`。 - OCR / TemplateMatch / ColorMatch 细节。 - 控制器、截图、资源加载问题。 ### `maafw.bak.*.log` 滚动日志。用于: - 当前 `maafw.log` 不够长。 - 复现发生在较早时间。 - 对比同配置的历史成功/失败样本。 不要把旧日志误判成最新复现。 ### `go-service.log` MDA Go Agent 日志。 最适合看: - 自定义识别器/动作是否触发。 - taskersink 环境检查,例如 HDR、分辨率、进程检查、会员/额度逻辑。 - Go 参数解析、外部请求、业务扩展错误。 环境告警不一定是根因,必须和 `maafw.log`、现场截图一起判断。 ### `mxu-tauri.log` MXU Tauri/Rust 后端日志。 最适合看: - 实例创建与资源加载。 - 控制器连接。 - 任务开始/停止。 - agent 生命周期。 - `maa_ffi` 回调。 - 用户是否手动停止任务。 ### `mxu-web-YYYY-MM-DD.log` MXU 前端日志。 最适合看: - UI 是否加载了正确的 `interface.json`。 - 用户实际提交了哪些任务和配置。 - `pipeline_override` 是否符合用户选择。 - 配置持久化或界面状态问题。 日志包可能含多天文件,要优先看复现当天。 ### `mxu-agent*.log` MXU 捕获的 agent 子进程 stdout/stderr。 最适合看: - 用户在运行日志面板看到的内容。 - 子进程 stdout/stderr 报错。 - MaaFramework 或 go-service 的辅助输出。 它有用但不是最权威的根因日志;细节仍优先看 `maafw.log` 和 `go-service.log`。 ### `config/*` 配置快照。常见文件: - `config/mxu-MDA.json` - `config/maa_option.json` - `config/maa_pi_config.json` 最适合看: - 实际启用了哪些任务和选项。 - 控制器配置。 - 是否开启错误截图保存。 - 用户口述配置与实际配置是否一致。 ### `on_error/` MaaFramework 错误现场截图。 最适合看: - 实际停留界面。 - 模板/OCR 是否识别错画面。 - 是否被弹窗、加载态、遮罩、分辨率、HDR 等干扰。 日志和用户描述冲突时,优先相信现场截图。 ## How To Filter Evidence 1. 先从用户描述或 issue 拿锚点:版本、控制器、任务名、入口名、失败画面、复现步骤。 2. 在日志中找高价值信号: - `Tasker.Task.Starting` / `Succeeded` / `Failed` - `Node.Recognition.Failed` - `Node.Action.Failed` - `timeout` - `Warn` / `Error` / `Fatal` - agent 启动失败、断连、被停止 3. 锁定本次复现 task_id 后再看细节。 4. Pipeline 问题重点看 `maafw.log` 和 `mxu-tauri.log` 回调。 5. Go 扩展问题重点看 `go-service.log` 和 `mxu-agent*.log`。 6. UI / 配置 / 编排问题重点看 `mxu-web-*`、`mxu-tauri.log`、`config/*`。 7. 只摘足够支撑结论的关键片段,不要倾倒整份日志。 ## Common Patterns - `next` 列表中的识别连续失败直到超时: - 当前画面不在预期分支、模板/OCR 失配、漏了中间节点、弹窗打断、控制器资源不匹配。 - 某个兜底返回/退出节点连续成功但流程没有前进: - Pipeline 对当前状态判断错了,或回退动作本身就是错误行为。 - issue 文字说失败,但目标 `task_id` 最终 `Tasker.Task.Succeeded`: - 明确写“本日志未复现用户描述的失败”。 - 如代码仍有脆弱点,单独标为潜在风险,不当作已证实根因。 - 用户日志流程与当前主线代码明显不一致: - 先确认用户版本。 - 必要时按对应 tag/commit 复核旧逻辑。 - 不要用当前分支直接否定旧版本日志。 - 奖励/确认弹窗节点识别和点击成功,但父流程没有验证弹窗消失: - 这是常见脆弱点;若本次没失败,写成潜在风险。 - `go-service.log` 只有 HDR / 分辨率 / 进程告警: - 通常是环境风险提示,不自动等同根因。 - `maafw.bak.*.log` 有同配置历史成功样本,本次失败: - 可作为行为回归或环境差异的强旁证。 ## Localized Copy 输出任务、选项、界面提示时,优先查: 1. `assets/locales/interface/zh_cn.json` 2. `assets/locales/interface/en_us.json` 常见 key: - `task.<TaskId>.label` - `task.<TaskId>.description` - `option.<OptionId>.label` - `option.<OptionId>.description` - `task.<TaskId>.option.<OptionId>.label` 如果中文 key 缺失,退回原始 id,并说明未找到对应文案。 ## Linking Code Evidence 如果要指向具体代码行: - 本地工作中可以用相对路径引用文件。 - 面向 issue 报告时,优先给远端 GitHub blob 行号链接。 - MDA 链接格式: - `https://github.com/1204244136/MDA/blob/<commit>/<path>#L1-L2` - `<commit>` 使用本次分析依据的版本:当前 `HEAD`、用户版本 tag,或日志对应 commit。 ## Output Format 最终回答推荐结构: ````markdown ## Issue / 日志概要 - issue / 日志包:`...` - 版本 / 控制器:`...` - 任务 / 相关选项:优先使用中文 label,必要时补 task id - 用户现象:... ## 关键证据 <details><summary>点击展开</summary> - `maafw.log`:... - `go-service.log`:... - `mxu-tauri.log`:... - `mxu-web-*.log`:... - `mxu-agent*.log` / `on_error`:... - 代码依据:... ### DMP 崩溃分析 (仅当存在 `.dmp` 时输出;否则删除本节。) - DMP 文件:`...` - 异常类型:`...` - 崩溃模块:`...` - 符号化状态:... ```text Frame 0: ... Frame 1: ... ``` </details> ## 根因判断 - 直接结论:... - 证据链:... - 置信度:高 / 中 / 低 ## 给用户的建议 - 用户现在可以尝试:... - 是否建议升级 / 重下完整包 / 同步资源 / 重置配置:... - 是否有临时绕过方案:... ## 修复方案 1. Pipeline / 配置 / Go 代码修复方向。 2. 需要补充的测试或日志。 3. 如属于不支持场景,说明应如何限制入口或改进提示。 ## 给修复 AI 的建议(可复制) ```text 现象: ... 关键证据: ... 可能相关线索(待验证): ... ``` ```` ## Reminders - 发现 `.dmp` 必须执行 `dmp-analysis`。 - 不要只看一个日志文件下结论。 - 不要把维护者评论当唯一证据。 - 不要把环境告警自动等同根因。 - 日志与 issue 文字不一致时,明确说明“证据未复现”还是“证据已复现但用户表述不精确”。 - 如果证据表明问题已在新版本修复,明确建议升级。 - 如果怀疑安装包、资源或配置损坏,明确建议重新下载、同步资源或重建配置。
Ver en GitHub