epi13/machine-native-complexity-standard

GitHub: epi13/machine-native-complexity-standard

MNCS 是一个实验性的开放标准及配套离线校验器,旨在为机器生成代码的可审计复杂度提供基于证据的分级合规验证机制。

Stars: 0 | Forks: 0

# 机器原生复杂度标准 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/epi13/machine-native-complexity-standard/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Standard](https://img.shields.io/badge/MNCS-0.1-experimental-orange.svg)](spec/MNCS-v0.1.md) [![Schema](https://img.shields.io/badge/schema-0.1.1-blue.svg)](schemas/mncs-manifest.schema.json) 机器原生复杂度标准(MNCS)是一个开放、实验性、社区开发且工具中立的工程标准,旨在接受生成或机器优化后的实现,即使它们可能超出了普通人类可维护性的极限。 人类保留可读的规范、契约、限制、参考行为、验证策略、出处、重构说明和验收证据。仅当机器拥有的内部执行复杂度能够在可审计的正确性、安全性、资源、出处和重构范围内换取到已声明且可衡量的收益时,才允许这种复杂度。复杂度本身绝不是收益。 MNCS 不是获得认可的 ISO、ANSI、IEEE、IETF 或类似标准。版本 0.1 旨在用于实验和公开审查,而非作为 blanket assurance claim(全面保证声明)。Validator 和 schema 的 0.1.1 版本强化了证据机制,而规范标准族仍保持为 MNCS 0.1。 ## 0.1.1 中由证据推导出的验收 新的 manifest 会声明所需的 gate、阈值、UNKNOWN 处理方式、回归策略和合规级别。它们不会自行编撰权威的观测到的 PASS 值。Evaluator 会写入内容寻址的 gate、invariant、性能和出处记录;evidence index 会为每条记录分配一个稳定的 ID。Validator 会将这些记录绑定到契约、候选对象、参考、evaluator、toolchain 和环境,然后再推导出每个 gate 和最终状态。 `FAIL` 优先于 `UNKNOWN`,而 `UNKNOWN` 优先于 `PASS`。缺失必需的证据绝不会通过。声明的最终状态必须与计算得出的状态一致。 ## 安装 ``` python -m venv .venv . .venv/bin/activate python -m pip install . mncs version ``` 用于开发: ``` python -m pip install -e '.[dev]' make check ``` ## 五分钟示例 ``` mncs validate-bundle examples/minimal mncs certify-bundle examples/minimal mncs summarize examples/minimal/manifest.json mncs hash examples/minimal/machine/generated.py mncs compare examples/minimal/manifest.json \ examples/rejected-candidate/manifest.json ``` 使用 `mncs init my-component` 启动一个 bundle。生成的模板是故意不完整的:在提出声明之前,请将其替换为真实的证据和哈希值。验证是离线的,绝不会启动、导入或执行 evidence binary。 ## 累积合规级别 | 级别 | 增加内容 | |---|---| | MNCS-L1 | 行为合规性、可读的契约/参考、边缘情况、严格的工具 | | MNCS-L2 | 运行时和内存安全、格式错误的输入、fuzz/property 测试、资源限制 | | MNCS-L3 | 工具中立的结构不变量,带有显式的 PASS/FAIL/UNKNOWN | | MNCS-L4 | 有效的重复测量和预先声明的有用收益阈值 | | MNCS-L5 | 锁定的重构、不可变的证据、holdout reevaluation、回滚、审计 | `UNKNOWN` 绝不会被静默计为 `PASS`。级别是累积的;声明 L4 意味着满足 L1 到 L4。 ## CLI ``` mncs init PATH mncs validate MANIFEST mncs validate-bundle DIRECTORY mncs certify MANIFEST mncs certify-bundle DIRECTORY mncs summarize MANIFEST mncs compare MANIFEST_A MANIFEST_B mncs hash PATH mncs schema NAME mncs version ``` 命令支持 `--json`。一个结构上有效的 bundle 可以如实声明候选对象 `FAIL`;验证成功意味着其证据在内部是一致的,而不是指候选对象通过了验证。 当非 PASS 的结果必须返回退出码 3 时,请在任一验证命令中使用 `--require-pass`。退出码 1 表示无效的证据,退出码 2 表示操作错误,退出码 3 表示证据有效但在请求的策略下不可认证。 锁定的 schema 0.1 资源仍受支持。遗留报告会设置 `legacy_self_asserted_acceptance: true`;除非明确使用 `--allow-legacy`,否则认证将拒绝它们,并且这种覆盖操作的保证级别仍然是降低的。 ## 结构化工具 MNCS 对证据语义进行了标准化,而不是产品名称。Compiler CFG 分析、LLVM pass、abstract interpretation、model checking、symbolic execution、proof assistant、自定义分析器、runtime instrumentation、特定语言的验证以及独立的组合都是可能的 provider。Joern 是一个可选的 provider,不是规范性依赖项。 ## 仓库地图 - [`spec/`](spec/MNCS-v0.1.md) — 规范性 MNCS 0.1 文本 - [`schemas/`](schemas/mncs-manifest.schema.json) — 机器可读的契约 - [`src/mncs_validator/`](src/mncs_validator/validation.py) — 离线 validator - [`examples/`](examples/minimal/README.md) — 已接受、已拒绝和修复的 bundle - [`docs/`](docs/index.md) — 文档站点 - [`rfcs/`](rfcs/README.md) — 变更流程 - [`conformance-corpus/`](conformance-corpus/expected.json) — 确定性 validator 语料库 - [`research/`](research/graphflow-machine-native-study.md) — 初步动机 ## 参与 请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)、[治理模型](GOVERNANCE.md)和[RFC 流程](rfcs/README.md)。标准变更需要公开审查、证据和寻求共识;没有任何供应商能获得永久的席位或否决权。 ## 许可与引用 代码、schema 和文档均在 [Apache License 2.0](LICENSE) 下授权。请使用 [`CITATION.cff`](CITATION.cff) 引用确切的 MNCS 版本;合规性声明也应标识其 manifest 哈希。 Validator 的 PASS 仅限于声明的契约和环境。MNCS 0.1 是实验性的,不构成经认可的认证。
标签:代码可维护性, 审计, 提示词模板, 数据管道, 文档结构分析, 标准规范, 离线验证器, 软件工程, 逆向工具