Agent skill

Meojson

by 1204244136 in 1204244136/MDA

meojson C++ JSON 库使用指南。用于 MaaFramework C++ 项目中的 JSON 解析、序列化、MEOJSONIZATION、json::value 操作、ext::jsonization 自定义类型支持,以及 Custom 参数解析。

AGPL-3.0Auto-check passed

Install Meojson

skills CLI
$ npx skills add 1204244136/MDA --skill meojson -a claude-code

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

GitHub CLI
$ gh skill install 1204244136/MDA meojson --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/1204244136/MDA.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/meojson .claude/skills/meojson && 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
meojson
GitHub stars
120
Token cost
~1.3k tokens
SKILL.md length
133 words
Files
2
Skills in repo
9
Repo updated
First seen
Licence
AGPL-3.0

At a glance

meojson C++ JSON 库使用指南。用于 MaaFramework C++ 项目中的 JSON 解析、序列化、MEOJSONIZATION、json::value 操作、ext::jsonization 自定义类型支持,以及 Custom 参数解析。

  • Works in 7 steps: json::parse 返回 std::optional,必须检查。 → as_*() / as() 类型不匹配时可能抛异常。 → 禁止 .value_or(...).as() 静默吞解析错误。 → …
  • SKILL.md covers 核心类型, 解析, 构造 JSON 值 and 读取值, plus 10 more sections
  • Needs MEO_KEY

What it does

