Agent skill

Maaend Test Image

by MaaEnd in MaaEnd/MaaEnd

为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests//test.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID…

AGPL-3.0Auto-check passedMobile

Install Maaend Test Image

skills CLI
$ npx skills add MaaEnd/MaaEnd --skill maaend-test-image -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install MaaEnd/MaaEnd maaend-test-image --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/maaend-test-image .claude/skills/maaend-test-image && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
maaend-test-image
GitHub stars
4k
Token cost
~1.3k tokens
SKILL.md length
295 words
Files
3 (incl. scripts)
Skills in repo
14
Repo updated
First seen
Licence
AGPL-3.0

At a glance

为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests//test.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID…

  • Works in 5 steps: 定位 MaaEnd 根目录;应同时存在… → 运行 git status… → 运行 git -C tests/MaaEndTestset status… → …
  • Tasks that involve Mobile testing and debugging
  • SKILL.md covers 目标, 开始前确认上下文, 路径和命名 and 脱敏并导入图片, plus 4 more sections
  • Runs Python scripts from its folder; calls pnpm, git and uv

What it does

Maaend Test Image is an agent skill from MaaEnd/MaaEnd. 为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests//test.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID 打码后提交测试图”时使用;即使用户只说把某张游戏截图放进 MaaEnd 测试,也要用本技能避免未脱敏原图进入仓库。

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `evals/evals.json` and `scripts/redact_test_image.py`).

It sits in Mobile, covering Mobile testing and debugging. It works with pnpm, Windows and Git. The repository describes itself as: MaaEnd 终末地小助手:基于视觉 AI 的「明日方舟:终末地」自动化工具. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve Mobile testing and debugging

Example prompts

  • “添加测试图片/截图”
  • “把截图加入 ADB 或 Win32 测试集”
  • “给节点补正例或反例”
  • “/maaend-test-image”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. 定位 MaaEnd 根目录;应同时存在 maatools.config.mts、tests/MaaEndTestset/、tests/scripts/loader.mts 和 assets/resource/model/ocr/。
  2. 运行 git status --short,记录已有修改和未跟踪文件。它们属于用户,不要批量处理测试截图。
  3. 运行 git -C tests/MaaEndTestset status --short 和 git -C tests/MaaEndTestset branch --show-current,分别记录测试集子模块的已有修改和当前分支。需要提交测试图片时,提交前必须让子模块位于…
  4. 阅读 docs/zh_cn/developers/node-testing.md,再查看语义最接近的图片和 tests/**/test_*.json。以当前文档、schema 和 maatools.config.mts 为准,不沿用旧测试集格式。
  5. 从用户输入或目标路径确定

What it can do on your machine

Read from SKILL.md and the folder at commit f47207b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • pnpm
    • git
    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, git and uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Maaend Test Image loads about 1.3k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 295 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from MaaEnd/MaaEnd at commit f47207b, republished under its AGPL-3.0 licence (© MaaEnd). 295 words, ~1,342 tokens.

Download SKILL.mdSave it as .claude/skills/maaend-test-image/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
maaend-test-image
description
为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests/**/test_*.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID 打码后提交测试图”时使用;即使用户只说把某张游戏截图放进 MaaEnd 测试,也要用本技能避免未脱敏原图进入仓库。

MaaEnd 测试图片维护

目标

把原始游戏截图安全地加入 MaaEnd 的节点测试。最终同时满足:

  • 仓库内只出现脱敏后的 PNG,不先复制未打码原图;
  • 图片位于 tests/MaaEndTestset/<controller>/<resource>/;
  • 对应 tests/**/test_*.json 使用正确的 controller、resource、图片文件名和 hits;
  • JSON、图片引用、pnpm check 和 pnpm test 通过;
  • 需要提交时,测试图片提交到 tests/MaaEndTestset 子模块的 main 分支,主仓库再记录该提交指针;
  • 不改动无关图片、用例或用户已有工作。

本技能适用于已有固定 ROI 的 ADB 和 Win32。PlayCover 或新分辨率没有可靠遮盖坐标时,先向用户确认脱敏规则,不要套用其它平台坐标。

开始前确认上下文

  1. 定位 MaaEnd 根目录;应同时存在 maatools.config.mts、tests/MaaEndTestset/、tests/scripts/loader.mts 和 assets/resource/model/ocr/。
  2. 运行 git status --short,记录已有修改和未跟踪文件。它们属于用户,不要批量处理测试截图。
  3. 运行 git -C tests/MaaEndTestset status --short 和 git -C tests/MaaEndTestset branch --show-current,分别记录测试集子模块的已有修改和当前分支。需要提交测试图片时,提交前必须让子模块位于 main,不要在 detached HEAD 上创建提交。
  4. 阅读 docs/zh_cn/developers/node-testing.md,再查看语义最接近的图片和 tests/**/test_*.json。以当前文档、schema 和 maatools.config.mts 为准,不沿用旧测试集格式。
  5. 从用户输入或目标路径确定:
    • 原始截图路径;
    • controller:ADB 或 Win32;
    • resource:当前官服目录为 Official_CN,测试配置写 官服;
    • 无扩展名图片名和目标 test_*.json;
    • 期望命中节点 hits,以及确需校验时的 box。

