跳转到正文
报告库
用途分类 / 其他用途

Momentic Result Classification Skill 安全审计

作者说它能做什么(原文)

Classify or explain Momentic test run results using Momentic MCP tools.

第三方安全检查结论

发现安全风险

已检查文件
1
发现的风险
3
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

调查可把截图、DOM、网络日志和崩溃转储带入分析上下文及本地工作目录

原文依据:4 处
发现了什么

Skill 要求以截图为主要证据,并可读取完整跟踪;运行资产还包括 DOM、HAR 网络条目、视频和浏览器崩溃转储。MCP 会把解压后的运行结果放进 `.momentic-mcp` 工作目录。

为什么需要注意

测试页面若显示访问令牌、个人资料、客户数据或内部请求内容,这些信息可能被纳入模型上下文并留存在本地运行资产中,扩大敏感数据的可见范围。

调查会请求步骤截图,并可请求可能很大的完整 trace;MCP 还会把解压后的运行结果存入本地 `.momentic-mcp`。这些材料可能包含页面内容、DOM 或测试期间出现的敏感信息,从而扩大本地留存和模型处理范围。HAR、视频及崩溃包在文档中列为可能资产,但文本未要求默认读取它们。用户可要求限定所取步骤、默认禁用完整 trace,并说明本地结果的保留和清理策略。

SKILL.md:25来自说明文档打开原文件
`momentic_get_step_result` — Returns the result of a specific step, with other information such as full step trace and before/after screenshots. Use `parentStepIdChain` for steps nested inside other steps. Only request `includeTrace=true` when you need it, because it can be very large.
查看另外 3 个位置
SKILL.md:83来自说明文档打开原文件
    ├── metadata.json       attempt outcome and step results.    ├── console.json        optional browser console output.    └── assets/        ├── <snapshotId>.jpeg     before/after screenshot for each step (see attempt metadata.json for snapshot ID).        ├── <snapshotId>.html     before/after DOM snapshot for each step (see attempt metadata.json for snapshot ID).        ├── har-pages.log         HAR pages (ndjson).        ├── har-entries.log       HAR network entries (ndjson).        ├── resource-usage.ndjson CPU/memory samples taken during the attempt.        ├── <videoName>           video recording (when video recording is enabled).        └── browser-crash.zip     browser crash dump (only present on crash).```
SKILL.md:94来自说明文档打开原文件
When getting run results via the momentic MCP, tools such as `momentic_get_run` will return links to the MCP working directory (default `.momentic-mcp`). This directory will contain unzipped run result folders, following the structure above, named `run-result-<runId>`.
SKILL.md:55来自说明文档打开原文件
- Screenshots are the default truth source for page state. Use trace fields and DOM/HTML to explain why the screenshot changed or did not change.- Verify every causal claim. Do not say an overlay, side peek, modal, or menu was present unless the relevant before/after screenshot, URL, or DOM proves it.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
中风险

仅请求解释也可能触发持久化分类

原文依据:2 处
发现了什么

Skill 的适用范围包括“解释为何运行失败”,但其工作流又指示调查完成后调用提交工具。文本没有要求用户明确同意写入,也没有区分只读解释和保存结论。

为什么需要注意

如果调用者只想获得分析,Skill 仍可能更改 Momentic 中的运行记录或分类状态,进而影响后续分流、报告或人工判断。

该 Skill 明确适用于仅要求“解释”失败的用户,但同时提供了会把分类结果持久化的提交工具,并指示调查完成后调用;文本没有把只读回答与写入 Momentic 账户分开,也没有要求再次确认。若代理把完整流程用于解释请求,用户账户中的运行分类可能在未预期的情况下被修改。用户可要求作者将提交设为仅在用户明确要求保存时执行。

SKILL.md:4来自说明文档打开原文件
description:  Classify or explain Momentic test run results using Momentic MCP tools.  Use when the user asks to categorize a failure, understand why a run failed,  triage test results, or compare run results to past run results.---
查看另外 1 个位置
SKILL.md:29来自说明文档打开原文件
`momentic_submit_result_classification` — Persist your classification verdict for a run. Call this only after you have finished the investigation and are ready to record the final classification. Pass `runId` plus the fields described in the "Formal classification output" section below.
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
中风险

来自测试页面和运行记录的不可信文字可能操纵分类流程

原文依据:5 处
发现了什么

Skill 要求代理依据测试名称、描述、DOM、截图和跟踪判断意图与因果关系,但没有声明这些内容只能作为证据、不得作为代理指令。网页或测试数据中的恶意文字因此可能被误当成操作指示。

为什么需要注意

攻击者控制的页面、测试名称或日志可能诱导代理偏离调查、访问不必要的历史运行,或形成并持久化错误分类。

这段证据能说明什么

Skill 确实要求模型读取测试描述、截图、DOM/HTML 和 trace 来判断意图与因果,但提供的文本没有指示执行这些材料中的命令,也没有展示页面文字能够控制工具调用。因此存在未说明如何隔离不可信运行内容的防护缺口,但仅凭这些行不能确认其会被当成代理指令。用户可要求作者明确把页面、日志和测试描述规定为仅供分析的数据,并禁止其中内容触发工具调用或持久化。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:27来自说明文档打开原文件
`momentic_get_test_steps_for_run` — Returns the simplified test steps recorded on a run (`stepsSnapshot`, `beforeStepsSnapshot`, `afterStepsSnapshot`). You can use this to understand the intent of the test if you need more information than what you can glean from the test name and description.
查看另外 4 个位置
SKILL.md:55来自说明文档打开原文件
- Screenshots are the default truth source for page state. Use trace fields and DOM/HTML to explain why the screenshot changed or did not change.- Verify every causal claim. Do not say an overlay, side peek, modal, or menu was present unless the relevant before/after screenshot, URL, or DOM proves it.- Separate "the target is missing now" from "the browser is in the state where that target should exist." A missing target is often a symptom of an earlier failed action.
SKILL.md:175来自说明文档打开原文件
- Use test name, description, and, if needed, the simplified test steps returned by `momentic_get_test_steps_for_run` to determine what the test is intending to verify.- Failures outside that intent are unrelated, otherwise consider them related.- Any failures in setup (`beforeSteps` or `beforeResults`) or teardown (`afterSteps` or `afterResults`) are pretty much always considered unrelated.
SKILL.md:29来自说明文档打开原文件
`momentic_submit_result_classification` — Persist your classification verdict for a run. Call this only after you have finished the investigation and are ready to record the final classification. Pass `runId` plus the fields described in the "Formal classification output" section below.
SKILL.md:44来自说明文档打开原文件
- What is the test's intended behavior?- What is the earliest divergent step/container?- What did that step intend to do?- Which element/state did it actually interact with or observe?- What changed in the screenshot, URL, DOM, trace, or recovery log after the step?- Why is the later failure a consequence of that earlier divergence?
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该 Skill 调用 Momentic MCP 读取当前失败运行,检查失败步骤及其截图、跟踪,并在基线已经错误时向前追溯最早产生错误状态的步骤。

查看原文
SKILL.md:35来自说明文档打开原文件
1. Call `momentic_get_run` and identify the failing attempt, section (`beforeSteps`, main steps, or `afterSteps`), failing step, and any `parentStepIdChain`.2. Pull the failing step result with screenshots and trace. If the step is nested, also pull the nearest parent container or module result.3. Decide whether the failing step's before-screenshot is the correct baseline for that action. If it is already wrong, walk backward through the current run until you find the step/container that produced that bad state.4. For repeated modules or repeated workflows, compare invocations inside the same current run before comparing older runs. The later failure is often caused by an earlier invocation that succeeded, recovered, or left an invalid postcondition.

它可以查询同一测试的历史运行作比较,并要求在存在分支名时限定分支;历史记录仅应在理解当前运行后用于回答具体比较问题。

查看原文
SKILL.md:23来自说明文档打开原文件
`momentic_list_runs` — Recent runs for a test so you can compare the result of past runs over time. **Always pass `gitBranchName` when it exists on the run in question** so that it's more likely you're looking at the same version of the test. Omit it when you need runs from other branches. Pass `recovered=true` when you want to inspect recovered runs.
SKILL.md:130来自说明文档打开原文件
Past runs are comparison evidence, not a substitute for reconstructing the current run. Use them when the current run does not answer:- When did this test start failing?- What differed vs the last passing run?- Did the same action behave differently on an earlier run?- Is this a test weakness, an application change, a real application bug, or a temporary slowdown?

最终输出包含一个预定义故障类别、可恢复性和置信度;说明必须指向最早的偏离及其破坏的后置状态。

查看原文
SKILL.md:202来自说明文档打开原文件
- When referencing past runs in final output, use clickable Momentic URLs rather than bare UUIDs: `https://app.momentic.ai/runs/<runId>`. Do not shorten UUIDs inside those URLs.- The reasoning must include the earliest divergent step/container and the broken postcondition it produced, not just the final failing step.```textReasoning: <a few sentences tied to the earliest divergence, screenshots/traces, past runs if used, and test intent>Category: <one id from the list>Recoverable: <RECOVERABLE | ONE_TIME_RECOVERABLE | NON_RECOVERABLE>Confidence: <high | medium | low>```
从这里开始 · 工作说明SKILL.md
momentic-result-classification
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 4 个章节,可在原文件中查看。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明

