mcpp-contributing

A contribution guide for the mcpp open-source project, covering how to propose and submit code, documentation, or configuration changes.

In plain words
What is it for?
Use it when fixing bugs, adding features, improving documentation, or preparing any mcpp pull request.
Why use it?
It removes uncertainty about the project's required issue, branch, pull request, build, test, and CI steps.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/mcpp-community/mcpp/mcpp-contributing
Any agent
npx skills add mcpp-community/mcpp --skill mcpp-contributing
Clone the repo
git clone --depth 1 https://github.com/mcpp-community/mcpp

Made for: Claude Code, Codex.

Per session 53 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,728 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00053 $0.03728
Opus 5 $0.00026 $0.01864
Sonnet 5 $0.00011 $0.00746
Haiku 4.5 $0.00005 $0.00373

Measured yesterday against content hash e21f0674af16, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

mcpp-contributing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/mcpp-contributing/SKILL.md · 339 lines

How it starts

The opening of the file, as written. The whole thing — 339 lines — stays where its author put it; the contents beside it link to each section on GitHub.

mcpp 项目开发贡献规范

Overview

mcpp 项目的贡献流程:先创建 Issue → 切分支 → 实现改动 → 提交 PR → CI 通过 → Review 合入。

  • 仓库:https://github.com/mcpp-community/mcpp
  • 构建:mcpp build(C++23 模块自举)
  • 测试:mcpp test 覆盖 tests/**/*.cpptests/e2e/ 提供真实二进制的端到端脚本
  • CI:GitHub Actions,base 为 main 的 PR 触发分平台构建、测试与 E2E 检查

核心原则

禁止直接 push main

所有改动必须通过 PR 合入 main,无论改动大小。这包括:

  • 代码改动(feat / fix / refactor)
  • 文档改动(docs / skills / .agents/)
  • 配置改动(mcpp.toml / .xlings.json / CI workflow)
  • 版本号 bump(必须通过 PR,不能直接 push)

唯一例外:紧急 hotfix 需要 --admin 合入,但也必须先创建 PR。

违规示例(不允许):

# ✗ 直接 push 到 main
git commit -m "docs: add skill" && git push origin main

# ✗ 绕过分支保护
git push origin feature:main

正确做法:

# ✓ 始终走 PR 流程
git checkout -b docs/add-release-skill
git commit -m "docs: add release skill"
git push -u origin docs/add-release-skill
gh pr create --title "docs: add release skill" --body "..."
# 等 CI 通过后合入

贡献流程

1. 创建 Issue(必须)

所有贡献先创建 Issue,特别是新功能。避免重复工作,留下讨论记录。

Bug 修复

gh issue create \
  --title "fix: 简短描述" \
  --body "## 复现步骤
1. ...

## 期望行为
...

## 实际行为
...

## 环境
- mcpp 版本:\`mcpp --version\`
- OS:"

新功能

gh issue create \
  --title "feat: 简短描述" \
  --body "## 动机
...

## 设计思路
...

## 涉及模块
..."

代码优化

gh issue create \
  --title "refactor: 简短描述" \
  --body "## 当前问题
...

## 优化方案
..."

2. 创建分支

必须从最新 main 创建分支,禁止在 main 上直接开发。

git checkout main && git pull origin main
git checkout -b <type>/<short-description>
# type: feat / fix / refactor / test / docs / chore

分支命名规范:

  • feat/xxx — 新功能
  • fix/xxx — Bug 修复
  • refactor/xxx — 重构
  • test/xxx — 测试
  • docs/xxx — 文档
  • chore/xxx — 版本 bump、配置、依赖更新

3. 实现改动

开发要求

  • 遵循现有代码风格(查看相邻代码)
  • 模块导入用 import std;import mcpp.xxx;
  • 只改需要改的,不顺手重构不相关代码
  • 平台相关代码放在 src/platform/ 目录下

构建验证

# 用现有 bootstrap mcpp 自举构建
mcpp build
# 选择刚生成的 target/**/bin/mcpp(Windows 为 mcpp.exe),不要硬编码宿主 triple
<fresh-mcpp-binary> --version

测试

# C++ 单元/集成测试:由刚构建的二进制发现 tests/**/*.cpp
<fresh-mcpp-binary> test
# 端到端测试:显式把刚构建的二进制交给脚本
# 路径必须是刚构建产物的绝对路径;Windows 使用 mcpp.exe。
MCPP=<absolute-path-to-fresh-mcpp-or-mcpp.exe> bash tests/e2e/01_help_and_version.sh
MCPP=<absolute-path-to-fresh-mcpp-or-mcpp.exe> bash tests/e2e/<relevant-test>.sh
# 新功能按变更契约补充 focused unit/integration 和/或 E2E 覆盖

Read the full file on GitHub · 339 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 339 lines · 53 tokens per session scan A e21f0674af16

Subscribe to this mod's changes

mcpp-contributing is a skill published in the GitHub repository mcpp-community/mcpp (114 stars, last pushed 2d ago), licensed Apache-2.0. It adds 53 tokens to every session and 3,728 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

readable-cpp

Readable C/C++/Rust/CUDA code rules inspired by The Art of Readable Code. Use when writing, reviewing, or refactoring C, C++, Rust, or CUDA code. Enforces short functions, flat control flow, clear naming, readable structure, and idiomatic patterns.

crazyguitar/cppcheatsheet · 63 tokens

cpp

Comprehensive C/C++ programming reference covering everything from C11-C23 and C++11-C++23, system programming, CUDA GPU computing, debugging tools, Rust interop, and advanced topics. Use for: C/C++ questions, C/C++ interview preparation, modern language features, RAII/memory management, templates/generics, CUDA…

crazyguitar/cppcheatsheet · 107 tokens

mcpp-style-ref

为 mcpp 项目应用 Modern/Module C++ (C++23) 编码风格。适用于编写或审查带模块的 C++ 代码、命名标识符、组织 .cppm/.cpp 文件,或用户提及 mcpp、module C++、现代 C++ 风格时。.

Sunrisepeak/mbun · 73 tokens

mbun-runtime-debugging

调试 mbun 运行时测试失败/崩溃时用。提供仓库实测可用的定位配方——选二进制、单文件跑测、gdb 抓 backtrace、按 API 定位源码、常见坑排查清单、何时跳过。凡处理 bun 测试跑不过/段错误/hang/断言失败,先读本 skill 再动手,避免每个 task 重复摸索拖慢。.

Sunrisepeak/mbun · 109 tokens

dev-process

在本仓开发任何改动前用。规定 issue 先行的开发流程,按 bugfix / 优化 / 新功能分流;新功能须经 issue 充分讨论并在 .agents/docs 落地设计方案;衔接 tdd-workflow 与本体验证 / 测试 / CI / PR 规范。开发前先读本 skill。.

Sunrisepeak/mbun · 82 tokens

issue-reporting

向本仓提交 issue / 发起讨论时用。规定一份好问题反馈的 SOP——软件/版本、报错信息、初步分析、相关资料,并去除本地隐私(用户名/token 等替换)。凡要创建 issue、反馈 bug、发起讨论,先读本 skill 再动手。.

Sunrisepeak/mbun · 75 tokens