只有缺失信息会改变图片落盘位置或测试含义时才追问。不要猜测节点名、正负例结果或精确 box。

路径和命名

图片使用:

text
tests/MaaEndTestset/<controller>/<resource>/<图片名>.png

测试文件使用:

text
tests/<功能或组件>/test_<测试主题>.json

image 只写文件名,必须显式包含 .png,不能包含目录:

json
{
    "configs": {
        "name": "(Win32/ADB-官服)自动转交送货任务",
        "resource": [
            "官服"
        ],
        "controller": [
            "Win32",
            "ADB"
        ]
    },
    "cases": [
        {
            "image": "四号谷地_地区建设_仓储节点_送货任务_确认转交.png",
            "hits": [
                "DeliveryJobsConfirmTaskTransfer"
            ]
        }
    ]
}

优先追加到语义匹配的现有文件。只有没有合适测试主题时才新建文件,并仿照相邻测试。若 controller 或 resource 是数组,tests/scripts/loader.mts 会展开笛卡尔积;每种组合都必须有同名图片。同一张图可按不同测试目的出现在多个测试文件中。

脱敏并导入图片

使用本技能的单图脚本,从仓库外的原图直接生成目标文件:

powershell
uv run .agents/skills/maaend-test-image/scripts/redact_test_image.py `
  "C:\path\raw.png" `
  "tests\MaaEndTestset\ADB\Official_CN\四号谷地_确认转交.png"

脚本使用 MaaEnd 自带的 OCR 模型并执行:

  1. 校验截图为 1280×720;
  2. 用纯绿色 RGB(0, 255, 0) 覆盖 ADB 固定 ROI [84, 690, 114, 18] 或 Win32 固定 ROI [70, 696, 90, 13];
  3. 用 assets/resource/model/ocr/ 查找包含 UID 或 # 的区域;
  4. 用同样的纯绿色覆盖 OCR 命中框;
  5. 原子写入目标 PNG,外部原图不会先进入仓库。

如果 OCR 漏掉其它私人信息,添加可重复的额外 ROI,格式为 x,y,w,h:

powershell
uv run .agents/skills/maaend-test-image/scripts/redact_test_image.py `
  "C:\path\raw.png" `
  "tests\MaaEndTestset\Win32\Official_CN\功能_画面.png" `
  --extra-roi 1100,20,160,40 `
  --extra-roi 20,620,240,60

目标已存在时,只有用户明确要求替换才加 --force。原图本来就在目标路径且需要原地脱敏时也必须加 --force;脚本会先写临时文件再替换。

处理后必须查看最终图片,确认:

  • UID、账号编号、昵称或其它私人信息均已完全遮住;
  • 绿色块没有遮挡本次要测试的识别目标;
  • 图片内容、方向和 1280×720 分辨率未被改变;
  • 仓库中没有原始副本或 .redacting-* 临时文件。

OCR 只是辅助检查,视觉复核才是隐私安全的最终门槛。无法确认脱敏完整时,不要把图片加入测试或提交。

编写测试用例

hits 写法

只验证命中节点:

json
"hits": [
    "NodeName"
]

验证命中节点和固定识别框:

json
"hits": [
    {
        "node": "NodeName",
        "box": [
            91,
            587,
            274,
            48
        ]
    }
]

不同控制器使用不同识别框:

json
"box": {
    "ADB": [
        91,
        587,
        274,
        48
    ],
    "Win32": [
        100,
        600,
        250,
        50
    ]
}

反例:

json
"hits": []

box 使用 [x, y, width, height] 的非负整数。只有用户提供了预期框,或实际测试输出给出了可确认的框时才写,不要从截图肉眼猜精确值。

修改规则
  • configs.controller 与图片目录一致,可写字符串或数组。
  • configs.resource 与 tests/scripts/loader.mts 的映射一致;当前官服写 官服。
  • 不手写 imageRoot;loader 会根据矩阵自动生成。
  • image 必须是实际文件名并带 .png,不得包含 / 或 \。
  • hits 必须存在,允许空数组。
  • 同一文件内不要重复添加相同 image;需要增加节点时合并到已有用例。
  • 测试文件允许 JSONC 注释,格式必须遵循仓库 Prettier(通常为 4 空格)。
  • 只编辑目标测试文件,不顺手修正其它已有测试。