Meojson is an agent skill from 1204244136/MDA. meojson C++ JSON 库使用指南。用于 MaaFramework C++ 项目中的 JSON 解析、序列化、MEOJSONIZATION、json::value 操作、ext::jsonization 自定义类型支持,以及 Custom 参数解析。

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference.md`).

It works with C++. The repository describes itself as: Nikke小助手 | Assistant For Goddess of Victory: Nikke. The licence is AGPL-3.0.

Example prompts

  • “/meojson”

Requirements

  • A credential in MEO_KEY

Workflow steps

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

  1. json::parse 返回 std::optional,必须检查。
  2. as_*() / as() 类型不匹配时可能抛异常。
  3. 禁止 .value_or(...).as() 静默吞解析错误。
  4. char / wchar_t 构造被禁用,使用 std::string 或整数。
  5. ext::jsonization 位于 json::ext 命名空间。
  6. 每个可选字段都需要自己的 MEO_OPT。
  7. MEO_KEY 与 MEO_OPT 组合时注意顺序。

What it can do on your machine

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

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • MEO_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Meojson loads about 1.3k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 133 words of instructions outside code blocks.

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

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 1204244136/MDA at commit 90bb2b2, republished under its AGPL-3.0 licence (© 1204244136). 133 words, ~1,293 tokens.

Download SKILL.mdSave it as .claude/skills/meojson/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
meojson
description
meojson C++ JSON 库使用指南。用于 MaaFramework C++ 项目中的 JSON 解析、序列化、MEO_JSONIZATION、json::value 操作、ext::jsonization 自定义类型支持,以及 Custom 参数解析。

meojson 使用指南

meojson 是 MaaFramework 依赖中常用的 header-only C++ JSON 库。通常通过以下头文件引入:

cpp
#include <meojson/json.hpp>

核心类型

类型说明
json::value通用 JSON 值:null / bool / number / string / array / object
json::arrayJSON 数组,包装 std::vector<json::value>
json::objectJSON 对象,包装 std::map<std::string, json::value>

解析

cpp
auto opt = json::parse(str);      // std::optional<json::value>
auto file = json::open(path);     // 从文件读取
auto jsonc = json::parsec(str);   // JSONC,支持注释

推荐安全模式:

cpp
template <typename T>
T ParseParam(const char* text)
{
    if (text == nullptr || std::strlen(text) == 0) {
        return T {};
    }

    auto opt = json::parse(text);
    if (!opt) {
        LogError << "failed to parse json param" << VAR(text);
        return T {};
    }

    T result {};
    if (!result.from_json(*opt)) {
        LogError << "failed to deserialize json param" << VAR(text);
        return T {};
    }
    return result;
}

避免:

cpp
json::parse(str).value_or(json::object {}).as<T>();

这会静默吞掉 parse 失败,并可能在 required 字段缺失时抛异常。

构造 JSON 值

cpp
json::value v1 = 42;
json::value v2 = "hello";
json::value v3 = true;
json::value v4 = nullptr;

json::array arr { 1, 2, "three" };
json::object obj {
    { "key1", "value1" },
    { "key2", 42 },
};

std::vector<int> vec = { 1, 2, 3 };
json::value v5 = vec;

std::map<std::string, int> map = { { "a", 1 } };
json::value v6 = map;

读取值

类型检查
cpp
v.is_null();
v.is_boolean();
v.is_number();
v.is_string();
v.is_array();
v.is_object();
v.is<int>();
直接访问
cpp
v.as_string();
v.as_string_view();
v.as_integer();
v.as_double();
v.as_boolean();
v.as_array();
v.as_object();
v.as<T>();

as_*() / as<T>() 类型不匹配时可能抛异常,只在确定数据合法时使用。

安全访问
cpp
auto name = v.find<std::string>("name");
if (name) {
    // use *name
}

std::string label = v.get("label", "default");
int count = v.get("config", "count", 0);

if (v.exists("key")) {
    // ...
}

序列化

cpp
v.dumps();       // 紧凑字符串
v.dumps(4);      // 4 空格缩进
v.format();      // pretty print

写回 MaaFramework detail 的常见模式:

cpp
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());
}

Object 合并

cpp
json::value merged = obj1 | obj2;  // 右侧覆盖同名键
obj1 |= obj2;

MEO_JSONIZATION

MEO_JSONIZATION(fields...) 生成 to_json()、check_json()、from_json()。

cpp
struct LocateOutput {
    int status = 0;
    std::string message;
    std::string map_name;
    int x = 0;
    int y = 0;

    MEO_JSONIZATION(status, message, MEO_OPT map_name, MEO_OPT x, MEO_OPT y)
};

序列化:

cpp
json::value j = data;

反序列化推荐:

cpp
LocateOutput data {};
if (!data.from_json(j)) {
    LogError << "failed to deserialize" << VAR(j);
}

MEO_OPT

默认字段都是 required。用 MEO_OPT 标记可选字段,缺失时保留默认值:

cpp
struct Options {
    double threshold = 0.7;
    bool enabled = true;

    MEO_JSONIZATION(MEO_OPT threshold, MEO_OPT enabled)
};

每个可选字段都需要自己的 MEO_OPT。

MEO_KEY

当 JSON key 与 C++ 字段名不同,使用 MEO_KEY:

cpp
struct TemplateParam {
    std::vector<std::string> template_;

    MEO_JSONIZATION(MEO_KEY("template") template_)
};

与 MEO_OPT 组合时顺序通常为:

cpp
MEO_OPT MEO_KEY("default") default_

子宏

宏生成内容
MEO_TOJSON(...)to_json()
MEO_FROMJSON(...)from_json()
MEO_CHECKJSON(...)check_json()
MEO_JSONIZATION(...)全部三个

ext::jsonization

对不拥有源码的类型,特化 json::ext::jsonization<T>:

cpp
namespace json::ext {
template <>
class jsonization<MyRect> {
public:
    json::value to_json(const MyRect& rect) const
    {
        return json::array { rect.x, rect.y, rect.width, rect.height };
    }

    bool check_json(const json::value& value) const
    {
        return value.is<std::vector<int>>() && value.as_array().size() == 4;
    }

    bool from_json(const json::value& value, MyRect& rect) const
    {
        auto arr = value.as<std::vector<int>>();
        rect = MyRect { arr[0], arr[1], arr[2], arr[3] };
        return true;
    }
};
}

Enum 反射

cpp
enum class MyEnum {
    A,
    B,
    C,
    MEOJSON_ENUM_RANGE(A, C)
};

json::value j = MyEnum::B;
MyEnum e = j.as<MyEnum>();

常见坑

  1. json::parse 返回 std::optional,必须检查。
  2. as_*() / as<T>() 类型不匹配时可能抛异常。
  3. 禁止 .value_or(...).as<T>() 静默吞解析错误。
  4. char / wchar_t 构造被禁用,使用 std::string 或整数。
  5. ext::jsonization 位于 json::ext 命名空间。
  6. 每个可选字段都需要自己的 MEO_OPT。
  7. MEO_KEY 与 MEO_OPT 组合时注意顺序。

参考

详细 API 见 reference.md。

© 1204244136, 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 1 other file in .claude/skills/meojson of 1204244136/MDA.

  • SKILL.md
  • reference.md

Open the folder on GitHubat commit 90bb2b2

Compare with similar skills

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.

Meojson compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Meojson this skill1204244136/MDA120—~1.3kAutomated safety check: PassAGPL-3.0
Paddle BuildPaddlePaddle/Paddle24k—~1kAutomated safety check: PassApache-2.0
Fory Releaseapache/fory4.6k—~2.9kAutomated safety check: PassApache-2.0
ONNX Runtime Shape Inference Safety Auditmicrosoft/onnxruntime22k—~3.3kAutomated safety check: PassMIT
Code Audit3stoneBrother/code-audit8921 repos~2.7kAutomated safety check: PassNone
Qt C++ Code Reviewx-tools-author/x-tools1.1k2 repos~4.3kAutomated safety check: PassBSD-3-Clause

Similar skills

  • Paddle Build

    PaddlePaddle/Paddle

    A skill your agent uses when needing to compile, rebuild, or install Paddle from source after code changes.

    24k GitHub stars~1k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Fory Release

    apache/fory

    Prepare an Apache Fory release candidate from a clean release branch, including the version bump, RC tag, JVM staging, ASF source artifacts, SVN upload, and vote email.

    4.6k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Official

    Finds and fixes out-of-range output writes in ONNX Runtime operator shape-inference functions where a getNumOutputs guard admits too few outputs.

    22k GitHub stars~3.3k tokensUpdated today
    SecurityAuto-check passed
  • Code Audit

    3stoneBrother/code-audit

    Professional code security audit skill covering 55+ vulnerability types.

    892 GitHub starsUsed in 1 repo~2.7k tokens
    SecurityAuto-check passed
  • Qt C++ Code Review

    x-tools-author/x-tools

    Read-only review of Qt6 C++ code that combines a deterministic lint script with six parallel analysis agents and reports only high-confidence issues.

    1.1k GitHub starsUsed in 2 repos~4.3k tokens
    DevelopmentAuto-check passed
  • Leetcuda Cpp Kernel

    xlite-dev/LeetCUDA

    LeetCUDA 中文技术书(584 页,XeLaTeX 源)按需查阅 skill——写、优化、调试或 review CUDA C++/PTX kernel 时的权威参考路由层。当任务涉及:GPU 架构/Roofline/ occupancy、向量化与 coalescing、warp/block reduce、softmax(online/LSE merge)、…

    12k GitHub stars~3.5k tokensUpdated 10 days ago
    AI & LLM EngineeringAuto-check passed

More from 1204244136/MDA

All 9 skills in this repo
  • Generate Pi Task

    1204244136/MDA

    根据 MaaFramework Pipeline 定义生成或更新 Project Interface 任务 JSON。用于创建、编辑或扩展 assets/tasks/ 下的任务文件,将 Pipeline 节点映射为用户可配置选项(switch/select/checkbox/input)并绑定 pipelineoverride。

    120 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Dmp Analysis

    1204244136/MDA

    分析 Windows 崩溃转储文件(.dmp),诊断 MaaFramework / MXU 项目及其依赖项的崩溃。用于 issue 日志包或附件中发现 .dmp 文件,或用户要求分析 DMP / 崩溃转储时。

    120 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Go Service Guide

    1204244136/MDA

    MaaFramework Go Agent / go-service 编写指南。用于编写、修改或审查 agent/go-service/ 下的 Go 自定义识别器、动作、EventSink,或了解 MaaFramework Go Agent 的注册、日志、目录组织和参数解析模式。

    120 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Maa Logging

    1204244136/MDA

    MaaFramework C++ 日志宏用法指南。用于写 C++ MaaFramework 扩展、Custom 组件或工具代码时使用 LogInfo/LogError/LogWarn/LogDebug/LogTrace、VAR、容器输出和自定义类型日志。

    120 GitHub stars~790 tokensUpdated today
    Auto-check passed
  • 分析 MDA 公开 Issue、日志包或本地日志。用于 https://github.com/1204244136/MDA/issues/...、1234、MDA 日志压缩包、识别失败、任务卡死、控制器差异、Pipeline/Agent/MXU 问题。会从…

    120 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Mda Project Guide

    1204244136/MDA

    MDA 项目专属开发指南。用于在 MDA 中编写或审查 MaaFramework Pipeline、Project Interface 任务、locale、go-service 组件时补充项目结构、业务域、命名习惯和现有任务选项示例。与通用 pipeline-guide、pipeline-debug、generate-pi-task、go-service-guide 配合使用。

    120 GitHub stars~1.8k tokensUpdated today
    Auto-check passed

Works with

Questions about Meojson

What does Meojson do?

meojson C++ JSON 库使用指南。用于 MaaFramework C++ 项目中的 JSON 解析、序列化、MEOJSONIZATION、json::value 操作、ext::jsonization 自定义类型支持,以及 Custom 参数解析。. Meojson is an agent skill from 1204244136/MDA.

How do I install Meojson in Claude Code?

Run `npx skills add 1204244136/MDA --skill meojson -a claude-code`. Or copy the skill folder (.claude/skills/meojson in 1204244136/MDA) into .claude/skills/meojson in your project. Claude Code loads it when a task matches its description.

How do I install Meojson in Codex?

Run `npx skills add 1204244136/MDA --skill meojson -a codex`. Or copy the skill folder (.claude/skills/meojson in 1204244136/MDA) into .agents/skills/meojson in your project. Codex loads it when a task matches its description.

Can I use Meojson 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 1204244136/MDA --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.

What does Meojson need to run?

Going by SKILL.md and its folder, Meojson needs credentials named MEO_KEY. Our summary lists: A credential in MEO_KEY.

Does Meojson 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 Meojson 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 Meojson use?

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.

How many tokens does Meojson use?

About 1.3k tokens (SKILL.md is roughly 5.2k 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 Meojson?

Skills that share tags, products or a category with Meojson: Paddle Build (PaddlePaddle/Paddle, 24k stars), Fory Release (apache/fory, 4.6k stars), ONNX Runtime Shape Inference Safety Audit (microsoft/onnxruntime, 22k stars) and Code Audit (3stoneBrother/code-audit, 892 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Meojson?

1204244136 (a GitHub user) maintains it in 1204244136/MDA, which has 120 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 10, 2026.

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