Agent skill

Maa Project Init

by duorua in duorua/narutomobile

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

AGPL-3.0Auto-check passedDevelopment

Install Maa Project Init

skills CLI
$ npx skills add duorua/narutomobile --skill maa-project-init -a claude-code

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

GitHub CLI
$ gh skill install duorua/narutomobile maa-project-init --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-project-init .claude/skills/maa-project-init && 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-project-init
GitHub stars
335
Token cost
~2.2k tokens
SKILL.md length
1,050 words
Files
4 (incl. scripts, assets)
Skills in repo
11
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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

  • Works in 6 steps: Locate the target project root. → Run the analyzer in summary mode first → Inspect the summary for → …
  • Asked for maa-project-init
  • SKILL.md covers Core Workflow, What The Analyzer Reads, Relationship Rules and Entry Flowcharts, plus 4 more sections
  • Runs Python scripts from its folder; calls python

What it does

Maa Project Init is an agent skill from duorua/narutomobile. Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows. Use when asked for maa-project-init, project-pipeline-init, basicinfo.md, researching a Maa project, scanning pipeline nodes, finding common Back/Return/Exit/Confirm nodes, mapping node relationships, generating entry flowcharts, summarizing image assets and OCR conventions, or reducing discovery cost for later Maa skill work.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and assets (for example `agents/openai.yaml`, `assets/basic_info.md` and `scripts/analyze_pipeline_project.py`).

It sits in Development, covering Diagrams, Project scaffolding and App automation through connectors. The licence is AGPL-3.0.

When your agent uses it

  • Asked for maa-project-init
  • Project-pipeline-init
  • Researching a Maa project
  • Scanning pipeline nodes

Example prompts

  • “/maa-project-init”

Requirements

  • Python 3

Workflow steps

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

  1. Locate the target project root.
  2. Run the analyzer in summary mode first
  3. Inspect the summary for
  4. Generate basic_info.md only after the summary looks reasonable
  5. Report where basic_info.md was written and name the most important sections that still need human review.
  6. When handing off to another Maa skill

What it can do on your machine

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

    • python

    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 Project Init loads about 2.2k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 1,050 words of instructions outside code blocks.

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

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 duorua/narutomobile at commit c950473, republished under its AGPL-3.0 licence (© duorua). 1,050 words, ~2,201 tokens.

Download SKILL.mdSave it as .claude/skills/maa-project-init/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
maa-project-init
description
Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows. Use when asked for maa-project-init, project-pipeline-init, basic_info.md, researching a Maa project, scanning pipeline nodes, finding common Back/Return/Exit/Confirm nodes, mapping node relationships, generating entry flowcharts, summarizing image assets and OCR conventions, or reducing discovery cost for later Maa skill work.

Maa Project Init

Use this skill to turn a MaaFramework consumer project into a compact onboarding document for future AI sessions. It scans the project's pipeline and image resources, identifies reusable control nodes, and writes basic_info.md at the target project root.

The generated file is a producer/consumer handoff: maa-project-init produces project context, while maa-pipeline-guide, maa-pipeline-generate, maa-pipeline-graph, maa-pipeline-option, and maa-pipeline-testing consume the relevant sections before broad repository discovery.

Do not run this skill against MaaMCP itself unless the user explicitly asks to analyze MaaMCP as a consumer project. MaaMCP is the tool runtime; the normal target is a MaaFramework consumer project containing assets/interface.json or interface.json.

Core Workflow

  1. Locate the target project root.

    • Prefer a user-provided path.
    • Otherwise look for assets/interface.json, then interface.json.
    • Treat assets/interface.json as the source of resource groups, controller types, task entries, and agent settings.
  2. Run the analyzer in summary mode first:

    bash
    python "<skill-dir>/scripts/analyze_pipeline_project.py" "<project-root>"
  3. Inspect the summary for:

    • resource groups and task entries from interface.json
    • pipeline file count and unique node count
    • high in-degree common nodes
    • Back / Return / Exit / Close / Confirm / Wait / Flag nodes
    • entry task flowcharts and primary path previews
    • unresolved references, isolated nodes, and cycle candidates
    • image directory inventory and TemplateMatch usage
    • Python context.run_task() / run_recognition() external entries
    • orphan candidates after excluding interface and Python entry points
    • agent script paths (declared child_args resolution + project_root 与 4 层 ancestor 约定入口候选 + 交叉对比)
  4. Generate basic_info.md only after the summary looks reasonable:

    bash
    python "<skill-dir>/scripts/analyze_pipeline_project.py" "<project-root>" --write-basic-info

    If basic_info.md already exists, the script refuses to overwrite it. Use --overwrite only after the user explicitly confirms.

  5. Report where basic_info.md was written and name the most important sections that still need human review.

  6. When handing off to another Maa skill:

    • tell it to read basic_info.md section 0 and the routed sections for its task
    • treat the document as a cache, not as source of truth
    • re-check every touched node in current JSON/Python and every live claim on the current device
    • if relevant source files are newer than basic_info.md, rerun summary mode and report staleness; do not overwrite silently

