Language-specific super-code guidelines for cpp. An agent skill from sickn33/agentic-awesome-skills.

MITAuto-check passedMobile

Install Cpp

skills CLI
$ npx skills add sickn33/agentic-awesome-skills --skill cpp -a claude-code

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

GitHub CLI
$ gh skill install sickn33/agentic-awesome-skills cpp --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/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/super-code/cpp .claude/skills/cpp && 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
cpp
GitHub stars
47k
Used in
1 other repo
Token cost
~1.6k tokens
SKILL.md length
205 words
Files
1
Skills in repo
1,394
Repo updated
First seen
Licence
MIT

At a glance

Language-specific super-code guidelines for cpp. An agent skill from sickn33/agentic-awesome-skills.

  • Works in 7 steps: Memory & Ownership {#memory} → Modern Types & Containers {#types} → Move Semantics & References {#move} → …
  • Mobile work in your project
  • SKILL.md covers When to Use, Table of Contents, 1. Memory & Ownership {#memory} and 2. Modern Types & Containers…, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Cpp is an agent skill from sickn33/agentic-awesome-skills. Language-specific super-code guidelines for cpp.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile. It works with C++. The repository describes itself as: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is MIT.

When your agent uses it

  • Mobile work in your project

Example prompts

  • “/cpp”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Memory & Ownership {#memory}
  2. Modern Types & Containers {#types}
  3. Move Semantics & References {#move}
  4. Templates & Concepts {#templates}
  5. Error Handling {#errors}
  6. Concurrency {#concurrency}
  7. Anti-patterns specific to C++ {#antipatterns}

What it can do on your machine

Read from SKILL.md and the folder at commit 1e53ce2. 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 no API keys, tokens, secrets or passwords.

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

Context cost

Cpp loads about 1.6k tokens when it runs. Until then it costs about 13 tokens; SKILL.md has 205 words of instructions outside code blocks.

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

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 sickn33/agentic-awesome-skills at commit 1e53ce2, republished under its MIT licence (© sickn33). 205 words, ~1,634 tokens.

Download SKILL.mdSave it as .claude/skills/cpp/SKILL.md (or your agent's skills folder).
name
cpp
description
Language-specific super-code guidelines for cpp.
risk
safe
source
community
date_added
2026-06-16

C++: Idiomatic Efficiency Reference

When to Use

  • Use this skill when the task matches this description: Language-specific super-code guidelines for cpp.

Table of Contents

  1. Memory & Ownership
  2. Modern Types & Containers
  3. Move Semantics & References
  4. Templates & Concepts
  5. Error Handling
  6. Concurrency
  7. Anti-patterns specific to C++

1. Memory & Ownership {#memory}

cpp
// ❌ Raw new/delete
Widget* w = new Widget();
// ... 15 lines later ...
delete w;

// ✅
auto w = std::make_unique<Widget>();
cpp
// ❌ Shared ownership when unique suffices
auto w = std::make_shared<Widget>();
transfer(w); // only one owner

// ✅ — unique_ptr; move when transferring
auto w = std::make_unique<Widget>();
transfer(std::move(w));
cpp
// ❌ new[] for dynamic arrays
int* arr = new int[n];
// ... use ...
delete[] arr;

// ✅
std::vector<int> arr(n);
cpp
// ❌ Manual RAII wrapper for file/mutex
FILE* f = fopen(path, "r");
// ... must remember fclose ...

// ✅
std::ifstream f(path);
// closes automatically at scope exit
// For non-standard resources: use unique_ptr with custom deleter
auto f = std::unique_ptr<FILE, decltype(&fclose)>(fopen(path, "r"), fclose);

Rule: if you type new, you almost certainly want make_unique or make_shared.


2. Modern Types & Containers {#types}

cpp
// ❌ C-style string manipulation
char buf[256];
sprintf(buf, "%s:%d", host, port);

// ✅
auto addr = std::format("{}:{}", host, port); // C++20
// or: auto addr = host + ":" + std::to_string(port);
cpp
// ❌ out-parameter for multiple returns
void compute(int input, int& result, std::string& error);

// ✅
struct ComputeResult { int value; std::string error; };
ComputeResult compute(int input);
// or: std::pair / std::tuple with structured bindings
auto [value, error] = compute(input);
cpp
// ❌ Manual loop to find element
int idx = -1;
for (int i = 0; i < vec.size(); i++) {
    if (vec[i] == target) { idx = i; break; }
}

// ✅
auto it = std::ranges::find(vec, target); // C++20
// or: std::find(vec.begin(), vec.end(), target);
cpp
// ❌ Checking .find() != .end() then accessing
auto it = map.find(key);
if (it != map.end()) { use(it->second); }

// ✅ (C++20)
if (map.contains(key)) { use(map[key]); }
// or keep iterator version when you need the value without double lookup

Use std::string_view for function parameters that don't need ownership.


3. Move Semantics & References {#move}

cpp
// ❌ Copying a large container into a function
void process(std::vector<Data> items) { ... } // copies on call

// ✅ — const ref for read, move for sink
void process(const std::vector<Data>& items) { ... }  // read-only
void consume(std::vector<Data> items) { ... }          // sink: caller moves in
cpp
// ❌ std::move on const object (silently copies)
const std::string s = "hello";
take(std::move(s)); // still copies

// ✅ — don't const things you intend to move
std::string s = "hello";
take(std::move(s));
cpp
// ❌ Returning std::move from local (prevents NRVO)
std::vector<int> build() {
    std::vector<int> v;
    // ... fill ...
    return std::move(v); // pessimization

// ✅ — just return the local; compiler applies NRVO or implicit move
    return v;
}

4. Templates & Concepts {#templates}

cpp
// ❌ SFINAE soup
template<typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
T square(T x) { return x * x; }

// ✅ (C++20 concepts)
template<std::integral T>
T square(T x) { return x * x; }
cpp
// ❌ Template for one type
template<typename T>
void log(T msg) { std::cout << msg; }
// Only ever called with std::string

// ✅ — don't templatize unless you need multiple types
void log(std::string_view msg) { std::cout << msg; }

Concepts make template errors readable — prefer them over SFINAE and static_assert.


5. Error Handling {#errors}

cpp
// ❌ Error codes via int returns (C-style in C++)
int parse(const std::string& input, Data& out);

// ✅ — std::expected (C++23) or exceptions
std::expected<Data, ParseError> parse(const std::string& input);
// or throw for exceptional conditions
Data parse(const std::string& input); // throws ParseError
cpp
// ❌ Catching by value (slices derived exceptions)
try { ... }
catch (std::exception e) { ... }

// ✅
catch (const std::exception& e) { ... }
cpp
// ❌ Exception in destructor
~MyClass() {
    if (cleanup() < 0) throw CleanupError(); // terminates

// ✅ — destructors must be noexcept; log/swallow errors
~MyClass() noexcept {
    if (cleanup() < 0) log_error("cleanup failed");
}

6. Concurrency {#concurrency}

cpp
// ❌ Manual thread + join tracking
std::thread t(work);
// ... must remember t.join() ...

// ✅ (C++20)
std::jthread t(work); // auto-joins on destruction
cpp
// ❌ Lock/unlock manually
mtx.lock();
data.push_back(item);
mtx.unlock(); // missed on exception

// ✅
{
    std::scoped_lock lock(mtx);
    data.push_back(item);
}
cpp
// ❌ Polling a shared bool for completion
while (!done.load()) { std::this_thread::sleep_for(10ms); }

// ✅ — use std::future or condition_variable
auto future = std::async(std::launch::async, compute);
auto result = future.get();

Use std::scoped_lock over lock_guard — it handles multiple mutexes and avoids deadlock.


7. Anti-patterns specific to C++ {#antipatterns}

Anti-patternPreferred
Raw new/deletemake_unique / make_shared
(Type)expr C-style caststatic_cast<Type>(expr)
#define constantsconstexpr variables
NULLnullptr
using namespace std; in headersexplicit std:: prefix
Manual loop for transform/filterstd::ranges or <algorithm>
std::endl'\n' (endl flushes — slow)
char* for string parametersstd::string_view
Exception specification throw()noexcept
Inheriting from std:: containerscomposition, not inheritance
volatile for thread synchronizationstd::atomic
Header-only mega-templatesseparate declaration/definition where compile time matters

Limitations

  • These are language-specific guidelines and do not cover overall architectural decisions.
  • Over-compression might reduce readability; apply judgement.

© sickn33, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/super-code/cpp of sickn33/agentic-awesome-skills.

Open the folder on GitHubat commit 1e53ce2

Used in 1 other repository

We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Cpp 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.

Cpp compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cpp this skillsickn33/agentic-awesome-skills47k1 repos~1.6kAutomated safety check: PassMIT
Maa LoggingMaaEnd/MaaEnd4k—~807Automated safety check: PassAGPL-3.0
MeojsonMaaEnd/MaaEnd4k—~2.1kAutomated safety check: PassAGPL-3.0
Map Navigator GuideMaaEnd/MaaEnd4k—~1.7kAutomated safety check: PassAGPL-3.0
Fory Version Bumpapache/fory4.6k—~1.1kAutomated safety check: PassApache-2.0
Fory Performance Optimizationapache/fory4.6k—~2.2kAutomated safety check: PassApache-2.0

Similar skills

  • Maa Logging

    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…

    4k GitHub stars~807 tokensUpdated today
    MobileAuto-check passed
  • Meojson

    MaaEnd/MaaEnd

    Guide for using the meojson C++ JSON library in MaaEnd cpp-algo.

    4k GitHub stars~2.1k tokensUpdated today
    MobileAuto-check passed
  • Map Navigator Guide

    MaaEnd/MaaEnd

    MaaEnd 自动寻路、地图定位、角色移动与路径导航开发指南,覆盖 MapLocator、MapNavigator、NAVMESH 三角图寻路和路径录制工具。编写涉及坐标定位、位置判断、目标点移动、自动寻路、路线规划或导航执行的 Pipeline 节点,维护 agent/cpp-algo/source 下对应 C++ 实现,或了解 navmesh 与路径规划工作原理时使用。

    4k GitHub stars~1.7k tokensUpdated today
    MobileAuto-check passed
  • 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.

    4.6k GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Run profile-driven bottleneck optimization across Apache Fory implementations (Java, C++, Python/Cython, Go, Rust, Swift, C, JavaScript/TypeScript, Dart, Kotlin, Scala).

    4.6k GitHub stars~2.2k tokensUpdated today
    MobileAuto-check passed
  • Crossbind

    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…

    148 GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed

More from sickn33/agentic-awesome-skills

All 1,394 skills in this repo
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • User Thoughts Memory

    sickn33/agentic-awesome-skills

    Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Using LWC Memory and Graphs

    sickn33/agentic-awesome-skills

    Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.

    47k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Find Complementary Founders

    sickn33/agentic-awesome-skills

    Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.

    47k GitHub starsUsed in 1 repo~4.8k tokens
    Auto-check passed
  • Whatsapp Cloud API

    sickn33/agentic-awesome-skills

    Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~4.5k tokens
    Auto-check passed
  • Cline Pilot

    sickn33/agentic-awesome-skills

    Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.

    47k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed

Works with

Categories

Questions about Cpp

What does Cpp do?

Language-specific super-code guidelines for cpp. An agent skill from sickn33/agentic-awesome-skills. Cpp is an agent skill from sickn33/agentic-awesome-skills. Language-specific super-code guidelines for cpp.

When should I use Cpp?

Cpp fits situations like: mobile work in your project.

How do I install Cpp in Claude Code?

Run `npx skills add sickn33/agentic-awesome-skills --skill cpp -a claude-code`. Or copy the skill folder (skills/super-code/cpp in sickn33/agentic-awesome-skills) into .claude/skills/cpp in your project. Claude Code loads it when a task matches its description.

How do I install Cpp in Codex?

Run `npx skills add sickn33/agentic-awesome-skills --skill cpp -a codex`. Or copy the skill folder (skills/super-code/cpp in sickn33/agentic-awesome-skills) into .agents/skills/cpp in your project. Codex loads it when a task matches its description.

Can I use Cpp 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 sickn33/agentic-awesome-skills --skill cpp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cpp, .gemini/skills/cpp, .github/skills/cpp and .opencode/skills/cpp in your project.

What does Cpp need to run?

SKILL.md names no scripts, command-line tools or credentials: Cpp is instructions for the agent only.

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

Cpp is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cpp use?

About 1.6k tokens (SKILL.md is roughly 6.5k 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 Cpp?

Skills that share tags, products or a category with Cpp: Maa Logging (MaaEnd/MaaEnd, 4k stars), Meojson (MaaEnd/MaaEnd, 4k stars), Map Navigator Guide (MaaEnd/MaaEnd, 4k stars) and Fory Version Bump (apache/fory, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cpp?

sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,304 GitHub stars. The repository holds 1,394 skills in this directory. The repository was last updated on October 6, 2026.

Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.