Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 3.51 KB

File metadata and controls

46 lines (32 loc) · 3.51 KB

mcpp 规范文档(SPEC)

本目录存放 mcpp 的规范性文档 —— 定义机制的语义与约束,而不是使用教程。

与其他文档的分工

目录 性质 读者
docs/*.md 使用文档:怎么用、有哪些字段 使用者
docs/specs/*.md 规范文档:语义、约束、匹配机制、实现状态 索引作者、贡献者、下游工具作者
.agents/docs/*.md 设计文档:某次改动的调研、取舍、实施计划 参与该次改动的人

规范文档同时描述目标规范与当前实现,每条规则都标注实现状态,因此可以直接用来判断「现在能不能这么写」。

规范用语

按 RFC 2119:必须 / 禁止(强制)、应当(强烈建议)、可以(可选)。

实现状态标记

标记 含义
已实现 当前实现与规范一致
部分实现 已有实现,但语义或覆盖面有差异(差异已注明)
未实现 规范要求但尚未支持;当前行为已注明

标注 的条款尚未生效。在其落地前,请按各文档中「当前应当怎么写」一节书写。

索引

编号 标题 状态 最后修改 对应实现
SPEC-001 包身份(package.namespace / package.name)、[dependencies] 选择器与匹配机制 评审中 v1.1 2026-08-03 mcpp >= 0.0.106
SPEC-002 目标侧模型与能力声明(mcpp: 保留命名空间、五层、三条规则) 评审中 v1.0 2026-08-24 mcpp >= 2026.8.24.2
SPEC-003 退出码契约(分类、语义、稳定性承诺) 评审中 v1.0 2026-09-01 mcpp >= 2026.9.1.1
SPEC-004 mcpp.toml 的平面划分、条件化形状、解析轴与命名规约 草案 v1.10 2026-09-28 条件化形状 mcpp >= 2026.8.29.1;目标轴 mcpp >= 2026.9.6.4;linkage 默认值 mcpp >= 2026.9.15.2;链接 flag 的词读法 mcpp >= 2026.9.26.2;条件化的 dialect_cxxflags 与 -p 的包身份 mcpp >= 2026.9.28.1;条件表按具体程度生效 mcpp >= 2026.9.28.2
SPEC-005 构建数据库:mcpp emit build-database 的内容、取值规则与不写工程目录的保证 评审中 v1.6 2026-09-29 mcpp >= 2026.9.15.1;v1.3 条款 mcpp >= 2026.9.26.2;v1.4 条款 mcpp >= 2026.9.27.1;v1.5 条款 mcpp >= 2026.9.28.1;v1.6 条款 mcpp >= 2026.9.29.5
SPEC-006 工具链管理:身份、来源、选择与载荷契约 草案 v0.4 2026-09-28 逐条标注;已实现条款 mcpp >= 2026.9.24.1;§3.7 mcpp >= 2026.9.28.1;§3.7.1 mcpp >= 2026.9.28.2
SPEC-007 构建插件:配置、施工与校验的分工,运行时与规划期的义务 草案 v0.6 2026-09-28 逐条标注;mcpp >= 2026.9.26.2;v0.3 条款 mcpp >= 2026.9.27.1;v0.4 条款 mcpp >= 2026.9.28.1;v0.5 条款 mcpp >= 2026.9.28.2;v0.6(§9)mcpp >= 2026.9.28.3
SPEC-008 库的接口:公开模块、发布闭包与两种形态的一致 草案 v0.1 2026-09-28 第一阶段(只警告)mcpp >= 2026.9.28.3

文档约定

每份规范必须在开头提供元数据表:规范编号、标题、状态(草案 / 评审中 / 已接受)、版本、最后修改日期、对应实现版本、相关设计文档与 issue;并必须在结尾提供变更记录。

状态流转:草案(Draft) → 评审中(Review) → 已接受(Accepted);被后续规范取代时标 已废弃(Superseded by SPEC-NNN)。