Cpp
sickn33/agentic-awesome-skills
Language-specific super-code guidelines for cpp. An agent skill from sickn33/agentic-awesome-skills.
Guide for using the meojson C++ JSON library in MaaEnd cpp-algo.
$ npx skills add MaaEnd/MaaEnd --skill meojson -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install MaaEnd/MaaEnd meojson --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/meojson .claude/skills/meojson && 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 "meojson" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/meojson into .claude/skills/meojson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meojson", 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/meojsonType 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 meojson -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install MaaEnd/MaaEnd meojson --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/meojson .agents/skills/meojson && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "meojson" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/meojson into .agents/skills/meojson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meojson", 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 meojson -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install MaaEnd/MaaEnd meojson --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/meojson .cursor/skills/meojson && 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 "meojson" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/meojson into .cursor/skills/meojson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meojson", 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/meojson--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 meojson -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install MaaEnd/MaaEnd meojson --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/meojson .gemini/skills/meojson && 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 "meojson" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/meojson into .gemini/skills/meojson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meojson", 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 meojsonInstalls 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 meojson -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/meojson .github/skills/meojson && 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 "meojson" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/meojson into .github/skills/meojson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meojson", 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 meojson -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 meojson --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/meojson .opencode/skills/meojson && 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 "meojson" agent skill from https://github.com/MaaEnd/MaaEnd/tree/v2/.agents/skills/meojson into .opencode/skills/meojson/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "meojson", 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.
meojsonGuide for using the meojson C++ JSON library in MaaEnd cpp-algo.
Meojson is an agent skill from MaaEnd/MaaEnd. Guide for using the meojson C++ JSON library in MaaEnd cpp-algo. Use when writing code that involves JSON parsing, serialization, struct jsonization (MEOJSONIZATION), json::value manipulation, ext::jsonization custom type support, or custom recognition param parsing in agent/cpp-algo/.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).
It sits in Mobile. It works with C++. The repository describes itself as: MaaEnd 终末地小助手:基于视觉 AI 的「明日方舟:终末地」自动化工具. The licence is AGPL-3.0.
7 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 cpp).
From 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 these keys or tokens, usually read from environment variables:
MEO_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Meojson loads about 2.1k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 310 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). 310 words, ~2,145 tokens.
.claude/skills/meojson/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.meojson is a header-only C++ JSON library, provided via MaaFramework deps. Include via <meojson/json.hpp>.
| Type | Description |
|---|---|
json::value | Universal JSON value (null/bool/number/string/array/object) |
json::array | JSON array, wraps std::vector<json::value> |
json::object | JSON object, wraps std::map<std::string, json::value> |
#include <meojson/json.hpp>
// From string — returns std::optional<json::value>
auto opt = json::parse(str);
if (!opt) { /* parse failed */ }
// From file
auto opt = json::open("/path/to/file.json");
// JSONC (with comments)
auto opt = json::parsec(str);
// JSONC file: check UTF-8 BOM and allow comments
auto opt = json::open("/path/to/file.json", true, true);json::open(path, check_bom, with_comments) 的两个布尔参数分别控制 UTF-8 BOM 检查和注释解析;默认调用 json::open(path) 是严格 JSON,既不检查 BOM,也不接受注释。
在 MaaEnd cpp-algo 中读取仓库维护、允许注释的 JSON/JSONC 文件时,优先复用公共能力:
#include "Common/JsoncFile.h"
auto opt = common::OpenJsoncFile(path);运行时接口参数(如 custom_recognition_param)、识别结果 detail 和生成报告仍保持严格 JSON,除非对应契约明确允许 JSONC。不要为解决仓库配置文件的注释问题而放宽运行时输入边界。
cpp-algo 推荐模式 — 安全解析自定义识别参数:
template <typename T>
T ParseCustomRecognitionParam(const char* custom_recognition_param)
{
if (!custom_recognition_param || std::strlen(custom_recognition_param) == 0) {
return T {};
}
auto opt = json::parse(custom_recognition_param);
if (!opt) {
LogError << "failed to parse custom_recognition_param" << VAR(custom_recognition_param);
return T {};
}
T result {};
if (!result.from_json(*opt)) {
LogError << "failed to deserialize param" << VAR(custom_recognition_param);
return T {};
}
return result;
}反模式:
json::parse(str).value_or(json::object {}).as<T>()——value_or静默吞掉 parse 失败;空 object 调as<T>()当T有 required 字段时会抛异常。
json::value v1 = 42;
json::value v2 = "hello";
json::value v3 = true;
json::value v4 = nullptr; // null
json::array arr { 1, 2, "three" };
json::object obj {
{ "key1", "value1" },
{ "key2", 42 },
};
// From STL containers (implicit conversion)
std::vector<int> vec = {1, 2, 3};
json::value v5 = vec; // → JSON array
std::map<std::string, int> m = {{"a", 1}};
json::value v6 = m; // → JSON objectv.is_null() / v.is_boolean() / v.is_number() / v.is_string()
v.is_array() / v.is_object()
v.is<int>() // check if convertible to typev.as_string() // → std::string
v.as_string_view() // → std::string_view (no copy)
v.as_integer() / v.as_double() / v.as_boolean()
v.as_array() // → const json::array&
v.as_object() // → const json::object&
v.as<T>() // → T (explicit conversion)// find() returns std::optional<T>
auto opt = v.find<std::string>("key");
if (opt) { std::string s = *opt; }
// get() with default value — supports chained keys
std::string s = v.get("key", "default_value");
int n = v.get("a", "b", 0); // v["a"]["b"], default 0
// exists() / contains()
if (v.exists("key")) { ... }const json::value& v2 = v["key"]; // object access
v["key"] = "new_value"; // mutable (creates key if missing)
for (const auto& item : v.as_array()) { ... }
for (const auto& [key, val] : v.as_object()) { ... }v.dumps() // compact string
v.dumps(4) // pretty print with indent=4
v.format() // same as dumps(4)cpp-algo 常见模式 — 写回 JSON detail:
template <typename T>
void WriteJsonDetail(MaaStringBuffer* out_detail, const T& payload)
{
if (out_detail == nullptr) return;
const std::string json_text = json::value(payload).dumps();
MaaStringBufferSet(out_detail, json_text.c_str());
}json::value merged = obj1 | obj2; // right side wins on conflict
obj1 |= obj2; // in-place mergeMEO_JSONIZATION(fields...) generates to_json(), check_json(), from_json() member functions.
struct LocateOutput {
int status = 0;
std::string message;
std::string mapName;
int x = 0;
int y = 0;
MEO_JSONIZATION(status, message, MEO_OPT mapName, MEO_OPT x, MEO_OPT y)
};
// Serialize
json::value j = data; // implicit via to_json()
// Deserialize — 安全方式:用 from_json() 检查返回值
MyData data {};
if (!data.from_json(j)) {
LogError << "failed to deserialize" << VAR(j);
}
// as<T>() 在类型不匹配 / required 字段缺失时会抛异常,仅在确定数据合法时使用
MyData data2 = j.as<MyData>();By default all fields are required in from_json(). Prefix with MEO_OPT to make optional (keeps default if missing):
struct LocateOptions {
double loc_threshold = 0.55;
double yolo_threshold = 0.70;
bool force_global_search = false;
MEO_JSONIZATION(
MEO_OPT loc_threshold,
MEO_OPT yolo_threshold,
MEO_OPT force_global_search)
};struct JTemplateMatch {
std::vector<std::string> template_; // "template" is C++ keyword
MEO_TOJSON(MEO_KEY("template") template_);
};
// Combine with MEO_OPT:
MEO_JSONIZATION(MEO_OPT MEO_KEY("default") default_);| Macro | Generates |
|---|---|
MEO_TOJSON(...) | to_json() only |
MEO_FROMJSON(...) | from_json() only |
MEO_CHECKJSON(...) | check_json() only |
MEO_JSONIZATION(...) | All three |
int, double, bool, std::stringstd::vector<T>, std::map<std::string, T>, std::array<T,N>std::optional<T>, std::shared_ptr<T>std::pair<A,B>, std::tuple<...>std::variant<Ts...>MEO_JSONIZATION / to_json()json::value, json::object, json::array directlyFor types you don't own, specialize json::ext::jsonization<T>:
namespace json::ext {
template <>
class jsonization<cv::Rect> {
public:
json::value to_json(const cv::Rect& rect) const {
return json::array { rect.x, rect.y, rect.width, rect.height };
}
bool check_json(const json::value& json) const {
return json.is<std::vector<int>>() && json.as_array().size() == 4;
}
bool from_json(const json::value& json, cv::Rect& rect) const {
auto arr = json.as<std::vector<int>>();
rect = cv::Rect(arr[0], arr[1], arr[2], arr[3]);
return true;
}
};
}MaaUtils 已提供的特化(通过 <MaaUtils/JsonExt.hpp> 间接可用):
cv::Point ↔ [x, y]、cv::Rect ↔ [x, y, w, h]、cv::Size ↔ [w, h]std::filesystem::path ↔ UTF-8 stringstd::chrono::milliseconds → "123ms" (to_json only)operator<< → string (to_json only)enum class MyEnum {
A, B, C,
MEOJSON_ENUM_RANGE(A, C)
};
json::value j = MyEnum::B; // → "B"
MyEnum e = j.as<MyEnum>(); // → MyEnum::Bjson::parse returns std::optional — always check before use,失败路径必须 LogError + 早期 returnas_*() / as<T>() throws on type mismatch — 用 find() 或 is_*() 前置检查;对 struct 用 from_json() 检查返回值.value_or(...).as<T>() — 静默吞错误 + 可能抛异常,应拆开检查(见上方推荐模式)char is deleted — use std::string or intext::jsonization lives in json::ext namespaceMEO_OPT applies to the next field only — each optional field needs its own MEO_OPTMEO_KEY goes after MEO_OPT — order is MEO_OPT MEO_KEY("key") fieldFor detailed API signatures, see reference.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/meojson of MaaEnd/MaaEnd.
Open the folder on GitHubat commit f47207b
Meojson 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 |
|---|---|---|---|---|---|---|
| Meojson this skillMaaEnd/MaaEnd | 4k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Cppsickn33/agentic-awesome-skills | 47k | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Fory Version Bumpapache/fory | 4.6k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Fory Performance Optimizationapache/fory | 4.6k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Crossbindcrossbind/crossbind | 148 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Audit Xcode Security Settingssuperagents-lab/xcode27-skills | 338 | — | ~4.6k | Automated safety check: Pass | None |
sickn33/agentic-awesome-skills
Language-specific super-code guidelines for cpp. An agent skill from sickn33/agentic-awesome-skills.
apache/fory
Bump Apache Fory release or post-release development versions across Java, Kotlin, Scala, Python, Rust, Go, C++, C, Dart, JavaScript, Swift, integration tests, examples, and source docs.
apache/fory
Run profile-driven bottleneck optimization across Apache Fory implementations (Java, C++, Python/Cython, Go, Rust, Swift, C, JavaScript/TypeScript, Dart, Kotlin, Scala).
crossbind/crossbind
A skill your agent uses when a user wants to call C++ or Rust from JavaScript or TypeScript; add a native library such as GDAL, SQLite, OpenSSL, GEOS or PROJ to a browser, Node.js, Cloudflare Worker…
superagents-lab/xcode27-skills
Audit and enable security-oriented Xcode build settings. An agent skill from superagents-lab/xcode27-skills.
margelo/react-native-skills
Builds and designs React Native Nitro Modules with Nitrogen, HybridObject TypeScript specs, Nitro View components, generated native implementations, zero-copy and native-state APIs, Swift/Kotlin/C++…
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
新增或改写 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++ 代码时使用。
MaaEnd/MaaEnd
分析 MaaEnd CreditShoppingMain 的日志。用于还原信用购物任务中实际购买了什么商品、每件商品的折扣力度、是否触发过刷新(或刷新次数已用尽)、稳健刷新是否触发、以及信用点的消耗状况。货架槽位必须以日志中的 CreditIcon(TemplateMatcher)为锚,有无 BuyFirstOCR/Priority2OCR…
Works with
Categories
Guide for using the meojson C++ JSON library in MaaEnd cpp-algo. Meojson is an agent skill from MaaEnd/MaaEnd. Guide for using the meojson C++ JSON library in MaaEnd cpp-algo.
Meojson fits situations like: writing code that involves JSON parsing; struct jsonization (MEOJSONIZATION); json::value manipulation; ext::jsonization custom type support.
Run `npx skills add MaaEnd/MaaEnd --skill meojson -a claude-code`. Or copy the skill folder (.agents/skills/meojson in MaaEnd/MaaEnd) into .claude/skills/meojson in your project. Claude Code loads it when a task matches its description.
Run `npx skills add MaaEnd/MaaEnd --skill meojson -a codex`. Or copy the skill folder (.agents/skills/meojson in MaaEnd/MaaEnd) into .agents/skills/meojson 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 meojson -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/meojson, .gemini/skills/meojson, .github/skills/meojson and .opencode/skills/meojson in your project.
Going by SKILL.md and its folder, Meojson needs credentials named MEO_KEY. Our summary lists: A credential in MEO_KEY.
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. Review the folder before installing.
Meojson 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.1k tokens (SKILL.md is roughly 8.6k 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 Meojson: Cpp (sickn33/agentic-awesome-skills, 47k stars), Fory Version Bump (apache/fory, 4.6k stars), Fory Performance Optimization (apache/fory, 4.6k stars) and Crossbind (crossbind/crossbind, 148 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.