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
In this repository14 other files it gives its agents.
- m01-ownershipSkill
- m02-resourceSkill
- m03-mutabilitySkill
- m04-zero-costSkill
- m05-type-drivenSkill
- m06-error-handlingSkill
- m07-concurrencySkill
- m09-domainSkill
- m10-performanceSkill
- m11-ecosystemSkill
- m12-lifecycleSkill
- m13-domain-errorSkill
- m14-mental-modelSkill
- m15-anti-patternSkill
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
- Very specific: line 33
Use the /create-llms-for-skills command with appropriate flags:
- Very specific: line 74
After llms.txt is generated, use:
- Distinctive: line 165
Use generic skill creators for C++20-specific content
- Very specific: line 169
Treat .cpp files as public interface in local mode — only headers are analyzed
- Distinctive: line 170
Run network requests on local paths
- Very specific: line 174
All generated skills are saved to: ~/.agent/skills/
- Distinctive: line 179
For third-party libraries: Prefer official API docs (e.g., fmt.dev, boost.org)
≈ “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.
Files
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 Request | Target Type | Input Pattern |
| "create ranges skill" | C++20 std feature | https://en.cppreference.com/w/cpp/ranges |
| "create skill for std::views::filter" | Specific std component | https://en.cppreference.com/w/cpp/ranges/filter_view |
| "create skill for concept std::integral" | C++20 concept | https://en.cppreference.com/w/cpp/concepts/integral |
| "create skill from https://fmt.dev/latest/api.html" | Remote third-party lib | User-provided URL |
| "create skill from local library at ./libs/mynetwork" | Local third-party lib | Local 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,.hxxfiles and parses Doxygen-style comments (///,/** */) to infer public APIs, constraints, and usage notes. If aDoxyfileordocs/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 localUse
localas version for private/internal libraries unless a specific version is known.
URL & Path Construction Helper
| Target | Input Template |
| Standard header | https://en.cppreference.com/w/cpp/header/{header} |
| Ranges algorithm/view | https://en.cppreference.com/w/cpp/ranges/{name} |
| Concept | https://en.cppreference.com/w/cpp/concepts/{name} |
| Coroutine utilities | https://en.cppreference.com/w/cpp/coroutine/{type} |
| Language feature | https://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, notviews::transformin URL).
Common C++20 Features & Paths
| Feature | Category | URL Path |
std::ranges::sort, views::take | Ranges | /w/cpp/ranges/{name} |
std::integral, std::same_as | Concepts | /w/cpp/concepts/{name} |
std::coroutine_handle | Coroutines | /w/cpp/coroutine/coroutine_handle |
std::format | Formatting | /w/cpp/utility/format/format |
consteval, requires | Language | /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++20Example 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++20Example 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: fmtExample 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 localDO NOT
- Use generic skill creators for C++20-specific content
- Skip the
/create-llms-for-skillsstep - 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
.cppfiles 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
requiresclauses or comments. Manual review recommended for critical systems.
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
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.

