# C++ 代理规则集 本规则集定义 AI/自动化代理在处理 C++ 代码时必须遵守的核心约束。 ## 范围与优先级 - 作为仓库级基线规则集使用;更靠近代码目录的规则更具体并可覆盖基线。 - 当代理规则与 docs 冲突:安全/合规优先,其次保持仓库一致性。 ## 代理工作原则(铁律) 1. 先理解目标与上下文,再动手改代码 2. 修改要小而清晰;避免无关重构 3. 发现安全问题(内存安全/鉴权漏洞)立即标注或修复 4. 不引入新依赖或工具,除非明确要求 ## C++ 核心约定(不可违反) - 语言标准:C++23;优先使用 Modules;避免裸指针、`new/delete`、C 风格字符串 - 代码风格:Google C++ Style Guide;使用项目 `.clang-format`;头文件保护用 `#pragma once` - 命名规范:文件 `lower_with_under.cpp/.h/.cppm`;类型 `CapWords`;函数/变量 `lower_with_under`;常量 `kCapWords`;成员 `lower_with_under_`;命名空间 `lower_with_under` - Modules 工程:模块名点分层 `lower_snake_case`;接口文件 `.cppm`;修改 `export module` 必须更新 CMake module file-set - 构建与依赖:Conan 需提供 `conan-release`/`conan-debug`;`conan install` + `cmake --preset ...`;Windows 通过 Linux + Clang 交叉编译验证 ## 安全红线(不可触碰) - 不得在代码/日志/注释中写入明文密钥、密码、Token、API Key - 避免内存不安全操作:悬垂指针、双重释放、越界访问 - 禁用不安全函数(`strcpy`, `sprintf`, `gets` 等) - 修改鉴权/权限逻辑必须说明动机与风险 ## 权威来源 - 代码风格:`docs/standards/playbook/docs/cpp/code_style.md` - 命名规范:`docs/standards/playbook/docs/cpp/naming.md` - 工具链:`docs/standards/playbook/docs/cpp/toolchain.md` - 依赖管理:`docs/standards/playbook/docs/cpp/dependencies_conan.md` - clangd 配置:`docs/standards/playbook/docs/cpp/clangd.md` ## Skills(按需加载) - `$commit-message` ## 与开发规范的关系 - 本仓库内:`docs/standards/playbook/docs/cpp/` 与 `docs/standards/playbook/docs/common/` - 目标项目 subtree:`docs/standards/playbook/docs/cpp/` 与 `docs/standards/playbook/docs/common/`