React Native Best Practices
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
MaaEnd Pipeline JSON 编写指南。基于 MaaFramework Pipeline 协议,提供节点命名、识别算法、动作类型、流程控制、可复用节点等编码规范与模式参考。在编写、修改或审查 Pipeline JSON、设计节点流程、使用 TemplateMatch/OCR/Custom 识别或 Click/Swipe 动作时使用。
$ npx skills add MaaEnd/MaaEnd --skill pipeline-guide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install MaaEnd/MaaEnd pipeline-guide --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/MaaEnd/MaaEnd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/pipeline-guide .claude/skills/pipeline-guide && 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 "pipeline-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guide into .claude/skills/pipeline-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pipeline-guide", 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/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guideType 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 MaaEnd/MaaEnd --skill pipeline-guide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install MaaEnd/MaaEnd pipeline-guide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/pipeline-guide .agents/skills/pipeline-guide && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pipeline-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guide into .agents/skills/pipeline-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pipeline-guide", 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 MaaEnd/MaaEnd --skill pipeline-guide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install MaaEnd/MaaEnd pipeline-guide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/pipeline-guide .cursor/skills/pipeline-guide && 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 "pipeline-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guide into .cursor/skills/pipeline-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pipeline-guide", 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/MaaEnd/MaaEnd.git --path .agents/skills/pipeline-guide--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 MaaEnd/MaaEnd --skill pipeline-guide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install MaaEnd/MaaEnd pipeline-guide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/pipeline-guide .gemini/skills/pipeline-guide && 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 "pipeline-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guide into .gemini/skills/pipeline-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pipeline-guide", 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 MaaEnd/MaaEnd pipeline-guideInstalls 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 MaaEnd/MaaEnd --skill pipeline-guide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/pipeline-guide .github/skills/pipeline-guide && 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 "pipeline-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guide into .github/skills/pipeline-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pipeline-guide", 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 MaaEnd/MaaEnd --skill pipeline-guide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install MaaEnd/MaaEnd pipeline-guide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/MaaEnd/MaaEnd.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/pipeline-guide .opencode/skills/pipeline-guide && 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 "pipeline-guide" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/pipeline-guide into .opencode/skills/pipeline-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pipeline-guide", 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.
pipeline-guideMaaEnd Pipeline JSON 编写指南。基于 MaaFramework Pipeline 协议,提供节点命名、识别算法、动作类型、流程控制、可复用节点等编码规范与模式参考。在编写、修改或审查 Pipeline JSON、设计节点流程、使用 TemplateMatch/OCR/Custom 识别或 Click/Swipe 动作时使用。
Pipeline Guide is an agent skill from MaaEnd/MaaEnd. MaaEnd Pipeline JSON 编写指南。基于 MaaFramework Pipeline 协议,提供节点命名、识别算法、动作类型、流程控制、可复用节点等编码规范与模式参考。在编写、修改或审查 Pipeline JSON、设计节点流程、使用 TemplateMatch/OCR/Custom 识别或 Click/Swipe 动作时使用。
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `field-reference.md`).
It sits in Mobile. The repository describes itself as: MaaEnd 终末地小助手:基于视觉 AI 的「明日方舟:终末地」自动化工具. The licence is AGPL-3.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f47207b. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are jsonc).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom 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.
Pipeline Guide loads about 1.9k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 264 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); files beside SKILL.md are not scanned.
The full file from MaaEnd/MaaEnd at commit f47207b, republished under its AGPL-3.0 licence (© MaaEnd). 264 words, ~1,869 tokens.
.claude/skills/pipeline-guide/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.next 列表,覆盖当前操作后所有可能画面,力争一次截图命中。pre_delay / post_delay / timeout,优先通过增加中间识别节点解决;只在必须等画面稳定时才用 pre_wait_freezes / post_wait_freezes。当确实不需要延迟时,要在节点上显式将 rate_limit / pre_delay / post_delay 设为 0(协议默认 rate_limit=1000ms、pre_delay/post_delay=200ms,省略字段会引入隐式等待;仓库的 tools/add_node_defaults.py 会为 Common 节点补齐这些 0 值字段)。.prettierrc(4 空格缩进,数组元素换行)。__ 开头(如 __ScenePrivateXXX),不对外暴露。ResellMain、DailyProtocolPassInMenu、RealTimeAutoFightEntry。MaaEnd 使用 v2 格式,recognition 和 action 放入二级字典:
{
"MyNode": {
"recognition": {
"type": "TemplateMatch",
"param": {
"template": "MyTask/button.png",
"roi": [100, 200, 300, 100],
"threshold": 0.7,
},
},
"action": {
"type": "Click",
},
"next": ["NextNode"],
},
}"recognition": {
"type": "TemplateMatch",
"param": {
"template": "path/to/image.png", // 相对 image 文件夹
"roi": [x, y, w, h], // 720p 坐标,缩小搜索范围
"threshold": 0.7 // 默认 0.7,按需调整
}
}green_mask: true 可遮蔽不参与匹配的区域(用 RGB(0,255,0) 涂色)。"recognition": {
"type": "OCR",
"param": {
"roi": [x, y, w, h],
"expected": ["完整文本"]
}
}expected 必须写完整文本,不要写片段。多语言由 tools/i18n 自动展开。expected 中写截断/正则;此时必须:expected 数组内加 // @i18n-skip,让 i18n 工具跳过该节点;// OCR 引擎对 "稳定生产 100%" 中的百分号识别不稳定,截断匹配
"expected": [
// "稳定生产 100%"
// @i18n-skip
"稳定生产"
]"recognition": {
"type": "ColorMatch",
"param": {
"roi": [x, y, w, h],
"method": 40, // HSV 空间(推荐)
"lower": [h_low, s_low, v_low],
"upper": [h_high, s_high, v_high],
"count": 100
}
}// And:全部子识别都成功才算命中
"recognition": {
"type": "And",
"param": {
"all_of": ["NodeA", "NodeB"], // 可引用节点名或内联 object
"box_index": 0
}
}
// Or:任一子识别成功即命中
"recognition": {
"type": "Or",
"param": {
"any_of": ["NodeA", "NodeB"]
}
}调用 go-service 注册的自定义识别器:
"recognition": {
"type": "Custom",
"param": {
"custom_recognition": "ExpressionRecognition",
"custom_recognition_param": {
"expression": "{CreditOCR}<300"
}
}
}| 动作 | 用途 | 关键字段 |
|---|---|---|
Click | 点击 | target, target_offset |
LongPress | 长按 | target, duration |
Swipe | 滑动 | begin, end, duration |
Scroll | 滚轮(仅Win32) | target, dx, dy |
ClickKey | 按键 | key(虚拟键码) |
InputText | 输入文本 | input_text |
StartApp / StopApp | 启停应用 | package |
StopTask | 停止当前任务链 | 无 |
Custom | 自定义动作 | custom_action, custom_action_param |
DoNothing | 不执行(默认) | 无 |
target 支持:true(当前识别结果)、节点名字符串、[x, y]、[x, y, w, h]。
按序识别,首个命中的节点执行其 action 后成为当前节点。next 为空或全部超时则任务结束。
识别超时或动作失败时执行的节点列表。
[JumpBack]:命中后执行完该节点链,自动返回父节点继续识别 next。适用于处理弹窗、加载等中断场景。
"next": [
"BusinessNode",
"[JumpBack]HandlePopup",
"[JumpBack]WaitLoading"
][Anchor]:动态引用锚点,运行时解析为最后设置该锚点的节点。
只在必须时使用 pre_wait_freezes / post_wait_freezes 等待画面静止,不要为了执行稳定而使用延迟:
"post_wait_freezes": {
"time": 200,
"target": [0, 0, 0, 0] // 全屏
}避免对同一按钮重复点击——第二次点击可能作用于下一界面的其他元素。
限制节点最大命中次数,超过后自动跳过:
"max_hit": 3编写前先检查是否已有可复用节点,避免重复造轮子。
Common/Button/)| 节点 | 说明 |
|---|---|
WhiteConfirmButtonType1 | 白底圆环确认 |
WhiteConfirmButtonType2 | 白底对号确认 |
YellowConfirmButtonType1 | 黄底圆环确认 |
YellowConfirmButtonType2 | 黄底对号确认 |
CancelButton | 白底 X 取消 |
CloseButtonType1 | 右上角 X(不兼容 ESC 菜单) |
CloseButtonType2 | 右上角 X(兼容 ESC 菜单,推荐) |
TeleportButton | 地图右下角传送 |
QuickTeleportButton | 地图「前往传送」 |
CloseRewardsButton | 奖励界面对号关闭 |
从任意界面自动导航到目标场景。仅使用 Interface/ 下的接口节点,禁止引用 __ScenePrivate* 内部节点。
"next": [
"MyBusinessNode",
"[JumpBack]SceneAnyEnterWorld"
]常用接口:SceneAnyEnterWorld、SceneEnterMapAny、SceneEnterWorldFactory、SceneDialogConfirm、SceneWaitLoadingExit 等。详见 docs/zh_cn/developers/scene-manager.md。
SubTask:顺序执行子任务列表。ClearHitCount:清除节点命中计数。ExpressionRecognition:计算布尔表达式。docs/zh_cn/developers/custom.md。{
"MyTaskEntry": {
"next": [
"MyTaskMainStep",
"[JumpBack]SceneDialogConfirm",
"[JumpBack]SceneWaitLoadingExit",
"[JumpBack]SceneAnyEnterWorld",
],
},
}{
"ClickConfirm": {
"recognition": { "type": "TemplateMatch", "param": { "template": "confirm.png", "roi": [...] } },
"action": { "type": "Click" },
"post_wait_freezes": { "time": 200, "target": [0, 0, 0, 0] },
"next": ["VerifyNextScreen", "[JumpBack]ClickConfirm"]
}
}{
"MyButton": {
"recognition": {
"type": "And",
"param": {
"all_of": ["ButtonBackground", "ButtonIcon"],
"box_index": 0,
},
},
"action": {"type": "Click"},
},
}pre_delay / post_delay / timeoutnext 列表覆盖所有可能画面,含弹窗/加载/异常.prettierrclocales/ 已添加新增任务的多语言文本expected 默认写完整文本;确需截断时已加 // @i18n-skip,且在数组上方注释保留完整原文post_wait_freezes__ScenePrivate* 内部节点docs/zh_cn/developers/common-buttons.mddocs/zh_cn/developers/scene-manager.mddocs/zh_cn/developers/custom.mddocs/zh_cn/developers/README.mddocs/zh_cn/developers/node-testing.md© 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
SKILL.md and 1 other file in .agents/skills/pipeline-guide of MaaEnd/MaaEnd.
Open the folder on GitHubat commit f47207b
Pipeline Guide 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 |
|---|---|---|---|---|---|---|
| Pipeline Guide this skillMaaEnd/MaaEnd | 4k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| React Native Best Practicesvercel-labs/openreview | 1.7k | 17 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Swiftui Protwostraws/SwiftUI-Agent-Skill | 5.1k | 2 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Kortix Brandkortix-ai/suna | 20k | — | ~4k | Automated safety check: Pass | Custom licence | |
| Ip As LogoKartikLabhshetwar/better-shot | 2.4k | 1 repos | ~4.3k | Automated safety check: Pass | MIT | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 180 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 |
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
twostraws/SwiftUI-Agent-Skill
Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance.
kortix-ai/suna
Load FIRST for anything that carries the Kortix look or voice: product or mobile UI, copy of any kind, decks, social, images, email, CLI output, anything with the logo, and reviews of these.
KartikLabhshetwar/better-shot
Generate extremely simple, cute, personified square character images with rounded heavy forms, two purposeful character colors, one solid background color, and a dominant lower-corner composition.
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
adamlyttleapps/claude-skill-aso-appstore-screenshots
Generate high-converting App Store screenshots by analyzing your app's codebase, discovering core benefits, and creating ASO-optimized screenshot images using Nano Banana Pro.
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…
MaaEnd/MaaEnd
为 MaaEnd 添加、导入或补充节点识别测试截图,并按仓库约定脱敏图片、放入 tests/MaaEndTestset、维护 tests//test.json 和运行 pnpm check/pnpm test 验证。用户提到“添加测试图片/截图”“把截图加入 ADB 或 Win32 测试集”“给节点补正例或反例”“更新 hits/box”“UID…
MaaEnd/MaaEnd
Guide for using the meojson C++ JSON library in MaaEnd cpp-algo.
MaaEnd/MaaEnd
新增或改写 MaaEnd 的 AutoCollect 自动采集路线说明。默认包含路线文件创建、AutoCollect 主入口接线、任务选项注册和多语言文案补充。适用于“参考现有 AutoCollect 路线新建一条采集线”“给定传送点与路径点位生成 AutoCollectRouteX.json 并注册到任务中”“用户已经写好路线文件,只需要补注册接口”等场景。注意:本 skill 仅适用于参考…
MaaEnd/MaaEnd
仅分析 AutoStockStapleMain 的 MaaEnd 日志。用于还原该任务实际购买了什么、购买所对应的证据、逐步剩余账单(券/账单)数值时间线,以及在 pipeline 或 go-service 中应当加日志/埋点的位置。适用于用户询问 AutoStockStapleMain、AutoStockStaple、武陵/四号谷地的稳定需求物资购买,或该任务内账单数值变化原因等场景。
MaaEnd/MaaEnd
MaaEnd cpp-algo C++ 编码风格与工程规范指南。参考 MaaFramework 的优秀实践,规范命名、头文件、公共工具、错误处理、日志、CMake 等方面。在编写、修改或审查 agent/cpp-algo/ 下的 C++ 代码时使用。
Categories
MaaEnd Pipeline JSON 编写指南。基于 MaaFramework Pipeline 协议,提供节点命名、识别算法、动作类型、流程控制、可复用节点等编码规范与模式参考。在编写、修改或审查 Pipeline JSON、设计节点流程、使用 TemplateMatch/OCR/Custom 识别或 Click/Swipe 动作时使用。. Pipeline Guide is an agent skill from MaaEnd/MaaEnd.
Pipeline Guide fits situations like: mobile work in your project.
Run `npx skills add MaaEnd/MaaEnd --skill pipeline-guide -a claude-code`. Or copy the skill folder (.agents/skills/pipeline-guide in MaaEnd/MaaEnd) into .claude/skills/pipeline-guide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add MaaEnd/MaaEnd --skill pipeline-guide -a codex`. Or copy the skill folder (.agents/skills/pipeline-guide in MaaEnd/MaaEnd) into .agents/skills/pipeline-guide 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 MaaEnd/MaaEnd --skill pipeline-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pipeline-guide, .gemini/skills/pipeline-guide, .github/skills/pipeline-guide and .opencode/skills/pipeline-guide in your project.
SKILL.md names no scripts, command-line tools or credentials: Pipeline Guide is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: github.com. 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. Review the folder before installing.
Pipeline Guide 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 1.9k tokens (SKILL.md is roughly 7.5k 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 Pipeline Guide: React Native Best Practices (vercel-labs/openreview, 1.7k stars), Swiftui Pro (twostraws/SwiftUI-Agent-Skill, 5.1k stars), Kortix Brand (kortix-ai/suna, 20k stars) and Ip As Logo (KartikLabhshetwar/better-shot, 2.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.