代码和说明中提到的操作

读取密钥或账号配置
SKILL.md:194来自说明文档打开原文件
- `NON_RECOVERABLE` — The failure cannot be automatically addressed and requires manual intervention.  - Examples: missing credentials; missing local files required for upload; outages likely caused by third-party systems where test steps cannot fix the issue.
SKILL.md:227来自说明文档打开原文件
- `TEST_SETUP` — Missing test data or files necessary to run the test, where the fix requires user action outside of the test itself.  - Examples: missing file for a file upload step; missing or incorrect credentials needed by the test.- `INFRA` — The failure was unrelated to the application or application code and was caused by an infrastructure outage, long load times, or some other issue due to outside factors.
连接外部网站
SKILL.md:201来自说明文档打开原文件
- Prefer human-readable references over UUIDs when the step/module can be identified colloquially: `module create-subpage-under-parent-page`, `the last invocation of module <name>`, `substep 4 (0-indexed)`, `the failed setup assertion`, etc - When referencing past runs in final output, use clickable Momentic URLs rather than bare UUIDs: `https://app.momentic.ai/runs/<runId>`. Do not shorten UUIDs inside those URLs.- The reasoning must include the earliest divergent step/container and the broken postcondition it produced, not just the final failing step.
读取了多少行
233
文件校验值(用于核对版本)
2c298661f8e65271e4e0eb508cd49e765847675ef47f23f50d30871d8f3ac7cd