验证

先做本次变更的直接检查:

powershell
pnpm exec prettier --write "tests\功能\test_xxx.json"
pnpm check
pnpm test

随后确认:

  1. 每个新增 image 在对应 controller/resource 的目录下都存在;
  2. tests/maatools/error_details.json 没有本次用例的错误;
  3. git diff --check 没有文本问题;
  4. git status --short 和目标文件 diff 只包含预期变更。

若 pnpm test 失败,先区分:

  • 图片路径、矩阵或配置错误:修正测试定义;
  • hits 与实际画面不符:依据真实测试目的修正,不能为了变绿而删除必要断言;
  • MaaEnd 节点本身识别失败:报告节点、ROI 或模板问题。除非用户同时要求修改 Pipeline,否则不要扩大范围。

提交测试图

tests/MaaEndTestset 是独立 Git 子模块。用户要求提交时,按以下顺序处理,确保图片提交可由主仓库引用并能正常推送:

  1. 提交图片前确认子模块处于 main:

    powershell
    git -C tests/MaaEndTestset switch main
    git -C tests/MaaEndTestset branch --show-current

    第二条命令必须输出 main。若切换因已有修改或分支分歧失败,保留现场并报告,不要丢弃用户改动。

  2. 只在子模块中暂存并提交本次脱敏测试图,使用中文约定式提交信息;提交后确认 main 指向新提交且子模块工作区干净。

  3. 回到 MaaEnd 主仓库,暂存测试定义、相关代码和 tests/MaaEndTestset 子模块指针,再创建主仓库提交。不要只提交主仓库测试定义而遗漏子模块指针。

  4. 若用户还要求推送,先推送子模块 main,确认远端已包含图片提交后,再推送主仓库分支。未获得推送授权时不要推送。

如果误在 detached HEAD 上创建了提交,先记录提交哈希,再将 main 快进到该提交;只有确认 main 是其祖先时才使用 --ff-only:

powershell
git -C tests/MaaEndTestset switch main
git -C tests/MaaEndTestset merge --ff-only <detached-commit>

随后确认 git -C tests/MaaEndTestset branch --show-current 输出 main,且主仓库记录的子模块指针与该提交一致。

交付

简要说明新增或替换了哪些脱敏图片、更新了哪些测试文件与预期命中、额外遮盖区域,以及 pnpm check、pnpm test 的结果。不要声称图片“已安全脱敏”,除非已实际查看最终图片。

© MaaEnd, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts) in .agents/skills/maaend-test-image of MaaEnd/MaaEnd.

  • SKILL.md
  • evals/evals.json
  • scripts/redact_test_image.py

Open the folder on GitHubat commit f47207b

Compare with similar skills

Maaend Test Image next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Maaend Test Image compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Maaend Test Image this skillMaaEnd/MaaEnd4k—~1.3kAutomated safety check: PassAGPL-3.0
Maa CLI Operateduorua/narutomobile335—~981Automated safety check: PassAGPL-3.0
Maestro BundleReinaMacCredy/maestro233—~1.3kAutomated safety check: PassMIT
Android Interactive VerificationDodoraApp/DodoStream243—~1.1kAutomated safety check: PassGPL-3.0
Maestro Mergecatlog22/maestro-flow564—~1.3kAutomated safety check: NotesNone
Maestro Forkcatlog22/maestro-flow564—~1.3kAutomated safety check: NotesNone

Similar skills

  • Maa CLI Operate

    duorua/narutomobile

    Operate MaaFramework devices and Pipeline resources through the maafw-cli command line with strict JSON output.

    335 GitHub stars~981 tokensUpdated yesterday
    MobileAuto-check passed
  • Maestro Bundle

    ReinaMacCredy/maestro

    Route work into the right maestro tier and drive the SPEC/NOTES/VERIFY bundle lifecycle - open, resume, close, recall.

    233 GitHub stars~1.3k tokensUpdated 10 days ago
    MobileAuto-check passed
  • Session-scoped Android and Android TV fixture, APK, interaction, evidence, and Maestro procedure through the agent-device MCP server.

    243 GitHub stars~1.1k tokensUpdated 18 days ago
    MobileAuto-check passed
  • Maestro Merge

    catlog22/maestro-flow

    Merge session worktree branch back to main. An agent skill from catlog22/maestro-flow.

    564 GitHub stars~1.3k tokensUpdated yesterday
    MobileAuto-check: notes
  • Maestro Fork

    catlog22/maestro-flow

    Create or sync session worktree for parallel dev. An agent skill from catlog22/maestro-flow.

    564 GitHub stars~1.3k tokensUpdated yesterday
    MobileAuto-check: notes
  • Official

    Writes UI tests that reproduce a GitHub issue in .NET MAUI and keeps iterating until the tests actually fail, proving they catch the bug.

    23k GitHub stars~3k tokensUpdated today
    Testing & QAAuto-check passed

