agentleFS
13eholder13eholder/Modern-Cpp-Skills/cpp-skill-creator/SKILL.md

cpp20-skill-creator

Skill14 starsChanged 9 months agoMITView on GitHub

Use when creating skills for C++20 standard library features, language constructs, remote third-party libraries, or local C++ projects. Keywords: create C++20 skill, create std skill C++, create concept skill, create local C++ skill, 创建 C++20 skill, 创建标准库技能, 创建 concept 技能, 本地库生成 skill, 动态 C++ skill, skill for ranges, skill for coroutines, skill for concepts, generate C++ skill from local path, C++20 技能, 从文档创建 skill, from docs create C++ skill

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use the /create-llms-for-skills command with appropriate flags:

    line 33
  2. Very specific:

    After llms.txt is generated, use:

    line 74
  3. Distinctive:

    Use generic skill creators for C++20-specific content

    line 165
  4. Very specific:

    Treat .cpp files as public interface in local mode — only headers are analyzed

    line 169
  5. Distinctive:

    Run network requests on local paths

    line 170
  6. Very specific:

    All generated skills are saved to: ~/.agent/skills/

    line 174
  7. Distinctive:

    For third-party libraries: Prefer official API docs (e.g., fmt.dev, boost.org)

    line 179

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

C++20 Skill Creator

Create dynamic skills for C++20 language features, standard library components, remote third-party libraries, and local C++ projects using official documentation or source headers.

When to Use

This skill handles requests to create skills for:

  • C++20 standard library components (<ranges>, <coroutine>, <format>, etc.)
  • C++20 language features (concepts, modules, consteval, requires, etc.)
  • Remote third-party C++ libraries with public documentation (e.g., fmt, range-v3, Boost)
  • Local third-party or internal C++ libraries (via filesystem path to headers or project root)
  • Any C++ documentation URL (primarily cppreference.com)

Workflow

1. Identify the Target

User RequestTarget TypeInput Pattern
"create ranges skill"C++20 std featurehttps://en.cppreference.com/w/cpp/ranges
"create skill for std::views::filter"Specific std componenthttps://en.cppreference.com/w/cpp/ranges/filter_view
"create skill for concept std::integral"C++20 concepthttps://en.cppreference.com/w/cpp/concepts/integral
"create skill from https://fmt.dev/latest/api.html"Remote third-party libUser-provided URL
"create skill from local library at ./libs/mynetwork"Local third-party libLocal filesystem path

2. Execute the Command

Use the /create-llms-for-skills command with appropriate flags:

For online documentation (cppreference or remote docs):

/create-llms-for-skills  [requirements]

For local libraries:

/create-llms-for-skills --local  [requirements]

✅ Supports multiple URLs (space-separated) for online mode.
❌ Local mode accepts only one path.

Examples:

# C++20 ranges
/create-llms-for-skills https://en.cppreference.com/w/cpp/ranges

# Concept
/create-llms-for-skills https://en.cppreference.com/w/cpp/concepts/same_as

# Remote library
/create-llms-for-skills https://fmt.dev/latest/api.html

# Local library (include directory)
/create-llms-for-skills --local /home/user/projects/crypto/include

# Local project root (auto-detect include/)
/create-llms-for-skills --local ./third_party/myalgo

# With focus requirement
/create-llms-for-skills --local ./libs/async_net "Focus on TCP client API and error handling"

