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…
Scan and initialize a MaaFramework game or app automation project for Maa skills and MaaMCP workflows.
$ npx skills add duorua/narutomobile --skill maa-project-init -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install duorua/narutomobile maa-project-init --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "maa-project-init" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-init into .claude/skills/maa-project-init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-project-init", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-initType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add duorua/narutomobile --skill maa-project-init -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install duorua/narutomobile maa-project-init --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/maa-project-init .agents/skills/maa-project-init && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "maa-project-init" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-init into .agents/skills/maa-project-init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-project-init", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duorua/narutomobile --skill maa-project-init -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install duorua/narutomobile maa-project-init --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/maa-project-init .cursor/skills/maa-project-init && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "maa-project-init" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-init into .cursor/skills/maa-project-init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-project-init", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/duorua/narutomobile.git --path .agents/skills/maa-project-init--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add duorua/narutomobile --skill maa-project-init -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install duorua/narutomobile maa-project-init --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/maa-project-init .gemini/skills/maa-project-init && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "maa-project-init" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-init into .gemini/skills/maa-project-init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-project-init", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install duorua/narutomobile maa-project-initInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add duorua/narutomobile --skill maa-project-init -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/maa-project-init .github/skills/maa-project-init && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "maa-project-init" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-init into .github/skills/maa-project-init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-project-init", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add duorua/narutomobile --skill maa-project-init -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install duorua/narutomobile maa-project-init --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/duorua/narutomobile.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/maa-project-init .opencode/skills/maa-project-init && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "maa-project-init" agent skill from https://github.com/duorua/narutomobile/tree/main/.agents/skills/maa-project-init into .opencode/skills/maa-project-init/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maa-project-init", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
maa-project-initScan 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. 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.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c950473. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from duorua/narutomobile at commit c950473, republished under its AGPL-3.0 licence (© duorua). 1,050 words, ~2,201 tokens.
.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.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.
Locate the target project root.
assets/interface.json, then interface.json.assets/interface.json as the source of resource groups, controller types, task entries, and agent settings.Run the analyzer in summary mode first:
python "<skill-dir>/scripts/analyze_pipeline_project.py" "<project-root>"Inspect the summary for:
interface.jsoncontext.run_task() / run_recognition() external entrieschild_args resolution + project_root 与 4 层 ancestor 约定入口候选 + 交叉对比)Generate basic_info.md only after the summary looks reasonable:
python "<skill-dir>/scripts/analyze_pipeline_project.py" "<project-root>" --write-basic-infoIf basic_info.md already exists, the script refuses to overwrite it. Use --overwrite only after the user explicitly confirms.
Report where basic_info.md was written and name the most important sections that still need human review.
When handing off to another Maa skill:
basic_info.md section 0 and the routed sections for its taskbasic_info.md, rerun summary mode and report staleness; do not overwrite silentlyassets/interface.json or interface.jsonassets/resource/**/pipeline/**/*.jsondefault_pipeline.json under resource rootsassets/resource/**/image/**context.run_task() and context.run_recognition() under agent/**/*.py@AgentServer.custom_action(...) registrations under agent/**/*.pyinterface.json agent.child_args 里每条 .py 的磁盘解析状态(与运行时 maa_mcp/agent_supervisor._build_subprocess_cmd 同步上溯 4 层)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.
Parse these pipeline link fields:
nexton_errorinterruptSupport these node reference forms:
"ConfirmButton"["A", "B"]{ "name": "A", "jump_back": true }"[JumpBack]BackText", "[Anchor]SomeNode"Strip bracket prefixes when resolving the target node, but preserve the prefix in summaries where useful.
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.
entry node.next, on_error, and interrupt edges with edge labels.JumpBack, jump_back, and anchor in edge labels.basic_info.md.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.Treat a node as likely reusable when either condition is true:
Important common categories:
ClickKey with Android key 4basic_info.md ContentsThe generated document must be concise and useful to an AI agent. Include:
For section 2, the "Agent script paths" subsection includes three parts:
child_args .py with Status (resolved / unresolved / non-py / absolute) and the absolute path of resolution (if any).AGENT_DIR_NAMES × AGENT_ENTRY_BASENAMES candidate under root + 4 ancestor levels with an Exists column.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.
If a device or window is available and the user wants deeper game research, use MaaMCP after file scanning:
screencapbasic_info.mdLive 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.
basic_info.md without explicit confirmation.basic_info.md from another repository into MaaMCP.© 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
SKILL.md and 3 other files (scripts, assets) in .agents/skills/maa-project-init of duorua/narutomobile.
Open the folder on GitHubat commit c950473
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Maa Project Init this skillduorua/narutomobile | 335 | — | ~2.2k | Automated safety check: Pass | AGPL-3.0 | |
| Litho Document Skillsopaco/terrain | 256 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Docs SVG Kitgridaco/grida | 2.7k | — | ~5.6k | Automated safety check: Pass | Apache-2.0 | |
| Codegen Diagramxstongxue/best-skills | 3k | — | ~291 | Automated safety check: Pass | Apache-2.0 | |
| Archify Diagramstt-a1i/archify | 79k | — | ~2.9k | Automated safety check: Pass | MIT | |
| JSON Canvasheyitsnoah/claudesidian | 2.6k | 18 repos | ~3.5k | Automated safety check: Pass | MIT |
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…
gridaco/grida
Author SVG figures for Grida docs — diff-able, version-controlled vector diagrams embedded in doc pages instead of screenshots.
xstongxue/best-skills
基于当前项目/代码生成 Draw.io 图表,支持技术栈图、系统架构图、数据结构图、E-R 图四种类型。输出符合 Draw.io 语法的 .drawio 文件(mxGraph XML),可直接导入 Draw.io 编辑。当用户提到技术栈、系统架构、数据结构、E-R 图时使用。
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.
heyitsnoah/claudesidian
Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections.
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.
duorua/narutomobile
Generate MaaFramework Pipeline nodes and recognition snippets from screenshots or observed UI state.
duorua/narutomobile
Add runtime UI options (select/checkbox/switch/input) to MaaFramework option surfaces such as assets/interface.json or assets/resource/tasks//.json.
duorua/narutomobile
Orchestrate ambiguous end-to-end MaaFramework automation requests into verified implementations.
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.
duorua/narutomobile
Test and validate MaaFramework Pipeline JSON, recognition nodes, action nodes, CustomAction/CustomRecognition wiring, resource loading, and end-to-end task behavior.
duorua/narutomobile
Operate MaaFramework devices and Pipeline resources through the maafw-cli command line with strict JSON output.
Categories
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.
Maa Project Init fits situations like: asked for maa-project-init; project-pipeline-init; researching a Maa project; scanning pipeline nodes.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.