用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/LuisaGroup/LuisaCompute --skill cpp-style命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | cpp-style |
| description | C++ naming, formatting, static analysis, and RTTI rules for LuisaCompute. |
CamelCase (MyClass, RenderPipeline)snake_case (get_value, process_data)_snake_case (_private_var, _internal_helper())kCamelCase or UPPER_SNAKE_CASE for macrosCamelCaseluisa, luisa::compute, vstd, etc. Keep compact.Use the project C++ syntax checker:
python scripts/check_cpp_syntax.py <file>.cpp
It runs clangd with the project's compile_commands.json and .clang-tidy. Skip files not in compile_commands.json.
Format with the project .clang-format (bundled in this skill; the project root copy is authoritative).
Base: LLVM style. Key overrides:
ColumnLimit: 0).int *p, int &r).-4 (flush with class). Empty lines before/after left as-is.=, ctor-initializer :, inheritance :, range-for :. No space after C-style casts, !, template keyword, before braced lists. No space in empty parens or before trailing comments.ShortNamespaceLines: 0).$if, $elif, $else, $for, $while, $loop, $switch, $case, $default) get space before (. Function-like macros don't. Special lists:
ForEachMacros: LUISA_STRUCT, LUISA_BINDING_GROUP, LUISA_BINDING_GROUP_TEMPLATEIfMacros: $if, $elif, $else, $for, $while, $loop, $switch, $case, $defaultStatementMacros: LUISA_MAPRun .clang-tidy (bundled in this skill; the project root copy is authoritative).
All checks disabled (-*), then enabled by category:
See the bundled .clang-tidy for the exact check list.
RTTI is disabled for project code. Do not use:
dynamic_cast — use static_cast when type is knowntypeidstd::type_infoPrefer virtual dispatch or explicit type tags for type-safe downcasting. Third-party code under src/ext is exempt.
Prefer fixed-width integer types:
int32_t, uint32_t, int64_t, uint64_t, int16_t, uint16_t, int8_t, uint8_tsize_t is acceptable for sizes/indices per STL convention.std::byte for raw byte data.unsigned int, long long, unsigned long, short, and char for arithmetic. Some platform/system headers may define aliases such as uint; avoid introducing new uses in project code.After editing C++ files:
# Check syntax / tidy diagnostics
python scripts/check_cpp_syntax.py src/foo.cpp
# Check formatting (dry run; replace --dry-run with -i to apply)
clang-format --dry-run --Werror src/foo.cpp
# Run clang-tidy on a specific file
clang-tidy -p build src/foo.cpp
When changing build-affecting files, configure and build a relevant target:
xmake f -m debug -c
xmake build <target>
.clang-format — bundled copy of the project formatter config..clang-tidy — bundled copy of the project static-analysis config..clangd — project root configuration for clangd diagnostics (not bundled; see project root).