Agent skill

Maa Pipeline Option

by duorua in duorua/narutomobile

Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json.

AGPL-3.0Auto-check passed

Install Maa Pipeline Option

skills CLI
$ npx skills add duorua/narutomobile --skill maa-pipeline-option -a claude-code

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

GitHub CLI
$ gh skill install duorua/narutomobile maa-pipeline-option --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/duorua/narutomobile.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/maa-pipeline-option .claude/skills/maa-pipeline-option && 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
maa-pipeline-option
GitHub stars
340
Token cost
~1.7k tokens
SKILL.md length
428 words
Files
5 (incl. references)
Skills in repo
11
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json.

  • Works in 6 steps: 先复用现有模式:参考同项目里现成的同类选项(开关 → 开启5月城堡相亲;选择 →… → 3 处同步改完再跑:不要中途停下来"先编译试试" → JSON 改完跑资源加载检查:本仓库与 M9A 的真实路径是 python… → …
  • Adding a user-facing toggle
  • SKILL.md covers 项目初始化接力, TL;DR:先识别 option surface, 历史校正 and 4 种 type 速查, plus 8 more sections
  • Calls python and rg

What it does

Maa Pipeline Option is an agent skill from duorua/narutomobile. Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json. Use when adding a user-facing toggle, selector, checkbox, or input; wiring options to pipelineoverride; aligning option paths with Python context.getnodedata() or CustomAction params; or reviewing option behavior across Pipeline JSON and Python.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/anti-patterns.md` and `references/patterns.md`).

It works with Python. The licence is AGPL-3.0.

When your agent uses it

  • Adding a user-facing toggle
  • Wiring options to pipelineoverride
  • Aligning option paths with Python context.getnodedata()
  • CustomAction params

Example prompts

  • “/maa-pipeline-option”

Requirements

  • Python 3

Workflow steps

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

  1. 先复用现有模式:参考同项目里现成的同类选项(开关 → 开启5月城堡相亲;选择 → 选择刷取任务国家)
  2. 3 处同步改完再跑:不要中途停下来"先编译试试"
  3. JSON 改完跑资源加载检查:本仓库与 M9A 的真实路径是 python tools/ci/check_resource.py assets/resource/base;如果目标项目路径不同,先用 Get-ChildItem tools -Recurse -Filter…
  4. 默认值遵循现状:选项是"开"还是"关"取决于旧代码行为,不是你的偏好
  5. 在 task 的 doc 数组里加一行说明:用户能看懂每个选项的作用
  6. 让 option 通道匹配实际复杂度:行为只动已有 pipeline 字段时用 pure override;Python 需要做真实判断、计数、动态识别或安全策略时,用 Flag + Python / CustomAction /…

What it can do on your machine

Read from SKILL.md and the folder at commit e3ff401. 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

    Shell commands in SKILL.md call:

    • python
    • rg

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

  • Network

    No URLs in SKILL.md.

    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

Maa Pipeline Option loads about 1.7k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 428 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~107
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.8k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from duorua/narutomobile at commit e3ff401, republished under its AGPL-3.0 licence (© duorua). 428 words, ~1,692 tokens.

Download SKILL.mdSave it as .claude/skills/maa-pipeline-option/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
maa-pipeline-option
description
Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as `assets/interface.json` or `assets/resource/tasks/**/*.json`. Use when adding a user-facing toggle, selector, checkbox, or input; wiring options to `pipeline_override`; aligning option paths with Python `context.get_node_data()` or CustomAction params; or reviewing option behavior across Pipeline JSON and Python.

Pipeline Option 工作流

如果选项属于一个尚未定义起始状态、安全边界和验收条件的端到端自动化目标,先交给 $maa-workflow-build 建立任务契约;已有契约时,再用本 skill 完成选项接线与局部验证。

项目初始化接力

新增选项前先查目标项目根目录的 basic_info.md。存在且包含第 0 节时,读取“0. Maa Skills 接力协议”和第 1/2/3/6 节,先确认 interface、resource/task entry、目标节点与 Python 外部调用,再按本 skill 查实际 option surface 和读取路径。文档只是缓存:pipeline_override、context.get_node_data() 和 Custom 参数路径必须在当前文件中闭环核实。文件缺失或没有第 0 节时按本 skill 直接发现 option surface;不得自动调用 $maa-project-init,只有用户明确要求初始化或刷新时才调用。相关源码比文档新时视为缓存可能过期并以源码为准,不自动刷新或覆盖已有非空文档。

TL;DR:先识别 option surface

新增一个 UI 选项需要先识别本项目使用的 option surface。MaaGumballs 主要是 assets/interface.json,M9A 同时使用 assets/interface.json 与 assets/resource/tasks/**/*.json。不要假设所有 Maa 项目只有一种入口。

常见联动点如下,按项目实际协议取用,缺关键点会导致 UI 看不到选项或运行时读不到值:

#位置内容
1option 定义处assets/interface.json 的 option 字典,或 assets/resource/tasks/**/*.json 里的 task option 定义
2task 注册处interface.json task 的 option: [],或 tasks JSON 的任务/预设引用
3assets/resource/base/pipeline/*.json预定义目标节点(pipeline_override 不会创建节点)
4Python 代码(仅 Python 需要读取或执行 Custom 时必需)context.get_node_data()、argv.custom_action_param、argv.custom_recognition_param 与 option 路径保持一致

⚠️ pipeline_override 只做属性合并,不会凭空创建节点。 少了第 3 步,context.get_node_data() 会返回 None,运行时静默失败。

完整协议参考(嵌套 option、global_option、controller/resource 限制、占位符注入):references/protocol.md

历史校正

  • 不要把 pure override 当成唯一最佳解:只改已有节点字段时 pure override 最小;但涉及运行时事件库、计数、动态目标、识别后处理、失败策略、跨节点状态时,CustomAction/CustomRecognition 更合适。
  • 不要把 Flag 节点当成唯一配置入口:M9A 的 v5 object-form 里,参数经常通过 action.param.custom_action_param、custom_action_param_code、recognition.param.custom_recognition_param 进入 Custom;这和 context.get_node_data("Flag") 是不同通道。
  • 字段路径必须闭环:UI 写哪条路径,Python 就读哪条路径;pure override 则 Python 不读,直接观察运行时行为。
  • enabled/enable 不是审美选择:MaaFramework 原生启停用 enabled;历史项目若已有 enable helper,可沿用并兼容,否则优先 enabled。

4 种 type 速查

type选择override 字段节点预定义形态
select单选互斥expectedrecognition: "OCR" + expected: [...]
switch二元 Yes/Noenabled(或项目已有的 enable){"enabled": bool} / {"enable": bool}
input自由文本{name} 占位符可注入目标字段按最终读取方预定义 expected 或 action.param.custom_action_param
checkbox多选enabled{"enabled": false}

选哪个模式?

你的需求推荐模式
启用/禁用一个 Python 业务函数A(switch + Flag 节点 + Python 读 flag)
从多个互斥选项里选一个值B(select + OCR 节点)
同时启用多个独立的功能模块C(checkbox + 多个 Flag 节点)
用户输入自定义文本D(input + 占位符注入)
切换行为(点哪个按钮 / 走哪条 next 链)但不想改 PythonE(pure override 现有节点字段)

经验法则:行为只等于“覆盖已有节点字段”时优先 pure override;一旦需要运行时数据、计数、动态识别、失败策略或跨节点状态,改用 Flag + Python / CustomAction / CustomRecognition。目标是让改动面和逻辑复杂度匹配。

先确认代码读取路径

加选项前先 rg "get_node_data|_node_enabled|Flag_" agent assets,确认这次配置到底由谁读取。

常见对应关系:

UI override 写什么Python 应该读什么备注
{ "Flag_X": { "enabled": true } }node.get("enabled")MaaFramework 标准启停字段
{ "Flag_X": { "enable": true } }node.get("enable") 或兼容 helper仅用于已有项目约定/历史字段
{ "SomeOCR": { "expected": ["A"] } }node["recognition"]["param"]["expected"][0]节点必须预定义为 OCR
{ "SomeNode": { "next": ["A"] } }不读,直接由 pipeline 行为生效pure override 模式

不要字段错位:例如 UI 写 AutoSky_CloneConfig.enable,Python 却调用读取 expected 的函数;或 UI 写 expected,Python 只看 enabled。这种错误不会报 JSON 语法错,但运行时会表现为"选项没生效"。

Show full SKILL.md (186 more words)Show less
启停节点必须短路调用

如果同一个节点既保存 enable/enabled 开关,又是可执行的 Recognition/Action 节点,先读取开关,只有开启时才调用它。关闭节点后继续检查同级候选分支,不能调用已关闭节点,也不能因为开关值直接 continue 整个事件扫描。

python
if _node_enabled(context, "OptionalNode"):
    result = context.run_recognition("OptionalNode", image)
    if result and result.hit:
        context.run_task("OptionalNode")
        continue

# OptionalNode 关闭或未命中,继续识别 CombatNode、ExploreNode 等同级分支。

完整模式示例

需要 switch、select、checkbox、input、pure override 或流程型选项的完整代码时,读取 references/patterns.md。

命名与默认值

命名约定
角色风格示例
option 名(用户可见)中文动词起头开启5月城堡相亲、选择刷取任务国家
节点名(pipeline)英文Flag_EnableMarryTask、EnterCity、检测_科内塔之怒
switch case 名严格 Yes / No不要用 true/false 或 是/否(Client 解析跨平台不一致)
默认值策略

保持现有行为是底线。 老用户不该因新选项而行为改变。

场景推荐 default
新开关让功能默认关闭No(明确告知用户"关了")
新开关让功能默认开启Yes(保留旧行为)
旧代码无条件开启Yes(兼容)
旧代码无条件关闭No(兼容)

读取位置

决策类型放哪读理由
是否执行某段流程业务函数入口 handle_xxx与现有同名函数风格一致,子函数自治
用哪个值做主逻辑任务入口 run 或 YearlyTaskProcessor一次读取、多次复用

反例:不要把"是否开启 X"的判断堆在通用 dispatch 函数(如 handle_festival_by_month)里。每加一个开关 dispatch 就多一个 if-elif,越来越臃肿。


✅ 推荐做法

  1. 先复用现有模式:参考同项目里现成的同类选项(开关 → 开启5月城堡相亲;选择 → 选择刷取任务国家)
  2. 3 处同步改完再跑:不要中途停下来"先编译试试"
  3. JSON 改完跑资源加载检查:本仓库与 M9A 的真实路径是 python tools/ci/check_resource.py assets/resource/base;如果目标项目路径不同,先用 Get-ChildItem tools -Recurse -Filter check_resource.py 发现真实脚本。pipeline 加载错误(如重复 key)会立刻报
  4. 默认值遵循现状:选项是"开"还是"关"取决于旧代码行为,不是你的偏好
  5. 在 task 的 doc 数组里加一行说明:用户能看懂每个选项的作用
  6. 让 option 通道匹配实际复杂度:行为只动已有 pipeline 字段时用 pure override;Python 需要做真实判断、计数、动态识别或安全策略时,用 Flag + Python / CustomAction / CustomRecognition,不要为了少写 Python 把复杂逻辑硬塞进 JSON。

反模式

实现或审查 option 时读取 references/anti-patterns.md,逐项排除常见的接线与状态机错误。

验证流程

改完一次完整流程,按顺序做这 4 步:

  1. JSON 语法检查

    bash
    python -c "import json; json.load(open('assets/interface.json', encoding='utf-8'))"
    python -c "import json; json.load(open('assets/resource/base/pipeline/auto_task.json', encoding='utf-8'))"
  2. 资源加载检查

    bash
    python tools/ci/check_resource.py assets/resource/base

    期望输出 All directories checked.

  3. Pipeline 节点测试(可选)

    python
    data = context.get_node_data("Flag_EnableSailingFestivalPurchase")
    assert data is not None, "节点未预定义"
    assert "enabled" in data
  4. 端到端验证:用 Pipeline Testing Skill 跑一次实际流程


完整协议

更多 type 字段、嵌套 option、global_option、controller/resource 限制、{占位符} 注入机制等高级特性见 references/protocol.md。

© duorua, 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 4 other files (references) in .agents/skills/maa-pipeline-option of duorua/narutomobile.

  • SKILL.md
  • agents/openai.yaml
  • references/anti-patterns.md
  • references/patterns.md
  • references/protocol.md

Open the folder on GitHubat commit e3ff401

Compare with similar skills

Maa Pipeline Option 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.

Maa Pipeline Option compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Maa Pipeline Option this skillduorua/narutomobile340—~1.7kAutomated safety check: PassAGPL-3.0
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
PDF Processinganthropics/skills180k47 repos~2kAutomated safety check: PassProprietary
NotebookLM Research AssistantPleasePrompto/notebooklm-skill7.8k14 repos~2.4kAutomated safety check: NotesMIT
Manim Video Productionbrowser-use/video-use29k6 repos~3kAutomated safety check: PassMIT
PPT Masterhugohe3/ppt-master59k1 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • PDF Processing

    anthropics/skills

    Official

    Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.

    180k GitHub starsUsed in 47 repos~2k tokens
    Documents & OfficeAuto-check passed
  • NotebookLM Research Assistant

    PleasePrompto/notebooklm-skill

    Lets Claude Code ask questions of your Google NotebookLM notebooks through browser automation and return answers grounded in your uploaded sources.

    7.8k GitHub starsUsed in 14 repos~2.4k tokens
    Knowledge ManagementAuto-check: notes
  • Manim Video Production

    browser-use/video-use

    Produces math and technical explainer videos with Manim Community Edition: concept animations, equation derivations, algorithm walkthroughs and data stories.

    29k GitHub starsUsed in 6 repos~3k tokens
    Media & CreativeAuto-check passed
  • PPT Master

    hugohe3/ppt-master

    Generates editable PowerPoint decks, rebuilds slides from images, fills .pptx templates and polishes existing presentations through routed workflows.

    59k GitHub starsUsed in 1 repo~2.5k tokens
    Documents & OfficeAuto-check passed
  • Scikit Learn

    zLanqing/codex-claude-academic-skills

    Machine learning in Python with scikit-learn. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 16 repos~3.9k tokens
    Data & AnalyticsAuto-check passed

More from duorua/narutomobile

All 11 skills in this repo
  • Maa Project Init

    duorua/narutomobile

    Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows.

    340 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Maa Pipeline Generate

    duorua/narutomobile

    Generate MaaFramework Pipeline nodes and recognition snippets from screenshots or observed UI state.

    340 GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Maa Workflow Build

    duorua/narutomobile

    Orchestrate ambiguous end-to-end MaaFramework automation requests into verified implementations.

    340 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Maa Pipeline History Audit

    duorua/narutomobile

    Audit a MaaFramework/Maa-series project's Git history to learn how Pipeline JSON, interface options, Python AgentServer CustomAction code, and related data tables evolved.

    340 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Maa Pipeline Testing

    duorua/narutomobile

    Test and validate MaaFramework Pipeline JSON, recognition nodes, action nodes, CustomAction/CustomRecognition wiring, resource loading, and end-to-end task behavior.

    340 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Maa CLI Operate

    duorua/narutomobile

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

    340 GitHub stars~981 tokensUpdated today
    Auto-check passed

Works with

Questions about Maa Pipeline Option

What does Maa Pipeline Option do?

Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json. Maa Pipeline Option is an agent skill from duorua/narutomobile.json.

When should I use Maa Pipeline Option?

Maa Pipeline Option fits situations like: adding a user-facing toggle; wiring options to pipelineoverride; aligning option paths with Python context.getnodedata(); customAction params.

How do I install Maa Pipeline Option in Claude Code?

Run `npx skills add duorua/narutomobile --skill maa-pipeline-option -a claude-code`. Or copy the skill folder (.agents/skills/maa-pipeline-option in duorua/narutomobile) into .claude/skills/maa-pipeline-option in your project. Claude Code loads it when a task matches its description.

How do I install Maa Pipeline Option in Codex?

Run `npx skills add duorua/narutomobile --skill maa-pipeline-option -a codex`. Or copy the skill folder (.agents/skills/maa-pipeline-option in duorua/narutomobile) into .agents/skills/maa-pipeline-option in your project. Codex loads it when a task matches its description.

Can I use Maa Pipeline Option 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 duorua/narutomobile --skill maa-pipeline-option -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/maa-pipeline-option, .gemini/skills/maa-pipeline-option, .github/skills/maa-pipeline-option and .opencode/skills/maa-pipeline-option in your project.

What does Maa Pipeline Option need to run?

Going by SKILL.md and its folder, Maa Pipeline Option needs the command-line tools its instructions call (python and rg). Our summary lists: Python 3.

Does Maa Pipeline Option access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Maa Pipeline Option 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. Review the folder before installing.

What licence does Maa Pipeline Option use?

Maa Pipeline Option 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 Maa Pipeline Option use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.1k tokens, read only when the agent opens those files.

What are the alternatives to Maa Pipeline Option?

Skills that share tags, products or a category with Maa Pipeline Option: MCP Server Builder (anthropics/skills, 180k stars), PDF Processing (anthropics/skills, 180k stars), NotebookLM Research Assistant (PleasePrompto/notebooklm-skill, 7.8k stars) and Manim Video Production (browser-use/video-use, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Maa Pipeline Option?

duorua (a GitHub user) maintains it in duorua/narutomobile, which has 340 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 10, 2026.

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