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 代码和文档判断根因。

Aller à l'installation

Informations de source

Dépôt
1204244136/MDA
Dernière activité de la source
28 mai 2026 à 22:01
Langue détectée de SKILL.md
chinois
Étoiles
114
Forks
32

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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 文字不一致时,明确说明“证据未复现”还是“证据已复现但用户表述不精确”。 - 如果证据表明问题已在新版本修复,明确建议升级。 - 如果怀疑安装包、资源或配置损坏,明确建议重新下载、同步资源或重建配置。
Voir sur GitHub