Skills · Claude Code · Agent Skills

Existing C++ without raw new/delete or UB — no negotiation.

A defensive floor for maintaining existing C++ code: RAII, sanitizers in CI, clang-tidy and lifetimes under control. New components are born in Rust or Zig; C++ only enters through an exception ADR.

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

Maintained by Lucas Andrade

schematize-cpp · v0.4.0bash
$ schematize install cpp
GitHub →download skill (.zip)/cpp-help · github.com/schematizeme/schematize-cli

Non-negotiable floors

Never switched off "to go faster". Full list in the skill.

New components are born in Rust or Zig

C++ enters only through an exception ADR, never by fit.

RAII is the mechanism

Raw new/delete is banned in new code; unique_ptr by default and shared_ptr only for truly shared ownership.

Rule of zero or five

Writing only the destructor is the classic road to a double-free on implicit copy.

Lifetimes under control

A string_view, span or reference that outlives its owner is UB; a [&] lambda in async code is the same bug.

Sanitized suite and strict build

ASan, UBSan and TSan in CI with -fno-sanitize-recover=all, plus -Werror, -Wconversion, -Wold-style-cast and _GLIBCXX_ASSERTIONS.

Exceptions, locks and threads

Catch by const reference, never an empty catch (...); destructors do not throw; lock_guard instead of manual lock; std::jthread instead of a loose thread.

Commands

Installed in .claude/commands/. Run /cpp-help anytime.

/cpp-ccContext compact: writes the handoff (context + checklist) to the archive and runs /compact.
/cpp-claudeCreates or merges the always-on schematize-cpp CLAUDE.md at the repo root, without overwriting other skills' blocks.
/cpp-handoffWrites the context handoff to the archive without compacting: session end or task switch.
/cpp-helpLists every command.
/cpp-loadForce-loads the whole schematize-cpp normative body and applies it for the session.
/cpp-reviewReviews .cpp/.hpp and the build against the floor: runs the gate (code + build) and reads what the machine cannot (RAII, lifetimes, UB, scope).

For AI agents

Install with no human in the loop. Metadata in llms.txt.

  • Run: git clone https://github.com/schematizeme/skill-cpp.git && ./skill-cpp/install.sh
  • Or download https://github.com/schematizeme/skill-cpp/releases/latest/download/skill-cpp.zip and unzip into .claude/skills/.
  • Copy assets/CLAUDE.md to the repo root (always-on rule).
  • Confirm with /cpp-help.

Don't want to install?

Read the full standards and copy them straight into your project — or install the skill so the agent enforces it for you.