tsl-devkit/.agents/cpp/index.md

48 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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/`