🔍 For local paths, the system scans .h, .hpp, .hxx files and parses Doxygen-style comments (///, /** */) to infer public APIs, constraints, and usage notes. If a Doxyfile or docs/xml/ exists, it will be used for higher-fidelity extraction.

3. Follow-up with Skill Creation

After llms.txt is generated, use:

/create-skills-via-llms   [version]

Examples:

/create-skills-via-llms ranges ~/tmp/20260125-ranges-llms.txt c++20
/create-skills-via-llms fmt ~/tmp/20260125-fmt-llms.txt v10.2.0
/create-skills-via-llms mycrypto ~/tmp/20260125-mycrypto-llms.txt local

Use local as version for private/internal libraries unless a specific version is known.

URL & Path Construction Helper

TargetInput Template
Standard headerhttps://en.cppreference.com/w/cpp/header/{header}
Ranges algorithm/viewhttps://en.cppreference.com/w/cpp/ranges/{name}
Concepthttps://en.cppreference.com/w/cpp/concepts/{name}
Coroutine utilitieshttps://en.cppreference.com/w/cpp/coroutine/{type}
Language featurehttps://en.cppreference.com/w/cpp/language/{feature}
Local library/path/to/lib/ or /path/to/lib/include/

Note: cppreference uses flat naming (e.g., transform_view, not views::transform in URL).

Common C++20 Features & Paths

FeatureCategoryURL Path
std::ranges::sort, views::takeRanges/w/cpp/ranges/{name}
std::integral, std::same_asConcepts/w/cpp/concepts/{name}
std::coroutine_handleCoroutines/w/cpp/coroutine/coroutine_handle
std::formatFormatting/w/cpp/utility/format/format
consteval, requiresLanguage/w/cpp/language/consteval, /w/cpp/language/constraints
Modules (TS)Modules/w/cpp/language/modules (note: not fully standardized)

Example Interactions

Example 1: Create Ranges Skill

User: "Create a dynamic skill for C++20 ranges"

Assistant:
1. Identify: C++20 standard library feature "ranges"
2. Execute: /create-llms-for-skills https://en.cppreference.com/w/cpp/ranges
3. Wait for llms.txt generation
4. Execute: /create-skills-via-llms ranges ~/tmp/{timestamp}-ranges-llms.txt c++20

Example 2: Create Concept Skill

User: "Create a skill for std::regular and std::semiregular concepts"

Assistant:
1. Identify: C++20 concepts
2. Execute: /create-llms-for-skills https://en.cppreference.com/w/cpp/concepts/regular https://en.cppreference.com/w/cpp/concepts/semiregular
3. Wait for llms.txt
4. Execute: /create-skills-via-llms regular_concepts ~/tmp/{timestamp}-regular-llms.txt c++20

Example 3: Remote Third-Party Library

User: "Create skill from https://fmt.dev/latest/api.html"

Assistant:
1. Identify: Remote third-party library
2. Execute: /create-llms-for-skills https://fmt.dev/latest/api.html
3. Follow standard workflow → skill name: fmt

Example 4: Local Third-Party Library

User: "Create a skill from my local logging library at ./libs/logger"

Assistant:
1. Identify: Local third-party library
2. Execute: /create-llms-for-skills --local ./libs/logger
3. System scans ./libs/logger/include/logger.hpp, etc., extracts APIs and comments
4. Wait for llms.txt generation
5. Execute: /create-skills-via-llms logger ~/tmp/{timestamp}-logger-llms.txt local

DO NOT

  • Use generic skill creators for C++20-specific content
  • Skip the /create-llms-for-skills step
  • Assume URL structure — always verify against cppreference.com or official docs
  • Confuse C++17 and C++20 features (e.g., structured bindings are C++17; ranges are C++20)
  • Treat .cpp files as public interface in local mode — only headers are analyzed
  • Run network requests on local paths

Output Location

All generated skills are saved to: ~/.agent/skills/

Notes

  • Primary documentation source: cppreference.com
  • For third-party libraries: Prefer official API docs (e.g., fmt.dev, boost.org)
  • For local libraries: Quality depends on header clarity and Doxygen-style comments. Libraries with rich annotations yield better skills.
  • Skills should emphasize C++20 idioms:
    • Concepts over SFINAE
    • Lazy, composable ranges pipelines
    • Coroutine-based async patterns
    • Safe formatting with std::format
  • Local skill limitation: Cannot infer complex template constraints without explicit requires clauses or comments. Manual review recommended for critical systems.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.