What The Analyzer Reads

  • assets/interface.json or interface.json
  • all assets/resource/**/pipeline/**/*.json
  • default_pipeline.json under resource roots
  • all files under assets/resource/**/image/**
  • static string targets passed to context.run_task() and context.run_recognition() under agent/**/*.py
  • @AgentServer.custom_action(...) registrations under agent/**/*.py
  • interface.json agent.child_args 里每条 .py 的磁盘解析状态(与运行时 maa_mcp/agent_supervisor._build_subprocess_cmd 同步上溯 4 层)
  • project_root 与 4 层 ancestor 内 agent/main.py、agent/server.py 等约定入口的候选存在性(AGENT_DIR_NAMES × AGENT_ENTRY_BASENAMES,不递归子目录)

For MaaGumballs-style projects, the script should discover entries such as Start_Up, DailyTask, Reward_Execute, Shop, AutoSky, JJC, Mars, DivineForgeLand_Start, TSD_Entry, AutoCdk, and StopGumballs, then connect them to the pipeline nodes that define them.

Relationship Rules

Parse these pipeline link fields:

  • next
  • on_error
  • interrupt

Support these node reference forms:

  • plain strings: "ConfirmButton"
  • lists: ["A", "B"]
  • NodeAttr objects: { "name": "A", "jump_back": true }
  • prefixed strings: "[JumpBack]BackText", "[Anchor]SomeNode"

Strip bracket prefixes when resolving the target node, but preserve the prefix in summaries where useful.

Entry Flowcharts

Generate bounded Mermaid flowcharts from each interface.json task entry. These diagrams are meant to orient MaaMCP and future skills quickly, not to replace a full graph database.

  • Start from the task entry node.
  • Expand next, on_error, and interrupt edges with edge labels.
  • Preserve branch hints such as JumpBack, jump_back, and anchor in edge labels.
  • Limit depth and edge count so loops and shared utility nodes do not overwhelm basic_info.md.
  • Include a short primary path text summary for agents that cannot render Mermaid.
  • When a reachable node uses action: Custom (including v2 object form), add a separate Python Agent block. Link the Pipeline node to the block as a CustomAction call, link the block back as returns, and show the matched @AgentServer.custom_action(...) handler and source location when available.

Public Node Detection

Treat a node as likely reusable when either condition is true:

  • it has high in-degree across the merged graph
  • its name or behavior indicates a common UI operation

Important common categories:

  • Back / Return / Exit / Close / Logout / Stop
  • Confirm / Cancel / Retry
  • Wait / Loading / Communicating / PowerLack
  • Flag / Check / State probe
  • ClickKey with Android key 4
  • shared TemplateMatch assets such as back buttons, return buttons, confirm buttons, settings buttons
Show full SKILL.md (391 more words)Show less

basic_info.md Contents

The generated document must be concise and useful to an AI agent. Include:

  1. Project overview
  2. Resource groups and task entries
  3. Main pipeline inventory
  4. Common public nodes
  5. Back / Return / Exit / popup handling
  6. Node relationship summary
  7. OCR expected text conventions
  8. TemplateMatch image inventory
  9. Resolution and ROI conventions
  10. Risks and TODOs
  11. Maa skill handoff routing and live verification status

For section 2, the "Agent script paths" subsection includes three parts:

  • Declared: each child_args .py with Status (resolved / unresolved / non-py / absolute) and the absolute path of resolution (if any).
  • Discovered: every AGENT_DIR_NAMES × AGENT_ENTRY_BASENAMES candidate under root + 4 ancestor levels with an Exists column.
  • Cross-check: unresolved declarations, discovered-but-unreferenced candidates, and orphan declarations (resolved paths outside the convention list).

Warnings are emitted when child_args is empty, has no .py entries, has unresolved paths, references a non-convention name, or when a convention candidate exists but is not referenced by child_args. The scanner mirrors maa_mcp/agent_supervisor._build_subprocess_cmd's parent-walk semantics (AGENT_PARENT_WALK_LIMIT = 4); keep the two limits in sync if you change one.

Keep automatically detected facts separate from TODOs. Do not invent game semantics that are not present in the project files.

Optional Live MaaMCP Research

If a device or window is available and the user wants deeper game research, use MaaMCP after file scanning:

  1. connect to the simulator/window
  2. take a default screencap
  3. infer portrait or landscape from image width/height
  4. use OCR for visible text and key buttons
  5. add stable UI facts to basic_info.md

Live observations must include time, controller/device, screenshot size/orientation, visible page evidence, tested node, score, and whether an action ran. If OCR and screenshot catch different frames during a transition, record them as separate observations and do not promote either one to a stable project fact.

