Skills · Claude Code · Agent Skills

现有 C++ 不再有裸 new/delete 与未定义行为,没有商量余地。

用于维护现有 C++ 代码的防御性底线:RAII、CI 中运行 sanitizer、clang-tidy 以及可控的对象生命周期。新组件用 Rust 或 Zig 编写,C++ 只能通过例外 ADR 引入。

v0.4.0Disciplina · C++ defensivogithub.com/schematizeme/skill-cpp

维护者 Lucas Andrade

schematize-cpp · v0.4.0bash
$ schematize install cpp
GitHub →下载技能 (.zip)/cpp-help · github.com/schematizeme/schematize-cli

不可妥协的底线

绝不为了“更快”而关闭。完整清单见该技能本身。

新组件用 Rust 或 Zig

C++ 只能通过例外 ADR 引入,不能凭适配度选择。

RAII 是基本机制

新代码禁止裸 new/delete;默认使用 unique_ptr,只有所有权确实共享时才用 shared_ptr。

零法则或五法则

只写析构函数,是隐式拷贝时出现 double-free 的经典路径。

生命周期可控

比所有者活得更久的 string_view、span 或引用属于未定义行为;异步代码中的 [&] lambda 是同样的错误。

带 sanitizer 的测试与严格构建

CI 中运行 ASan、UBSan、TSan 并加 -fno-sanitize-recover=all,同时启用 -Werror、-Wconversion、-Wold-style-cast 与 _GLIBCXX_ASSERTIONS。

异常、锁与线程

按 const 引用捕获,禁止空的 catch (...);析构函数不抛异常;用 lock_guard 代替手动加锁;用 std::jthread 代替游离线程。

命令

安装在 .claude/commands/。随时运行 /cpp-help。

/cpp-cc上下文压缩:将交接文档(上下文+清单)写入 archive,并运行 /compact。
/cpp-claude在仓库根目录创建或合并 schematize-cpp 的常驻 CLAUDE.md,不覆盖其他技能的区块。
/cpp-handoff不压缩,将上下文交接文档写入 archive:用于会话结束或切换任务。
/cpp-help列出该技能的所有命令。
/cpp-load强制加载 schematize-cpp 的全部规范内容,并在本次会话中应用。
/cpp-review对照底线审查 .cpp/.hpp 与构建:运行 gate(代码+构建),并阅读机器读不出的部分(RAII、生命周期、未定义行为、适用范围)。

面向 AI 代理

无需人工介入即可安装。元数据见 llms.txt。

  • 运行:git clone https://github.com/schematizeme/skill-cpp.git && ./skill-cpp/install.sh
  • 或下载 https://github.com/schematizeme/skill-cpp/releases/latest/download/skill-cpp.zip 并解压到 .claude/skills/。
  • 将 assets/CLAUDE.md 复制到仓库根目录(常驻规则)。
  • 用 /cpp-help 确认。

不想安装?

阅读完整规范并直接复制到你的项目——或安装该技能,让智能体自动执行。