More from MaaEnd/MaaEnd

All 14 skills in this repo
  • Maa Logging

    MaaEnd/MaaEnd

    MaaFramework 日志宏用法指南,适用于 MaaEnd cpp-algo。Use when writing logging code, using LogInfo/LogError/LogWarn/LogDebug/LogTrace, outputting containers or custom types to logs, or when the user asks about…

    4k GitHub stars~807 tokensUpdated yesterday
    Auto-check passed
  • Meojson

    MaaEnd/MaaEnd

    Guide for using the meojson C++ JSON library in MaaEnd cpp-algo.

    4k GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • 新增或改写 MaaEnd 的 AutoCollect 自动采集路线说明。默认包含路线文件创建、AutoCollect 主入口接线、任务选项注册和多语言文案补充。适用于“参考现有 AutoCollect 路线新建一条采集线”“给定传送点与路径点位生成 AutoCollectRouteX.json 并注册到任务中”“用户已经写好路线文件,只需要补注册接口”等场景。注意:本 skill 仅适用于参考…

    4k GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • 仅分析 AutoStockStapleMain 的 MaaEnd 日志。用于还原该任务实际购买了什么、购买所对应的证据、逐步剩余账单(券/账单)数值时间线,以及在 pipeline 或 go-service 中应当加日志/埋点的位置。适用于用户询问 AutoStockStapleMain、AutoStockStaple、武陵/四号谷地的稳定需求物资购买,或该任务内账单数值变化原因等场景。

    4k GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed
  • Cpp Algo Style

    MaaEnd/MaaEnd

    MaaEnd cpp-algo C++ 编码风格与工程规范指南。参考 MaaFramework 的优秀实践,规范命名、头文件、公共工具、错误处理、日志、CMake 等方面。在编写、修改或审查 agent/cpp-algo/ 下的 C++ 代码时使用。

    4k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • 分析 MaaEnd CreditShoppingMain 的日志。用于还原信用购物任务中实际购买了什么商品、每件商品的折扣力度、是否触发过刷新(或刷新次数已用尽)、稳健刷新是否触发、以及信用点的消耗状况。货架槽位必须以日志中的 CreditIcon(TemplateMatcher)为锚,有无 BuyFirstOCR/Priority2OCR…

    4k GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Maaend Test Image

What does Maaend Test Image do?

为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests//test.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID…. Maaend Test Image is an agent skill from MaaEnd/MaaEnd.

When should I use Maaend Test Image?

Maaend Test Image fits situations like: tasks that involve Mobile testing and debugging.

How do I install Maaend Test Image in Claude Code?

Run `npx skills add MaaEnd/MaaEnd --skill maaend-test-image -a claude-code`. Or copy the skill folder (.agents/skills/maaend-test-image in MaaEnd/MaaEnd) into .claude/skills/maaend-test-image in your project. Claude Code loads it when a task matches its description.

How do I install Maaend Test Image in Codex?

Run `npx skills add MaaEnd/MaaEnd --skill maaend-test-image -a codex`. Or copy the skill folder (.agents/skills/maaend-test-image in MaaEnd/MaaEnd) into .agents/skills/maaend-test-image in your project. Codex loads it when a task matches its description.

Can I use Maaend Test Image in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add MaaEnd/MaaEnd --skill maaend-test-image -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/maaend-test-image, .gemini/skills/maaend-test-image, .github/skills/maaend-test-image and .opencode/skills/maaend-test-image in your project.

What does Maaend Test Image need to run?

Going by SKILL.md and its folder, Maaend Test Image needs Python for the scripts in its folder and the command-line tools its instructions call (pnpm, git and uv). Our summary lists: Python 3.

Does Maaend Test Image access the network?

SKILL.md contains no URLs. Its commands use git and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Maaend Test Image safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Maaend Test Image use?

Maaend Test Image is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Maaend Test Image use?

About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Maaend Test Image?

Skills that share tags, products or a category with Maaend Test Image: Maa CLI Operate (duorua/narutomobile, 335 stars), Maestro Bundle (ReinaMacCredy/maestro, 233 stars), Android Interactive Verification (DodoraApp/DodoStream, 243 stars) and Maestro Merge (catlog22/maestro-flow, 564 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Maaend Test Image?

MaaEnd (a GitHub organization) maintains it in MaaEnd/MaaEnd, which has 3,991 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.

Source: MaaEnd/MaaEnd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.