For safe initialization validation, prefer a temporary DoNothing recognition probe derived from a known public node. Run it with start_agent=false when Custom code is unnecessary, inspect recognition.all_results, call stop_pipeline, and remove the temporary file.

This is an enhancement, not a blocker. File scanning must work without a live device.

Do Not

  • Do not overwrite an existing non-empty basic_info.md without explicit confirmation.
  • Do not commit generated basic_info.md from another repository into MaaMCP.
  • Do not modify unrelated target-project files while scanning.
  • Do not treat OCR/image guesses as facts unless they came from files or live MaaMCP verification.

© 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 3 other files (scripts, assets) in .agents/skills/maa-project-init of duorua/narutomobile.

  • SKILL.md
  • agents/openai.yaml
  • assets/basic_info.md
  • scripts/analyze_pipeline_project.py

Open the folder on GitHubat commit c950473

Compare with similar skills

Maa Project Init 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 Project Init compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Maa Project Init this skillduorua/narutomobile335—~2.2kAutomated safety check: PassAGPL-3.0
Litho Document Skillsopaco/terrain256—~1.4kAutomated safety check: PassMIT
Docs SVG Kitgridaco/grida2.7k—~5.6kAutomated safety check: PassApache-2.0
Codegen Diagramxstongxue/best-skills3k—~291Automated safety check: PassApache-2.0
Archify Diagramstt-a1i/archify79k—~2.9kAutomated safety check: PassMIT
JSON Canvasheyitsnoah/claudesidian2.6k18 repos~3.5kAutomated safety check: PassMIT

Similar skills

  • Litho Document Skill

    sopaco/terrain

    This skill should be used when the user asks to "generate project documentation", "analyze codebase architecture", "create C4 architecture diagrams", "document a repository", "generate technical…

    256 GitHub stars~1.4k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Docs SVG Kit

    gridaco/grida

    Author SVG figures for Grida docs — diff-able, version-controlled vector diagrams embedded in doc pages instead of screenshots.

    2.7k GitHub stars~5.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Codegen Diagram

    xstongxue/best-skills

    基于当前项目/代码生成 Draw.io 图表,支持技术栈图、系统架构图、数据结构图、E-R 图四种类型。输出符合 Draw.io 语法的 .drawio 文件(mxGraph XML),可直接导入 Draw.io 编辑。当用户提到技术栈、系统架构、数据结构、E-R 图时使用。

    3k GitHub stars~291 tokensUpdated 26 days ago
    DevelopmentAuto-check passed
  • Archify Diagrams

    tt-a1i/archify

    Creates interactive architecture, workflow, sequence, data-flow and lifecycle diagrams as standalone HTML with inline SVG, themes and image or video export.

    79k GitHub stars~2.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • JSON Canvas

    heyitsnoah/claudesidian

    Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections.

    2.6k GitHub starsUsed in 18 repos~3.5k tokens
    DevelopmentAuto-check passed
  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    45k GitHub starsUsed in 1 repo~7.5k tokens
    DevelopmentAuto-check passed

More from duorua/narutomobile

All 11 skills in this repo
  • Maa Pipeline Generate

    duorua/narutomobile

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

    335 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed
  • Maa Pipeline Option

    duorua/narutomobile

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

    335 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Maa Workflow Build

    duorua/narutomobile

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

    335 GitHub stars~2.2k tokensUpdated yesterday
    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.

    335 GitHub stars~1.6k tokensUpdated yesterday
    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.

    335 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • 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
    Auto-check passed

Categories

Questions about Maa Project Init

What does Maa Project Init do?

Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows. Maa Project Init is an agent skill from duorua/narutomobile. Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows.

When should I use Maa Project Init?

Maa Project Init fits situations like: asked for maa-project-init; project-pipeline-init; researching a Maa project; scanning pipeline nodes.

How do I install Maa Project Init in Claude Code?

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

How do I install Maa Project Init in Codex?

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

Can I use Maa Project Init 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-project-init -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-project-init, .gemini/skills/maa-project-init, .github/skills/maa-project-init and .opencode/skills/maa-project-init in your project.

What does Maa Project Init need to run?

Going by SKILL.md and its folder, Maa Project Init needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Maa Project Init 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 Project Init 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 Maa Project Init use?

Maa Project Init 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 Project Init use?

About 2.2k tokens (SKILL.md is roughly 8.8k 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 Maa Project Init?

Skills that share tags, products or a category with Maa Project Init: Litho Document Skill (sopaco/terrain, 256 stars), Docs SVG Kit (gridaco/grida, 2.7k stars), Codegen Diagram (xstongxue/best-skills, 3k stars) and Archify Diagrams (tt-a1i/archify, 79k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Maa Project Init?

duorua (a GitHub user) maintains it in duorua/narutomobile, which has 335 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 7, 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.