From 305f3f5830b7efdf74e1b10bc4dc1daa701f85e0 Mon Sep 17 00:00:00 2001 From: Skyler Date: Sat, 31 Oct 2026 22:03:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=209=20=E4=B8=AA=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E3=80=8134=20=E4=B8=AA=E9=9D=A2=E5=90=91=20AI=20agent?= =?UTF-8?q?=20=E7=9A=84=E4=BB=BB=E5=8A=A1=E6=8A=80=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E5=91=BD=E4=BB=A4=E3=80=81=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=92=8C=E5=85=AC=E5=BC=80=E7=A8=8B=E5=BA=8F=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E3=80=82=20=E6=8F=90=E4=BE=9B=E8=8B=B1=E6=96=87=E6=8A=80?= =?UTF-8?q?=E8=83=BD=E6=AD=A3=E6=96=87=E3=80=81=E5=8F=8C=E8=AF=AD=20README?= =?UTF-8?q?=E3=80=81=E6=8E=A5=E5=8F=A3=E7=B4=A2=E5=BC=95=E5=8F=8A=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E9=AA=8C=E8=AF=81=E5=B7=A5=E5=85=B7=E3=80=82=20?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=85=AC=E5=BC=80=E6=8E=A5=E5=8F=A3=E5=8F=98?= =?UTF-8?q?=E5=8C=96=E6=97=B6=E5=90=8C=E6=AD=A5=E7=BB=B4=E6=8A=A4=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8A=80=E8=83=BD=E7=9A=84=E8=B4=A1=E7=8C=AE=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/mcpp-api-skills/README.md | 37 + .../skills/mcpp-api-skills/README.zh-CN.md | 36 + .agents/skills/mcpp-api-skills/catalog.json | 12642 ++++++++++++++++ .../maintenance/verification.md | 53 + .../mcpp-api-skills/skills/INTERFACES.md | 698 + .../skills/mcpp-api-skills/skills/README.md | 19 + .../mcpp-api-skills/skills/README.zh-CN.md | 19 + .../mcpp-api-skills/skills/basics/README.md | 11 + .../skills/basics/README.zh-CN.md | 11 + .../skills/basics/mcpp-basics/SKILL.md | 62 + .../skills/basics/mcpp-commands/SKILL.md | 58 + .../mcpp-commands/references/interfaces.md | 26 + .../mcpp-projects-and-templates/SKILL.md | 46 + .../references/interfaces.md | 16 + .../mcpp-api-skills/skills/devices/README.md | 11 + .../skills/devices/README.zh-CN.md | 11 + .../skills/devices/mcpp-devices/SKILL.md | 57 + .../skills/devices/mcpp-freestanding/SKILL.md | 52 + .../mcpp-heterogeneous-builds/SKILL.md | 51 + .../skills/extensions/README.md | 15 + .../skills/extensions/README.zh-CN.md | 15 + .../extensions/mcpp-build-actions/SKILL.md | 69 + .../references/action-contract.md | 68 + .../references/interfaces.md | 16 + .../skills/extensions/mcpp-build-api/SKILL.md | 61 + .../mcpp-build-api/references/interfaces.md | 171 + .../extensions/mcpp-build-programs/SKILL.md | 58 + .../mcpp-payloads-and-adapters/SKILL.md | 55 + .../mcpp-platform-packages/SKILL.md | 62 + .../references/interfaces.md | 64 + .../extensions/mcpp-rule-packages/SKILL.md | 54 + .../mcpp-toolchain-providers/SKILL.md | 63 + .../skills/integration/README.md | 10 + .../skills/integration/README.zh-CN.md | 10 + .../integration/mcpp-build-database/SKILL.md | 52 + .../references/interfaces.md | 40 + .../mcpp-machine-interface/SKILL.md | 91 + .../references/control-records.md | 118 + .../references/interfaces.md | 26 + .../skills/operations/README.md | 11 + .../skills/operations/README.zh-CN.md | 11 + .../skills/operations/mcpp-cache/SKILL.md | 53 + .../mcpp-cache/references/interfaces.md | 37 + .../operations/mcpp-environment/SKILL.md | 56 + .../mcpp-environment/references/interfaces.md | 50 + .../operations/mcpp-troubleshooting/SKILL.md | 61 + .../references/interfaces.md | 24 + .../skills/packaging/README.md | 10 + .../skills/packaging/README.zh-CN.md | 10 + .../skills/packaging/mcpp-packaging/SKILL.md | 60 + .../mcpp-packaging/references/interfaces.md | 59 + .../skills/packaging/mcpp-publishing/SKILL.md | 57 + .../mcpp-publishing/references/interfaces.md | 31 + .../skills/project-config/README.md | 14 + .../skills/project-config/README.zh-CN.md | 14 + .../mcpp-build-options/SKILL.md | 70 + .../references/interfaces.md | 45 + .../project-config/mcpp-cxx-modules/SKILL.md | 63 + .../mcpp-cxx-modules/references/interfaces.md | 67 + .../project-config/mcpp-features/SKILL.md | 70 + .../mcpp-features/references/interfaces.md | 26 + .../project-config/mcpp-manifest/SKILL.md | 71 + .../mcpp-manifest/references/interfaces.md | 36 + .../project-config/mcpp-targets/SKILL.md | 66 + .../mcpp-targets/references/interfaces.md | 42 + .../project-config/mcpp-workspaces/SKILL.md | 77 + .../mcpp-workspaces/references/interfaces.md | 25 + .../skills/toolchains/README.md | 12 + .../skills/toolchains/README.zh-CN.md | 12 + .../mcpp-cross-compilation/SKILL.md | 58 + .../references/interfaces.md | 31 + .../toolchains/mcpp-external-tools/SKILL.md | 57 + .../references/interfaces.md | 17 + .../skills/toolchains/mcpp-runtime/SKILL.md | 56 + .../mcpp-runtime/references/interfaces.md | 40 + .../toolchains/mcpp-toolchains/SKILL.md | 79 + .../mcpp-toolchains/references/interfaces.md | 35 + .../mcpp-api-skills/skills/workflow/README.md | 12 + .../skills/workflow/README.zh-CN.md | 12 + .../workflow/mcpp-build-and-run/SKILL.md | 73 + .../references/interfaces.md | 61 + .../workflow/mcpp-dependencies/SKILL.md | 62 + .../references/interfaces.md | 34 + .../skills/workflow/mcpp-indices/SKILL.md | 59 + .../mcpp-indices/references/interfaces.md | 35 + .../skills/workflow/mcpp-tests/SKILL.md | 102 + .../mcpp-tests/references/interfaces.md | 66 + .../tests/test_check_skills.py | 114 + .../mcpp-api-skills/tools/check_skills.py | 154 + .../skills/mcpp-api-skills/tools/inventory.py | 221 + .../mcpp-api-skills/tools/validate_runtime.py | 102 + .agents/skills/mcpp-contributing/SKILL.md | 18 + 92 files changed, 17772 insertions(+) create mode 100644 .agents/skills/mcpp-api-skills/README.md create mode 100644 .agents/skills/mcpp-api-skills/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/catalog.json create mode 100644 .agents/skills/mcpp-api-skills/maintenance/verification.md create mode 100644 .agents/skills/mcpp-api-skills/skills/INTERFACES.md create mode 100644 .agents/skills/mcpp-api-skills/skills/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/mcpp-basics/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/devices/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/devices/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/devices/mcpp-devices/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/devices/mcpp-freestanding/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/devices/mcpp-heterogeneous-builds/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/action-contract.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-programs/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-payloads-and-adapters/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-rule-packages/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/extensions/mcpp-toolchain-providers/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/control-records.md create mode 100644 .agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/packaging/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/packaging/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/README.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/README.zh-CN.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/SKILL.md create mode 100644 .agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/references/interfaces.md create mode 100644 .agents/skills/mcpp-api-skills/tests/test_check_skills.py create mode 100644 .agents/skills/mcpp-api-skills/tools/check_skills.py create mode 100644 .agents/skills/mcpp-api-skills/tools/inventory.py create mode 100644 .agents/skills/mcpp-api-skills/tools/validate_runtime.py diff --git a/.agents/skills/mcpp-api-skills/README.md b/.agents/skills/mcpp-api-skills/README.md new file mode 100644 index 000000000..2df75b3c1 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/README.md @@ -0,0 +1,37 @@ +# mcpp-api-skills + +**English** | [简体中文](README.zh-CN.md) + +Agent Skills for mcpp. These guides help coding assistants create projects, +write `mcpp.toml`, manage dependencies, extend builds and call mcpp from tools. + +Each skill focuses on one task, with the relevant syntax, examples and common +pitfalls. See [skills/](skills/README.md) for the full list, or use the +[interface lookup](skills/INTERFACES.md) to find a command, configuration key or API. + +## Getting started + +| Task | Skills | +| --- | --- | +| Create and run a project | [Getting started](skills/basics/README.md) | +| Configure targets, modules or a workspace | [Project configuration](skills/project-config/README.md) | +| Add code generation or a build rule | [Build extensions](skills/extensions/README.md) | +| Call mcpp from an agent, editor or CI | [Program interfaces](skills/integration/README.md) | + +## Use + +Point an agent at the relevant `SKILL.md`, or copy that skill's directory to +the location your agent uses for skills. Include its `references/` directory +when present. + +For example: + +```text +Read skills/project-config/mcpp-workspaces/SKILL.md and configure this +project as a workspace with a shared library and two applications. +``` + +## Further reading + +- [mcpp documentation](https://github.com/mcpp-community/mcpp/tree/main/docs) +- [Source baseline and verification](maintenance/verification.md) diff --git a/.agents/skills/mcpp-api-skills/README.zh-CN.md b/.agents/skills/mcpp-api-skills/README.zh-CN.md new file mode 100644 index 000000000..61cb439aa --- /dev/null +++ b/.agents/skills/mcpp-api-skills/README.zh-CN.md @@ -0,0 +1,36 @@ +# mcpp-api-skills + +[English](README.md) | **简体中文** + +面向 mcpp 的 Agent Skills,帮助 AI 编码助手创建工程、编写 `mcpp.toml`、 +管理依赖、扩展构建流程,以及从其他工具调用 mcpp。 + +每个 skill 聚焦一项任务,提供相关语法、示例和常见问题。 +完整列表见 [skills/](skills/README.zh-CN.md),也可以通过 +[接口索引](skills/INTERFACES.md) 查找命令、配置项或 API。 + +## 从这里开始 + +| 任务 | Skills | +| --- | --- | +| 创建并运行工程 | [入门](skills/basics/README.zh-CN.md) | +| 配置目标、模块或工作空间 | [工程配置](skills/project-config/README.zh-CN.md) | +| 添加代码生成或构建规则 | [构建扩展](skills/extensions/README.zh-CN.md) | +| 从 agent、编辑器或 CI 调用 mcpp | [程序接口](skills/integration/README.zh-CN.md) | + +## 使用 + +让 agent 读取相关的 `SKILL.md`,或将该 skill 的目录复制到 agent 使用的 +skills 位置;如果其中有 `references/`,一并保留。 + +例如: + +```text +Read skills/project-config/mcpp-workspaces/SKILL.md and configure this +project as a workspace with a shared library and two applications. +``` + +## 相关资料 + +- [mcpp 文档](https://github.com/mcpp-community/mcpp/tree/main/docs) +- [源码基线与验证记录](maintenance/verification.md) diff --git a/.agents/skills/mcpp-api-skills/catalog.json b/.agents/skills/mcpp-api-skills/catalog.json new file mode 100644 index 000000000..f71ca0ed4 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/catalog.json @@ -0,0 +1,12642 @@ +{ + "schema_version": 1, + "baseline": { + "version": "2026.10.31.3", + "commit": "ce4dd4b001161f6635bec2a901b18381d6c6548c", + "upstream": "https://github.com/mcpp-community/mcpp", + "remote_checked": "origin/main", + "date": "2026-10-31" + }, + "skills": [ + { + "category": "basics", + "name": "mcpp-basics", + "description": "Install mcpp and create, build, and run a first C++ module project. Use focused skills for advanced configuration or integration protocols.", + "chinese": "安装 mcpp,创建并运行首个模块项目", + "sources": [ + "src/cli/cmd_new.cppm", + "src/scaffold", + "src/cli.cppm" + ], + "docs": [ + "01-getting-started.md" + ], + "tests": [ + "tests/e2e/01_help_and_version.sh" + ], + "path": "skills/basics/mcpp-basics/SKILL.md" + }, + { + "category": "basics", + "name": "mcpp-projects-and-templates", + "description": "Create mcpp projects with new and package-provided templates, list template names, and validate generated files.", + "chinese": "创建工程、查找及实例化包模板", + "sources": [ + "src/cli/cmd_new.cppm", + "src/scaffold" + ], + "docs": [ + "01-getting-started.md", + "03-examples.md" + ], + "tests": [], + "path": "skills/basics/mcpp-projects-and-templates/SKILL.md" + }, + { + "category": "basics", + "name": "mcpp-commands", + "description": "Find public mcpp commands and option ownership, distinguish global flags, and forward arguments without confusing product names with target triples.", + "chinese": "查找命令、参数归属和参数透传方式", + "sources": [ + "src/cli.cppm", + "src/main.cpp" + ], + "docs": [ + "09-commands-by-scenario.md", + "50-machine-output.md" + ], + "tests": [], + "path": "skills/basics/mcpp-commands/SKILL.md" + }, + { + "category": "project-config", + "name": "mcpp-manifest", + "description": "Write and inspect mcpp.toml package identity, language standard, metadata, version floors, and configuration table ownership.", + "chinese": "编写 manifest 基础信息并定位配置项", + "sources": [ + "modules/manifest/src/toml.cppm", + "modules/manifest/src/types.cppm", + "modules/manifest/src/key_registry.cppm", + "src/build/prepare/manifest.cpp" + ], + "docs": [ + "04-mcpp-toml.md", + "specs/manifest-semantics.md" + ], + "tests": [ + "tests/unit/test_key_registry.cpp", + "tests/unit/test_manifest.cpp" + ], + "path": "skills/project-config/mcpp-manifest/SKILL.md" + }, + { + "category": "project-config", + "name": "mcpp-targets", + "description": "Configure mcpp product targets, library interfaces, executable entries, resources, exports, and platform-specific product properties.", + "chinese": "定义产品目标、入口、库接口、资源和导出", + "sources": [ + "modules/manifest/src/toml.cppm", + "modules/manifest/src/types.cppm", + "src/build/plan.cppm", + "src/pack/prebuilt.cppm" + ], + "docs": [ + "04-mcpp-toml.md", + "12-binary-distribution.md", + "specs/library-interface.md" + ], + "tests": [ + "tests/unit/test_manifest.cpp" + ], + "path": "skills/project-config/mcpp-targets/SKILL.md" + }, + { + "category": "project-config", + "name": "mcpp-cxx-modules", + "description": "Configure module source discovery, public exports, scan overrides, generated interfaces, and imports of wrapped C/C++ libraries in mcpp.", + "chinese": "配置模块源、公开接口、扫描和生成接口", + "sources": [ + "modules/manifest/src/toml.cppm", + "modules/source-kind/src/source_kind.cppm", + "src/modgraph/scanner.cppm", + "src/modgraph/validate.cppm" + ], + "docs": [ + "04-mcpp-toml.md", + "11-publishing-a-library.md", + "specs/library-interface.md" + ], + "tests": [ + "tests/unit/test_modgraph.cpp" + ], + "path": "skills/project-config/mcpp-cxx-modules/SKILL.md" + }, + { + "category": "project-config", + "name": "mcpp-build-options", + "description": "Set mcpp build and profile options with correct package, usage, and graph scope, including dialect flags and workspace merge behavior.", + "chinese": "设置构建选项、profile、作用域和合并规则", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm", + "src/build/flags.cppm", + "src/build/prepare/manifest.cpp" + ], + "docs": [ + "04-mcpp-toml.md", + "specs/manifest-semantics.md" + ], + "tests": [ + "tests/unit/test_key_registry.cpp" + ], + "path": "skills/project-config/mcpp-build-options/SKILL.md" + }, + { + "category": "project-config", + "name": "mcpp-features", + "description": "Define and activate mcpp features, optional dependencies, feature forwarding and capability gates without confusing union semantics with backend selection.", + "chinese": "定义和启用特性、可选依赖及能力门控", + "sources": [ + "modules/manifest/src/toml.cppm", + "src/build/prepare/features.cpp", + "src/pm/resolver.cppm" + ], + "docs": [ + "06-features-and-capabilities.md", + "05-dependencies.md" + ], + "tests": [ + "tests/unit/test_manifest.cpp" + ], + "path": "skills/project-config/mcpp-features/SKILL.md" + }, + { + "category": "project-config", + "name": "mcpp-workspaces", + "description": "Configure mcpp workspace members, virtual roots, shared package/build/dependency layers, and member selection without leaking root-only settings.", + "chinese": "配置工作空间成员、共享层和成员选择", + "sources": [ + "src/project.cppm", + "modules/manifest/src/key_registry.cppm", + "src/build/prepare/manifest.cpp", + "src/cli/cmd_build.cppm" + ], + "docs": [ + "07-workspace.md", + "specs/manifest-semantics.md" + ], + "tests": [ + "tests/unit/test_workspace_inheritance.cpp", + "tests/unit/test_workspace_plan.cpp" + ], + "path": "skills/project-config/mcpp-workspaces/SKILL.md" + }, + { + "category": "workflow", + "name": "mcpp-build-and-run", + "description": "Build and run mcpp products with profiles, package and target selection, cache modes, runner options and argument forwarding.", + "chinese": "构建并运行,选择 profile、成员、目标及 runner", + "sources": [ + "src/cli.cppm", + "src/cli/cmd_build.cppm", + "src/build/result.cppm" + ], + "docs": [ + "01-getting-started.md", + "52-driving-mcpp-from-a-program.md" + ], + "tests": [ + "tests/e2e/936_the_control_contract.sh" + ], + "path": "skills/workflow/mcpp-build-and-run/SKILL.md" + }, + { + "category": "workflow", + "name": "mcpp-tests", + "description": "Discover, select, build and run mcpp tests, configure test policy, export test launches or archives, and interpret failures and skipped capabilities.", + "chinese": "发现、构建和运行测试,处理超时、能力及 launch", + "sources": [ + "src/cli.cppm", + "src/cli/cmd_build.cppm", + "modules/manifest/src/toml.cppm" + ], + "docs": [ + "08-testing.md", + "50-machine-output.md" + ], + "tests": [ + "tests/e2e/993_a_test_describes_its_launch.sh" + ], + "path": "skills/workflow/mcpp-tests/SKILL.md" + }, + { + "category": "workflow", + "name": "mcpp-dependencies", + "description": "Manage mcpp source dependencies, exact selectors and version requirements, lockfiles, path/git sources, and runtime versus dev/build edges.", + "chinese": "管理依赖来源、版本、锁文件及不同依赖图", + "sources": [ + "src/pm/commands.cppm", + "src/pm/resolver.cppm", + "modules/manifest/src/dep_spec.cppm", + "modules/manifest/src/toml.cppm" + ], + "docs": [ + "05-dependencies.md", + "specs/package-identity.md" + ], + "tests": [], + "path": "skills/workflow/mcpp-dependencies/SKILL.md" + }, + { + "category": "workflow", + "name": "mcpp-indices", + "description": "Configure, inspect, update and pin mcpp package indices, distinguishing project registries from globally synchronized repositories.", + "chinese": "配置、检查、更新和固定包索引", + "sources": [ + "src/cli.cppm", + "src/cli/cmd_registry.cppm", + "modules/manifest/src/index_spec.cppm", + "src/pm/index_route.cppm" + ], + "docs": [ + "25-home-indices-and-store.md", + "05-dependencies.md" + ], + "tests": [], + "path": "skills/workflow/mcpp-indices/SKILL.md" + }, + { + "category": "toolchains", + "name": "mcpp-toolchains", + "description": "Inspect, install and choose mcpp toolchains with per-host and target overrides, local compiler paths, runtime constraints and provider diagnostics.", + "chinese": "安装和选择工具链,处理目标覆盖及本地编译器", + "sources": [ + "src/cli.cppm", + "src/toolchain/registry.cppm", + "src/toolchain/detect.cppm", + "src/build/plan.cppm", + "modules/manifest/src/toml.cppm" + ], + "docs": [ + "20-toolchains.md", + "specs/toolchain-management.md" + ], + "tests": [], + "path": "skills/toolchains/mcpp-toolchains/SKILL.md" + }, + { + "category": "toolchains", + "name": "mcpp-cross-compilation", + "description": "Build mcpp projects for another target triple or target set with correct host/target graphs, sysroot, conditional settings and execution expectations.", + "chinese": "交叉构建并区分宿主、目标、sysroot 和运行能力", + "sources": [ + "modules/toolchain-model/src/triple.cppm", + "modules/manifest/src/cfg_selector.cppm", + "src/build/prepare/host_graph.cpp", + "modules/manifest/src/platform_toml.cppm" + ], + "docs": [ + "21-the-target-triple.md", + "22-target-side.md", + "24-openkal-cross.md", + "specs/target-side.md" + ], + "tests": [], + "path": "skills/toolchains/mcpp-cross-compilation/SKILL.md" + }, + { + "category": "toolchains", + "name": "mcpp-runtime", + "description": "Configure C/C++ runtime and dependency linkage in mcpp, deploy dynamic libraries, and distinguish loader search paths from public link requirements.", + "chinese": "配置运行时、链接形态、动态库部署和搜索路径", + "sources": [ + "src/runtime", + "src/build/hostprogram.cppm", + "modules/manifest/src/toml.cppm", + "src/provider/runtime_selection.cppm" + ], + "docs": [ + "04-mcpp-toml.md", + "33-authoring-an-adapter.md", + "specs/target-side.md" + ], + "tests": [], + "path": "skills/toolchains/mcpp-runtime/SKILL.md" + }, + { + "category": "toolchains", + "name": "mcpp-external-tools", + "description": "Declare xlings tools and payloads for mcpp, apply local overrides, and resolve on-request tools without confusing installed payloads with host-built binaries.", + "chinese": "声明外部工具、覆盖和按需 provision", + "sources": [ + "src/build/hostprogram.cppm", + "src/provider/xlings", + "src/build/prepare/host_graph.cpp", + "modules/buildmcpp/src/provisions.cppm", + "modules/manifest/src/toml.cppm" + ], + "docs": [ + "23-the-project-environment.md", + "32-authoring-a-payload.md" + ], + "tests": [], + "path": "skills/toolchains/mcpp-external-tools/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-build-programs", + "description": "Write mcpp build.mcpp configuration programs using the bundled public module, declared rerun inputs, diagnostics and phase-specific contracts.", + "chinese": "编写构建程序并声明重跑、诊断和阶段限制", + "sources": [ + "src/build/hostprogram.cppm", + "src/build/build_program.cppm", + "modules/buildmcpp/src/program_protocol.cppm", + "modules/buildmcpp/src/directives.cppm" + ], + "docs": [ + "30-build-mcpp.md", + "specs/build-plugins.md" + ], + "tests": [ + "tests/unit/test_build_directives.cpp" + ], + "path": "skills/extensions/mcpp-build-programs/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-build-api", + "description": "Look up the actual bundled mcpp.core public C++ functions, action methods, diagnostics and build-program directive contracts; excludes internal engine modules.", + "chinese": "查询公共 C++ API 签名和构建指令契约", + "sources": [ + "src/build/hostprogram.cppm", + "src/build/engine_package.cppm", + "modules/buildmcpp/src/directives.cppm", + "modules/buildmcpp/src/program_protocol.cppm" + ], + "docs": [ + "30-build-mcpp.md", + "specs/build-plugins.md" + ], + "tests": [ + "tests/unit/test_build_directives.cpp", + "tests/unit/test_provisions.cpp" + ], + "path": "skills/extensions/mcpp-build-api/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-build-actions", + "description": "Declare incremental mcpp actions with explicit argv, files, tools, depfiles and generated module identities using the source/check/object/artifact/prepare roles.", + "chinese": "声明增量 action、工具输入、输出和 depfile", + "sources": [ + "src/build/hostprogram.cppm", + "modules/buildmcpp/src/directives.cppm", + "modules/manifest/src/types.cppm", + "src/build/build_program.cppm" + ], + "docs": [ + "30-build-mcpp.md", + "specs/build-plugins.md" + ], + "tests": [ + "tests/unit/test_build_directives.cpp" + ], + "path": "skills/extensions/mcpp-build-actions/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-rule-packages", + "description": "Author and consume reusable mcpp rule modules, feature-gated device extensions and host-built tools, including explicit build-time reexports.", + "chinese": "编写和消费规则包及宿主工具依赖", + "sources": [ + "modules/manifest/src/toml.cppm", + "src/build/prepare/host_graph.cpp", + "modules/buildmcpp/src/provisions.cppm", + "modules/source-kind/src/source_kind.cppm" + ], + "docs": [ + "31-authoring-a-rule-package.md", + "specs/build-plugins.md" + ], + "tests": [ + "tests/unit/test_provisions.cpp" + ], + "path": "skills/extensions/mcpp-rule-packages/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-toolchain-providers", + "description": "Configure local or program-provided mcpp toolchains using bootstrap/configure phases, tool roles and explicit origins rather than hard-coded compiler layouts.", + "chinese": "编写工具链配置与 bootstrap,声明工具角色", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm", + "src/provider", + "src/toolchain/detect.cppm", + "modules/manifest/src/toml.cppm" + ], + "docs": [ + "20-toolchains.md", + "30-build-mcpp.md", + "specs/toolchain-management.md", + "specs/build-plugins.md" + ], + "tests": [], + "path": "skills/extensions/mcpp-toolchain-providers/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-platform-packages", + "description": "Author and override mcpp platform packages with targets, ABI layers, tools, link contracts, runners, host settings and carriers.", + "chinese": "编写平台包并配置层、工具、链接、runner 和 carrier", + "sources": [ + "modules/manifest/src/platform_toml.cppm", + "modules/manifest/src/platform.cppm", + "src/provider", + "src/build/prepare/host_graph.cpp", + "src/build/hostprogram.cppm" + ], + "docs": [ + "35-platforms.md", + "specs/platforms.md", + "specs/target-sets.md" + ], + "tests": [], + "path": "skills/extensions/mcpp-platform-packages/SKILL.md" + }, + { + "category": "extensions", + "name": "mcpp-payloads-and-adapters", + "description": "Package prebuilt tools and libraries, runtime adapters, BSP contributions and custom distribution formats for mcpp consumers.", + "chinese": "编写 payload、运行时适配、BSP 和分发格式扩展", + "sources": [ + "src/pm", + "src/provider", + "src/build/hostprogram.cppm", + "modules/buildmcpp/src/directives.cppm", + "src/pack" + ], + "docs": [ + "32-authoring-a-payload.md", + "33-authoring-an-adapter.md", + "34-authoring-a-bsp.md", + "specs/build-plugins.md" + ], + "tests": [], + "path": "skills/extensions/mcpp-payloads-and-adapters/SKILL.md" + }, + { + "category": "packaging", + "name": "mcpp-packaging", + "description": "Package mcpp applications and libraries with explicit linkage, closure, format, target legs, compression, debug symbols and machine-readable artifact results.", + "chinese": "打包应用和库,选择格式、闭包、目标及调试符号", + "sources": [ + "src/cli.cppm", + "src/cli/cmd_publish.cppm", + "src/pack", + "modules/manifest/src/toml.cppm" + ], + "docs": [ + "10-pack-and-release.md", + "12-binary-distribution.md", + "specs/packaging.md" + ], + "tests": [ + "tests/e2e/723_pack_reports_what_it_produced.sh" + ], + "path": "skills/packaging/mcpp-packaging/SKILL.md" + }, + { + "category": "packaging", + "name": "mcpp-publishing", + "description": "Prepare mcpp library releases and index descriptors, inspect xpkg and SBOM output, and validate source/prebuilt consumer interfaces before publication.", + "chinese": "准备库发布、索引描述符、xpkg 和 SBOM", + "sources": [ + "src/cli/cmd_publish.cppm", + "src/cli/cmd_xpkg.cppm", + "src/cli/cmd_sbom.cppm", + "src/pack/prebuilt.cppm" + ], + "docs": [ + "11-publishing-a-library.md", + "12-binary-distribution.md", + "specs/package-identity.md", + "specs/library-interface.md" + ], + "tests": [], + "path": "skills/packaging/mcpp-publishing/SKILL.md" + }, + { + "category": "devices", + "name": "mcpp-devices", + "description": "Reach non-native artifacts through mcpp runners, named device actions, launch descriptions, exclusive access and declared runtime files.", + "chinese": "通过 runner 运行、调试或访问非本机产物", + "sources": [ + "src/run.cppm", + "src/run", + "src/build/hostprogram.cppm", + "modules/manifest/src/platform_toml.cppm" + ], + "docs": [ + "41-devices.md", + "specs/concurrency.md" + ], + "tests": [], + "path": "skills/devices/mcpp-devices/SKILL.md" + }, + { + "category": "devices", + "name": "mcpp-heterogeneous-builds", + "description": "Configure accelerator selections and rule-driven device languages in mcpp, preserving host/device ABI boundaries and honest backend validation.", + "chinese": "配置异构后端、设备语言和 host/device 边界", + "sources": [ + "modules/source-kind/src/source_kind.cppm", + "modules/manifest/src/toml.cppm", + "src/build/prepare/features.cpp", + "src/build/hostprogram.cppm" + ], + "docs": [ + "42-heterogeneous-builds.md", + "31-authoring-a-rule-package.md" + ], + "tests": [], + "path": "skills/devices/mcpp-heterogeneous-builds/SKILL.md" + }, + { + "category": "devices", + "name": "mcpp-freestanding", + "description": "Build bare-metal and freestanding mcpp targets using BSP-provided startup, ABI/runtime layers, link scripts and an actual execution runner.", + "chinese": "构建裸机工程并声明启动、运行时和链接契约", + "sources": [ + "modules/toolchain-model/src/triple.cppm", + "modules/manifest/src/toml.cppm", + "src/freestanding", + "src/build/hostprogram.cppm" + ], + "docs": [ + "40-baremetal.md", + "34-authoring-a-bsp.md", + "41-devices.md", + "specs/target-side.md" + ], + "tests": [], + "path": "skills/devices/mcpp-freestanding/SKILL.md" + }, + { + "category": "integration", + "name": "mcpp-machine-interface", + "description": "Drive mcpp from an agent or program with positive protocol detection, JSON/NDJSON, launch/result records, exit statuses, denied effects, locks and cancellation.", + "chinese": "使用机器协议、launch、结果记录、退出状态及副作用约束", + "sources": [ + "src/wire.cppm", + "src/effects.cppm", + "src/effects.cpp", + "src/build/result.cppm", + "src/build/dirlock.cppm", + "src/cli/cmd_self.cppm", + "src/cli.cppm" + ], + "docs": [ + "50-machine-output.md", + "52-driving-mcpp-from-a-program.md", + "specs/exit-codes.md", + "specs/concurrency.md" + ], + "tests": [ + "tests/e2e/936_the_control_contract.sh", + "tests/e2e/993_a_test_describes_its_launch.sh", + "tests/unit/test_wire.cpp" + ], + "path": "skills/integration/mcpp-machine-interface/SKILL.md" + }, + { + "category": "integration", + "name": "mcpp-build-database", + "description": "Export mcpp S1 build databases and compile commands for editors or tools, watch declared inputs and distinguish read-only export from configure-only project writes.", + "chinese": "导出构建数据库并处理 watch、fingerprint 和写入边界", + "sources": [ + "src/build/build_database.cppm", + "src/cli/cmd_build.cppm", + "src/build/prepare/host_graph.cpp" + ], + "docs": [ + "50-machine-output.md", + "specs/build-database.md" + ], + "tests": [ + "tests/e2e/688_emit_build_database.sh", + "tests/unit/test_build_database.cpp" + ], + "path": "skills/integration/mcpp-build-database/SKILL.md" + }, + { + "category": "operations", + "name": "mcpp-environment", + "description": "Inspect mcpp home selection, configuration and environment, separate user and system maintenance, and avoid changing unrelated global installations.", + "chinese": "检查 home、配置、环境及系统维护边界", + "sources": [ + "src/config.cppm", + "src/home.cppm", + "src/home", + "src/cli/cmd_self.cppm", + "src/effects.cppm" + ], + "docs": [ + "25-home-indices-and-store.md", + "23-the-project-environment.md", + "specs/home-initialization.md" + ], + "tests": [], + "path": "skills/operations/mcpp-environment/SKILL.md" + }, + { + "category": "operations", + "name": "mcpp-cache", + "description": "Inspect and clean mcpp project outputs and shared dependency/std/tool caches with explicit scope, stale previews, verification and size or age budgets.", + "chinese": "检查和清理工程输出及共享缓存", + "sources": [ + "src/cli/cmd_cache.cppm", + "src/bmi_cache.cppm", + "src/bmi_cache", + "src/cli.cppm" + ], + "docs": [ + "09-commands-by-scenario.md", + "25-home-indices-and-store.md" + ], + "tests": [], + "path": "skills/operations/mcpp-cache/SKILL.md" + }, + { + "category": "operations", + "name": "mcpp-troubleshooting", + "description": "Diagnose mcpp failures through resolved decisions, structured diagnostics, environment checks and targeted reproduction instead of speculative cache deletion.", + "chinese": "依据诊断、解析决策和最小复现排查问题", + "sources": [ + "src/doctor.cppm", + "src/cli/cmd_self.cppm", + "src/diag.cppm", + "src/build/result.cppm" + ], + "docs": [ + "09-commands-by-scenario.md", + "51-supported-versions.md", + "52-driving-mcpp-from-a-program.md" + ], + "tests": [], + "path": "skills/operations/mcpp-troubleshooting/SKILL.md" + } + ], + "interfaces": [ + { + "id": "api:action::action& arg(const char* a)", + "family": "api", + "key": "mcpp::action::arg", + "signature": "action& arg(const char* a)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& cwd(const char* dir)", + "family": "api", + "key": "mcpp::action::cwd", + "signature": "action& cwd(const char* dir)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& env(const char* name, const char* value)", + "family": "api", + "key": "mcpp::action::env", + "signature": "action& env(const char* name, const char* value)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& imports(const char* n)", + "family": "api", + "key": "mcpp::action::imports", + "signature": "action& imports(const char* n)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& input(const char* p)", + "family": "api", + "key": "mcpp::action::input", + "signature": "action& input(const char* p)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& output(const char* p)", + "family": "api", + "key": "mcpp::action::output", + "signature": "action& output(const char* p)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& output_dir(const char* p)", + "family": "api", + "key": "mcpp::action::output_dir", + "signature": "action& output_dir(const char* p)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& provides(const char* n)", + "family": "api", + "key": "mcpp::action::provides", + "signature": "action& provides(const char* n)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::action& target(const char* n)", + "family": "api", + "key": "mcpp::action::target", + "signature": "action& target(const char* n)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:action::void submit()", + "family": "api", + "key": "mcpp::action::submit", + "signature": "void submit()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "action public method", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:bool has_feature(const char* name)", + "family": "api", + "key": "mcpp::has_feature", + "signature": "bool has_feature(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:bool xpkg_pending()", + "family": "api", + "key": "mcpp::xpkg_pending", + "signature": "bool xpkg_pending()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:bool& xpkg_pending_flag_()", + "family": "api", + "key": "mcpp::xpkg_pending_flag_", + "signature": "bool& xpkg_pending_flag_()", + "source": "src/build/hostprogram.cppm", + "status": "internal", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "api:const char* abi_tool(const char* role)", + "family": "api", + "key": "mcpp::abi_tool", + "signature": "const char* abi_tool(const char* role)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* accel()", + "family": "api", + "key": "mcpp::accel", + "signature": "const char* accel()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* build_info_key_(const char* prefix, const char* role)", + "family": "api", + "key": "mcpp::build_info_key_", + "signature": "const char* build_info_key_(const char* prefix, const char* role)", + "source": "src/build/hostprogram.cppm", + "status": "internal", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "api:const char* compiler()", + "family": "api", + "key": "mcpp::compiler", + "signature": "const char* compiler()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* cxx_abi_root()", + "family": "api", + "key": "mcpp::cxx_abi_root", + "signature": "const char* cxx_abi_root()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* cxx_runtime()", + "family": "api", + "key": "mcpp::cxx_runtime", + "signature": "const char* cxx_runtime()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* cxx_stdlib()", + "family": "api", + "key": "mcpp::cxx_stdlib", + "signature": "const char* cxx_stdlib()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* dep_bin(const char* pkg, const char* tool)", + "family": "api", + "key": "mcpp::dep_bin", + "signature": "const char* dep_bin(const char* pkg, const char* tool)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* dep_dir(const char* name)", + "family": "api", + "key": "mcpp::dep_dir", + "signature": "const char* dep_dir(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* dep_linkage(const char* name)", + "family": "api", + "key": "mcpp::dep_linkage", + "signature": "const char* dep_linkage(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* device_sources()", + "family": "api", + "key": "mcpp::device_sources", + "signature": "const char* device_sources()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* env_or(const char* n)", + "family": "api", + "key": "mcpp::env_or", + "signature": "const char* env_or(const char* n)", + "source": "src/build/hostprogram.cppm", + "status": "internal", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "api:const char* graph_file()", + "family": "api", + "key": "mcpp::graph_file", + "signature": "const char* graph_file()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* host()", + "family": "api", + "key": "mcpp::host", + "signature": "const char* host()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* manifest_dir()", + "family": "api", + "key": "mcpp::manifest_dir", + "signature": "const char* manifest_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* min_platform_version()", + "family": "api", + "key": "mcpp::min_platform_version", + "signature": "const char* min_platform_version()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* msvc_crt_linkage()", + "family": "api", + "key": "mcpp::msvc_crt_linkage", + "signature": "const char* msvc_crt_linkage()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* msvc_instance_dir()", + "family": "api", + "key": "mcpp::msvc_instance_dir", + "signature": "const char* msvc_instance_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* ninja_program()", + "family": "api", + "key": "mcpp::ninja_program", + "signature": "const char* ninja_program()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* out_dir()", + "family": "api", + "key": "mcpp::out_dir", + "signature": "const char* out_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* pack_debug_symbols_dir()", + "family": "api", + "key": "mcpp::pack_debug_symbols_dir", + "signature": "const char* pack_debug_symbols_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* pack_format()", + "family": "api", + "key": "mcpp::pack_format", + "signature": "const char* pack_format()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* pack_stage_dir()", + "family": "api", + "key": "mcpp::pack_stage_dir", + "signature": "const char* pack_stage_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* pack_strip()", + "family": "api", + "key": "mcpp::pack_strip", + "signature": "const char* pack_strip()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_authors()", + "family": "api", + "key": "mcpp::package_authors", + "signature": "const char* package_authors()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_description()", + "family": "api", + "key": "mcpp::package_description", + "signature": "const char* package_description()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_license()", + "family": "api", + "key": "mcpp::package_license", + "signature": "const char* package_license()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_name()", + "family": "api", + "key": "mcpp::package_name", + "signature": "const char* package_name()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_namespace()", + "family": "api", + "key": "mcpp::package_namespace", + "signature": "const char* package_namespace()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_repo()", + "family": "api", + "key": "mcpp::package_repo", + "signature": "const char* package_repo()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* package_version()", + "family": "api", + "key": "mcpp::package_version", + "signature": "const char* package_version()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* phase()", + "family": "api", + "key": "mcpp::phase", + "signature": "const char* phase()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* pkg_config_libdir()", + "family": "api", + "key": "mcpp::pkg_config_libdir", + "signature": "const char* pkg_config_libdir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* profile()", + "family": "api", + "key": "mcpp::profile", + "signature": "const char* profile()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* sysroot_dir()", + "family": "api", + "key": "mcpp::sysroot_dir", + "signature": "const char* sysroot_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target()", + "family": "api", + "key": "mcpp::target", + "signature": "const char* target()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target_arch()", + "family": "api", + "key": "mcpp::target_arch", + "signature": "const char* target_arch()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target_builtins_lib()", + "family": "api", + "key": "mcpp::target_builtins_lib", + "signature": "const char* target_builtins_lib()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target_env()", + "family": "api", + "key": "mcpp::target_env", + "signature": "const char* target_env()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target_libc()", + "family": "api", + "key": "mcpp::target_libc", + "signature": "const char* target_libc()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target_libc_profile()", + "family": "api", + "key": "mcpp::target_libc_profile", + "signature": "const char* target_libc_profile()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* target_os()", + "family": "api", + "key": "mcpp::target_os", + "signature": "const char* target_os()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* tool(const char* role)", + "family": "api", + "key": "mcpp::tool", + "signature": "const char* tool(const char* role)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* tool_env()", + "family": "api", + "key": "mcpp::tool_env", + "signature": "const char* tool_env()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* toolchain_binutils_dir()", + "family": "api", + "key": "mcpp::toolchain_binutils_dir", + "signature": "const char* toolchain_binutils_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* toolchain_dir()", + "family": "api", + "key": "mcpp::toolchain_dir", + "signature": "const char* toolchain_dir()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* toolchain_sysroot()", + "family": "api", + "key": "mcpp::toolchain_sysroot", + "signature": "const char* toolchain_sysroot()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* toolset_identity()", + "family": "api", + "key": "mcpp::toolset_identity", + "signature": "const char* toolset_identity()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_dir(const char* name)", + "family": "api", + "key": "mcpp::xpkg_dir", + "signature": "const char* xpkg_dir(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_dir(const char* ns, const char* name)", + "family": "api", + "key": "mcpp::xpkg_dir", + "signature": "const char* xpkg_dir(const char* ns, const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_program(const char* name)", + "family": "api", + "key": "mcpp::xpkg_program", + "signature": "const char* xpkg_program(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_program(const char* ns, const char* name)", + "family": "api", + "key": "mcpp::xpkg_program", + "signature": "const char* xpkg_program(const char* ns, const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_request(const char* ns, const char* name)", + "family": "api", + "key": "mcpp::xpkg_request", + "signature": "const char* xpkg_request(const char* ns, const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_source(const char* name)", + "family": "api", + "key": "mcpp::xpkg_source", + "signature": "const char* xpkg_source(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_source(const char* ns, const char* name)", + "family": "api", + "key": "mcpp::xpkg_source", + "signature": "const char* xpkg_source(const char* ns, const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:const char* xpkg_value_(const char* ns, const char* name, const char* suffix)", + "family": "api", + "key": "mcpp::xpkg_value_", + "signature": "const char* xpkg_value_(const char* ns, const char* name, const char* suffix)", + "source": "src/build/hostprogram.cppm", + "status": "internal", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "api:field:action::blocking", + "family": "api", + "key": "mcpp::action::blocking", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bool; default=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:action::depfile", + "family": "api", + "key": "mcpp::action::depfile", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:action::description", + "family": "api", + "key": "mcpp::action::description", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:action::id", + "family": "api", + "key": "mcpp::action::id", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:action::role", + "family": "api", + "key": "mcpp::action::role", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=roles::source", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:diagnostic::hint", + "family": "api", + "key": "mcpp::diagnostic::hint", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:diagnostic::impact", + "family": "api", + "key": "mcpp::diagnostic::impact", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:diagnostic::message", + "family": "api", + "key": "mcpp::diagnostic::message", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:field:diagnostic::severity", + "family": "api", + "key": "mcpp::diagnostic::severity", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "const char*; default=\"warning\"", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:action", + "family": "api", + "key": "mcpp::action", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:diagnostic", + "family": "api", + "key": "mcpp::diagnostic", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:roles::artifact", + "family": "api", + "key": "mcpp::roles::artifact", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:roles::check", + "family": "api", + "key": "mcpp::roles::check", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:roles::object", + "family": "api", + "key": "mcpp::roles::object", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:roles::prepare", + "family": "api", + "key": "mcpp::roles::prepare", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:type:roles::source", + "family": "api", + "key": "mcpp::roles::source", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "public type or role constant", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void artifact_name(const char* kind, const char* pattern)", + "family": "api", + "key": "mcpp::artifact_name", + "signature": "void artifact_name(const char* kind, const char* pattern)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void cflag(const char* flag)", + "family": "api", + "key": "mcpp::cflag", + "signature": "void cflag(const char* flag)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void cxxflag(const char* flag)", + "family": "api", + "key": "mcpp::cxxflag", + "signature": "void cxxflag(const char* flag)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void define(const char* name)", + "family": "api", + "key": "mcpp::define", + "signature": "void define(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void deploy(const char* from, const char* to)", + "family": "api", + "key": "mcpp::deploy", + "signature": "void deploy(const char* from, const char* to)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void diagnostic_field_(const char* s, char end)", + "family": "api", + "key": "mcpp::diagnostic_field_", + "signature": "void diagnostic_field_(const char* s, char end)", + "source": "src/build/hostprogram.cppm", + "status": "internal", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "api:void fact(const char* name, const char* version)", + "family": "api", + "key": "mcpp::fact", + "signature": "void fact(const char* name, const char* version)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void floor(const char* spec)", + "family": "api", + "key": "mcpp::floor", + "signature": "void floor(const char* spec)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void generated(const char* path)", + "family": "api", + "key": "mcpp::generated", + "signature": "void generated(const char* path)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void include_dir(const char* dir)", + "family": "api", + "key": "mcpp::include_dir", + "signature": "void include_dir(const char* dir)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void include_dir_after(const char* dir)", + "family": "api", + "key": "mcpp::include_dir_after", + "signature": "void include_dir_after(const char* dir)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_driver(const char* driver)", + "family": "api", + "key": "mcpp::link_driver", + "signature": "void link_driver(const char* driver)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_flag(const char* flag)", + "family": "api", + "key": "mcpp::link_flag", + "signature": "void link_flag(const char* flag)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_input(const char* path)", + "family": "api", + "key": "mcpp::link_input", + "signature": "void link_input(const char* path)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_input_from(const char* as, const char* token)", + "family": "api", + "key": "mcpp::link_input_from", + "signature": "void link_input_from(const char* as, const char* token)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_lib(const char* name)", + "family": "api", + "key": "mcpp::link_lib", + "signature": "void link_lib(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_script(const char* path)", + "family": "api", + "key": "mcpp::link_script", + "signature": "void link_script(const char* path)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_search(const char* dir)", + "family": "api", + "key": "mcpp::link_search", + "signature": "void link_search(const char* dir)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void link_start(const char* symbol)", + "family": "api", + "key": "mcpp::link_start", + "signature": "void link_start(const char* symbol)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void provides_pack_format(const char* name)", + "family": "api", + "key": "mcpp::provides_pack_format", + "signature": "void provides_pack_format(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void report(const diagnostic& d)", + "family": "api", + "key": "mcpp::report", + "signature": "void report(const diagnostic& d)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void rerun_if_changed(const char* path)", + "family": "api", + "key": "mcpp::rerun_if_changed", + "signature": "void rerun_if_changed(const char* path)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void rerun_if_changed_glob(const char* pattern)", + "family": "api", + "key": "mcpp::rerun_if_changed_glob", + "signature": "void rerun_if_changed_glob(const char* pattern)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void rerun_if_env_changed(const char* var)", + "family": "api", + "key": "mcpp::rerun_if_env_changed", + "signature": "void rerun_if_env_changed(const char* var)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void run_exclusive()", + "family": "api", + "key": "mcpp::run_exclusive", + "signature": "void run_exclusive()", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void run_host(const char* where)", + "family": "api", + "key": "mcpp::run_host", + "signature": "void run_host(const char* where)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void runner(const char* name, const char* token)", + "family": "api", + "key": "mcpp::runner", + "signature": "void runner(const char* name, const char* token)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void runner(const char* token)", + "family": "api", + "key": "mcpp::runner", + "signature": "void runner(const char* token)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void runner_longlived(const char* name)", + "family": "api", + "key": "mcpp::runner_longlived", + "signature": "void runner_longlived(const char* name)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void runtime_search_dir(const char* dir)", + "family": "api", + "key": "mcpp::runtime_search_dir", + "signature": "void runtime_search_dir(const char* dir)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void seal(int step, const char* token)", + "family": "api", + "key": "mcpp::seal", + "signature": "void seal(int step, const char* token)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void source(const char* path)", + "family": "api", + "key": "mcpp::source", + "signature": "void source(const char* path)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void toolchain(const char* key, const char* value)", + "family": "api", + "key": "mcpp::toolchain", + "signature": "void toolchain(const char* key, const char* value)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void warning(const char* message)", + "family": "api", + "key": "mcpp::warning", + "signature": "void warning(const char* message)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void windows_entry(const char* target, const char* value)", + "family": "api", + "key": "mcpp::windows_entry", + "signature": "void windows_entry(const char* target, const char* value)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "api:void windows_subsystem(const char* target, const char* value)", + "family": "api", + "key": "mcpp::windows_subsystem", + "signature": "void windows_subsystem(const char* target, const char* value)", + "source": "src/build/hostprogram.cppm", + "status": "public", + "detail": "bundled public module; wrapper signature, not an internal engine export", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:add", + "family": "cli", + "key": "add", + "status": "public", + "source": "src/cli.cppm", + "detail": "Add a dependency to mcpp.toml", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:add/--dev", + "family": "cli", + "key": "add --dev", + "status": "public", + "source": "src/cli.cppm", + "detail": "Add to [dev-dependencies] (test-only, e.g. compat.gtest)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:add/arg:pkg", + "family": "cli", + "key": "add ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Exact package spec, e.g. foo@1.0.0 or compat.gtest@1.15.2", + "required": true, + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:bmi-await", + "family": "cli", + "key": "bmi-await", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal) Join a detached compiler and replay its diagnostics", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-await/--object", + "family": "cli", + "key": "bmi-await --object", + "status": "internal", + "source": "src/cli.cppm", + "detail": "", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-await/--slot", + "family": "cli", + "key": "bmi-await --slot", + "status": "internal", + "source": "src/cli.cppm", + "detail": "", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile", + "family": "cli", + "key": "bmi-compile", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal) Compile a module interface and return when its BMI is published", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--bmi", + "family": "cli", + "key": "bmi-compile --bmi", + "status": "internal", + "source": "src/cli.cppm", + "detail": "BMI this unit publishes", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--cap", + "family": "cli", + "key": "bmi-compile --cap", + "status": "internal", + "source": "src/cli.cppm", + "detail": "max concurrent compilers", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--command-file", + "family": "cli", + "key": "bmi-compile --command-file", + "status": "internal", + "source": "src/cli.cppm", + "detail": "file holding the compiler command line", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--dep-from", + "family": "cli", + "key": "bmi-compile --dep-from", + "status": "internal", + "source": "src/cli.cppm", + "detail": "scanner depfile to adopt", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--dep-to", + "family": "cli", + "key": "bmi-compile --dep-to", + "status": "internal", + "source": "src/cli.cppm", + "detail": "where ninja expects this edge's depfile", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--self", + "family": "cli", + "key": "bmi-compile --self", + "status": "internal", + "source": "src/cli.cppm", + "detail": "path to mcpp, re-invoked as supervisor", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--sem", + "family": "cli", + "key": "bmi-compile --sem", + "status": "internal", + "source": "src/cli.cppm", + "detail": "concurrency token directory", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-compile/--slot", + "family": "cli", + "key": "bmi-compile --slot", + "status": "internal", + "source": "src/cli.cppm", + "detail": "where .log/.rc are kept", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-equal", + "family": "cli", + "key": "bmi-equal", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal: invoked by ninja) Compare two BMIs ignoring the compiler's embedded timestamp", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-supervise", + "family": "cli", + "key": "bmi-supervise", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal) Run a compiler to completion and record its status", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-supervise/--command-file", + "family": "cli", + "key": "bmi-supervise --command-file", + "status": "internal", + "source": "src/cli.cppm", + "detail": "", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-supervise/--slot", + "family": "cli", + "key": "bmi-supervise --slot", + "status": "internal", + "source": "src/cli.cppm", + "detail": "", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:bmi-supervise/--token", + "family": "cli", + "key": "bmi-supervise --token", + "status": "internal", + "source": "src/cli.cppm", + "detail": "", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:build", + "family": "cli", + "key": "build", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build the current package", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--accel", + "family": "cli", + "key": "build --accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Device backends and architectures, e.g. 'cuda12.8+{sm_89}'; overrides [build] accel", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--cache", + "family": "cli", + "key": "build --cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Global dependency cache: global (default) | local | off", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--cap", + "family": "cli", + "key": "build --cap", + "status": "public", + "source": "src/cli.cppm", + "detail": "Pin capability providers (e.g. blas=openblas,lapack=mkl)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--configure-only", + "family": "cli", + "key": "build --configure-only", + "status": "public", + "source": "src/cli.cppm", + "detail": "Generate compile_commands.json without compiling or linking", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--dev", + "family": "cli", + "key": "build --dev", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile dev (-O0 -g)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--exclude", + "family": "cli", + "key": "build --exclude", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --workspace (or at a virtual workspace root), leave the named member out; repeatable, refused with -p", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--features", + "family": "cli", + "key": "build --features", + "status": "public", + "source": "src/cli.cppm", + "detail": "Activate root-package features, and a dependency's as / (comma-separated)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--host-platform", + "family": "cli", + "key": "build --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--jobs", + "family": "cli", + "key": "build --jobs", + "status": "public", + "source": "src/cli.cppm", + "detail": "Concurrent compiles: a number, or 'auto' to size from cores + free RAM", + "takes_value": true, + "repeatable": false, + "short": "j", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--message-format", + "family": "cli", + "key": "build --message-format", + "status": "public", + "source": "src/cli.cppm", + "detail": "human (default) | json: NDJSON events on stdout, then the mcpp.build envelope", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--no-accel", + "family": "cli", + "key": "build --no-accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Target no accelerator, ignoring [build] accel", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--no-cache", + "family": "cli", + "key": "build --no-cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Deprecated alias for --cache=off (also clears the build dir)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--package", + "family": "cli", + "key": "build --package", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build the named workspace member (namespace.name or package name, then directory); repeat to build several", + "takes_value": true, + "repeatable": true, + "short": "p", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--platform", + "family": "cli", + "key": "build --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--play-game", + "family": "cli", + "key": "build --play-game", + "status": "public", + "source": "src/cli.cppm", + "detail": "Play a game in the status row while it builds: --play-game=snake|stack|runner, or one at random", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--print-fingerprint", + "family": "cli", + "key": "build --print-fingerprint", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show toolchain fingerprint and 11 inputs", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--profile", + "family": "cli", + "key": "build --profile", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build profile: dev (default) | release | dist | <[profile.*] name>", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--release", + "family": "cli", + "key": "build --release", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile release", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--static", + "family": "cli", + "key": "build --static", + "status": "public", + "source": "src/cli.cppm", + "detail": "Force static linking (-static). On Linux, prefer pairing with --target -linux-musl", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--strict", + "family": "cli", + "key": "build --strict", + "status": "public", + "source": "src/cli.cppm", + "detail": "Treat manifest schema warnings (unknown feature/platform) as errors", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--sysroot", + "family": "cli", + "key": "build --sysroot", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--target", + "family": "cli", + "key": "build --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build for (e.g. x86_64-linux-musl), or for a target set (e.g. openkal, linux-musl); repeatable: one leg per target", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--toolchain", + "family": "cli", + "key": "build --toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build with this toolchain for one build, e.g. llvm@22.1.8", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:build/--workspace", + "family": "cli", + "key": "build --workspace", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build all workspace members", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache", + "family": "cli", + "key": "cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Inspect and manage the global build cache", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache clean", + "family": "cli", + "key": "cache clean", + "status": "public", + "source": "src/cli.cppm", + "detail": "Drop cache entries (default: package entries only)", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache clean/--all", + "family": "cli", + "key": "cache clean --all", + "status": "public", + "source": "src/cli.cppm", + "detail": "Drop every kind of entry", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache clean/--deps", + "family": "cli", + "key": "cache clean --deps", + "status": "public", + "source": "src/cli.cppm", + "detail": "Drop package entries (default)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache clean/--legacy", + "family": "cli", + "key": "cache clean --legacy", + "status": "public", + "source": "src/cli.cppm", + "detail": "Remove the unused pre-v1 cache at $MCPP_HOME/bmi", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache clean/--std", + "family": "cli", + "key": "cache clean --std", + "status": "public", + "source": "src/cli.cppm", + "detail": "Drop std module entries", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache clean/--tools", + "family": "cli", + "key": "cache clean --tools", + "status": "public", + "source": "src/cli.cppm", + "detail": "Drop host tool entries", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache dir", + "family": "cli", + "key": "cache dir", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print the cache root (and any pre-v1 cache)", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache gc", + "family": "cli", + "key": "cache gc", + "status": "public", + "source": "src/cli.cppm", + "detail": "LRU-collect package and host tool entries to a size and/or age budget", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache gc/--max-size", + "family": "cli", + "key": "cache gc --max-size", + "status": "public", + "source": "src/cli.cppm", + "detail": "Keep the package cache under this size (e.g. 5GiB)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache gc/--older-than", + "family": "cli", + "key": "cache gc --older-than", + "status": "public", + "source": "src/cli.cppm", + "detail": "Also drop entries unused for longer than this", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache info", + "family": "cli", + "key": "cache info", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show details (incl. key inputs) for a cached package", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache info/arg:pkg", + "family": "cli", + "key": "cache info ", + "status": "public", + "source": "src/cli.cppm", + "detail": "@", + "required": true, + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache list", + "family": "cli", + "key": "cache list", + "status": "public", + "source": "src/cli.cppm", + "detail": "List cache entries with size + last-use", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache list/--format", + "family": "cli", + "key": "cache list --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Machine-readable output (enveloped; see docs/50-machine-output.md)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache list/--json", + "family": "cli", + "key": "cache list --json", + "status": "public", + "source": "src/cli.cppm", + "detail": "Emit machine-readable JSON (legacy payload, kept for ever)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache prune", + "family": "cli", + "key": "cache prune", + "status": "public", + "source": "src/cli.cppm", + "detail": "Drop entries not used within a threshold", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache prune/--older-than", + "family": "cli", + "key": "cache prune --older-than", + "status": "public", + "source": "src/cli.cppm", + "detail": "Age threshold (e.g. 30d)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:cache verify", + "family": "cli", + "key": "cache verify", + "status": "public", + "source": "src/cli.cppm", + "detail": "Check every entry's manifest against the files on disk", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:clean", + "family": "cli", + "key": "clean", + "status": "public", + "source": "src/cli.cppm", + "detail": "Remove target/, or with --stale only what no configuration still uses: fingerprint directories, generated sources, build-program groups", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:clean/--bmi-cache", + "family": "cli", + "key": "clean --bmi-cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Also wipe the global build cache (see `mcpp cache clean`)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:clean/--dry-run", + "family": "cli", + "key": "clean --dry-run", + "status": "public", + "source": "src/cli.cppm", + "detail": "List what would be removed and delete nothing (implies --stale)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:clean/--older-than", + "family": "cli", + "key": "clean --older-than", + "status": "public", + "source": "src/cli.cppm", + "detail": "Keep unrecorded directories written more recently than this, e.g. 12h, 3d (default 1d; 0 keeps none; implies --stale)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:clean/--report", + "family": "cli", + "key": "clean --report", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show where target/ holds its bytes, per configuration and area; removes nothing", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:clean/--stale", + "family": "cli", + "key": "clean --stale", + "status": "public", + "source": "src/cli.cppm", + "detail": "Only remove target/// directories that no recorded build considers current", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-cache", + "extracted": true, + "reference": "skills/operations/mcpp-cache/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:coff-def", + "family": "cli", + "key": "coff-def", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal: invoked by ninja) Discover exports in COFF and LLVM bitcode objects", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--exports-file", + "family": "cli", + "key": "coff-def --exports-file", + "status": "internal", + "source": "src/cli.cppm", + "detail": "the target's `exports` patterns, one per line", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--llvm-cxx", + "family": "cli", + "key": "coff-def --llvm-cxx", + "status": "internal", + "source": "src/cli.cppm", + "detail": "selected LLVM compiler for bitcode inspection", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--llvm-nm", + "family": "cli", + "key": "coff-def --llvm-nm", + "status": "internal", + "source": "src/cli.cppm", + "detail": "llvm-nm from the selected LLVM installation", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--llvm-target", + "family": "cli", + "key": "coff-def --llvm-target", + "status": "internal", + "source": "src/cli.cppm", + "detail": "selected target triple", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--name", + "family": "cli", + "key": "coff-def --name", + "status": "internal", + "source": "src/cli.cppm", + "detail": "LIBRARY name recorded in the .def", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--output", + "family": "cli", + "key": "coff-def --output", + "status": "internal", + "source": "src/cli.cppm", + "detail": "the .def to write", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:coff-def/--required", + "family": "cli", + "key": "coff-def --required", + "status": "internal", + "source": "src/cli.cppm", + "detail": "a consumer of this build links the DLL: an empty export surface is an error", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep", + "family": "cli", + "key": "dyndep", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal: invoked by ninja) Emit ninja dyndep file from .ddi inputs", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--bmi-dir", + "family": "cli", + "key": "dyndep --bmi-dir", + "status": "internal", + "source": "src/cli.cppm", + "detail": "BMI cache directory name (default: gcm.cache)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--bmi-ext", + "family": "cli", + "key": "dyndep --bmi-ext", + "status": "internal", + "source": "src/cli.cppm", + "detail": "BMI file extension (default: .gcm)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--expect-imports", + "family": "cli", + "key": "dyndep --expect-imports", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(verification) planned imports for this TU, comma-separated", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--expect-none", + "family": "cli", + "key": "dyndep --expect-none", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(verification) planner assumed no provides/imports", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--expect-provides", + "family": "cli", + "key": "dyndep --expect-provides", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(verification) planned provided module for this TU", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--module-map", + "family": "cli", + "key": "dyndep --module-map", + "status": "internal", + "source": "src/cli.cppm", + "detail": "Module name -> BMI path, one ` ` per line (mcpp#732)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--output", + "family": "cli", + "key": "dyndep --output", + "status": "internal", + "source": "src/cli.cppm", + "detail": "Path to write dyndep file", + "takes_value": true, + "repeatable": false, + "short": "o", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--single", + "family": "cli", + "key": "dyndep --single", + "status": "internal", + "source": "src/cli.cppm", + "detail": "Single-file mode: one .ddi → one .dd", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:dyndep/--split-module", + "family": "cli", + "key": "dyndep --split-module", + "status": "internal", + "source": "src/cli.cppm", + "detail": "Also emit a record for the provided BMI (two-phase schedule: BMI and object are separate edges)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:emit", + "family": "cli", + "key": "emit", + "status": "public", + "source": "src/cli.cppm", + "detail": "Generate a document describing this project (xpkg, sbom, build-database)", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database", + "family": "cli", + "key": "emit build-database", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print the build plan as an S1 build database, without writing into the project", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--accel", + "family": "cli", + "key": "emit build-database --accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Device backends and architectures (same axis as `mcpp build --accel`)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--cap", + "family": "cli", + "key": "emit build-database --cap", + "status": "public", + "source": "src/cli.cppm", + "detail": "Pin capability providers (e.g. blas=openblas,lapack=mkl)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--dev", + "family": "cli", + "key": "emit build-database --dev", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile dev", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--exclude", + "family": "cli", + "key": "emit build-database --exclude", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --workspace (or at a virtual workspace root), leave the named member out; repeatable, refused with -p", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--features", + "family": "cli", + "key": "emit build-database --features", + "status": "public", + "source": "src/cli.cppm", + "detail": "Activate root-package features, and a dependency's as / (comma-separated)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--format", + "family": "cli", + "key": "emit build-database --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Machine-readable output (enveloped; see docs/50-machine-output.md)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--host-platform", + "family": "cli", + "key": "emit build-database --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--no-accel", + "family": "cli", + "key": "emit build-database --no-accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe the variant built for no accelerator", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--output", + "family": "cli", + "key": "emit build-database --output", + "status": "public", + "source": "src/cli.cppm", + "detail": "Write to file instead of stdout", + "takes_value": true, + "repeatable": false, + "short": "o", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--package", + "family": "cli", + "key": "emit build-database --package", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe the named workspace member (namespace.name or package name, then directory); repeat to describe several", + "takes_value": true, + "repeatable": true, + "short": "p", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--platform", + "family": "cli", + "key": "emit build-database --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--profile", + "family": "cli", + "key": "emit build-database --profile", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build profile: dev (default) | release | dist | <[profile.*] name>", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--release", + "family": "cli", + "key": "emit build-database --release", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile release", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--spec", + "family": "cli", + "key": "emit build-database --spec", + "status": "public", + "source": "src/cli.cppm", + "detail": "Document specification: s1 (default; the S1 IDE profile of P2977R2) | compile-commands", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--static", + "family": "cli", + "key": "emit build-database --static", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe the build with --static", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--strict", + "family": "cli", + "key": "emit build-database --strict", + "status": "public", + "source": "src/cli.cppm", + "detail": "Treat manifest schema warnings (unknown feature/platform) as errors", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--sysroot", + "family": "cli", + "key": "emit build-database --sysroot", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--target", + "family": "cli", + "key": "emit build-database --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe the build for (same axis as `mcpp build --target`)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--toolchain", + "family": "cli", + "key": "emit build-database --toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe the build with this toolchain, e.g. llvm@22.1.8", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit build-database/--workspace", + "family": "cli", + "key": "emit build-database --workspace", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe all workspace members in one document", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit sbom", + "family": "cli", + "key": "emit sbom", + "status": "public", + "source": "src/cli.cppm", + "detail": "Write a CycloneDX bill of materials for the recorded resolution", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit sbom/--output", + "family": "cli", + "key": "emit sbom --output", + "status": "public", + "source": "src/cli.cppm", + "detail": "Write to file instead of stdout", + "takes_value": true, + "repeatable": false, + "short": "o", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit xpkg", + "family": "cli", + "key": "emit xpkg", + "status": "public", + "source": "src/cli.cppm", + "detail": "Generate xpkg Lua entry", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit xpkg/--namespace", + "family": "cli", + "key": "emit xpkg --namespace", + "status": "public", + "source": "src/cli.cppm", + "detail": "Package namespace for the emitted descriptor (overrides [package] namespace). Emits both `namespace` and the fully-qualified `name`", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit xpkg/--output", + "family": "cli", + "key": "emit xpkg --output", + "status": "public", + "source": "src/cli.cppm", + "detail": "Write to file instead of stdout", + "takes_value": true, + "repeatable": false, + "short": "o", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit xpkg/--package", + "family": "cli", + "key": "emit xpkg --package", + "status": "public", + "source": "src/cli.cppm", + "detail": "Describe packages `mcpp pack` wrote (repeatable): an xim-pkgindex entry of the program, from their mcpp-package.json", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit xpkg/--url", + "family": "cli", + "key": "emit xpkg --url", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --package: where the packages are published (/)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:emit xpkg/--version", + "family": "cli", + "key": "emit xpkg --version", + "status": "public", + "source": "src/cli.cppm", + "detail": "Override package version", + "takes_value": true, + "repeatable": false, + "short": "V", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:explain", + "family": "cli", + "key": "explain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show extended description for an error code", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:explain/arg:code", + "family": "cli", + "key": "explain ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Error code such as E0001, or a refusal's reason token such as platform-version-group", + "required": true, + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--deny", + "family": "cli", + "key": "global --deny", + "status": "public", + "source": "src/cli.cppm", + "detail": "Stop before any of these effects, exit 5: network, write-project, write-global-cache, exec-build-script, init-mcpp-home (also: MCPP_DENY_EFFECTS)", + "takes_value": true, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--frozen", + "family": "cli", + "key": "global --frozen", + "status": "public", + "source": "src/cli.cppm", + "detail": "Alias for --locked", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--help", + "family": "cli", + "key": "global --help", + "source": "src/cli.cppm", + "detail": "global preparse handling; inspect invocation-specific constraints", + "status": "public", + "owner": "mcpp-commands", + "extracted": false, + "verification": "static-declaration", + "reference": "skills/basics/mcpp-commands/references/interfaces.md" + }, + { + "id": "cli:global/--home", + "family": "cli", + "key": "global --home", + "source": "src/cli.cppm", + "detail": "global preparse handling; inspect invocation-specific constraints", + "status": "public", + "owner": "mcpp-commands", + "extracted": false, + "verification": "static-declaration", + "reference": "skills/basics/mcpp-commands/references/interfaces.md" + }, + { + "id": "cli:global/--locked", + "family": "cli", + "key": "global --locked", + "status": "public", + "source": "src/cli.cppm", + "detail": "Fail if dependency resolution differs from mcpp.lock", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--managed-only", + "family": "cli", + "key": "global --managed-only", + "status": "public", + "source": "src/cli.cppm", + "detail": "Fail if a toolchain, payload or plugin tool does not come from the ecosystem", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--no-color", + "family": "cli", + "key": "global --no-color", + "status": "public", + "source": "src/cli.cppm", + "detail": "Disable colored output", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--offline", + "family": "cli", + "key": "global --offline", + "status": "public", + "source": "src/cli.cppm", + "detail": "Never touch the network (index refresh, downloads, toolchain install); = --deny network", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--protocol-version", + "family": "cli", + "key": "global --protocol-version", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print the machine-output protocol this build speaks (JSON)", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--quiet", + "family": "cli", + "key": "global --quiet", + "status": "public", + "source": "src/cli.cppm", + "detail": "Suppress status output", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--system", + "family": "cli", + "key": "global --system", + "status": "public", + "source": "src/cli.cppm", + "detail": "Maintain the machine's system home (self init|doctor|store, toolchain install|remove|default, index update)", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--verbose", + "family": "cli", + "key": "global --verbose", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show detailed progress on stderr", + "takes_value": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:global/--version", + "family": "cli", + "key": "global --version", + "source": "src/cli.cppm", + "detail": "global preparse handling; inspect invocation-specific constraints", + "status": "public", + "owner": "mcpp-commands", + "extracted": false, + "verification": "static-declaration", + "reference": "skills/basics/mcpp-commands/references/interfaces.md" + }, + { + "id": "cli:index", + "family": "cli", + "key": "index", + "status": "public", + "source": "src/cli.cppm", + "detail": "Manage configured package registries", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index add", + "family": "cli", + "key": "index add", + "status": "public", + "source": "src/cli.cppm", + "detail": "Add a custom registry", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index add/arg:name", + "family": "cli", + "key": "index add ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Registry name", + "required": true, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index add/arg:url", + "family": "cli", + "key": "index add ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Registry URL", + "required": true, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index list", + "family": "cli", + "key": "index list", + "status": "public", + "source": "src/cli.cppm", + "detail": "List configured registries", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index list/--format", + "family": "cli", + "key": "index list --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "json: the mcpp.index envelope", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index pin", + "family": "cli", + "key": "index pin", + "status": "public", + "source": "src/cli.cppm", + "detail": "Pin a custom index to a commit rev in mcpp.toml", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index pin/arg:name", + "family": "cli", + "key": "index pin ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Index name", + "required": true, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index pin/arg:rev", + "family": "cli", + "key": "index pin ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Commit sha (defaults to current lock rev)", + "required": false, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index remove", + "family": "cli", + "key": "index remove", + "status": "public", + "source": "src/cli.cppm", + "detail": "Remove a registry", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index remove/arg:name", + "family": "cli", + "key": "index remove ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Registry name", + "required": true, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index status", + "family": "cli", + "key": "index status", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show local index presence/freshness (offline)", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index unpin", + "family": "cli", + "key": "index unpin", + "status": "public", + "source": "src/cli.cppm", + "detail": "Remove rev pin from a custom index in mcpp.toml", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index unpin/arg:name", + "family": "cli", + "key": "index unpin ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Index name", + "required": true, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index update", + "family": "cli", + "key": "index update", + "status": "public", + "source": "src/cli.cppm", + "detail": "Refresh local registry clones (global repos always sync in full)", + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:index update/arg:name", + "family": "cli", + "key": "index update ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Update only this PROJECT-level custom index (the global repos sync regardless)", + "required": false, + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:link-output", + "family": "cli", + "key": "link-output", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal: invoked by ninja on Windows) Move a linked artifact aside, then run the linker command after `--` (a running program keeps its file)", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:link-output/--output", + "family": "cli", + "key": "link-output --output", + "status": "internal", + "source": "src/cli.cppm", + "detail": "the artifact the command links", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:new", + "family": "cli", + "key": "new", + "status": "public", + "source": "src/cli.cppm", + "detail": "Create a new mcpp package skeleton", + "owner": "mcpp-projects-and-templates", + "extracted": true, + "reference": "skills/basics/mcpp-projects-and-templates/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:new/--list-templates", + "family": "cli", + "key": "new --list-templates", + "status": "public", + "source": "src/cli.cppm", + "detail": "List templates from exact [ns.]pkg[@ver]", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-projects-and-templates", + "extracted": true, + "reference": "skills/basics/mcpp-projects-and-templates/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:new/--template", + "family": "cli", + "key": "new --template", + "status": "public", + "source": "src/cli.cppm", + "detail": "bin (default) | [ns.]pkg[@ver][:template] — exact package template", + "takes_value": true, + "repeatable": false, + "short": "t", + "owner": "mcpp-projects-and-templates", + "extracted": true, + "reference": "skills/basics/mcpp-projects-and-templates/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:new/arg:name", + "family": "cli", + "key": "new ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Package directory name", + "required": false, + "owner": "mcpp-projects-and-templates", + "extracted": true, + "reference": "skills/basics/mcpp-projects-and-templates/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack", + "family": "cli", + "key": "pack", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build + package: a program becomes a self-contained bundle, a library an interface + prebuilt binaries", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--compress", + "family": "cli", + "key": "pack --compress", + "status": "public", + "source": "src/cli.cppm", + "detail": "The container's compression: gzip (tar default) | zstd | xz | none; a zip deflates unless none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--debug-symbols", + "family": "cli", + "key": "pack --debug-symbols", + "status": "public", + "source": "src/cli.cppm", + "detail": "Write the separated *.debug files here (default: discard)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--dev", + "family": "cli", + "key": "pack --dev", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile dev", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--exclude", + "family": "cli", + "key": "pack --exclude", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --workspace, leave the named member out; repeatable, refused with -p", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--features", + "family": "cli", + "key": "pack --features", + "status": "public", + "source": "src/cli.cppm", + "detail": "Activate root-package features, and a dependency's as /, for every build pass of the pack (comma-separated)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--format", + "family": "cli", + "key": "pack --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Earlier spelling of --pkg-format", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--host-platform", + "family": "cli", + "key": "pack --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--linkage", + "family": "cli", + "key": "pack --linkage", + "status": "public", + "source": "src/cli.cppm", + "detail": "The program's libraries in it (static) or beside it (shared); rebuilds with [build] dependency_linkage (default: as the project builds)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--list-formats", + "family": "cli", + "key": "pack --list-formats", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print the formats --format accepts here, the engine's and those the resolved graph provides, as the mcpp.pack.formats envelope", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--merge", + "family": "cli", + "key": "pack --merge", + "status": "public", + "source": "src/cli.cppm", + "detail": "Merge packages this command wrote (legs, systems) into one; repeatable, nothing is built", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--message-format", + "family": "cli", + "key": "pack --message-format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Output format: human (default) | json (one mcpp.pack envelope on stdout; narration on stderr)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--mode", + "family": "cli", + "key": "pack --mode", + "status": "public", + "source": "src/cli.cppm", + "detail": "What the machine that runs it provides: system | vendored (default) | self-contained | static (= --linkage static --mode self-contained)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--no-strip", + "family": "cli", + "key": "pack --no-strip", + "status": "public", + "source": "src/cli.cppm", + "detail": "Ship the artifacts as built (default: strip debug info)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--no-universal", + "family": "cli", + "key": "pack --no-universal", + "status": "public", + "source": "src/cli.cppm", + "detail": "Deprecated: a pack of one target packs that target alone", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--output", + "family": "cli", + "key": "pack --output", + "status": "public", + "source": "src/cli.cppm", + "detail": "Override output path; a directory (ending in /) when the pack writes several files", + "takes_value": true, + "repeatable": false, + "short": "o", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--package", + "family": "cli", + "key": "pack --package", + "status": "public", + "source": "src/cli.cppm", + "detail": "Pack the named workspace member (namespace.name or package name, then directory), as if run in its directory; repeat to pack several, planned and built once", + "takes_value": true, + "repeatable": true, + "short": "p", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--pkg-format", + "family": "cli", + "key": "pack --pkg-format", + "status": "public", + "source": "src/cli.cppm", + "detail": "The package format: tar | zip | dir | single-file | polyglot | any format the resolved graph provides (e.g. appimage, msi, okb), or a list of containers of one tree (tar,okb); default: zip for a Windows program, tar elsewhere", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--platform", + "family": "cli", + "key": "pack --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--profile", + "family": "cli", + "key": "pack --profile", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build profile (default: [build] default-profile, else release)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--release", + "family": "cli", + "key": "pack --release", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile release", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--sysroot", + "family": "cli", + "key": "pack --sysroot", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--systems", + "family": "cli", + "key": "pack --systems", + "status": "public", + "source": "src/cli.cppm", + "detail": "The runners a self-contained package carries, or the systems single files are made for: , -, all (default: this machine's)", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--target", + "family": "cli", + "key": "pack --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "A target (x86_64-linux-gnu) or a target set (openkal, linux-musl); repeatable: the legs", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--toolchain", + "family": "cli", + "key": "pack --toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build with this toolchain for one invocation, e.g. llvm@22.1.8", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/--workspace", + "family": "cli", + "key": "pack --workspace", + "status": "public", + "source": "src/cli.cppm", + "detail": "Pack every workspace member that has a program target, planned and built once", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:pack/arg:target", + "family": "cli", + "key": "pack ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Target name from [targets.*] (optional)", + "required": false, + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:place-dlls", + "family": "cli", + "key": "place-dlls", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal: invoked by ninja) Place beside a Windows program the DLLs it imports from its runtime search directories", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:place-dlls/--crt", + "family": "cli", + "key": "place-dlls --crt", + "status": "internal", + "source": "src/cli.cppm", + "detail": "how the contract governs the MSVC C++ runtime's names: carry | system | static | not-applicable", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:place-dlls/--depfile", + "family": "cli", + "key": "place-dlls --depfile", + "status": "internal", + "source": "src/cli.cppm", + "detail": "the depfile naming every DLL placed", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:place-dlls/--output", + "family": "cli", + "key": "place-dlls --output", + "status": "internal", + "source": "src/cli.cppm", + "detail": "the stamp to write", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:place-dlls/--toolset-crt", + "family": "cli", + "key": "place-dlls --toolset-crt", + "status": "internal", + "source": "src/cli.cppm", + "detail": "the selected toolset's C++ runtime directory", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:platform-step", + "family": "cli", + "key": "platform-step", + "status": "internal", + "source": "src/cli.cppm", + "detail": "(internal: invoked by ninja for a platform's link) `capture --out F -- argv…` saves a program's output; `seal --steps F -- [needed…]` runs the platform's seal steps, then publishes", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:platform-step/--out", + "family": "cli", + "key": "platform-step --out", + "status": "internal", + "source": "src/cli.cppm", + "detail": "capture: the file the output is saved as", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:platform-step/--steps-hex", + "family": "cli", + "key": "platform-step --steps-hex", + "status": "internal", + "source": "src/cli.cppm", + "detail": "seal: the steps, one per line, words separated by a tab, hex-encoded (the command is the steps, so a changed step reseals)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:platform-step/arg:mode", + "family": "cli", + "key": "platform-step ", + "status": "internal", + "source": "src/cli.cppm", + "detail": "capture | seal", + "required": false, + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration", + "reason": "Backend or generated-module helper; excluded from ordinary recommended usage." + }, + { + "id": "cli:publish", + "family": "cli", + "key": "publish", + "status": "public", + "source": "src/cli.cppm", + "detail": "Publish package to default registry", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:publish/--allow-dirty", + "family": "cli", + "key": "publish --allow-dirty", + "status": "public", + "source": "src/cli.cppm", + "detail": "Allow uncommitted changes", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:publish/--dry-run", + "family": "cli", + "key": "publish --dry-run", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print xpkg.lua without uploading", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:remove", + "family": "cli", + "key": "remove", + "status": "public", + "source": "src/cli.cppm", + "detail": "Remove a dependency from mcpp.toml", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:remove/arg:pkg", + "family": "cli", + "key": "remove ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Exact package selector [ns.]name", + "required": true, + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:resolve", + "family": "cli", + "key": "resolve", + "status": "public", + "source": "src/cli.cppm", + "detail": "Re-resolve the build plan and explain it", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:resolve/--explain", + "family": "cli", + "key": "resolve --explain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print resolved toolchain / runtime / deps / runners", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run", + "family": "cli", + "key": "run", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build + run a binary target (after `--`, args are passed to it)", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--accel", + "family": "cli", + "key": "run --accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Device backends and architectures (same axis as `mcpp build --accel`)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--cache", + "family": "cli", + "key": "run --cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Global dependency cache: global (default) | local | off", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--dev", + "family": "cli", + "key": "run --dev", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile dev", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--features", + "family": "cli", + "key": "run --features", + "status": "public", + "source": "src/cli.cppm", + "detail": "Activate features (comma/space separated), same axis as `mcpp build --features`", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--format", + "family": "cli", + "key": "run --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Earlier spelling of --pkg-format", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--host-platform", + "family": "cli", + "key": "run --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--list-runners", + "family": "cli", + "key": "run --list-runners", + "status": "public", + "source": "src/cli.cppm", + "detail": "List the named runners this project supplies, and exit", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--no-accel", + "family": "cli", + "key": "run --no-accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run the variant built for no accelerator (same as `mcpp build --no-accel`)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--no-cache", + "family": "cli", + "key": "run --no-cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Deprecated alias for --cache=off (also clears the build dir)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--no-runner", + "family": "cli", + "key": "run --no-runner", + "status": "public", + "source": "src/cli.cppm", + "detail": "Execute the artifact directly, ignoring any [target.].runner (a host that runs it natively)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--package", + "family": "cli", + "key": "run --package", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run only the named workspace member (namespace.name or package name, then directory; one member: a second -p is refused)", + "takes_value": true, + "repeatable": true, + "short": "p", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--pkg-format", + "family": "cli", + "key": "run --pkg-format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run the distributable a `--pkg-format ` pack would produce (same values as `mcpp pack --pkg-format`); refused together with --no-runner", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--platform", + "family": "cli", + "key": "run --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--play-game", + "family": "cli", + "key": "run --play-game", + "status": "public", + "source": "src/cli.cppm", + "detail": "Play a game in the status row while it builds: --play-game=snake|stack|runner, or one at random", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--print-launch", + "family": "cli", + "key": "run --print-launch", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build, then print how the program would be started (argv, the environment mcpp adds, cwd, runner) as the mcpp.launch envelope, instead of starting it", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--profile", + "family": "cli", + "key": "run --profile", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build profile to run (dev | release | )", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--release", + "family": "cli", + "key": "run --release", + "status": "public", + "source": "src/cli.cppm", + "detail": "Shorthand for --profile release", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--runner", + "family": "cli", + "key": "run --runner", + "status": "public", + "source": "src/cli.cppm", + "detail": "Reach the artifact by a named runner a package supplied; see --list-runners", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--sysroot", + "family": "cli", + "key": "run --sysroot", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--target", + "family": "cli", + "key": "run --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Cross target triple or target set (same axis as `mcpp build --target`); of several, the first this host reaches, its own architecture first", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--target-triple", + "family": "cli", + "key": "run --target-triple", + "status": "public", + "source": "src/cli.cppm", + "detail": "Alias for --target", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/--toolchain", + "family": "cli", + "key": "run --toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build with this toolchain for one invocation, e.g. llvm@22.1.8", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:run/arg:bin", + "family": "cli", + "key": "run ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Binary name (optional)", + "required": false, + "owner": "mcpp-build-and-run", + "extracted": true, + "reference": "skills/workflow/mcpp-build-and-run/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:search", + "family": "cli", + "key": "search", + "status": "public", + "source": "src/cli.cppm", + "detail": "Search packages in configured registries", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:search/--all-versions", + "family": "cli", + "key": "search --all-versions", + "status": "public", + "source": "src/cli.cppm", + "detail": "List every published version instead of the latest few", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:search/--format", + "family": "cli", + "key": "search --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "json: the mcpp.search envelope (every version, licenses, repo)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:search/arg:keyword", + "family": "cli", + "key": "search ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Search keyword (substring match); optional with --format json, which then lists every package", + "required": false, + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self", + "family": "cli", + "key": "self", + "status": "public", + "source": "src/cli.cppm", + "detail": "Inspect and manage mcpp itself", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self config", + "family": "cli", + "key": "self config", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show or modify mcpp's configuration: the xlings mirror and the retention of build outputs", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self config/--cache-unused-days", + "family": "cli", + "key": "self config --cache-unused-days", + "status": "public", + "source": "src/cli.cppm", + "detail": "Collect build-cache entries no build used for DAYS days (default 30; 0 keeps all)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self config/--keep-days", + "family": "cli", + "key": "self config --keep-days", + "status": "public", + "source": "src/cli.cppm", + "detail": "Sweep a project's build directories no configuration used for DAYS days (default 3; 0 keeps all)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self config/--mirror", + "family": "cli", + "key": "self config --mirror", + "status": "public", + "source": "src/cli.cppm", + "detail": "Set xlings mirror for mcpp's private registry", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self doctor", + "family": "cli", + "key": "self doctor", + "status": "public", + "source": "src/cli.cppm", + "detail": "Diagnose mcpp environment health", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self env", + "family": "cli", + "key": "self env", + "status": "public", + "source": "src/cli.cppm", + "detail": "Print mcpp paths and configuration; with --target, one configuration: toolchain, platform, tools, runner", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self env/--format", + "family": "cli", + "key": "self env --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Machine-readable output (enveloped; see docs/50-machine-output.md)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self env/--host", + "family": "cli", + "key": "self env --host", + "status": "public", + "source": "src/cli.cppm", + "detail": "Report the host graph's configuration: what build programs and tools are built for", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self env/--host-platform", + "family": "cli", + "key": "self env --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self env/--platform", + "family": "cli", + "key": "self env --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self env/--target", + "family": "cli", + "key": "self env --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Report this target's configuration (prepared, not built; the project's when run in one); a target set or several reports each leg", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self explain", + "family": "cli", + "key": "self explain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show extended description for an error code", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self explain/arg:code", + "family": "cli", + "key": "self explain ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Error code such as E0001, or a refusal's reason token such as platform-version-group", + "required": true, + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self init", + "family": "cli", + "key": "self init", + "status": "public", + "source": "src/cli.cppm", + "detail": "Initialize or repair mcpp sandbox", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self init/--force", + "family": "cli", + "key": "self init --force", + "status": "public", + "source": "src/cli.cppm", + "detail": "Rebuild registry/caches; with --home, replace the default without deleting data", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self init/--home", + "family": "cli", + "key": "self init --home", + "status": "public", + "source": "src/cli.cppm", + "detail": "Initialize PATH and remember it from the original home (does not migrate data)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self store", + "family": "cli", + "key": "self store", + "status": "public", + "source": "src/cli.cppm", + "detail": "Compare this home's payloads with its upstreams", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self store dedupe", + "family": "cli", + "key": "self store dedupe", + "status": "public", + "source": "src/cli.cppm", + "detail": "List payloads an upstream has the same of; --apply links them", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self store dedupe/--apply", + "family": "cli", + "key": "self store dedupe --apply", + "status": "public", + "source": "src/cli.cppm", + "detail": "Replace each by a link to the upstream's", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:self version", + "family": "cli", + "key": "self version", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show mcpp version", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:stage", + "family": "cli", + "key": "stage", + "status": "action-helper", + "source": "src/cli.cppm", + "detail": "Copy one file into place: create the destination's parent, write only when the content differs (invoked by build.ninja and by ${mcpp.self} actions)", + "owner": "mcpp-build-actions", + "extracted": true, + "reference": "skills/extensions/mcpp-build-actions/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:stage/--list", + "family": "cli", + "key": "stage --list", + "status": "action-helper", + "source": "src/cli.cppm", + "detail": "Place every `\\t` pair of FILE in one process (#734 E4); several lines naming one destination are its sources", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-actions", + "extracted": true, + "reference": "skills/extensions/mcpp-build-actions/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:stage/--output", + "family": "cli", + "key": "stage --output", + "status": "action-helper", + "source": "src/cli.cppm", + "detail": "Destination path; its parent directory is created", + "takes_value": true, + "repeatable": false, + "short": "o", + "owner": "mcpp-build-actions", + "extracted": true, + "reference": "skills/extensions/mcpp-build-actions/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:stage/--verify", + "family": "cli", + "key": "stage --verify", + "status": "action-helper", + "source": "src/cli.cppm", + "detail": "How an existing destination is judged up to date: content (default) | size", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-build-actions", + "extracted": true, + "reference": "skills/extensions/mcpp-build-actions/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test", + "family": "cli", + "key": "test", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build + run all tests/**/*.cpp (after `--`, args go to each test binary)", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--accel", + "family": "cli", + "key": "test --accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Device backends and architectures (same axis as `mcpp build --accel`)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--archive", + "family": "cli", + "key": "test --archive", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --no-run: write the built tests to FILE. Without: run the tests FILE holds, building nothing (in a checkout of the same project)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--build-timeout", + "family": "cli", + "key": "test --build-timeout", + "status": "public", + "source": "src/cli.cppm", + "detail": "Kill a compile/link drive still running after SECS seconds (default 0 = no limit; POSIX only)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--cache", + "family": "cli", + "key": "test --cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Global dependency cache: global (default) | local | off", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--cap", + "family": "cli", + "key": "test --cap", + "status": "public", + "source": "src/cli.cppm", + "detail": "Pin capability providers (e.g. blas=openblas,lapack=mkl)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--exclude", + "family": "cli", + "key": "test --exclude", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --workspace (or at a virtual workspace root), leave the named member out; repeatable, refused with -p", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--features", + "family": "cli", + "key": "test --features", + "status": "public", + "source": "src/cli.cppm", + "detail": "Activate root-package features, and a dependency's as /, for the test build (comma-separated)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--host-platform", + "family": "cli", + "key": "test --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--list", + "family": "cli", + "key": "test --list", + "status": "public", + "source": "src/cli.cppm", + "detail": "List (filtered) tests without building or running them", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--message-format", + "family": "cli", + "key": "test --message-format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Output format: human (default) | json (NDJSON, one record per test)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--no-accel", + "family": "cli", + "key": "test --no-accel", + "status": "public", + "source": "src/cli.cppm", + "detail": "Test the variant built for no accelerator (same as `mcpp build --no-accel`)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--no-cache", + "family": "cli", + "key": "test --no-cache", + "status": "public", + "source": "src/cli.cppm", + "detail": "Deprecated alias for --cache=off (also clears the build dir)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--no-run", + "family": "cli", + "key": "test --no-run", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build the tests for --target and stop; a build that succeeds is the result (for a target this host cannot execute)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--no-runner", + "family": "cli", + "key": "test --no-runner", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run test binaries directly, ignoring any [target.].runner (a host that runs them natively)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--package", + "family": "cli", + "key": "test --package", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run the tests of the named workspace member (namespace.name or package name, then directory); repeat to test several", + "takes_value": true, + "repeatable": true, + "short": "p", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--platform", + "family": "cli", + "key": "test --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--play-game", + "family": "cli", + "key": "test --play-game", + "status": "public", + "source": "src/cli.cppm", + "detail": "Play a game in the status row while it builds: --play-game=snake|stack|runner, or one at random", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--print-launch", + "family": "cli", + "key": "test --print-launch", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build the one test PATTERN names, then print how it would be started (the mcpp.launch envelope, as `mcpp run --print-launch` prints) instead of running it; arguments after `--` are in its argv", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--profile", + "family": "cli", + "key": "test --profile", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build profile for the test build: dev (default) | release | dist | <[profile.*] name>", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--strict", + "family": "cli", + "key": "test --strict", + "status": "public", + "source": "src/cli.cppm", + "detail": "Treat manifest schema warnings (unknown feature/platform) as errors", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--sysroot", + "family": "cli", + "key": "test --sysroot", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--target", + "family": "cli", + "key": "test --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Cross target triple or target set (same axis as `mcpp build --target`); repeatable: every leg is built, and run where this host reaches it", + "takes_value": true, + "repeatable": true, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--timeout", + "family": "cli", + "key": "test --timeout", + "status": "public", + "source": "src/cli.cppm", + "detail": "Kill a test still RUNNING after SECS seconds (default 300; 0 = no limit)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--toolchain", + "family": "cli", + "key": "test --toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Build the tests with this toolchain for one invocation, e.g. llvm@22.1.8", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--workspace", + "family": "cli", + "key": "test --workspace", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run tests for all workspace members", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/--workspace-timeout", + "family": "cli", + "key": "test --workspace-timeout", + "status": "public", + "source": "src/cli.cppm", + "detail": "Start no further member's tests after SECS seconds since the command began, and report what did not run (default 0 = no limit); the build is bounded by --build-timeout", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:test/arg:pattern", + "family": "cli", + "key": "test ", + "status": "public", + "source": "src/cli.cppm", + "detail": "Run only tests whose name contains PATTERN (optional)", + "required": false, + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain", + "family": "cli", + "key": "toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Install / list / select / remove C++ toolchains", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain default", + "family": "cli", + "key": "toolchain default", + "status": "public", + "source": "src/cli.cppm", + "detail": "Set the default toolchain (and optionally the default target)", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain default/--target", + "family": "cli", + "key": "toolchain default --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Default build target (omit = host)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain default/arg:spec", + "family": "cli", + "key": "toolchain default ", + "status": "public", + "source": "src/cli.cppm", + "detail": "[@] (version may be partial)", + "required": true, + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain default/arg:version", + "family": "cli", + "key": "toolchain default ", + "status": "public", + "source": "src/cli.cppm", + "detail": "(optional, alternative to @-form)", + "required": false, + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain install", + "family": "cli", + "key": "toolchain install", + "status": "public", + "source": "src/cli.cppm", + "detail": "Install a toolchain via mcpp's xlings", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain install/--platform", + "family": "cli", + "key": "toolchain install --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "With --target: the target's platform for this invocation (= MCPP_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain install/--target", + "family": "cli", + "key": "toolchain install --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Install the toolchain payload for (e.g. x86_64-windows-gnu)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain install/arg:compiler", + "family": "cli", + "key": "toolchain install ", + "status": "public", + "source": "src/cli.cppm", + "detail": "gcc | llvm | msvc | emsdk | android-ndk (or gcc@16.1.0; legacy aliases accepted)", + "required": false, + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain install/arg:version", + "family": "cli", + "key": "toolchain install ", + "status": "public", + "source": "src/cli.cppm", + "detail": "e.g. 16.1.0, 15, 15.1", + "required": false, + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain list", + "family": "cli", + "key": "toolchain list", + "status": "public", + "source": "src/cli.cppm", + "detail": "List installed toolchains", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain list/--format", + "family": "cli", + "key": "toolchain list --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Machine-readable output (enveloped; see docs/50-machine-output.md)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain remove", + "family": "cli", + "key": "toolchain remove", + "status": "public", + "source": "src/cli.cppm", + "detail": "Uninstall a toolchain", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain remove/--target", + "family": "cli", + "key": "toolchain remove --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Remove the payload for instead of the host one", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain remove/arg:spec", + "family": "cli", + "key": "toolchain remove ", + "status": "public", + "source": "src/cli.cppm", + "detail": "[@] (exact version)", + "required": true, + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:toolchain remove/arg:version", + "family": "cli", + "key": "toolchain remove ", + "status": "public", + "source": "src/cli.cppm", + "detail": "(optional, alternative to @-form)", + "required": false, + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:update", + "family": "cli", + "key": "update", + "status": "public", + "source": "src/cli.cppm", + "detail": "Re-resolve dependencies and rewrite mcpp.lock", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:update/arg:pkg", + "family": "cli", + "key": "update ", + "status": "public", + "source": "src/cli.cppm", + "detail": "If given, update only that package", + "required": false, + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:version", + "family": "cli", + "key": "version", + "status": "public", + "source": "src/cli.cppm", + "detail": "Show mcpp version", + "owner": "mcpp-commands", + "extracted": true, + "reference": "skills/basics/mcpp-commands/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why", + "family": "cli", + "key": "why", + "status": "public", + "source": "src/cli.cppm", + "detail": "Explain how the toolchain / runtime / deps / runners / sources were resolved", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--features", + "family": "cli", + "key": "why --features", + "status": "public", + "source": "src/cli.cppm", + "detail": "Resolve with these features, as `build --features` does (root features and /)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--format", + "family": "cli", + "key": "why --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Machine-readable output (enveloped; see docs/50-machine-output.md)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--host-platform", + "family": "cli", + "key": "why --host-platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The host graph's platform for this invocation (= MCPP_HOST_PLATFORM)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--platform", + "family": "cli", + "key": "why --platform", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--sysroot", + "family": "cli", + "key": "why --sysroot", + "status": "public", + "source": "src/cli.cppm", + "detail": "The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--target", + "family": "cli", + "key": "why --target", + "status": "public", + "source": "src/cli.cppm", + "detail": "Ask about this target instead of the project's default", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/--toolchain", + "family": "cli", + "key": "why --toolchain", + "status": "public", + "source": "src/cli.cppm", + "detail": "Ask about this toolchain, e.g. llvm@22.1.8", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/arg:subject", + "family": "cli", + "key": "why ", + "status": "public", + "source": "src/cli.cppm", + "detail": "for `tool` and `payload`: the name to look up", + "required": false, + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:why/arg:topic", + "family": "cli", + "key": "why ", + "status": "public", + "source": "src/cli.cppm", + "detail": "toolchain | sysroot | runtime | deps | runners | sources | tool | payload | build-programs | compat (default: all)", + "required": false, + "owner": "mcpp-troubleshooting", + "extracted": true, + "reference": "skills/operations/mcpp-troubleshooting/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg", + "family": "cli", + "key": "xpkg", + "status": "public", + "source": "src/cli.cppm", + "detail": "Inspect / validate xpkg descriptors", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg parse", + "family": "cli", + "key": "xpkg parse", + "status": "public", + "source": "src/cli.cppm", + "detail": "Parse a descriptor's mcpp segment exactly as the resolver would (strict: unknown keys are errors)", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg parse/--all-os", + "family": "cli", + "key": "xpkg parse --all-os", + "status": "public", + "source": "src/cli.cppm", + "detail": "Validate every per-OS section (linux/macosx/windows), not just the running host's", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg parse/--allow-split-name", + "family": "cli", + "key": "xpkg parse --allow-split-name", + "status": "public", + "source": "src/cli.cppm", + "detail": "OBSOLETE (kept accepted so 0.0.105-era index CI keeps working): skip the package.name form check. Since 0.0.106 the canonical form IS the short name, so xlings-native descriptors pass without this flag", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg parse/--allow-unknown", + "family": "cli", + "key": "xpkg parse --allow-unknown", + "status": "public", + "source": "src/cli.cppm", + "detail": "Downgrade unknown mcpp-segment keys from error to warning", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg parse/--format", + "family": "cli", + "key": "xpkg parse --format", + "status": "public", + "source": "src/cli.cppm", + "detail": "Machine-readable output (enveloped; see docs/50-machine-output.md)", + "takes_value": true, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "cli:xpkg parse/--json", + "family": "cli", + "key": "xpkg parse --json", + "status": "public", + "source": "src/cli.cppm", + "detail": "Emit machine-readable JSON (legacy payload, kept for ever)", + "takes_value": false, + "repeatable": false, + "short": "", + "owner": "mcpp-publishing", + "extracted": true, + "reference": "skills/packaging/mcpp-publishing/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:action", + "family": "directive", + "key": "mcpp:action", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=GraphNode; transform=Verbatim; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:artifact-name", + "family": "directive", + "key": "mcpp:artifact-name", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:cfg", + "family": "directive", + "key": "mcpp:cfg", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=PackagePrivate; transform=DefinePrefix; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:cflag", + "family": "directive", + "key": "mcpp:cflag", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=PackagePrivate; transform=Verbatim; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:cxxflag", + "family": "directive", + "key": "mcpp:cxxflag", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=PackagePrivate; transform=Verbatim; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:decision", + "family": "directive", + "key": "mcpp:decision", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Advisory; transform=Verbatim; since protocol=15; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:deploy", + "family": "directive", + "key": "mcpp:deploy", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Deploy; since protocol=11; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:diagnostic", + "family": "directive", + "key": "mcpp:diagnostic", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Advisory; transform=Verbatim; since protocol=14; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:fact", + "family": "directive", + "key": "mcpp:fact", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Claim; transform=Verbatim; since protocol=7; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:floor", + "family": "directive", + "key": "mcpp:floor", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Claim; transform=Verbatim; since protocol=7; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:generated", + "family": "directive", + "key": "mcpp:generated", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=SourceSet; transform=Verbatim; since protocol=1; requires output=true", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:include-dir", + "family": "directive", + "key": "mcpp:include-dir", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=PackagePrivate; transform=AbsPath; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:include-dir-after", + "family": "directive", + "key": "mcpp:include-dir-after", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=PackagePrivate; transform=AbsPath; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-driver", + "family": "directive", + "key": "mcpp:link-driver", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-flag", + "family": "directive", + "key": "mcpp:link-flag", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Verbatim; since protocol=8; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-input", + "family": "directive", + "key": "mcpp:link-input", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-lib", + "family": "directive", + "key": "mcpp:link-lib", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=LibFlag; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-script", + "family": "directive", + "key": "mcpp:link-script", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=LinkerScript; since protocol=3; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-search", + "family": "directive", + "key": "mcpp:link-search", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=LibSearchPath; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:link-start", + "family": "directive", + "key": "mcpp:link-start", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Verbatim; since protocol=16; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:pack-format", + "family": "directive", + "key": "mcpp:pack-format", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Claim; transform=Verbatim; since protocol=9; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:rerun-if-changed", + "family": "directive", + "key": "mcpp:rerun-if-changed", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RerunKey; transform=Verbatim; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:rerun-if-changed-glob", + "family": "directive", + "key": "mcpp:rerun-if-changed-glob", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RerunKey; transform=Verbatim; since protocol=2; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:rerun-if-env-changed", + "family": "directive", + "key": "mcpp:rerun-if-env-changed", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RerunKey; transform=Verbatim; since protocol=1; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:run-exclusive", + "family": "directive", + "key": "mcpp:run-exclusive", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RunGlobal; transform=Verbatim; since protocol=6; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:run-host", + "family": "directive", + "key": "mcpp:run-host", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RunGlobal; transform=Verbatim; since protocol=17; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:runner", + "family": "directive", + "key": "mcpp:runner", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RunGlobal; transform=Verbatim; since protocol=4; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:runner-longlived", + "family": "directive", + "key": "mcpp:runner-longlived", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RunGlobal; transform=Verbatim; since protocol=6; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:runner-named", + "family": "directive", + "key": "mcpp:runner-named", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=RunGlobal; transform=Verbatim; since protocol=6; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:runtime-search-dir", + "family": "directive", + "key": "mcpp:runtime-search-dir", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=AbsPath; since protocol=12; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:seal", + "family": "directive", + "key": "mcpp:seal", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:source", + "family": "directive", + "key": "mcpp:source", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=SourceSet; transform=Verbatim; since protocol=1; requires output=true", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:toolchain", + "family": "directive", + "key": "mcpp:toolchain", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Claim; transform=Verbatim; since protocol=15; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:warning", + "family": "directive", + "key": "mcpp:warning", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Advisory; transform=Verbatim; since protocol=5; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:windows-entry", + "family": "directive", + "key": "mcpp:windows-entry", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=TargetLink; transform=Verbatim; since protocol=10; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:windows-subsystem", + "family": "directive", + "key": "mcpp:windows-subsystem", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=TargetLink; transform=Verbatim; since protocol=10; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "directive:xpkg-request", + "family": "directive", + "key": "mcpp:xpkg-request", + "source": "modules/buildmcpp/src/directives.cppm", + "status": "public", + "detail": "scope=Claim; transform=Verbatim; since protocol=15; requires output=false", + "owner": "mcpp-build-api", + "extracted": true, + "reference": "skills/extensions/mcpp-build-api/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_", + "family": "env", + "key": "MCPP_ABI_TOOL_", + "source": "src/build/hostprogram.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_AR", + "family": "env", + "key": "MCPP_ABI_TOOL_AR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_AS", + "family": "env", + "key": "MCPP_ABI_TOOL_AS", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_CC", + "family": "env", + "key": "MCPP_ABI_TOOL_CC", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_CXX", + "family": "env", + "key": "MCPP_ABI_TOOL_CXX", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_LD", + "family": "env", + "key": "MCPP_ABI_TOOL_LD", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_MT", + "family": "env", + "key": "MCPP_ABI_TOOL_MT", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ABI_TOOL_RC", + "family": "env", + "key": "MCPP_ABI_TOOL_RC", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_ACCEL", + "family": "env", + "key": "MCPP_ACCEL", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_COMPILER", + "family": "env", + "key": "MCPP_COMPILER", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_CXX_ABI_ROOT", + "family": "env", + "key": "MCPP_CXX_ABI_ROOT", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_CXX_RUNTIME", + "family": "env", + "key": "MCPP_CXX_RUNTIME", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_CXX_STDLIB", + "family": "env", + "key": "MCPP_CXX_STDLIB", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_DENY_EFFECTS", + "family": "env", + "key": "MCPP_DENY_EFFECTS", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_DEP_", + "family": "env", + "key": "MCPP_DEP_", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_DEP_AMBIGUOUS_", + "family": "env", + "key": "MCPP_DEP_AMBIGUOUS_", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_DEVICE_SOURCES", + "family": "env", + "key": "MCPP_DEVICE_SOURCES", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_FEATURES", + "family": "env", + "key": "MCPP_FEATURES", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_FEATURE_", + "family": "env", + "key": "MCPP_FEATURE_", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_GRAPH_FILE", + "family": "env", + "key": "MCPP_GRAPH_FILE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_HOME", + "family": "env", + "key": "MCPP_HOME", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_HOST", + "family": "env", + "key": "MCPP_HOST", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_HOST_PLATFORM", + "family": "env", + "key": "MCPP_HOST_PLATFORM", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_JOBS", + "family": "env", + "key": "MCPP_JOBS", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_LANGUAGE_MODULES", + "family": "env", + "key": "MCPP_LANGUAGE_MODULES", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_LOCKED", + "family": "env", + "key": "MCPP_LOCKED", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_MANAGED_ONLY", + "family": "env", + "key": "MCPP_MANAGED_ONLY", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_MANIFEST_DIR", + "family": "env", + "key": "MCPP_MANIFEST_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_MSVC_CRT_LINKAGE", + "family": "env", + "key": "MCPP_MSVC_CRT_LINKAGE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_MSVC_INSTANCE_DIR", + "family": "env", + "key": "MCPP_MSVC_INSTANCE_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_NINJA", + "family": "env", + "key": "MCPP_NINJA", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_OFFLINE", + "family": "env", + "key": "MCPP_OFFLINE", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_OUT_DIR", + "family": "env", + "key": "MCPP_OUT_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PACK_DEBUG_SYMBOLS_DIR", + "family": "env", + "key": "MCPP_PACK_DEBUG_SYMBOLS_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PACK_FORMAT", + "family": "env", + "key": "MCPP_PACK_FORMAT", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PACK_STAGE_DIR", + "family": "env", + "key": "MCPP_PACK_STAGE_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PACK_STRIP", + "family": "env", + "key": "MCPP_PACK_STRIP", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PHASE", + "family": "env", + "key": "MCPP_PHASE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_AUTHORS", + "family": "env", + "key": "MCPP_PKG_AUTHORS", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_CONFIG_LIBDIR", + "family": "env", + "key": "MCPP_PKG_CONFIG_LIBDIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_DESCRIPTION", + "family": "env", + "key": "MCPP_PKG_DESCRIPTION", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_LICENSE", + "family": "env", + "key": "MCPP_PKG_LICENSE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_NAME", + "family": "env", + "key": "MCPP_PKG_NAME", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_NAMESPACE", + "family": "env", + "key": "MCPP_PKG_NAMESPACE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_REPO", + "family": "env", + "key": "MCPP_PKG_REPO", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PKG_VERSION", + "family": "env", + "key": "MCPP_PKG_VERSION", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PLATFORM", + "family": "env", + "key": "MCPP_PLATFORM", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PLAY_GAME", + "family": "env", + "key": "MCPP_PLAY_GAME", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_PROFILE", + "family": "env", + "key": "MCPP_PROFILE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_SYSROOT", + "family": "env", + "key": "MCPP_SYSROOT", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET", + "family": "env", + "key": "MCPP_TARGET", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_ARCH", + "family": "env", + "key": "MCPP_TARGET_ARCH", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_BUILTINS_LIB", + "family": "env", + "key": "MCPP_TARGET_BUILTINS_LIB", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_ENV", + "family": "env", + "key": "MCPP_TARGET_ENV", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_LIBC", + "family": "env", + "key": "MCPP_TARGET_LIBC", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_LIBC_PROFILE", + "family": "env", + "key": "MCPP_TARGET_LIBC_PROFILE", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_MIN_PLATFORM_VERSION", + "family": "env", + "key": "MCPP_TARGET_MIN_PLATFORM_VERSION", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_OS", + "family": "env", + "key": "MCPP_TARGET_OS", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_REQUESTED", + "family": "env", + "key": "MCPP_TARGET_REQUESTED", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TARGET_SYSROOT", + "family": "env", + "key": "MCPP_TARGET_SYSROOT", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOLCHAIN", + "family": "env", + "key": "MCPP_TOOLCHAIN", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOLCHAIN_BINUTILS_DIR", + "family": "env", + "key": "MCPP_TOOLCHAIN_BINUTILS_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOLCHAIN_DIR", + "family": "env", + "key": "MCPP_TOOLCHAIN_DIR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOLCHAIN_SYSROOT", + "family": "env", + "key": "MCPP_TOOLCHAIN_SYSROOT", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOLSET_IDENTITY", + "family": "env", + "key": "MCPP_TOOLSET_IDENTITY", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_", + "family": "env", + "key": "MCPP_TOOL_", + "source": "src/build/hostprogram.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_AR", + "family": "env", + "key": "MCPP_TOOL_AR", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_AS", + "family": "env", + "key": "MCPP_TOOL_AS", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_CC", + "family": "env", + "key": "MCPP_TOOL_CC", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_CXX", + "family": "env", + "key": "MCPP_TOOL_CXX", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_ENV", + "family": "env", + "key": "MCPP_TOOL_ENV", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_LD", + "family": "env", + "key": "MCPP_TOOL_LD", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_MT", + "family": "env", + "key": "MCPP_TOOL_MT", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_TOOL_RC", + "family": "env", + "key": "MCPP_TOOL_RC", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_VENDORED_XLINGS", + "family": "env", + "key": "MCPP_VENDORED_XLINGS", + "source": "src/config.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_VERBOSE", + "family": "env", + "key": "MCPP_VERBOSE", + "source": "src/cli.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "env:MCPP_XPKG_", + "family": "env", + "key": "MCPP_XPKG_", + "source": "src/build/build_program.cppm", + "status": "review-candidate", + "detail": "source identifier; inspect caller before setting", + "sources": [ + "src/build/build_program.cppm", + "src/build/hostprogram.cppm" + ], + "owner": "mcpp-environment", + "extracted": true, + "reference": "skills/operations/mcpp-environment/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build", + "family": "manifest", + "key": "build", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build-dependencies", + "family": "manifest", + "key": "build-dependencies", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false", + "status": "review-candidate", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.accel", + "family": "manifest", + "key": "build.accel", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.allow_host_libs", + "family": "manifest", + "key": "build.allow_host_libs", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Scalar; shared=false; conditional=false / parser reader: bool", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.bmi_schedule", + "family": "manifest", + "key": "build.bmi_schedule", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.build_program_timeout", + "family": "manifest", + "key": "build.build_program_timeout", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Scalar; shared=false; conditional=false", + "status": "review-candidate", + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.c_standard", + "family": "manifest", + "key": "build.c_standard", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Scalar; shared=true; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.cache", + "family": "manifest", + "key": "build.cache", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.cflags", + "family": "manifest", + "key": "build.cflags", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.compile_commands", + "family": "manifest", + "key": "build.compile_commands", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Metadata; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.cxx_runtime", + "family": "manifest", + "key": "build.cxx_runtime", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=false", + "status": "review-candidate", + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.cxxflags", + "family": "manifest", + "key": "build.cxxflags", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.default-profile", + "family": "manifest", + "key": "build.default-profile", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.defines", + "family": "manifest", + "key": "build.defines", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Defines; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.dependency_linkage", + "family": "manifest", + "key": "build.dependency_linkage", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.dialect_cxxflags", + "family": "manifest", + "key": "build.dialect_cxxflags", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.flags", + "family": "manifest", + "key": "build.flags", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=false; conditional=true", + "status": "review-candidate", + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.include_dirs", + "family": "manifest", + "key": "build.include_dirs", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Usage; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.include_dirs_after", + "family": "manifest", + "key": "build.include_dirs_after", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Usage; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.ios_deployment_target", + "family": "manifest", + "key": "build.ios_deployment_target", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.jobs", + "family": "manifest", + "key": "build.jobs", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string / parser reader: int", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.ldflags", + "family": "manifest", + "key": "build.ldflags", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Usage; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.macos_deployment_target", + "family": "manifest", + "key": "build.macos_deployment_target", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.module_extensions", + "family": "manifest", + "key": "build.module_extensions", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=false; conditional=false / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.platform-dependencies", + "family": "manifest", + "key": "build.platform-dependencies", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.private_include_dirs", + "family": "manifest", + "key": "build.private_include_dirs", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=true; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.profile", + "family": "manifest", + "key": "build.profile", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.sources", + "family": "manifest", + "key": "build.sources", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=false; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.static_stdlib", + "family": "manifest", + "key": "build.static_stdlib", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=false; conditional=false / parser reader: bool", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.std-compat-module", + "family": "manifest", + "key": "build.std-compat-module", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.std-module", + "family": "manifest", + "key": "build.std-module", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Scalar; shared=false; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.std-module-flags", + "family": "manifest", + "key": "build.std-module-flags", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=List; shared=false; conditional=true / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:build.target", + "family": "manifest", + "key": "build.target", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=false / parser reader: string", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:c-abi", + "family": "manifest", + "key": "c-abi", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:c-abi.builtins", + "family": "manifest", + "key": "c-abi.builtins", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CAbi", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:c-abi.data-model", + "family": "manifest", + "key": "c-abi.data-model", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CAbi", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:c-abi.presents", + "family": "manifest", + "key": "c-abi.presents", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CAbi", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:c-abi.wchar", + "family": "manifest", + "key": "c-abi.wchar", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CAbi", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:capabilities", + "family": "manifest", + "key": "capabilities", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:dependencies", + "family": "manifest", + "key": "dependencies", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false", + "status": "review-candidate", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:dev-dependencies", + "family": "manifest", + "key": "dev-dependencies", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false", + "status": "review-candidate", + "owner": "mcpp-dependencies", + "extracted": true, + "reference": "skills/workflow/mcpp-dependencies/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:feature-deps", + "family": "manifest", + "key": "feature-deps", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:feature-xlings", + "family": "manifest", + "key": "feature-xlings", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features", + "family": "manifest", + "key": "features", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..defines", + "family": "manifest", + "key": "features..defines", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..device_extensions", + "family": "manifest", + "key": "features..device_extensions", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..flags", + "family": "manifest", + "key": "features..flags", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..forward", + "family": "manifest", + "key": "features..forward", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..implies", + "family": "manifest", + "key": "features..implies", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..provides", + "family": "manifest", + "key": "features..provides", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..requires", + "family": "manifest", + "key": "features..requires", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..requires_abi", + "family": "manifest", + "key": "features..requires_abi", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..rule_module", + "family": "manifest", + "key": "features..rule_module", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..sources", + "family": "manifest", + "key": "features..sources", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:features..tools", + "family": "manifest", + "key": "features..tools", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Feature", + "status": "review-candidate", + "owner": "mcpp-features", + "extracted": true, + "reference": "skills/project-config/mcpp-features/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:generated_files", + "family": "manifest", + "key": "generated_files", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:hooks", + "family": "manifest", + "key": "hooks", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:host", + "family": "manifest", + "key": "host", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:indices", + "family": "manifest", + "key": "indices", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-indices", + "extracted": true, + "reference": "skills/workflow/mcpp-indices/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:kernel-abi", + "family": "manifest", + "key": "kernel-abi", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:kernel-abi.provides-interfaces", + "family": "manifest", + "key": "kernel-abi.provides-interfaces", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: KernelAbi", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:kernel-abi.requires-interfaces", + "family": "manifest", + "key": "kernel-abi.requires-interfaces", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: KernelAbi", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:language", + "family": "manifest", + "key": "language", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:language.import_std", + "family": "manifest", + "key": "language.import_std", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: bool", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:language.modules", + "family": "manifest", + "key": "language.modules", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: bool", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:language.standard", + "family": "manifest", + "key": "language.standard", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:lib", + "family": "manifest", + "key": "lib", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:lib.path", + "family": "manifest", + "key": "lib.path", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:modules.exports", + "family": "manifest", + "key": "modules.exports", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:modules.sources", + "family": "manifest", + "key": "modules.sources", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:modules.strict", + "family": "manifest", + "key": "modules.strict", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: bool", + "status": "review-candidate", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.bundle-project.also_skip", + "family": "manifest", + "key": "pack.bundle-project.also_skip", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.bundle-project.force_bundle", + "family": "manifest", + "key": "pack.bundle-project.force_bundle", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.compress", + "family": "manifest", + "key": "pack.compress", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.debug_symbols", + "family": "manifest", + "key": "pack.debug_symbols", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.default_mode", + "family": "manifest", + "key": "pack.default_mode", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.exclude", + "family": "manifest", + "key": "pack.exclude", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.format", + "family": "manifest", + "key": "pack.format", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.include", + "family": "manifest", + "key": "pack.include", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.linkage", + "family": "manifest", + "key": "pack.linkage", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.sign", + "family": "manifest", + "key": "pack.sign", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.strip", + "family": "manifest", + "key": "pack.strip", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: bool", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.systems", + "family": "manifest", + "key": "pack.systems", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.targets", + "family": "manifest", + "key": "pack.targets", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / parser reader: string_array", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:pack.universal", + "family": "manifest", + "key": "pack.universal", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: bool", + "status": "review-candidate", + "owner": "mcpp-packaging", + "extracted": true, + "reference": "skills/packaging/mcpp-packaging/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package", + "family": "manifest", + "key": "package", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Metadata; merge=Table; shared=true; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.accelerators", + "family": "manifest", + "key": "package.accelerators", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.authors", + "family": "manifest", + "key": "package.authors", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.c-environment", + "family": "manifest", + "key": "package.c-environment", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.description", + "family": "manifest", + "key": "package.description", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.exclusive", + "family": "manifest", + "key": "package.exclusive", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.license", + "family": "manifest", + "key": "package.license", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.mcpp", + "family": "manifest", + "key": "package.mcpp", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.metadata", + "family": "manifest", + "key": "package.metadata", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.name", + "family": "manifest", + "key": "package.name", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.namespace", + "family": "manifest", + "key": "package.namespace", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.platforms", + "family": "manifest", + "key": "package.platforms", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.provides", + "family": "manifest", + "key": "package.provides", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.repo", + "family": "manifest", + "key": "package.repo", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.requires", + "family": "manifest", + "key": "package.requires", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Package", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.requires_abi", + "family": "manifest", + "key": "package.requires_abi", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Package", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.standard", + "family": "manifest", + "key": "package.standard", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / parser reader: int / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.std-compat-module", + "family": "manifest", + "key": "package.std-compat-module", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.std-module", + "family": "manifest", + "key": "package.std-module", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.std-module-flags", + "family": "manifest", + "key": "package.std-module-flags", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:package.version", + "family": "manifest", + "key": "package.version", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Package", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.CondRuntime.frameworks", + "family": "manifest", + "key": "parser.CondRuntime.frameworks", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CondRuntime", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.CondRuntime.libraries", + "family": "manifest", + "key": "parser.CondRuntime.libraries", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CondRuntime", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.CondRuntime.link_library_dirs", + "family": "manifest", + "key": "parser.CondRuntime.link_library_dirs", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: CondRuntime", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.build_failed", + "family": "manifest", + "key": "parser.Hook.build_failed", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.build_finished", + "family": "manifest", + "key": "parser.Hook.build_finished", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.build_start", + "family": "manifest", + "key": "parser.Hook.build_start", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.during_build", + "family": "manifest", + "key": "parser.Hook.during_build", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.enabled", + "family": "manifest", + "key": "parser.Hook.enabled", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.side_effect", + "family": "manifest", + "key": "parser.Hook.side_effect", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:parser.Hook.timeout_seconds", + "family": "manifest", + "key": "parser.Hook.timeout_seconds", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Hook", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform", + "family": "manifest", + "key": "platform", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.carrier.build", + "family": "manifest", + "key": "platform-reader.carrier.build", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::carrier; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.carrier.hosts", + "family": "manifest", + "key": "platform-reader.carrier.hosts", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::carrier; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.carrier.main", + "family": "manifest", + "key": "platform-reader.carrier.main", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::carrier; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.carrier.package", + "family": "manifest", + "key": "platform-reader.carrier.package", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::carrier; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.carrier.section", + "family": "manifest", + "key": "platform-reader.carrier.section", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::carrier; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.flags.asmflags", + "family": "manifest", + "key": "platform-reader.flags.asmflags", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::flags; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.flags.cflags", + "family": "manifest", + "key": "platform-reader.flags.cflags", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::flags; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.flags.cxxflags", + "family": "manifest", + "key": "platform-reader.flags.cxxflags", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::flags; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.flags.ldflags", + "family": "manifest", + "key": "platform-reader.flags.ldflags", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::flags; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.driver", + "family": "manifest", + "key": "platform-reader.link.driver", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.exe", + "family": "manifest", + "key": "platform-reader.link.exe", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.flags", + "family": "manifest", + "key": "platform-reader.link.flags", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.inputs", + "family": "manifest", + "key": "platform-reader.link.inputs", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.script", + "family": "manifest", + "key": "platform-reader.link.script", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.seal", + "family": "manifest", + "key": "platform-reader.link.seal", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.shared", + "family": "manifest", + "key": "platform-reader.link.shared", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.link.start", + "family": "manifest", + "key": "platform-reader.link.start", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::link; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.carrier", + "family": "manifest", + "key": "platform-reader.override_.carrier", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.layers", + "family": "manifest", + "key": "platform-reader.override_.layers", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.link", + "family": "manifest", + "key": "platform-reader.override_.link", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.platform", + "family": "manifest", + "key": "platform-reader.override_.platform", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.runner", + "family": "manifest", + "key": "platform-reader.override_.runner", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.runners", + "family": "manifest", + "key": "platform-reader.override_.runners", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.override_.tools", + "family": "manifest", + "key": "platform-reader.override_.tools", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::override_; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.branch", + "family": "manifest", + "key": "platform-reader.ref.branch", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.default-features", + "family": "manifest", + "key": "platform-reader.ref.default-features", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.features", + "family": "manifest", + "key": "platform-reader.ref.features", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.git", + "family": "manifest", + "key": "platform-reader.ref.git", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.name", + "family": "manifest", + "key": "platform-reader.ref.name", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.path", + "family": "manifest", + "key": "platform-reader.ref.path", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.rev", + "family": "manifest", + "key": "platform-reader.ref.rev", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.tag", + "family": "manifest", + "key": "platform-reader.ref.tag", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.ref.version", + "family": "manifest", + "key": "platform-reader.ref.version", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::ref; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.runner.cmd", + "family": "manifest", + "key": "platform-reader.runner.cmd", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::runner; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.runner.exclusive", + "family": "manifest", + "key": "platform-reader.runner.exclusive", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::runner; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.runner.host", + "family": "manifest", + "key": "platform-reader.runner.host", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::runner; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.runner.hosts", + "family": "manifest", + "key": "platform-reader.runner.hosts", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::runner; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.build", + "family": "manifest", + "key": "platform-reader.statement.build", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.carrier", + "family": "manifest", + "key": "platform-reader.statement.carrier", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.descriptor_keys", + "family": "manifest", + "key": "platform-reader.statement.descriptor_keys", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.hosted", + "family": "manifest", + "key": "platform-reader.statement.hosted", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.layers", + "family": "manifest", + "key": "platform-reader.statement.layers", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.link", + "family": "manifest", + "key": "platform-reader.statement.link", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.plugin", + "family": "manifest", + "key": "platform-reader.statement.plugin", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.runner", + "family": "manifest", + "key": "platform-reader.statement.runner", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.runners", + "family": "manifest", + "key": "platform-reader.statement.runners", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.sysroot", + "family": "manifest", + "key": "platform-reader.statement.sysroot", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.targets", + "family": "manifest", + "key": "platform-reader.statement.targets", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.toolchain", + "family": "manifest", + "key": "platform-reader.statement.toolchain", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.tools", + "family": "manifest", + "key": "platform-reader.statement.tools", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.universal", + "family": "manifest", + "key": "platform-reader.statement.universal", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:platform-reader.statement.versions", + "family": "manifest", + "key": "platform-reader.statement.versions", + "source": "modules/manifest/src/platform_toml.cppm", + "detail": "Reader::statement; context-sensitive field", + "status": "review-candidate", + "owner": "mcpp-platform-packages", + "extracted": true, + "reference": "skills/extensions/mcpp-platform-packages/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:profile", + "family": "manifest", + "key": "profile", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:profile.", + "family": "manifest", + "key": "profile.", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=false", + "status": "review-candidate", + "owner": "mcpp-build-options", + "extracted": true, + "reference": "skills/project-config/mcpp-build-options/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources", + "family": "manifest", + "key": "resources", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.extra-inputs", + "family": "manifest", + "key": "resources.extra-inputs", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Resource", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.files", + "family": "manifest", + "key": "resources.files", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Resource", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.icon", + "family": "manifest", + "key": "resources.icon", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / accepted-key table: Resource", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info", + "family": "manifest", + "key": "resources.version-info", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Resource", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info.company", + "family": "manifest", + "key": "resources.version-info.company", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: VersionInfo", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info.copyright", + "family": "manifest", + "key": "resources.version-info.copyright", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: VersionInfo", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info.description", + "family": "manifest", + "key": "resources.version-info.description", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: VersionInfo", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info.internal-name", + "family": "manifest", + "key": "resources.version-info.internal-name", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: VersionInfo", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info.original-filename", + "family": "manifest", + "key": "resources.version-info.original-filename", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: VersionInfo", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:resources.version-info.product", + "family": "manifest", + "key": "resources.version-info.product", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: VersionInfo", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime", + "family": "manifest", + "key": "runtime", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.artifacts", + "family": "manifest", + "key": "runtime.artifacts", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.capabilities", + "family": "manifest", + "key": "runtime.capabilities", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Runtime", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.deploy", + "family": "manifest", + "key": "runtime.deploy", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.deploy_files", + "family": "manifest", + "key": "runtime.deploy_files", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.dlopen_libs", + "family": "manifest", + "key": "runtime.dlopen_libs", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Runtime", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.frameworks", + "family": "manifest", + "key": "runtime.frameworks", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Runtime", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.libraries", + "family": "manifest", + "key": "runtime.libraries", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Runtime", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.library_dirs", + "family": "manifest", + "key": "runtime.library_dirs", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Runtime", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.link_library_dirs", + "family": "manifest", + "key": "runtime.link_library_dirs", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.provides", + "family": "manifest", + "key": "runtime.provides", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array / accepted-key table: Runtime", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.requirements", + "family": "manifest", + "key": "runtime.requirements", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.runtime_search_dirs", + "family": "manifest", + "key": "runtime.runtime_search_dirs", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:runtime.transitive_needed_dirs", + "family": "manifest", + "key": "runtime.transitive_needed_dirs", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Runtime", + "status": "review-candidate", + "owner": "mcpp-runtime", + "extracted": true, + "reference": "skills/toolchains/mcpp-runtime/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:scan_overrides", + "family": "manifest", + "key": "scan_overrides", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target", + "family": "manifest", + "key": "target", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..abi", + "family": "manifest", + "key": "target..abi", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..carrier", + "family": "manifest", + "key": "target..carrier", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..cxx_runtime", + "family": "manifest", + "key": "target..cxx_runtime", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..dependencies", + "family": "manifest", + "key": "target..dependencies", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..layers", + "family": "manifest", + "key": "target..layers", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..link", + "family": "manifest", + "key": "target..link", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..linkage", + "family": "manifest", + "key": "target..linkage", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..min_api_level", + "family": "manifest", + "key": "target..min_api_level", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..platform", + "family": "manifest", + "key": "target..platform", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..run_under", + "family": "manifest", + "key": "target..run_under", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..runner", + "family": "manifest", + "key": "target..runner", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..runtime", + "family": "manifest", + "key": "target..runtime", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Usage; merge=Table; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..sysroot", + "family": "manifest", + "key": "target..sysroot", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..targets", + "family": "manifest", + "key": "target..targets", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..toolchain", + "family": "manifest", + "key": "target..toolchain", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Scalar; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..tools", + "family": "manifest", + "key": "target..tools", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:target..xlings", + "family": "manifest", + "key": "target..xlings", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=true", + "status": "review-candidate", + "owner": "mcpp-cross-compilation", + "extracted": true, + "reference": "skills/toolchains/mcpp-cross-compilation/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets", + "family": "manifest", + "key": "targets", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..cflags", + "family": "manifest", + "key": "targets..cflags", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..cxxflags", + "family": "manifest", + "key": "targets..cxxflags", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..defines", + "family": "manifest", + "key": "targets..defines", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..exports", + "family": "manifest", + "key": "targets..exports", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..kind", + "family": "manifest", + "key": "targets..kind", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..linkage", + "family": "manifest", + "key": "targets..linkage", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..main", + "family": "manifest", + "key": "targets..main", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..required_features", + "family": "manifest", + "key": "targets..required_features", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..soname", + "family": "manifest", + "key": "targets..soname", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..start", + "family": "manifest", + "key": "targets..start", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..windows_auto_export", + "family": "manifest", + "key": "targets..windows_auto_export", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..windows_code_page", + "family": "manifest", + "key": "targets..windows_code_page", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..windows_entry", + "family": "manifest", + "key": "targets..windows_entry", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..windows_long_paths", + "family": "manifest", + "key": "targets..windows_long_paths", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:targets..windows_subsystem", + "family": "manifest", + "key": "targets..windows_subsystem", + "source": "modules/manifest/src/toml.cppm", + "detail": "accepted-key table: Target", + "status": "review-candidate", + "owner": "mcpp-targets", + "extracted": true, + "reference": "skills/project-config/mcpp-targets/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:test", + "family": "manifest", + "key": "test", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Package; merge=Table; shared=false; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-tests", + "extracted": true, + "reference": "skills/workflow/mcpp-tests/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:toolchain", + "family": "manifest", + "key": "toolchain", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-toolchains", + "extracted": true, + "reference": "skills/toolchains/mcpp-toolchains/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:tools.overrides", + "family": "manifest", + "key": "tools.overrides", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-manifest", + "extracted": true, + "reference": "skills/project-config/mcpp-manifest/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace", + "family": "manifest", + "key": "workspace", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.build", + "family": "manifest", + "key": "workspace.build", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.dependencies", + "family": "manifest", + "key": "workspace.dependencies", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.exclude", + "family": "manifest", + "key": "workspace.exclude", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.members", + "family": "manifest", + "key": "workspace.members", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package", + "family": "manifest", + "key": "workspace.package", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.authors", + "family": "manifest", + "key": "workspace.package.authors", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string_array", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.description", + "family": "manifest", + "key": "workspace.package.description", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.license", + "family": "manifest", + "key": "workspace.package.license", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.mcpp", + "family": "manifest", + "key": "workspace.package.mcpp", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.repo", + "family": "manifest", + "key": "workspace.package.repo", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.standard", + "family": "manifest", + "key": "workspace.package.standard", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string / parser reader: int", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:workspace.package.version", + "family": "manifest", + "key": "workspace.package.version", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-workspaces", + "extracted": true, + "reference": "skills/project-config/mcpp-workspaces/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:xlings", + "family": "manifest", + "key": "xlings", + "source": "modules/manifest/src/key_registry.cppm", + "detail": "scope=Configuration; merge=Table; shared=true; conditional=false / parser reader: table", + "status": "review-candidate", + "sources": [ + "modules/manifest/src/key_registry.cppm", + "modules/manifest/src/toml.cppm" + ], + "owner": "mcpp-external-tools", + "extracted": true, + "reference": "skills/toolchains/mcpp-external-tools/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:xlings.overrides", + "family": "manifest", + "key": "xlings.overrides", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-external-tools", + "extracted": true, + "reference": "skills/toolchains/mcpp-external-tools/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:xlings.subos", + "family": "manifest", + "key": "xlings.subos", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: string", + "status": "review-candidate", + "owner": "mcpp-external-tools", + "extracted": true, + "reference": "skills/toolchains/mcpp-external-tools/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "manifest:xlings.workspace", + "family": "manifest", + "key": "xlings.workspace", + "source": "modules/manifest/src/toml.cppm", + "detail": "parser reader: table", + "status": "review-candidate", + "owner": "mcpp-external-tools", + "extracted": true, + "reference": "skills/toolchains/mcpp-external-tools/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.S", + "family": "source-kind", + "key": ".S", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Gas", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.asc", + "family": "source-kind", + "key": ".asc", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.asm", + "family": "source-kind", + "key": ".asm", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Nasm", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.c", + "family": "source-kind", + "key": ".c", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=C", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cc", + "family": "source-kind", + "key": ".cc", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Cxx", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cce", + "family": "source-kind", + "key": ".cce", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cl", + "family": "source-kind", + "key": ".cl", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.comp", + "family": "source-kind", + "key": ".comp", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cpp", + "family": "source-kind", + "key": ".cpp", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Cxx", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cppm", + "family": "source-kind", + "key": ".cppm", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=ModuleInterface", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cu", + "family": "source-kind", + "key": ".cu", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cuh", + "family": "source-kind", + "key": ".cuh", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=DeviceHeader", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.cxx", + "family": "source-kind", + "key": ".cxx", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Cxx", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.frag", + "family": "source-kind", + "key": ".frag", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.geom", + "family": "source-kind", + "key": ".geom", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.glsl", + "family": "source-kind", + "key": ".glsl", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.h", + "family": "source-kind", + "key": ".h", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Header", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.hh", + "family": "source-kind", + "key": ".hh", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Header", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.hip", + "family": "source-kind", + "key": ".hip", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.hiph", + "family": "source-kind", + "key": ".hiph", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=DeviceHeader", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.hlsl", + "family": "source-kind", + "key": ".hlsl", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.hpp", + "family": "source-kind", + "key": ".hpp", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Header", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.hxx", + "family": "source-kind", + "key": ".hxx", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Header", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.m", + "family": "source-kind", + "key": ".m", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=C", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.mesh", + "family": "source-kind", + "key": ".mesh", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.metal", + "family": "source-kind", + "key": ".metal", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.mm", + "family": "source-kind", + "key": ".mm", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Cxx", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.rahit", + "family": "source-kind", + "key": ".rahit", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.rcall", + "family": "source-kind", + "key": ".rcall", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.rchit", + "family": "source-kind", + "key": ".rchit", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.rgen", + "family": "source-kind", + "key": ".rgen", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.rint", + "family": "source-kind", + "key": ".rint", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.rmiss", + "family": "source-kind", + "key": ".rmiss", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.s", + "family": "source-kind", + "key": ".s", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Gas", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.sycl", + "family": "source-kind", + "key": ".sycl", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.task", + "family": "source-kind", + "key": ".task", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.tesc", + "family": "source-kind", + "key": ".tesc", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.tese", + "family": "source-kind", + "key": ".tese", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "source-kind:.vert", + "family": "source-kind", + "key": ".vert", + "source": "modules/source-kind/src/source_kind.cppm", + "status": "public", + "detail": "source role=Device", + "owner": "mcpp-cxx-modules", + "extracted": true, + "reference": "skills/project-config/mcpp-cxx-modules/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.build", + "family": "wire", + "key": "mcpp.build", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.build-database", + "family": "wire", + "key": "mcpp.build-database", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-build-database", + "extracted": true, + "reference": "skills/integration/mcpp-build-database/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.cache", + "family": "wire", + "key": "mcpp.cache", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.env", + "family": "wire", + "key": "mcpp.env", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.index", + "family": "wire", + "key": "mcpp.index", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.launch", + "family": "wire", + "key": "mcpp.launch", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.pack", + "family": "wire", + "key": "mcpp.pack", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.pack.formats", + "family": "wire", + "key": "mcpp.pack.formats", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.search", + "family": "wire", + "key": "mcpp.search", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.toolchain.list", + "family": "wire", + "key": "mcpp.toolchain.list", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.why.build-programs", + "family": "wire", + "key": "mcpp.why.build-programs", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.why.compat", + "family": "wire", + "key": "mcpp.why.compat", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.why.sources", + "family": "wire", + "key": "mcpp.why.sources", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.why.toolchain", + "family": "wire", + "key": "mcpp.why.toolchain", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + }, + { + "id": "wire:mcpp.xpkg", + "family": "wire", + "key": "mcpp.xpkg", + "source": "src/wire.cppm", + "status": "public", + "detail": "data version=1", + "owner": "mcpp-machine-interface", + "extracted": true, + "reference": "skills/integration/mcpp-machine-interface/references/interfaces.md", + "verification": "static-declaration" + } + ], + "sources": [ + { + "path": "modules/buildmcpp/src/directives.cppm", + "sha256": "a0faad77bd7cc3a98f0288bedfb7a72f18699deb1ee6bb487c1c9db410f9951d" + }, + { + "path": "modules/buildmcpp/src/program_protocol.cppm", + "sha256": "990fa5d353263f233102670f5e39d85adcb25f243ec8776e2057f59fcee44b00" + }, + { + "path": "modules/buildmcpp/src/provisions.cppm", + "sha256": "482dae7fb33c3a2ac54bd14df72f3c830266ad61a06a73db84aafae4cb0eaeee" + }, + { + "path": "modules/manifest/src/cfg_selector.cppm", + "sha256": "c5cfd5d0eea02541d29695cc25b0a25ba8f3383b7b2d8d9212f38f74e6f89d87" + }, + { + "path": "modules/manifest/src/dep_spec.cppm", + "sha256": "14d478e86c1c2516df5ee0ef1584c3cbb33a1f8e5fbb803e8431a9f2dcdd46fe" + }, + { + "path": "modules/manifest/src/index_spec.cppm", + "sha256": "6dd904140ff02a0fd402e281341f52670cb125caabbcb88f2b8bd40a96906f94" + }, + { + "path": "modules/manifest/src/key_registry.cppm", + "sha256": "27e6d23cf8d6f1fa77c1d928f3024e134cc0bcaef070025f62ad04b1665678be" + }, + { + "path": "modules/manifest/src/platform.cppm", + "sha256": "97ac6cd14f535c0f02525c5ce8971a30d2c52f0daa0bf7a00e6c5ab2a343fc48" + }, + { + "path": "modules/manifest/src/platform_toml.cppm", + "sha256": "15da684ef59720c22227cb7facf608e37be00988fa2f415b69965ca06fc01731" + }, + { + "path": "modules/manifest/src/toml.cppm", + "sha256": "e7a7d0184944f94a2f337a15df2d09ff020ced1c97d7511e6a6be2e2e69d5a0f" + }, + { + "path": "modules/manifest/src/types.cppm", + "sha256": "fb7b20648951e6d29207e2dcc40d77363674e0c1b9620c57b327c4cf7ec63fdc" + }, + { + "path": "modules/source-kind/src/source_kind.cppm", + "sha256": "ac1a9569bbfa1526af68c6a7582050b723a53adb45d6b3fa5055ee13a516531b" + }, + { + "path": "modules/toolchain-model/src/triple.cppm", + "sha256": "2d5af885002ce1fcb7841a39a877bb373c9a97ed89e117da979aaf4d9c581dbc" + }, + { + "path": "src/bmi_cache.cppm", + "sha256": "9562ba3ea50bc161c512f7a4a1ebcee9db5f0bce687cb90da2a9d10077b978c0" + }, + { + "path": "src/bmi_cache/maintenance.cppm", + "sha256": "8e88513998de33b80d05122094f35a7b51ef89184ea03fa2ebb86568c3bae60b" + }, + { + "path": "src/build/build_database.cppm", + "sha256": "b3d407cf7ca7093a36ec641873ff6a5c3c79df45968899b08931818e8072b9a6" + }, + { + "path": "src/build/build_program.cppm", + "sha256": "0591d9eedc11dcef44c289ab74abf0460b1c331df174f4cb2b64139ad89d321f" + }, + { + "path": "src/build/dirlock.cppm", + "sha256": "e211b1928f91c0772fe2c8295c37d1c809daf0d4afab4adb7061d134c9f68237" + }, + { + "path": "src/build/engine_package.cppm", + "sha256": "a8ed60d6283508b25c8d340da3559f9b8059c7a0f599399dc22a07b69af2cd15" + }, + { + "path": "src/build/flags.cppm", + "sha256": "b834b6d6efff3e90e8682447e5669f3c40d6a0c21c30d836a55d0f5d72e9869b" + }, + { + "path": "src/build/hostprogram.cppm", + "sha256": "9d460ff3f2cac1ca775aafba75cc5e0868ef9d0bbbc25356c8ece77515833f54" + }, + { + "path": "src/build/plan.cppm", + "sha256": "910402843d2865657c6cf461c2b762bd1f146894265bb801e37561842a68edb4" + }, + { + "path": "src/build/prepare/features.cpp", + "sha256": "04f7b579f3f4b35c8b96c034509ccfa47e367e902dd72da3d87ce5cdc3034582" + }, + { + "path": "src/build/prepare/host_graph.cpp", + "sha256": "8921b8250da2f7bd01279b97677f240cf0320ccfa9504dd0eec0d44a94496052" + }, + { + "path": "src/build/prepare/manifest.cpp", + "sha256": "ddf9fb41c5cab68c26ab0d8ce068263d278b8fd0e3d88ad9722e4b0195d9834d" + }, + { + "path": "src/build/result.cppm", + "sha256": "00b19647b3d392f4b3fa5a13a6831aeba69cac21ee523334f4d18bd425df60bd" + }, + { + "path": "src/cli.cppm", + "sha256": "60ebbdc701a24ccc91a54e0f5f2a311271c5a3612ae58dfbb269da5bee575f4f" + }, + { + "path": "src/cli/cmd_build.cppm", + "sha256": "5c71d94d1af805334cb8c06b51b4e59b787c6aeb1bc03acef95de11c3d7ac03a" + }, + { + "path": "src/cli/cmd_cache.cppm", + "sha256": "db34750fd3d965aea18ced66d15fbafb902fc96ef56fe20968a8091b99a49e9d" + }, + { + "path": "src/cli/cmd_new.cppm", + "sha256": "3a85f8620130af5f72469b2de7d6a1973f16d265ce0a0591720273ac27dcf64a" + }, + { + "path": "src/cli/cmd_publish.cppm", + "sha256": "f352a9aed5aeeaf31f54a63d14f8517397b854ad90ddbc241d3d7a66ef4ac1aa" + }, + { + "path": "src/cli/cmd_registry.cppm", + "sha256": "e286220513f54481bffad05ca6075c9cdbf1169e41fbbfd3ec05f9ab3d5f5e2d" + }, + { + "path": "src/cli/cmd_sbom.cppm", + "sha256": "e1d12c6e920822648d3d381ad9312da613b403c41bf94a67d832f4308a915b22" + }, + { + "path": "src/cli/cmd_self.cppm", + "sha256": "4c37ac64465f26658b3f95189f5a9be343b95d860f1c813a0d10df1f0a8c4e02" + }, + { + "path": "src/cli/cmd_xpkg.cppm", + "sha256": "acd145a6ff84bb68897f48636cee8d0eeef13e3ee9c117cac87c8d0d006e7d71" + }, + { + "path": "src/config.cppm", + "sha256": "64c50866b7c08d0cc0b31967f428afbbaeadd750148dbf5a85fa600c6f018180" + }, + { + "path": "src/diag.cppm", + "sha256": "4fa6a643f86f229c85116fda6cbdc935eb6a9b7d9b47d6765fa79b99e03bca07" + }, + { + "path": "src/doctor.cppm", + "sha256": "7881d12006e8207fa2c3bf11d2a3afecde184d66ee19f9a7af6827bddf22e1f6" + }, + { + "path": "src/effects.cpp", + "sha256": "54cd39cda46136418e663731e2d76edb5772b5b0fe5260f11b66e2fba7cf3e42" + }, + { + "path": "src/effects.cppm", + "sha256": "6c85a6802f98175e554d1224e699319bdcd88c9a01ac49093ef1c565c6e7362b" + }, + { + "path": "src/freestanding/linkline.cppm", + "sha256": "2baa0b55e2200ca5eaf385698d9527531fa0480c9fd2393191d457700ac25b86" + }, + { + "path": "src/freestanding/runner.cppm", + "sha256": "0429f462934daebf92ecf5faa86276bdea399f1c7439610e7eba3cc17532f16d" + }, + { + "path": "src/freestanding/target.cppm", + "sha256": "f4310a611c0e85333a33f4d33ca24472919d28faed5962d8d4a4eb651ffa1487" + }, + { + "path": "src/home.cppm", + "sha256": "6472ec5554758abb12b14bbf1988f5f66dd271d51386cc0315691066f44fac20" + }, + { + "path": "src/home/files.cpp", + "sha256": "20d5437276126935bbd9e0927c1df15d91f058d1a9ee23faa3baa4fcf780c8b4" + }, + { + "path": "src/home/files.cppm", + "sha256": "2ed40a5ab9cf72c082ea3eee23289120278b72b12c6164a4cb9ead10e9504b46" + }, + { + "path": "src/main.cpp", + "sha256": "d6173f2be347b28d0bd639fce16f022bba1d1a51c00229353b0e78c36822e178" + }, + { + "path": "src/modgraph/scanner.cppm", + "sha256": "b0e6dd9b144215bd6d3070625fd881a0ab3e0a6803e21ce3eafccd882ad4e403" + }, + { + "path": "src/modgraph/validate.cppm", + "sha256": "98936b42fcca5babfa689d59fc781526dcbc26696e684fb1c9247c870ddee13c" + }, + { + "path": "src/pack/abi_tag.cppm", + "sha256": "decf801c6c285fd632f0ad57bcb47d106bacd58eab9a0b98d5523035409334a0" + }, + { + "path": "src/pack/binfmt.cppm", + "sha256": "4373c3e32ffa895a350758a6c8ddb6d7b420489be7ae573934b90b840f9a96d7" + }, + { + "path": "src/pack/compress.cppm", + "sha256": "63ae78b0af2693ee91685eb9b46f24033e8de987fec1990dba174ed76af0df7b" + }, + { + "path": "src/pack/compress_codecs.cpp", + "sha256": "4254fcda02257cd4e4737a31008d2d473b3d0caf4fb024942ed3caed11159f83" + }, + { + "path": "src/pack/digest.cppm", + "sha256": "9c1369be53f0f88c3498c2535d875d80bfa0bfead4c776172a8acf5c905d7773" + }, + { + "path": "src/pack/distribution.cppm", + "sha256": "04a1dda78078f25262da1737f47da20a2a75ab134136d56527fdc49f6685b2f3" + }, + { + "path": "src/pack/host_requirements.cppm", + "sha256": "867f281d987106d732b546e746afbd359d46d48a096f06d4f3507bd8cbfabdad" + }, + { + "path": "src/pack/interface.cppm", + "sha256": "473f7954005bd89b360b80fe36ddeeb7ca37d02e8671efae2ffa6c808114fc46" + }, + { + "path": "src/pack/library.cppm", + "sha256": "2b3065df539e290c6765d6cc4e2349eb0a0bf57b0b774623c80e3d9445a081ff" + }, + { + "path": "src/pack/library_pipeline.cppm", + "sha256": "84777bdc7fe4aa8723c386da53e13d1fe7b58c52c5cd07c019c725ff0a8b3ecf" + }, + { + "path": "src/pack/manifest_emit.cppm", + "sha256": "57d1adc4b15fdad9f78bcab4053fba0200836cd2635ee2b89b068d1f558c3239" + }, + { + "path": "src/pack/pack.cppm", + "sha256": "70ae5ceb27114968bfbff529d0da6b494fc114bc52475d0473f0d1fd47643e24" + }, + { + "path": "src/pack/pipeline.cppm", + "sha256": "3766ab5dd09675f7a61d956a6126d66da14ea1a872bb38c6a5e208f858ea06a3" + }, + { + "path": "src/pack/polyglot.cppm", + "sha256": "0867d6e7dba982c9a142f81d7ecfee51dad35d5f20afc292cf3a6cedd7abb529" + }, + { + "path": "src/pack/prebuilt.cppm", + "sha256": "8c36ad366d39f8dfd6a17cc23cdb04bb413249802abc72989c8c2e969d42cc57" + }, + { + "path": "src/pack/relocate.cppm", + "sha256": "960a4ce785d6b064e0752943672014d85a6e7749bd59a9889732ee3853419371" + }, + { + "path": "src/pack/route.cppm", + "sha256": "ed862d149e2755c0bd16676d7c205a78d52f63f053230b953dbf4fafaf4bcabd" + }, + { + "path": "src/pack/stage_tree.cppm", + "sha256": "eebd6aa306cbdc0f840eeef353f6b15ae24ecac5fafd8f3175900fcdd1f6fb38" + }, + { + "path": "src/pack/strip.cppm", + "sha256": "59debea2a894de6c8c94f069c64fc06886adbcb6364439a939e34093412d19d1" + }, + { + "path": "src/pack/zip.cppm", + "sha256": "1c707d7475add54c5022ada08b31bec16c310ab586be6f57973a3a8ce3df7f43" + }, + { + "path": "src/pm/commands.cppm", + "sha256": "48fc81899a7438a6cc14d9c2246a0b7256f87efa968c8479c9e1bca26ed405a7" + }, + { + "path": "src/pm/index_contract.cppm", + "sha256": "77a80d3fa5f605aba0c32acce6ea0374e5cd427d1c22544d40bfa11d96b93abb" + }, + { + "path": "src/pm/index_management.cppm", + "sha256": "629ec5df608e87ad7ed09bd4fe583619428902f9ccce0cf8d6e564bc1962070e" + }, + { + "path": "src/pm/index_refresh.cppm", + "sha256": "f8a7ebdaf06218104fc67115756c5c55076641af6a184f04df6a6588319acb30" + }, + { + "path": "src/pm/index_route.cppm", + "sha256": "d1faf6d0c70b98bc225a62d6cefa37ec905b7cac13c5eae2d9a15c0646e34b97" + }, + { + "path": "src/pm/lock_io.cppm", + "sha256": "681fec956622623ed355b58247833a2d3e6d3cb56fc2c03f72fed6b5d7cdd614" + }, + { + "path": "src/pm/package_fetcher.cppm", + "sha256": "fc013c7842145e7ca5db033a3ef7d3891ab094e73cb21dd0b28e8fe418d63db1" + }, + { + "path": "src/pm/pm.cppm", + "sha256": "621bdb95723c51369a2e64898d1916edf17a41893334a4b83ec6fde37d9b563d" + }, + { + "path": "src/pm/publisher.cppm", + "sha256": "4cc4e514dacc9e0001edd4dd36ab2127396cdea06e8b52fc91d0db8fb597d57f" + }, + { + "path": "src/pm/refresh_policy.cppm", + "sha256": "d21d51cd35b4b0fb5ab7ffe1b2b744cd9cbd1536519e4fe86649b74827adb3b3" + }, + { + "path": "src/pm/resolver.cppm", + "sha256": "de4485387a78b124aafc760d7c58c50230ccef881163be9cef43ce16a59af709" + }, + { + "path": "src/project.cppm", + "sha256": "f038f8216dce69f9085cda1085bf30508883f3117e50164cb42f210bda062997" + }, + { + "path": "src/provider/address_set.cppm", + "sha256": "0a6e19f30ad86ee1bded004fec8fd095d2c69cfb6fde996041d69c3a66b256d5" + }, + { + "path": "src/provider/provider.cppm", + "sha256": "5dcb088833c84bc463d50950c689ecd67d911c31312bf4df978c6ef784808541" + }, + { + "path": "src/provider/runtime_selection.cppm", + "sha256": "aeef56ee4df8f13d3db60236be3448deeeae6898886a5363cf69bfdc4f58ae78" + }, + { + "path": "src/provider/select.cppm", + "sha256": "a173d93207e63048111f40022e369d527c96c4b096e1216b3c285ed4c1aed656" + }, + { + "path": "src/provider/xlings/legacy_dirs.cppm", + "sha256": "8cd8d7cdef823ab3cd1b2bebeccac9e00f67f784334ce5afe51ac44acc6de71a" + }, + { + "path": "src/provider/xlings/provider.cppm", + "sha256": "64a2e95e624ec1d92c20fde771a2d9290727d7e564d6658244d7e09c2e0305b3" + }, + { + "path": "src/provider/xlings/subos_info.cppm", + "sha256": "f0bc58c52817d674fad978ca8d7e1c563cd140dfdfbf69e9b6494fcb9a21c905" + }, + { + "path": "src/provider/xlings/xlings.cpp", + "sha256": "11d33415f76168c2b99123e5f6529369d6162124b563a2be6c51222174279363" + }, + { + "path": "src/provider/xlings/xlings.cppm", + "sha256": "fe37df9fdd85e93f190ed08f74385421f7d5877a42ccbc3455f8b9ea15b392a3" + }, + { + "path": "src/run.cppm", + "sha256": "25fff889a9566f9b4dbb0575f658976688d4fe4033eb85cfc474df277ebde75d" + }, + { + "path": "src/run/run.cpp", + "sha256": "8e7c640b9a0022b37adcc18044e6264a6c280dad050dbc7e35b67c7d5e6afb31" + }, + { + "path": "src/runtime/binding.cppm", + "sha256": "04c817f86cdd93225ba3fc4b283e592769dbb30c55ae01d45c812fce0ee2f59c" + }, + { + "path": "src/runtime/elf.cppm", + "sha256": "e8d2923d1e3037a60b726aec13d7070de600c3ddad90b7b76d5c672cbf71bd4f" + }, + { + "path": "src/runtime/env_contract.cppm", + "sha256": "2f2b72fb4b876c981bb40c2242d0016e2b8ad6ee75b1ee2b0ddf7b784026d84d" + }, + { + "path": "src/runtime/launch_env.cpp", + "sha256": "bfabf595d94288f23385b93d3aca9a3d45f4da48bdaa2bc846f2a47550c11e1d" + }, + { + "path": "src/runtime/launch_env.cppm", + "sha256": "18c8dd69e6627bba64f2be8b04084d87716a2ff1632768ea1bdde4734aac23d8" + }, + { + "path": "src/runtime/search.cppm", + "sha256": "26a1e3308ad5caab797b180eed52c7c610abea6920db5ef157b7128a9fb131a5" + }, + { + "path": "src/scaffold/create.cppm", + "sha256": "ed122856ae475bfa546324f9fa027d119d89fb0affec7ebe141e230b0d3db3dd" + }, + { + "path": "src/scaffold/project_name.cppm", + "sha256": "cb350fc0743bfbd35659dbee54d2374846e71806030648f6558218b480384a04" + }, + { + "path": "src/scaffold/template.cppm", + "sha256": "d25c74c08e00639de057fb54bdac7e3b938513c66d6a5a86ad34aeb2c8034b05" + }, + { + "path": "src/toolchain/detect.cppm", + "sha256": "64106aa65e209d7c3dca48dd196de7548a962b501c6c3f5dcc1860ac53712b7c" + }, + { + "path": "src/toolchain/registry.cppm", + "sha256": "ba13282b6018ce4d062bbf4121985cc103cd8ac497256edb2007ab8db939e1a1" + }, + { + "path": "src/wire.cppm", + "sha256": "8bc1e954b5955c8383cbdbf4a816d2e7420cb3f5d3d1276d345a3ea317f69d9c" + } + ], + "inventory_limits": [ + "Recognized declarations are not an executable manifest schema or a proof of consumer semantics.", + "Dynamic parser keys, nested edge forms, wire data fields and phase constraints need semantic review against consumers.", + "Source hashes route review; a changed file does not require unrelated prose to change.", + "Runtime validation is reported separately; mapped existing tests were not all executed in this run." + ] +} diff --git a/.agents/skills/mcpp-api-skills/maintenance/verification.md b/.agents/skills/mcpp-api-skills/maintenance/verification.md new file mode 100644 index 000000000..1a1903cbc --- /dev/null +++ b/.agents/skills/mcpp-api-skills/maintenance/verification.md @@ -0,0 +1,53 @@ +# Source Baseline and Verification + +The skills were checked against mcpp 2026.10.31.3, +commit `ce4dd4b001161f6635bec2a901b18381d6c6548c`. + +## Source checks + +The review followed command parsing to execution, manifest parsing to consumers, +and public build-program APIs to directive handling. `catalog.json` records +interface ownership and source locations. Its extracted declarations are a +navigation inventory, not proof that every platform and configuration was run. + +## Executed checks + +| Check | Result | +| --- | --- | +| Skill resources and source declarations | Passed | +| Suite checker tests, including detached copies | 16 passed | +| Official skill metadata validation | 34 entrypoints passed | +| TOML example syntax | 20 parsed; not mcpp semantic validation | +| Installed Windows mcpp CLI smoke checks | 10 passed | +| Test discovery with explicit globs, exclusions and disabled discovery | 3 scenarios passed | +| Isolated-home offline compile | Stopped before compile: provider not initialized | + +The runtime checks used installed mcpp 2026.10.31.3, not a fresh source build. +The ten smoke checks covered protocol discovery, environment/cache envelopes, +error statuses, project creation, default test discovery and refusal to +overwrite an existing project. Three additional `test --list --strict` checks +covered `tests/test_*.cpp`, recursive discovery with support/vendor exclusions, +and `discover = []`. They checked discovery without compiling or running tests. + +Fresh-source mcpp builds and their C++ and E2E suites were not run. +Linux/macOS builds, hardware devices, signing and accelerator execution were +not tested. Metadata, syntax and source checks do not establish runtime coverage. + +## Local checks + +From the suite root (`mcpp-api-skills/`): + +```sh +python tools/check_skills.py +python tools/check_skills.py --mcpp-root /path/to/mcpp +python -m unittest discover -s tests -p 'test_*.py' +``` + +Runtime smoke checks use temporary projects and a selected binary: + +```sh +python tools/validate_runtime.py --mcpp /absolute/path/to/mcpp --output /tmp/mcpp-skills-results.json +``` + +For offline compilation, also pass `--build --build-home` with a separately +prepared isolated home containing an initialized provider and toolchain. diff --git a/.agents/skills/mcpp-api-skills/skills/INTERFACES.md b/.agents/skills/mcpp-api-skills/skills/INTERFACES.md new file mode 100644 index 000000000..b51e2dfda --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/INTERFACES.md @@ -0,0 +1,698 @@ +# Interface Lookup + +Find the skill covering a command, configuration field or build-program interface. + +## Commands and options + +| Interface | Skill | +| --- | --- | +| `mcpp add` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp add --dev` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp add ` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp build` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --accel` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --cache` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --cap` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --configure-only` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --dev` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --exclude` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --features` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --host-platform` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --jobs` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --message-format` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --no-accel` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --no-cache` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --package` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --platform` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --play-game` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --print-fingerprint` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --profile` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --release` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --static` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --strict` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --sysroot` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --target` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --toolchain` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp build --workspace` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp cache` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache clean` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache clean --all` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache clean --deps` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache clean --legacy` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache clean --std` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache clean --tools` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache dir` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache gc` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache gc --max-size` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache gc --older-than` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache info` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache info ` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache list` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache list --format` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache list --json` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache prune` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache prune --older-than` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp cache verify` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp clean` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp clean --bmi-cache` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp clean --dry-run` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp clean --older-than` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp clean --report` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp clean --stale` | [mcpp-cache](operations/mcpp-cache/SKILL.md) | +| `mcpp emit` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit build-database` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --accel` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --cap` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --dev` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --exclude` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --features` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --format` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --host-platform` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --no-accel` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --output` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --package` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --platform` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --profile` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --release` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --spec` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --static` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --strict` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --sysroot` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --target` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --toolchain` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit build-database --workspace` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp emit sbom` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit sbom --output` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit xpkg` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit xpkg --namespace` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit xpkg --output` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit xpkg --package` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit xpkg --url` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp emit xpkg --version` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp explain` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp explain ` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp --deny` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --frozen` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --help` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --home` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --locked` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --managed-only` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --no-color` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --offline` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --protocol-version` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --quiet` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --system` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --verbose` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp --version` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp index` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index add` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index add ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index add ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index list` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index list --format` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index pin` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index pin ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index pin ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index remove` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index remove ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index status` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index unpin` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index unpin ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index update` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp index update ` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `mcpp new` | [mcpp-projects-and-templates](basics/mcpp-projects-and-templates/SKILL.md) | +| `mcpp new --list-templates` | [mcpp-projects-and-templates](basics/mcpp-projects-and-templates/SKILL.md) | +| `mcpp new --template` | [mcpp-projects-and-templates](basics/mcpp-projects-and-templates/SKILL.md) | +| `mcpp new ` | [mcpp-projects-and-templates](basics/mcpp-projects-and-templates/SKILL.md) | +| `mcpp pack` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --compress` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --debug-symbols` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --dev` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --exclude` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --features` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --format` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --host-platform` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --linkage` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --list-formats` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --merge` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --message-format` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --mode` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --no-strip` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --no-universal` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --output` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --package` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --pkg-format` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --platform` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --profile` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --release` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --sysroot` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --systems` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --target` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --toolchain` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack --workspace` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp pack ` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `mcpp publish` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp publish --allow-dirty` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp publish --dry-run` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp remove` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp remove ` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp resolve` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp resolve --explain` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp run` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --accel` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --cache` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --dev` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --features` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --format` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --host-platform` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --list-runners` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --no-accel` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --no-cache` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --no-runner` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --package` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --pkg-format` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --platform` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --play-game` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --print-launch` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --profile` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --release` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --runner` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --sysroot` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --target` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --target-triple` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run --toolchain` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp run ` | [mcpp-build-and-run](workflow/mcpp-build-and-run/SKILL.md) | +| `mcpp search` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp search --all-versions` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp search --format` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp search ` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp self` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self config` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self config --cache-unused-days` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self config --keep-days` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self config --mirror` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self doctor` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self env` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self env --format` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self env --host` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self env --host-platform` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self env --platform` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self env --target` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self explain` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self explain ` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self init` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self init --force` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self init --home` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self store` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self store dedupe` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self store dedupe --apply` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp self version` | [mcpp-environment](operations/mcpp-environment/SKILL.md) | +| `mcpp stage` | [mcpp-build-actions](extensions/mcpp-build-actions/SKILL.md) | +| `mcpp stage --list` | [mcpp-build-actions](extensions/mcpp-build-actions/SKILL.md) | +| `mcpp stage --output` | [mcpp-build-actions](extensions/mcpp-build-actions/SKILL.md) | +| `mcpp stage --verify` | [mcpp-build-actions](extensions/mcpp-build-actions/SKILL.md) | +| `mcpp test` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --accel` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --archive` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --build-timeout` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --cache` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --cap` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --exclude` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --features` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --host-platform` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --list` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --message-format` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --no-accel` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --no-cache` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --no-run` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --no-runner` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --package` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --platform` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --play-game` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --print-launch` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --profile` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --strict` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --sysroot` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --target` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --timeout` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --toolchain` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --workspace` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test --workspace-timeout` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp test ` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `mcpp toolchain` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain default` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain default --target` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain default ` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain default ` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain install` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain install --platform` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain install --target` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain install ` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain install ` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain list` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain list --format` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain remove` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain remove --target` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain remove ` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp toolchain remove ` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `mcpp update` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp update ` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `mcpp version` | [mcpp-commands](basics/mcpp-commands/SKILL.md) | +| `mcpp why` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --features` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --format` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --host-platform` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --platform` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --sysroot` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --target` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why --toolchain` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why ` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp why ` | [mcpp-troubleshooting](operations/mcpp-troubleshooting/SKILL.md) | +| `mcpp xpkg` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp xpkg parse` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp xpkg parse --all-os` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp xpkg parse --allow-split-name` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp xpkg parse --allow-unknown` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp xpkg parse --format` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | +| `mcpp xpkg parse --json` | [mcpp-publishing](packaging/mcpp-publishing/SKILL.md) | + +## Manifest fields + +| Interface | Skill | +| --- | --- | +| `build` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build-dependencies` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `build.accel` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.allow_host_libs` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.bmi_schedule` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.build_program_timeout` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.c_standard` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.cache` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.cflags` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.compile_commands` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.cxx_runtime` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.cxxflags` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.default-profile` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.defines` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.dependency_linkage` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.dialect_cxxflags` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.flags` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.include_dirs` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.include_dirs_after` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.ios_deployment_target` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.jobs` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.ldflags` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.macos_deployment_target` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.module_extensions` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `build.platform-dependencies` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.private_include_dirs` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.profile` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.sources` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `build.static_stdlib` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.std-compat-module` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.std-module` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.std-module-flags` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `build.target` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `c-abi` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `c-abi.builtins` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `c-abi.data-model` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `c-abi.presents` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `c-abi.wchar` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `capabilities` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `dependencies` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `dev-dependencies` | [mcpp-dependencies](workflow/mcpp-dependencies/SKILL.md) | +| `feature-deps` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `feature-xlings` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `features` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..defines` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..device_extensions` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..flags` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..forward` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..implies` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..provides` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..requires` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..requires_abi` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..rule_module` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..sources` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `features..tools` | [mcpp-features](project-config/mcpp-features/SKILL.md) | +| `generated_files` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `hooks` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `host` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `indices` | [mcpp-indices](workflow/mcpp-indices/SKILL.md) | +| `kernel-abi` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `kernel-abi.provides-interfaces` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `kernel-abi.requires-interfaces` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `language` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `language.import_std` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `language.modules` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `language.standard` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `lib` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `lib.path` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `modules.exports` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `modules.sources` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `modules.strict` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `pack.bundle-project.also_skip` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.bundle-project.force_bundle` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.compress` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.debug_symbols` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.default_mode` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.exclude` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.format` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.include` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.linkage` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.sign` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.strip` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.systems` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.targets` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `pack.universal` | [mcpp-packaging](packaging/mcpp-packaging/SKILL.md) | +| `package` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.accelerators` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.authors` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.c-environment` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `package.description` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.exclusive` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `package.license` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.mcpp` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.metadata` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.name` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.namespace` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.platforms` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.provides` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `package.repo` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.requires` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `package.requires_abi` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `package.standard` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.std-compat-module` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.std-module` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.std-module-flags` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `package.version` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `platform` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `profile` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `profile.` | [mcpp-build-options](project-config/mcpp-build-options/SKILL.md) | +| `resources` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.extra-inputs` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.files` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.icon` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info.company` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info.copyright` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info.description` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info.internal-name` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info.original-filename` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `resources.version-info.product` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `runtime` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.artifacts` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.capabilities` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.deploy` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.deploy_files` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.dlopen_libs` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.frameworks` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.libraries` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.library_dirs` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.link_library_dirs` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.provides` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.requirements` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.runtime_search_dirs` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `runtime.transitive_needed_dirs` | [mcpp-runtime](toolchains/mcpp-runtime/SKILL.md) | +| `scan_overrides` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `target` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `target..abi` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..carrier` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..cxx_runtime` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..dependencies` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..layers` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..link` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..linkage` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..min_api_level` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..platform` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..run_under` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..runner` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..runtime` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..sysroot` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..targets` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..toolchain` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..tools` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `target..xlings` | [mcpp-cross-compilation](toolchains/mcpp-cross-compilation/SKILL.md) | +| `targets` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..cflags` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..cxxflags` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..defines` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..exports` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..kind` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..linkage` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..main` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..required_features` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..soname` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..start` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..windows_auto_export` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..windows_code_page` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..windows_entry` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..windows_long_paths` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `targets..windows_subsystem` | [mcpp-targets](project-config/mcpp-targets/SKILL.md) | +| `test` | [mcpp-tests](workflow/mcpp-tests/SKILL.md) | +| `toolchain` | [mcpp-toolchains](toolchains/mcpp-toolchains/SKILL.md) | +| `tools.overrides` | [mcpp-manifest](project-config/mcpp-manifest/SKILL.md) | +| `workspace` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.build` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.dependencies` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.exclude` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.members` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.authors` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.description` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.license` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.mcpp` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.repo` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.standard` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `workspace.package.version` | [mcpp-workspaces](project-config/mcpp-workspaces/SKILL.md) | +| `xlings` | [mcpp-external-tools](toolchains/mcpp-external-tools/SKILL.md) | +| `xlings.overrides` | [mcpp-external-tools](toolchains/mcpp-external-tools/SKILL.md) | +| `xlings.subos` | [mcpp-external-tools](toolchains/mcpp-external-tools/SKILL.md) | +| `xlings.workspace` | [mcpp-external-tools](toolchains/mcpp-external-tools/SKILL.md) | + +## Build-program API + +| Interface | Skill | +| --- | --- | +| `mcpp::action::arg` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::cwd` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::env` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::imports` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::input` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::output` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::output_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::provides` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::target` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::submit` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::has_feature` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_pending` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::abi_tool` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::accel` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::compiler` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::cxx_abi_root` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::cxx_runtime` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::cxx_stdlib` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::dep_bin` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::dep_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::dep_linkage` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::device_sources` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::graph_file` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::host` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::manifest_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::min_platform_version` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::msvc_crt_linkage` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::msvc_instance_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::ninja_program` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::out_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::pack_debug_symbols_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::pack_format` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::pack_stage_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::pack_strip` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_authors` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_description` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_license` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_name` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_namespace` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_repo` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::package_version` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::phase` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::pkg_config_libdir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::profile` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::sysroot_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target_arch` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target_builtins_lib` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target_env` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target_libc` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target_libc_profile` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::target_os` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::tool` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::tool_env` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::toolchain_binutils_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::toolchain_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::toolchain_sysroot` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::toolset_identity` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_program` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_program` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_request` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_source` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::xpkg_source` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::blocking` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::depfile` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::description` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::id` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action::role` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::diagnostic::hint` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::diagnostic::impact` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::diagnostic::message` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::diagnostic::severity` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::action` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::diagnostic` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::roles::artifact` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::roles::check` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::roles::object` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::roles::prepare` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::roles::source` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::artifact_name` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::cflag` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::cxxflag` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::define` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::deploy` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::fact` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::floor` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::generated` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::include_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::include_dir_after` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_driver` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_flag` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_input` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_input_from` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_lib` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_script` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_search` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::link_start` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::provides_pack_format` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::report` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::rerun_if_changed` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::rerun_if_changed_glob` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::rerun_if_env_changed` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::run_exclusive` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::run_host` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::runner` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::runner` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::runner_longlived` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::runtime_search_dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::seal` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::source` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::toolchain` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::warning` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::windows_entry` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp::windows_subsystem` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | + +## Build-program directives + +| Interface | Skill | +| --- | --- | +| `mcpp:action` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:artifact-name` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:cfg` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:cflag` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:cxxflag` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:decision` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:deploy` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:diagnostic` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:fact` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:floor` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:generated` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:include-dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:include-dir-after` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-driver` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-flag` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-input` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-lib` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-script` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-search` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:link-start` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:pack-format` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:rerun-if-changed` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:rerun-if-changed-glob` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:rerun-if-env-changed` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:run-exclusive` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:run-host` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:runner` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:runner-longlived` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:runner-named` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:runtime-search-dir` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:seal` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:source` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:toolchain` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:warning` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:windows-entry` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:windows-subsystem` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | +| `mcpp:xpkg-request` | [mcpp-build-api](extensions/mcpp-build-api/SKILL.md) | + +## Machine-output kinds + +| Interface | Skill | +| --- | --- | +| `mcpp.build` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.build-database` | [mcpp-build-database](integration/mcpp-build-database/SKILL.md) | +| `mcpp.cache` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.env` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.index` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.launch` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.pack` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.pack.formats` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.search` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.toolchain.list` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.why.build-programs` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.why.compat` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.why.sources` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.why.toolchain` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | +| `mcpp.xpkg` | [mcpp-machine-interface](integration/mcpp-machine-interface/SKILL.md) | + +## Source extensions + +| Interface | Skill | +| --- | --- | +| `.S` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.asc` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.asm` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.c` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cc` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cce` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cl` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.comp` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cpp` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cppm` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cu` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cuh` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.cxx` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.frag` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.geom` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.glsl` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.h` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.hh` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.hip` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.hiph` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.hlsl` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.hpp` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.hxx` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.m` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.mesh` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.metal` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.mm` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.rahit` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.rcall` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.rchit` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.rgen` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.rint` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.rmiss` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.s` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.sycl` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.task` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.tesc` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.tese` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | +| `.vert` | [mcpp-cxx-modules](project-config/mcpp-cxx-modules/SKILL.md) | diff --git a/.agents/skills/mcpp-api-skills/skills/README.md b/.agents/skills/mcpp-api-skills/skills/README.md new file mode 100644 index 000000000..bd6b47314 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/README.md @@ -0,0 +1,19 @@ +# Skills + +**English** | [简体中文](README.zh-CN.md) + +mcpp guidance grouped by task. Each skill covers one topic with the commands, configuration syntax and examples needed to use it. + +| Category | Topics | +| --- | --- | +| [Getting started](basics/README.md) | Installation, project creation and the commands used for a first build. Start here for a new project or a package template. | +| [Project configuration](project-config/README.md) | The tables that make up mcpp.toml: package identity, product targets, modules, build options, features and workspaces. | +| [Building and testing](workflow/README.md) | Build and run programs, select tests, and manage the dependencies and indices used by a project. | +| [Toolchains and runtimes](toolchains/README.md) | Compiler selection, cross-compilation, runtime linkage and external tools. These skills cover which compiler, target and environment a build uses. | +| [Build extensions](extensions/README.md) | Write build.mcpp programs and reusable rules with the public C++ API. Extension packages can provide tools, platforms, runtimes and packaging formats. | +| [Packaging and publishing](packaging/README.md) | Create application bundles and library packages, then prepare the descriptors and index entries needed to distribute them. | +| [Devices and heterogeneous builds](devices/README.md) | Build and run code for devices, accelerators and freestanding targets. Compiler setup, runner selection and execution are separate parts of these workflows. | +| [Program interfaces](integration/README.md) | Drive mcpp from agents, editors or CI. Parse machine output, inspect launch descriptions and export the build database. | +| [Environment and troubleshooting](operations/README.md) | Inspect homes and caches, explain build decisions and diagnose failures before changing the environment. | + +[Look up a command, manifest key or API](INTERFACES.md). diff --git a/.agents/skills/mcpp-api-skills/skills/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/README.zh-CN.md new file mode 100644 index 000000000..ba3991eb5 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/README.zh-CN.md @@ -0,0 +1,19 @@ +# 技能分类 + +[English](README.md) | **简体中文** + +按任务分类的 mcpp 使用指南。每个 skill 聚焦一个主题,包含对应的命令、配置语法和示例。 + +| 分类 | 内容 | +| --- | --- | +| [入门](basics/README.zh-CN.md) | 安装 mcpp、创建工程并完成首次构建。新建项目、使用包模板或查找常用命令时,从这里开始。 | +| [工程配置](project-config/README.zh-CN.md) | mcpp.toml 的主要配置:包信息、产品目标、模块、编译选项、特性和工作空间。 | +| [构建与测试](workflow/README.zh-CN.md) | 构建和运行程序、选择测试,以及管理工程使用的依赖和包索引。 | +| [工具链与运行时](toolchains/README.zh-CN.md) | 编译器选择、交叉编译、运行时链接和外部工具,用于配置构建所需的编译器、目标平台和工具环境。 | +| [构建扩展](extensions/README.zh-CN.md) | 使用公开 C++ API 编写 build.mcpp 和可复用规则,通过扩展包提供工具、平台、运行时或打包格式。 | +| [打包与发布](packaging/README.zh-CN.md) | 制作应用包和库包,并准备分发所需的描述文件与索引条目。 | +| [设备与异构构建](devices/README.zh-CN.md) | 为设备、加速器和 freestanding 目标构建与运行程序,涵盖设备编译器、runner 和运行环境。 | +| [程序接口](integration/README.zh-CN.md) | 从 agent、编辑器或 CI 调用 mcpp,解析机器输出、获取启动描述和导出构建数据库。 | +| [环境与排错](operations/README.zh-CN.md) | 检查 home 和缓存、查看构建决策,并依据诊断信息定位故障。 | + +[按命令、配置项和 API 查找](INTERFACES.md)。 diff --git a/.agents/skills/mcpp-api-skills/skills/basics/README.md b/.agents/skills/mcpp-api-skills/skills/basics/README.md new file mode 100644 index 000000000..1211342e4 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/README.md @@ -0,0 +1,11 @@ +# Getting started + +**English** | [简体中文](README.zh-CN.md) + +Installation, project creation and the commands used for a first build. Start here for a new project or a package template. + +| Skill | Topic | +| --- | --- | +| [mcpp-basics](mcpp-basics/SKILL.md) | Installation, minimal mcpp.toml, build and run | +| [mcpp-projects-and-templates](mcpp-projects-and-templates/SKILL.md) | new, package templates and template selection | +| [mcpp-commands](mcpp-commands/SKILL.md) | Command overview, global options and argument forwarding | diff --git a/.agents/skills/mcpp-api-skills/skills/basics/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/basics/README.zh-CN.md new file mode 100644 index 000000000..fa09cf199 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/README.zh-CN.md @@ -0,0 +1,11 @@ +# 入门 + +[English](README.md) | **简体中文** + +安装 mcpp、创建工程并完成首次构建。新建项目、使用包模板或查找常用命令时,从这里开始。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-basics](mcpp-basics/SKILL.md) | 安装、最小 mcpp.toml、构建与运行 | +| [mcpp-projects-and-templates](mcpp-projects-and-templates/SKILL.md) | new、包模板和模板选择 | +| [mcpp-commands](mcpp-commands/SKILL.md) | 命令总览、全局选项和参数透传 | diff --git a/.agents/skills/mcpp-api-skills/skills/basics/mcpp-basics/SKILL.md b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-basics/SKILL.md new file mode 100644 index 000000000..819a1b18a --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-basics/SKILL.md @@ -0,0 +1,62 @@ +--- +name: mcpp-basics +description: Install mcpp and create, build, and run a first C++ module project. Use focused skills for advanced configuration or integration protocols. +--- + +# Start a Project with mcpp + +Use the project's installed mcpp when one is pinned. Check `mcpp --version` +before selecting syntax; this suite was source-reviewed against 2026.10.31.3. + +## First working project + +Install through xlings when mcpp is absent: + +```sh +xlings install mcpp -y +mcpp --version +mcpp new hello +cd hello +mcpp build +mcpp run +mcpp test +``` + +`new` supplies a manifest, a program and a smoke test. Do not add an explicit +target just to repeat the inferred `src/main.cpp` target. Initial builds may +provision a toolchain and dependencies; they are not inherently offline. + +The Unix release install script is not a Windows installer. On Windows use +PowerShell for the xlings command, reopen the terminal if PATH changed, and +check the resolved executable before debugging a different installation. + +## Minimal manifest + +```toml +[package] +name = "hello" +version = "0.1.0" +standard = "c++23" +license = "Apache-2.0" +``` + +Use `mcpp run -- argument` to pass program arguments. Check the exit status and +actual program output; a created directory alone does not prove a working build. + +## Choose the next task + +- Manifest or product: `mcpp-manifest`, `mcpp-targets`. +- Dependencies and features: `mcpp-dependencies`, `mcpp-features`. +- Build/run selection: `mcpp-build-and-run`; tests: `mcpp-tests`. +- Automation output: `mcpp-machine-interface`. + +## Boundaries + +Do not copy compiler versions from examples as universal defaults. The default +depends on the host, available providers, target row and project overrides. +An unavailable toolchain, registry or runner is a prerequisite failure, not +evidence that the C++ source is incorrect. + +## References + +- [01-getting-started.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/01-getting-started.md) diff --git a/.agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/SKILL.md b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/SKILL.md new file mode 100644 index 000000000..b7e4b6fbf --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/SKILL.md @@ -0,0 +1,58 @@ +--- +name: mcpp-commands +description: Find public mcpp commands and option ownership, distinguish global flags, and forward arguments without confusing product names with target triples. +--- + +# Command Routing + +Start with `mcpp --help`, then `mcpp --help`. The exact command/option +inventory for the reviewed source is in [the interface reference](references/interfaces.md). + +## Choose the command by intent + +| Intent | Command | Focused skill | +|---|---|---| +| Create | `new` | projects-and-templates | +| Compile or execute | `build`, `run` | build-and-run | +| Discover/execute tests | `test` | tests | +| Add/remove/resolve | `add`, `remove`, `update`, `search`, `resolve` | dependencies | +| Distribute | `pack`, `publish`, `emit xpkg`, `emit sbom`, `xpkg parse` | packaging / publishing | +| Select compilers | `toolchain` | toolchains | +| Inspect/clean caches | `clean`, `cache` | cache | +| Manage indices | `index` | indices | +| Inspect environment | `self` | environment | +| Explain decisions | `why`, `explain` | troubleshooting | +| Export a plan | `emit build-database` | build-database | + +Use full `mcpp-` prefixes when selecting the focused skill named in this table. + +## Keep the axes distinct + +```sh +mcpp run server --target x86_64-linux-gnu -- --port 8080 +mcpp test smoke -- --test-argument +mcpp --offline build --locked +``` + +`server` names a product; `--target` selects the machine/platform axis. `-p` +selects a workspace package. Arguments after `--` belong to the program or test. + +`--offline`, `--locked` (`--frozen`), `--home`, `--deny`, output verbosity and +protocol discovery have invocation-wide handling. Do not assume an option +accepted by one subcommand is accepted by every other subcommand. + +## Boundaries + +Backend helpers such as BMI commands, `dyndep`, `coff-def` and `platform-step` +are not ordinary user entry points. `stage` has a public action use through +`${mcpp.self}` and is documented with build actions instead. + +For program consumers, do not guess JSON switches: queries use `--format json`, +build/test/pack use `--message-format json`, and launch prints its own envelope. + +## References + +[Interface reference](references/interfaces.md). + +- [09-commands-by-scenario.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/09-commands-by-scenario.md) +- [50-machine-output.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/50-machine-output.md) diff --git a/.agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/references/interfaces.md new file mode 100644 index 000000000..3c70979c9 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-commands/references/interfaces.md @@ -0,0 +1,26 @@ +# Commands Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp --deny` | value | Deny named effects; denying global cache writes can select local caching. | +| `mcpp --frozen` | flag | Alias for --locked | +| `mcpp --help` | flag | Show command usage. | +| `mcpp --home` | value | Select the mcpp home for this invocation. | +| `mcpp --locked` | flag | Fail if dependency resolution differs from mcpp.lock | +| `mcpp --managed-only` | flag | Fail if a toolchain, payload or plugin tool does not come from the ecosystem | +| `mcpp --no-color` | flag | Disable colored output | +| `mcpp --offline` | flag | Never touch the network (index refresh, downloads, toolchain install); = --deny network | +| `mcpp --protocol-version` | flag | Print the machine-output protocol this build speaks (JSON) | +| `mcpp --quiet` | flag | Suppress status output | +| `mcpp --system` | flag | Maintain the machine's system home (self init\|doctor\|store, toolchain install\|remove\|default, index update) | +| `mcpp --verbose` | flag | Show detailed progress on stderr | +| `mcpp --version` | flag | Print the mcpp version. | +| `mcpp version` | command | Show mcpp version | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/SKILL.md b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/SKILL.md new file mode 100644 index 000000000..dced1bd2b --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/SKILL.md @@ -0,0 +1,46 @@ +--- +name: mcpp-projects-and-templates +description: Create mcpp projects with new and package-provided templates, list template names, and validate generated files. +--- + +# Projects and Templates + +## Create and inspect + +```sh +mcpp new hello +mcpp new --list-templates mcpplibs.mwrap.opencv@5.0.0.1 +mcpp new vision --template mcpplibs.mwrap.opencv@5.0.0.1 +``` + +The last two commands are selector examples, not a guarantee that this version +is currently published in every configured index. Confirm the package first. +Template selectors are `[namespace.]name[@version][:template]`. A package with +one default template need not specify the suffix. List names before guessing. + +## Validate the result + +Inspect the generated manifest and source, then run `mcpp build`, `mcpp run` +and `mcpp test` in the new project. A template that renders successfully can +still contain an invalid dependency or need an unavailable device. + +For templates authored in a package, `{{self.name}}` denotes its complete +package selector. Keep it as one quoted TOML dependency key; do not wrap an +already namespaced selector in a second namespace table. + +Do not overwrite an existing project to retry template discovery. Select a +new output directory and keep the user's existing files. + +## Boundaries + +Package templates may fetch packages. A template's existence does not establish +that its selected feature, runtime backend or device is available. For wrappers, +import names and C++ namespaces remain separate: an mwrap module may export the +upstream namespace. Macros do not propagate through module imports. + +## References + +[Interface reference](references/interfaces.md). + +- [01-getting-started.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/01-getting-started.md) +- [03-examples.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/03-examples.md) diff --git a/.agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/references/interfaces.md new file mode 100644 index 000000000..12b3a7627 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/basics/mcpp-projects-and-templates/references/interfaces.md @@ -0,0 +1,16 @@ +# Projects And Templates Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp new` | command | Create a new mcpp package skeleton | +| `mcpp new --list-templates` | value | List templates from exact [ns.]pkg[@ver] | +| `mcpp new --template` (`-t`) | value | bin (default) \| [ns.]pkg[@ver][:template] — exact package template | +| `mcpp new ` | optional argument | Package directory name | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/devices/README.md b/.agents/skills/mcpp-api-skills/skills/devices/README.md new file mode 100644 index 000000000..4bbfdf140 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/devices/README.md @@ -0,0 +1,11 @@ +# Devices and heterogeneous builds + +**English** | [简体中文](README.zh-CN.md) + +Build and run code for devices, accelerators and freestanding targets. Compiler setup, runner selection and execution are separate parts of these workflows. + +| Skill | Topic | +| --- | --- | +| [mcpp-devices](mcpp-devices/SKILL.md) | Default/named runners, device access and exclusive execution | +| [mcpp-heterogeneous-builds](mcpp-heterogeneous-builds/SKILL.md) | Accelerator selection, device languages and host/device interfaces | +| [mcpp-freestanding](mcpp-freestanding/SKILL.md) | Bare-metal targets, BSPs, startup code and linker scripts | diff --git a/.agents/skills/mcpp-api-skills/skills/devices/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/devices/README.zh-CN.md new file mode 100644 index 000000000..f7252b98a --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/devices/README.zh-CN.md @@ -0,0 +1,11 @@ +# 设备与异构构建 + +[English](README.md) | **简体中文** + +为设备、加速器和 freestanding 目标构建与运行程序,涵盖设备编译器、runner 和运行环境。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-devices](mcpp-devices/SKILL.md) | 默认与命名 runner、设备访问和独占执行 | +| [mcpp-heterogeneous-builds](mcpp-heterogeneous-builds/SKILL.md) | 加速器选择、设备语言和 host/device 接口 | +| [mcpp-freestanding](mcpp-freestanding/SKILL.md) | 裸机目标、BSP、启动代码和链接脚本 | diff --git a/.agents/skills/mcpp-api-skills/skills/devices/mcpp-devices/SKILL.md b/.agents/skills/mcpp-api-skills/skills/devices/mcpp-devices/SKILL.md new file mode 100644 index 000000000..9b9821ea3 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/devices/mcpp-devices/SKILL.md @@ -0,0 +1,57 @@ +--- +name: mcpp-devices +description: Reach non-native artifacts through mcpp runners, named device actions, launch descriptions, exclusive access and declared runtime files. +--- + +# Devices and Runners + +## Discover the project's operations + +```sh +mcpp run --list-runners +mcpp why runners +mcpp run +``` + +The default runner is how the artifact is executed. Named runners are other +ways to reach it; names such as flash, monitor and debug come from packages, +not a fixed engine vocabulary. Only use a name the resolved project supplies. + +```sh +mcpp run --runner flash +mcpp run --features hardware +``` + +These commands can affect a device. The skill does not authorize hardware writes +or long-lived sessions beyond the user's requested task. + +## Package and project declarations + +Packages supply argv tokens with `runner(token)` or `runner(name,token)` and +declare the payload/tools that provide the executable. The project can replace +a default runner under a target row or a named argv under its `runners` table. +Use `{}` for explicit artifact placement, otherwise the artifact is appended. + +Use `runner_longlived(name)` for a process without a natural end and +`run_exclusive()` when the target admits only one user. Do not derive lifecycle +from a familiar operation name. + +Runner resolution and action tool lookup are different contexts. A declared +runner program can be resolved from prepared payloads; do not assume a random +PATH shim belongs to this home. Check actual resolved execution in a launch. + +## Tests and observation + +`run --print-launch` describes execution without performing it. The injected +`MCPP_RUNTIME_FILES` contract supplies declared runtime files to participating +runners. A test runner must preserve status and output correctly; a flash-only +command does not prove the test executed. + +`--no-runner` directly executes the artifact on the host, useful only when +that host can actually run its format/architecture. Record emulator versus +physical-device validation explicitly. + +## References + +- [41-devices.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/41-devices.md) +- [specs/concurrency.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/concurrency.md) diff --git a/.agents/skills/mcpp-api-skills/skills/devices/mcpp-freestanding/SKILL.md b/.agents/skills/mcpp-api-skills/skills/devices/mcpp-freestanding/SKILL.md new file mode 100644 index 000000000..5854586d9 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/devices/mcpp-freestanding/SKILL.md @@ -0,0 +1,52 @@ +--- +name: mcpp-freestanding +description: Build bare-metal and freestanding mcpp targets using BSP-provided startup, ABI/runtime layers, link scripts and an actual execution runner. +--- + +# Freestanding Targets + +## Start from a working board shape + +Use a supplied project template or a verified BSP example rather than deleting +hosted libraries from a normal command line: + +```sh +mcpp new firmware --template riscv-virt-rt +cd firmware +mcpp build +``` + +Confirm the template package is available in the configured index. Its toolchain, +BSP and emulator are prerequisites; source inspection does not verify a board. + +## State the target world + +A freestanding target has an `os = none` model. The BSP/platform supplies the +required compiler runtime, C environment/ABI or its absence, startup object, +entry symbol, memory/link script and runner. These are contracts, not one +universal `-nostdlib` recipe. + +Product `start` states the image entry symbol. A BSP can contribute `link_start` +and `link_script`; disagreement between entry declarations must be resolved, +not hidden with another linker flag. Use an entry target / main-from when a +package supplies reusable startup code. + +## Standard-library expectations + +Do not assume the hosted `import std` implementation exists for every bare-metal +row. Check the selected freestanding library surface and available compiler +runtime. Building the host-side generator still uses a host graph. + +## Validate compile and execution separately + +Use `test --no-run` for compile-only checks. Use a real runner/emulator for +execution, preserving status and expected output. Flashing successfully does +not prove the firmware reached its entry or passed a test. Record board model, +ISA, toolchain and runner for reproducibility. + +## References + +- [40-baremetal.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/40-baremetal.md) +- [34-authoring-a-bsp.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/34-authoring-a-bsp.md) +- [41-devices.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/41-devices.md) +- [specs/target-side.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/target-side.md) diff --git a/.agents/skills/mcpp-api-skills/skills/devices/mcpp-heterogeneous-builds/SKILL.md b/.agents/skills/mcpp-api-skills/skills/devices/mcpp-heterogeneous-builds/SKILL.md new file mode 100644 index 000000000..f4125a18a --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/devices/mcpp-heterogeneous-builds/SKILL.md @@ -0,0 +1,51 @@ +--- +name: mcpp-heterogeneous-builds +description: Configure accelerator selections and rule-driven device languages in mcpp, preserving host/device ABI boundaries and honest backend validation. +--- + +# Heterogeneous Builds + +## Select the variant + +```sh +mcpp build --accel 'cuda12.8+{sm_80}' +mcpp build --no-accel +``` + +The accelerator spelling and architecture must be supported by the actual +provider/toolkit; this example is not a device availability assertion. Inspect +the package's rules and available toolchain before choosing a backend. + +`[build] accel` and CLI selection describe the device variant. Package +`accelerators` and feature-gated tools describe offered/required capabilities. +Feature activation alone does not prove a device backend was compiled. + +## Keep the seam explicit + +Device code is compiled by rule actions. The C++ module graph stays on the host +side; use an explicit C ABI boundary where a vendor compiler cannot participate +in that module graph. Do not pass C++ standard-library objects or compiler- +specific layout across the seam without an established ABI contract. + +Generated C++ interfaces use source actions and declared module identities. +Device objects/binaries use the role matching their actual output. Toolkits and +large dependencies must be gated by the backend that needs them. + +## Add a device language + +A rule feature declares `device_extensions` and `rule_module`, submits actions +and declares its compiler as an input. It cannot take over built-in C/C++ +extensions. A source suffix recognized as device code is not evidence that a +compiler rule actually handles it. + +## Validate in layers + +First validate the host/device boundary without a physical device. Then verify +toolkit installation and compile. Finally execute on the intended device and +check results. Report these stages separately; do not claim a runtime backend +from a successful import, parse, cached object or skipped capability test. + +## References + +- [42-heterogeneous-builds.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/42-heterogeneous-builds.md) +- [31-authoring-a-rule-package.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/31-authoring-a-rule-package.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/README.md b/.agents/skills/mcpp-api-skills/skills/extensions/README.md new file mode 100644 index 000000000..0f4696d2c --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/README.md @@ -0,0 +1,15 @@ +# Build extensions + +**English** | [简体中文](README.zh-CN.md) + +Write build.mcpp programs and reusable rules with the public C++ API. Extension packages can provide tools, platforms, runtimes and packaging formats. + +| Skill | Topic | +| --- | --- | +| [mcpp-build-programs](mcpp-build-programs/SKILL.md) | build.mcpp lifecycle, inputs, phases and diagnostics | +| [mcpp-build-api](mcpp-build-api/SKILL.md) | mcpp.core functions, action methods and directive scope | +| [mcpp-build-actions](mcpp-build-actions/SKILL.md) | Generated sources, checks, objects, artifacts and prepare actions | +| [mcpp-rule-packages](mcpp-rule-packages/SKILL.md) | Rule modules, host tools and build-time reexports | +| [mcpp-toolchain-providers](mcpp-toolchain-providers/SKILL.md) | Toolchain discovery, bootstrap and tool roles | +| [mcpp-platform-packages](mcpp-platform-packages/SKILL.md) | Platform layers, link settings, runners and carriers | +| [mcpp-payloads-and-adapters](mcpp-payloads-and-adapters/SKILL.md) | Prebuilt payloads, runtime adapters, BSPs and custom formats | diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/extensions/README.zh-CN.md new file mode 100644 index 000000000..665577184 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/README.zh-CN.md @@ -0,0 +1,15 @@ +# 构建扩展 + +[English](README.md) | **简体中文** + +使用公开 C++ API 编写 build.mcpp 和可复用规则,通过扩展包提供工具、平台、运行时或打包格式。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-build-programs](mcpp-build-programs/SKILL.md) | build.mcpp 生命周期、输入、执行阶段和诊断 | +| [mcpp-build-api](mcpp-build-api/SKILL.md) | mcpp.core 函数、action 方法和指令作用域 | +| [mcpp-build-actions](mcpp-build-actions/SKILL.md) | 生成源文件、检查、目标文件、产物和 prepare action | +| [mcpp-rule-packages](mcpp-rule-packages/SKILL.md) | 规则模块、宿主工具和构建时依赖转发 | +| [mcpp-toolchain-providers](mcpp-toolchain-providers/SKILL.md) | 工具链探测、bootstrap 和工具角色 | +| [mcpp-platform-packages](mcpp-platform-packages/SKILL.md) | 平台层、链接设置、runner 和 carrier | +| [mcpp-payloads-and-adapters](mcpp-payloads-and-adapters/SKILL.md) | 预构建组件、运行时适配、BSP 和自定义格式 | diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/SKILL.md new file mode 100644 index 000000000..f2489b32f --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/SKILL.md @@ -0,0 +1,69 @@ +--- +name: mcpp-build-actions +description: Declare incremental mcpp actions with explicit argv, files, tools, depfiles and generated module identities using the source/check/object/artifact/prepare roles. +--- + +# Build Actions + +## Submit an explicit graph edge + +The following assumes the project already has `tools/generate.py`, an input +schema and a declared python payload: + +```cpp +import mcpp.core; +int main() { + const char* python = mcpp::xpkg_program("python"); + if (!python[0]) return 1; + mcpp::action a; + a.id = "generate-model"; + a.role = mcpp::roles::source; + a.input(python).input("tools/generate.py").input("schema.txt"); + a.output("generated/model.cpp"); + a.arg(python).arg("tools/generate.py").arg("schema.txt") + .arg("generated/model.cpp").cwd("."); + a.submit(); +} +``` + +The generator must actually produce the declared output. Use `.env(name,value)` +and `.cwd(dir)` instead of shell prefixes. Commands are argv arrays: `&&`, `>` +and `NAME=value` are not shell syntax unless a shell is explicitly the program. + +## Select the role + +| Role | Contract | +|---|---| +| source | Known generated source outputs join this package's compilation | +| check | Validation; `blocking` can gate compilation | +| object | Outputs join selected link units; omitted target includes tests | +| artifact | Post-link artifact work, including packaging | +| prepare | Populates one declared output_dir used as a directory | + +Declare generated module `provides` and `imports` at planning time. Names must +be known even when content is produced later. A prepare action is for directory +installation whose individual file names are not planning inputs. + +## Incrementality + +Include the tool binary as an input. Declare direct inputs; set `depfile` when +the command discovers additional dependencies and writes a Make-style depfile. +Keep outputs deterministic and unique. Declaration order is not a replacement +for file dependencies between actions. + +Action placeholders such as `${mcpp.self}` and target-file/stage handles have +specific availability. Read [the action contract](references/action-contract.md). +The `stage` helper is public in its action use, not a general installation API. + +## Validate + +Run once, run unchanged, change an input, and check that only required work +reruns. Also verify missing outputs and generator failure. A successful command +that did not produce its declared result is an invalid action. + +## References + +[Interface reference](references/interfaces.md). + +- [30-build-mcpp.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/30-build-mcpp.md) +- [specs/build-plugins.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-plugins.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/action-contract.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/action-contract.md new file mode 100644 index 000000000..dbcf0c6e2 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/action-contract.md @@ -0,0 +1,68 @@ +# Action Paths and Placeholders + +Baseline: mcpp 2026.10.31.3. Source: `directives::prepare_actions` in +modules/buildmcpp/src/directives.cppm and action substitution in +src/build/prepare/plan.cpp. + +## Path anchors + +Literal inputs, outputs, depfile and prepare output_dir are resolved against +the declaring package root. A relative explicit cwd is package-root-relative. +The command's ordinary default working directory is the build directory. +Arguments are not all automatically made absolute: an argument such as +`tools/generate.py` must agree with the selected cwd or use an absolute path. + +Changing cwd does not change how declared input/output paths are anchored. +The command must write the same file the output declaration names. + +## Engine substitutions + +| Token | Value and constraint | +|---|---| +| `${mcpp.self}` | Absolute current mcpp executable | +| `${mcpp.out_dir}` | Absolute configuration output directory; distinct from the build-program API's package-specific out_dir | +| `${mcpp.bin_dir}` | Product binary directory | +| `${mcpp.compile_db}` | Configuration compile database path | +| `${mcpp.contract}` | Configuration mcpp-contract.json path | +| `${mcpp.target_file:NAME}` | Link-unit output using its build-directory-relative spelling | +| `${mcpp.artifact:PACKAGE/TARGET}` | Artifact explicitly requested through a dependency's artifacts edge | +| `${mcpp.stage_dir}` | Absolute staged package closure, only in an artifact action of the applicable packaging pass | + +Engine path substitutions use forward slashes on Windows too. Unknown product +or artifact references fail; feature-gated targets must be active. Duplicate +target names in unrelated members can be ambiguous. + +The target-file form must keep the same graph node spelling as the link edge. +If the command uses a different cwd, account for that relative token explicitly. +An object action runs before the link: target() selects which link units receive +its objects; it is not a post-link target-file operation. + +## Portable file copy + +An action can invoke the engine rather than assume a shell copy command: + +```cpp +mcpp::action a; +a.id = "copy-asset"; +a.role = mcpp::roles::artifact; +a.input("assets/banner.txt"); +a.output("${mcpp.bin_dir}/banner.txt"); +a.arg("${mcpp.self}").arg("stage").arg("--verify").arg("content") + .arg("--output").arg("${mcpp.bin_dir}/banner.txt").arg("assets/banner.txt") + .cwd("."); +a.submit(); +``` + +Provide the actual input file. Stage creates destination parents and writes +when content differs. Its action argument shape is a public contract; other +backend commands are not automatically public because they appear in help. + +## Pack stage + +Declare the provided pack format on all runs. Submit actions using stage_dir +only for the requested format/pass and with role artifact. A plain build has +no staged closure. Library-form/unsupported staging can also refuse that token; +handle the format's actual applicability rather than substituting an empty path. + +Source/check/object/prepare cannot read a future staged tree. Do not generate +compile inputs from post-link packaging output. diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/interfaces.md new file mode 100644 index 000000000..e5ce6810f --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-actions/references/interfaces.md @@ -0,0 +1,16 @@ +# Build Actions Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp stage` | command | Copy one file into place: create the destination's parent, write only when the content differs (invoked by build.ninja and by ${mcpp.self} actions) | +| `mcpp stage --list` | value | Place every `\t` pair of FILE in one process (#734 E4); several lines naming one destination are its sources | +| `mcpp stage --output` (`-o`) | value | Destination path; its parent directory is created | +| `mcpp stage --verify` | value | How an existing destination is judged up to date: content (default) \| size | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/SKILL.md new file mode 100644 index 000000000..7c6734764 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/SKILL.md @@ -0,0 +1,61 @@ +--- +name: mcpp-build-api +description: Look up the actual bundled mcpp.core public C++ functions, action methods, diagnostics and build-program directive contracts; excludes internal engine modules. +--- + +# Public Build-Program API + +Use [the interface reference](references/interfaces.md) for source-extracted +signatures and directive scope. Use `mcpp-build-programs` for lifecycle and +`mcpp-build-actions` when constructing graph work. + +## Public entry point + +```cpp +import mcpp.core; +int main() { + mcpp::define("APP_HAS_CONFIG=1"); + mcpp::rerun_if_env_changed("APP_MODE"); +} +``` + +`import mcpp;` is equivalent. The module is materialized from the engine's +bundled source. Do not hard-code its store path or depend on an internal +`export module` merely because it exists in the mcpp checkout. + +## API groups + +| Need | Public surface | +|---|---| +| Compile inputs | cxxflag, cflag, define, include_dir, include_dir_after | +| Link requirements | link_lib, link_search, link_script, link_flag, link_start | +| Graph work | action, roles, generated/source declarations | +| Incremental configuration | rerun_if_changed, rerun_if_changed_glob, rerun_if_env_changed | +| Diagnostics/probes | warning, diagnostic, report, fact, floor | +| Configuration facts | target/host/profile and toolchain/runtime helpers | +| Dependencies/tools | dep_dir, dep_linkage, dep_bin, xpkg helpers | +| Runtime/device | deploy, runtime_search_dir, runner, runner_longlived, run_exclusive | +| Platform/package | toolchain, link_driver, link_input, artifact_name, seal, run_host, pack helpers | + +Use exact signatures rather than inventing overloads. The simple wrappers take +C strings; they do not imply `std::string`, path or list overloads. Empty lookup +results require checking. Helpers with trailing underscores are implementation +machinery even when visible in the generated source. + +## Scope and versions + +Compile directives are generally package-private; link requirements can reach +consumers. Do not use computed includes to widen a public library interface. +The current directive protocol is 17; a newer API may be absent in an older +engine at compile time, before any protocol handshake. Check the mcpp floor. + +Facts must describe measured host conditions. Declare the inputs that can change +them; a cached fact must not outlive the machine state it describes. A floor +without a matching fact is not proof that the requirement was verified. + +## References + +[Interface reference](references/interfaces.md). + +- [30-build-mcpp.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/30-build-mcpp.md) +- [specs/build-plugins.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-plugins.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/references/interfaces.md new file mode 100644 index 000000000..923b8cbfb --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-api/references/interfaces.md @@ -0,0 +1,171 @@ +# Build Api Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Public C++ declarations + +| Interface | Details | +| --- | --- | +| `action& arg(const char* a)` | action public method | +| `action& cwd(const char* dir)` | action public method | +| `action& env(const char* name, const char* value)` | action public method | +| `action& imports(const char* n)` | action public method | +| `action& input(const char* p)` | action public method | +| `action& output(const char* p)` | action public method | +| `action& output_dir(const char* p)` | action public method | +| `action& provides(const char* n)` | action public method | +| `action& target(const char* n)` | action public method | +| `void submit()` | action public method | +| `bool has_feature(const char* name)` | Build-program function | +| `bool xpkg_pending()` | Build-program function | +| `const char* abi_tool(const char* role)` | Build-program function | +| `const char* accel()` | Build-program function | +| `const char* compiler()` | Build-program function | +| `const char* cxx_abi_root()` | Build-program function | +| `const char* cxx_runtime()` | Build-program function | +| `const char* cxx_stdlib()` | Build-program function | +| `const char* dep_bin(const char* pkg, const char* tool)` | Build-program function | +| `const char* dep_dir(const char* name)` | Build-program function | +| `const char* dep_linkage(const char* name)` | Build-program function | +| `const char* device_sources()` | Build-program function | +| `const char* graph_file()` | Build-program function | +| `const char* host()` | Build-program function | +| `const char* manifest_dir()` | Build-program function | +| `const char* min_platform_version()` | Build-program function | +| `const char* msvc_crt_linkage()` | Build-program function | +| `const char* msvc_instance_dir()` | Build-program function | +| `const char* ninja_program()` | Build-program function | +| `const char* out_dir()` | Build-program function | +| `const char* pack_debug_symbols_dir()` | Build-program function | +| `const char* pack_format()` | Build-program function | +| `const char* pack_stage_dir()` | Build-program function | +| `const char* pack_strip()` | Build-program function | +| `const char* package_authors()` | Build-program function | +| `const char* package_description()` | Build-program function | +| `const char* package_license()` | Build-program function | +| `const char* package_name()` | Build-program function | +| `const char* package_namespace()` | Build-program function | +| `const char* package_repo()` | Build-program function | +| `const char* package_version()` | Build-program function | +| `const char* phase()` | Build-program function | +| `const char* pkg_config_libdir()` | Build-program function | +| `const char* profile()` | Build-program function | +| `const char* sysroot_dir()` | Build-program function | +| `const char* target()` | Build-program function | +| `const char* target_arch()` | Build-program function | +| `const char* target_builtins_lib()` | Build-program function | +| `const char* target_env()` | Build-program function | +| `const char* target_libc()` | Build-program function | +| `const char* target_libc_profile()` | Build-program function | +| `const char* target_os()` | Build-program function | +| `const char* tool(const char* role)` | Build-program function | +| `const char* tool_env()` | Build-program function | +| `const char* toolchain_binutils_dir()` | Build-program function | +| `const char* toolchain_dir()` | Build-program function | +| `const char* toolchain_sysroot()` | Build-program function | +| `const char* toolset_identity()` | Build-program function | +| `const char* xpkg_dir(const char* name)` | Build-program function | +| `const char* xpkg_dir(const char* ns, const char* name)` | Build-program function | +| `const char* xpkg_program(const char* name)` | Build-program function | +| `const char* xpkg_program(const char* ns, const char* name)` | Build-program function | +| `const char* xpkg_request(const char* ns, const char* name)` | Build-program function | +| `const char* xpkg_source(const char* name)` | Build-program function | +| `const char* xpkg_source(const char* ns, const char* name)` | Build-program function | +| `mcpp::action::blocking` | bool; default=false | +| `mcpp::action::depfile` | const char*; default="" | +| `mcpp::action::description` | const char*; default="" | +| `mcpp::action::id` | const char*; default="" | +| `mcpp::action::role` | const char*; default=roles::source | +| `mcpp::diagnostic::hint` | const char*; default="" | +| `mcpp::diagnostic::impact` | const char*; default="" | +| `mcpp::diagnostic::message` | const char*; default="" | +| `mcpp::diagnostic::severity` | const char*; default="warning" | +| `mcpp::action` | public type or role constant | +| `mcpp::diagnostic` | public type or role constant | +| `mcpp::roles::artifact` | public type or role constant | +| `mcpp::roles::check` | public type or role constant | +| `mcpp::roles::object` | public type or role constant | +| `mcpp::roles::prepare` | public type or role constant | +| `mcpp::roles::source` | public type or role constant | +| `void artifact_name(const char* kind, const char* pattern)` | Build-program function | +| `void cflag(const char* flag)` | Build-program function | +| `void cxxflag(const char* flag)` | Build-program function | +| `void define(const char* name)` | Build-program function | +| `void deploy(const char* from, const char* to)` | Build-program function | +| `void fact(const char* name, const char* version)` | Build-program function | +| `void floor(const char* spec)` | Build-program function | +| `void generated(const char* path)` | Build-program function | +| `void include_dir(const char* dir)` | Build-program function | +| `void include_dir_after(const char* dir)` | Build-program function | +| `void link_driver(const char* driver)` | Build-program function | +| `void link_flag(const char* flag)` | Build-program function | +| `void link_input(const char* path)` | Build-program function | +| `void link_input_from(const char* as, const char* token)` | Build-program function | +| `void link_lib(const char* name)` | Build-program function | +| `void link_script(const char* path)` | Build-program function | +| `void link_search(const char* dir)` | Build-program function | +| `void link_start(const char* symbol)` | Build-program function | +| `void provides_pack_format(const char* name)` | Build-program function | +| `void report(const diagnostic& d)` | Build-program function | +| `void rerun_if_changed(const char* path)` | Build-program function | +| `void rerun_if_changed_glob(const char* pattern)` | Build-program function | +| `void rerun_if_env_changed(const char* var)` | Build-program function | +| `void run_exclusive()` | Build-program function | +| `void run_host(const char* where)` | Build-program function | +| `void runner(const char* name, const char* token)` | Build-program function | +| `void runner(const char* token)` | Build-program function | +| `void runner_longlived(const char* name)` | Build-program function | +| `void runtime_search_dir(const char* dir)` | Build-program function | +| `void seal(int step, const char* token)` | Build-program function | +| `void source(const char* path)` | Build-program function | +| `void toolchain(const char* key, const char* value)` | Build-program function | +| `void warning(const char* message)` | Build-program function | +| `void windows_entry(const char* target, const char* value)` | Build-program function | +| `void windows_subsystem(const char* target, const char* value)` | Build-program function | + +## Build-program directives + +| Interface | Details | +| --- | --- | +| `mcpp:action` | scope=GraphNode; transform=Verbatim; since protocol=1; requires output=false | +| `mcpp:artifact-name` | scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false | +| `mcpp:cfg` | scope=PackagePrivate; transform=DefinePrefix; since protocol=1; requires output=false | +| `mcpp:cflag` | scope=PackagePrivate; transform=Verbatim; since protocol=1; requires output=false | +| `mcpp:cxxflag` | scope=PackagePrivate; transform=Verbatim; since protocol=1; requires output=false | +| `mcpp:decision` | scope=Advisory; transform=Verbatim; since protocol=15; requires output=false | +| `mcpp:deploy` | scope=LinkGlobal; transform=Deploy; since protocol=11; requires output=false | +| `mcpp:diagnostic` | scope=Advisory; transform=Verbatim; since protocol=14; requires output=false | +| `mcpp:fact` | scope=Claim; transform=Verbatim; since protocol=7; requires output=false | +| `mcpp:floor` | scope=Claim; transform=Verbatim; since protocol=7; requires output=false | +| `mcpp:generated` | scope=SourceSet; transform=Verbatim; since protocol=1; requires output=true | +| `mcpp:include-dir` | scope=PackagePrivate; transform=AbsPath; since protocol=1; requires output=false | +| `mcpp:include-dir-after` | scope=PackagePrivate; transform=AbsPath; since protocol=1; requires output=false | +| `mcpp:link-driver` | scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false | +| `mcpp:link-flag` | scope=LinkGlobal; transform=Verbatim; since protocol=8; requires output=false | +| `mcpp:link-input` | scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false | +| `mcpp:link-lib` | scope=LinkGlobal; transform=LibFlag; since protocol=1; requires output=false | +| `mcpp:link-script` | scope=LinkGlobal; transform=LinkerScript; since protocol=3; requires output=false | +| `mcpp:link-search` | scope=LinkGlobal; transform=LibSearchPath; since protocol=1; requires output=false | +| `mcpp:link-start` | scope=LinkGlobal; transform=Verbatim; since protocol=16; requires output=false | +| `mcpp:pack-format` | scope=Claim; transform=Verbatim; since protocol=9; requires output=false | +| `mcpp:rerun-if-changed` | scope=RerunKey; transform=Verbatim; since protocol=1; requires output=false | +| `mcpp:rerun-if-changed-glob` | scope=RerunKey; transform=Verbatim; since protocol=2; requires output=false | +| `mcpp:rerun-if-env-changed` | scope=RerunKey; transform=Verbatim; since protocol=1; requires output=false | +| `mcpp:run-exclusive` | scope=RunGlobal; transform=Verbatim; since protocol=6; requires output=false | +| `mcpp:run-host` | scope=RunGlobal; transform=Verbatim; since protocol=17; requires output=false | +| `mcpp:runner` | scope=RunGlobal; transform=Verbatim; since protocol=4; requires output=false | +| `mcpp:runner-longlived` | scope=RunGlobal; transform=Verbatim; since protocol=6; requires output=false | +| `mcpp:runner-named` | scope=RunGlobal; transform=Verbatim; since protocol=6; requires output=false | +| `mcpp:runtime-search-dir` | scope=LinkGlobal; transform=AbsPath; since protocol=12; requires output=false | +| `mcpp:seal` | scope=LinkGlobal; transform=Verbatim; since protocol=17; requires output=false | +| `mcpp:source` | scope=SourceSet; transform=Verbatim; since protocol=1; requires output=true | +| `mcpp:toolchain` | scope=Claim; transform=Verbatim; since protocol=15; requires output=false | +| `mcpp:warning` | scope=Advisory; transform=Verbatim; since protocol=5; requires output=false | +| `mcpp:windows-entry` | scope=TargetLink; transform=Verbatim; since protocol=10; requires output=false | +| `mcpp:windows-subsystem` | scope=TargetLink; transform=Verbatim; since protocol=10; requires output=false | +| `mcpp:xpkg-request` | scope=Claim; transform=Verbatim; since protocol=15; requires output=false | + +## Source + +- [modules/buildmcpp/src/directives.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/buildmcpp/src/directives.cppm) +- [src/build/hostprogram.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/build/hostprogram.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-programs/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-programs/SKILL.md new file mode 100644 index 000000000..7014c2e10 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-build-programs/SKILL.md @@ -0,0 +1,58 @@ +--- +name: mcpp-build-programs +description: Write mcpp build.mcpp configuration programs using the bundled public module, declared rerun inputs, diagnostics and phase-specific contracts. +--- + +# Build Programs + +Use a build program when declarative configuration cannot express a probe or +graph extension. Do not add one to repeat constants already expressible in TOML. + +## Minimal program + +```cpp +// build.mcpp at the package root +import mcpp.core; +int main() { + mcpp::define("APP_CONFIGURED=1"); + mcpp::rerun_if_changed("config.txt"); + mcpp::rerun_if_env_changed("APP_MODE"); +} +``` + +Provide the referenced input or choose an existing project input. The engine +supplies the public module; `import mcpp;` is an equivalent entry. Do not import +internal `mcpp.build.*` modules into a user's build program. + +## Separate configuration from construction + +The program configures the graph. Code generation, compilation, installation +and validation work belong in declared actions. Do not write generated sources +into `src/` during planning. A source action declares outputs before they exist; +a prepare action supplies an installation directory; a check action validates. + +## Rerun contract + +Declare files whose contents affect configuration and environment variables +whose values are read. `rerun_if_changed_glob` tracks changes to the matching +path set; it does not replace content dependencies on those files. + +The program has a bounded run time (600 seconds by default at this baseline) +and distinct ordinary/toolchain/platform phases. Inspect `phase()` and use only +the directives allowed in the current phase. Protocol version and cache epoch +are different values, not the mcpp release number. + +## Diagnostics + +Use `warning` or structured `report` for messages that must be visible on a +successful run and replay from cache. Plain captured stdout/stderr is not the +same user-facing diagnostic channel. Return nonzero for a failed probe that +prevents a valid graph, and state the failed prerequisite. + +The build program cannot add registry dependencies dynamically. Keep package +requirements declarative, including conditional and optional requirements. + +## References + +- [30-build-mcpp.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/30-build-mcpp.md) +- [specs/build-plugins.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-plugins.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-payloads-and-adapters/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-payloads-and-adapters/SKILL.md new file mode 100644 index 000000000..ae289fbf0 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-payloads-and-adapters/SKILL.md @@ -0,0 +1,55 @@ +--- +name: mcpp-payloads-and-adapters +description: Package prebuilt tools and libraries, runtime adapters, BSP contributions and custom distribution formats for mcpp consumers. +--- + +# Payloads and Adapters + +## Choose the package role + +- A source library is built by mcpp: use `mcpp-publishing`. +- A payload is installed, not compiled by mcpp: a tool, driver, SDK or library. +- A runtime adapter makes a host-supplied library reachable under a declared ABI. +- A BSP supplies startup/link/runtime/device facts for a board. +- A format provider turns a staged tree into a distributable artifact. + +These roles can share build-program primitives without sharing a descriptor +schema. Do not paste a source-library descriptor into a tool payload recipe. + +## Payload workflow + +Use the xpkg/xim package descriptor and hooks to place files in the install root +and register offered programs/libraries. Declare actual architectures, systems, +release URLs, checksums, license and dependencies. A `latest` reference is not +a reproducible release pin. Consumer access goes through declared workspace or +feature-xlings requirements, not an unrelated global install. + +Installation hooks can receive target information before the toolchain is fully +resolved. They must not populate one version-keyed shared store directory with +an unkeyed target-specific build variant. Empty compiler/library variables are +not permission to guess the target ABI. + +## Runtime adapters and BSPs + +Adapters declare requirements and measured host facts, locate the required +runtime files and contribute correct search/deploy information. Do not claim +a provider works merely because the host has a similarly named `.so` or DLL. +BSPs additionally supply the target ABI/runtime, startup entry, linker script +and runner as needed; validation requires a real or emulated board. + +## Custom package formats + +Declare `provides_pack_format` unconditionally so discovery works. Submit +format work only when that format is requested. Use artifact actions and the +stage/target handles; report the actual artifact. Do not reserve an engine +format name or assume every format is available in every resolved graph. + +Validate installation on a fresh isolated home and consumption by another +project. Recipe syntax alone does not prove a usable payload or ABI. + +## References + +- [32-authoring-a-payload.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/32-authoring-a-payload.md) +- [33-authoring-an-adapter.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/33-authoring-an-adapter.md) +- [34-authoring-a-bsp.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/34-authoring-a-bsp.md) +- [specs/build-plugins.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-plugins.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/SKILL.md new file mode 100644 index 000000000..cf2b95c89 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/SKILL.md @@ -0,0 +1,62 @@ +--- +name: mcpp-platform-packages +description: Author and override mcpp platform packages with targets, ABI layers, tools, link contracts, runners, host settings and carriers. +--- + +# Platform Packages + +## Treat platform and machine as separate declarations + +A platform package states a class of targets. A project selects it with +`--platform`, a target-row `platform`, a machine configuration or a target-table +default. `--host-platform` selects the build-host graph separately. + +Use a package or a local `path:` selector for development; `none` disables a +selection explicitly. A platform does not invent extra pack legs: the command, +pack settings or requested target set determines those. + +## Package surface + +| Section | Meaning | +|---|---| +| `[platform]` | Targets, toolchain, sysroot, runners and plugin | +| `[platform.layers]` | C ABI, C++ ABI, compiler/kernel runtime packages or false | +| `[platform.tools]` | Programs built for or found on the build machine | +| `[platform.build]` | Graph-wide target compile inputs | +| `[platform.link]` | Driver, flags, script, entry, inputs, artifact names, seal | +| carrier | System-specific launcher/container construction | +| hosted / host | Host-side selection and execution contracts | + +Use the local parser reference for accepted shapes. Layer names are contract +identities, not arbitrary compiler flags. A layer supplied by the graph may take +precedence over the platform convention. + +## Override one part + +```toml +[target.'cfg(platform = "openkal")'.layers] +c-abi = { path = "../openkal-musl" } +``` + +Use an existing package directory. Compile/link flags append; link inputs and +seal sequences replace whole values; layers/tools/runners replace by key. +Do not assume every override has the same merge behavior. Resolved-layer +conditions cannot decide the dependencies that create the layer. + +## Platform program and carriers + +Platform-phase statements supply link/artifact/seal/run-host facts through +public APIs. Ordinary package configuration and toolchain statements have +different phase limits. A carrier is a program built for the stated system, +not a shell string glued around a foreign image. + +Validate target selection, the actual link/artifact shape, runner reachability +and packaging separately. Do not claim platform support from a parsed table. + +## References + +[Interface reference](references/interfaces.md). + +- [35-platforms.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/35-platforms.md) +- [specs/platforms.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/platforms.md) +- [specs/target-sets.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/target-sets.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/references/interfaces.md new file mode 100644 index 000000000..3d0293bc6 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-platform-packages/references/interfaces.md @@ -0,0 +1,64 @@ +# Platform Packages Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Platform fields + +| Interface | Details | +| --- | --- | +| `build` | carrier table | +| `hosts` | carrier table | +| `main` | carrier table | +| `package` | carrier table | +| `section` | carrier table | +| `asmflags` | build table | +| `cflags` | build table | +| `cxxflags` | build table | +| `ldflags` | build table | +| `driver` | link table | +| `exe` | link table | +| `flags` | link table | +| `inputs` | link table | +| `script` | link table | +| `seal` | link table | +| `shared` | link table | +| `start` | link table | +| `carrier` | [target.] | +| `layers` | [target.] | +| `link` | [target.] | +| `platform` | [target.] | +| `runner` | [target.] | +| `runners` | [target.] | +| `tools` | [target.] | +| `branch` | ref value | +| `default-features` | ref value | +| `features` | ref value | +| `git` | ref value | +| `name` | ref value | +| `path` | ref value | +| `rev` | ref value | +| `tag` | ref value | +| `version` | ref value | +| `cmd` | runner table | +| `exclusive` | runner table | +| `host` | runner table | +| `hosts` | runner table | +| `build` | [platform] | +| `carrier` | [platform] | +| `descriptor_keys` | [platform] | +| `hosted` | [platform] | +| `layers` | [platform] | +| `link` | [platform] | +| `plugin` | [platform] | +| `runner` | [platform] | +| `runners` | [platform] | +| `sysroot` | [platform] | +| `targets` | [platform] | +| `toolchain` | [platform] | +| `tools` | [platform] | +| `universal` | [platform] | +| `versions` | [platform] | + +## Source + +- [modules/manifest/src/platform_toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/platform_toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-rule-packages/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-rule-packages/SKILL.md new file mode 100644 index 000000000..5ea8f5ae0 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-rule-packages/SKILL.md @@ -0,0 +1,54 @@ +--- +name: mcpp-rule-packages +description: Author and consume reusable mcpp rule modules, feature-gated device extensions and host-built tools, including explicit build-time reexports. +--- + +# Rule Packages and Host Graphs + +## Package the task, not an engine patch + +A rule package is an ordinary package exporting a C++ module that submits +actions. A feature can declare `rule_module` and `device_extensions`. The +consumer activates the feature and imports the rule module in its build program. + +```toml +[features] +default = [] +shader = { rule_module = "myrules.shader", device_extensions = [".shaderx"] } +``` + +The package must actually export that module and implement its callable API. +Do not invent a vendor-specific engine rule name. + +## Host versus target libraries + +Build-program libraries belong in `[build-dependencies]`; host tools can be +requested with a dependency edge's `tools = [...]`. Resolve them with `dep_bin` +rather than searching target output directories. `host-module` and rule-module +imports contribute to the host graph. + +Ordinary target dependencies can still expose a rule through their declared +feature contract. Do not assume every target module is available to the build +program merely because the product imports it. + +## Reexports + +Build-time tools, host modules and dependency directories do not automatically +flow through every dependency edge. Set `reexport = true` only where the package +intends to expose them, and test a transitive consumer. This is separate from +public target include/link usage. + +## Language extension limits + +A rule can claim new device suffixes. It cannot reclassify `.cpp`, `.cppm`, +`.c` or another built-in source role. Module-interface suffixes belong to the +project's module configuration. Use source/object/artifact roles based on the +actual output, and declare generated module identities. + +Test the rule from a separate consumer with only its declared dependencies. +A successful root workspace build may hide an undeclared host dependency. + +## References + +- [31-authoring-a-rule-package.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/31-authoring-a-rule-package.md) +- [specs/build-plugins.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-plugins.md) diff --git a/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-toolchain-providers/SKILL.md b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-toolchain-providers/SKILL.md new file mode 100644 index 000000000..2e905f416 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/extensions/mcpp-toolchain-providers/SKILL.md @@ -0,0 +1,63 @@ +--- +name: mcpp-toolchain-providers +description: Configure local or program-provided mcpp toolchains using bootstrap/configure phases, tool roles and explicit origins rather than hard-coded compiler layouts. +--- + +# Toolchain Providers + +## Choose the smallest extension + +Use a normal toolchain selector for an existing payload. A local toolchain can +declare path/prefix/family and role-specific programs. Use a configure program +only when locating or selecting the toolchain requires computation. + +```toml +[toolchain] +default = { configure = "build.mcpp" } +``` + +Each `[toolchain]` entry selects a toolchain for `default` or a host platform +such as `windows`. A configure entry is a table containing only +`configure = "build.mcpp"`; do not combine it with `path`, `family` or `tools`. +The separate `bootstrap` entry names the toolchain used to build host programs. + +The root program runs in the toolchain phase before ordinary configuration. +Its bootstrap toolchain must be available before it can discover the product +toolchain. Use `phase()` to select the statements for each invocation. + +## Emit declared toolchain facts + +The public `toolchain(key,value)` API accepts the configured toolchain keys, +including spec/path/prefix/sysroot/family/launcher, `tool.` and origin. +It is not valid in an arbitrary ordinary or platform invocation. Use `phase()` +to distinguish the runs; non-toolchain work belongs in the later appropriate +phase rather than being unconditionally executed twice. + +Use `tool(role)` and `abi_tool(role)` in downstream rules instead of deriving +`ar`, `ld` or dlltool from a guessed compiler sibling path. An unavailable role +must produce a prerequisite diagnostic, not a bare command-not-found error. + +## Provenance and incremental inputs + +Declare files/environment that change the selected toolchain. When a payload +is optional, follow the request/pending/retry contract before configuring it. +Report actual origins with the public decision channel; do not label a local +PATH program as a registry payload. + +## Validate + +With the bootstrap prerequisites available, verify that the program actually +runs in the toolchain phase and that its declarations select the intended +compiler. A manifest loading successfully is not evidence that a configure +entry was selected. Inspect `why toolchain`, `why sources` and the fingerprint. + +Test native and cross cases separately, including the driver, ABI, sysroot, +linker and host compilation of the configure program. A directory containing +a compiler does not establish a complete C++ modules toolchain. + +## References + +- [20-toolchains.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/20-toolchains.md) +- [30-build-mcpp.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/30-build-mcpp.md) +- [specs/toolchain-management.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/toolchain-management.md) +- [specs/build-plugins.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-plugins.md) diff --git a/.agents/skills/mcpp-api-skills/skills/integration/README.md b/.agents/skills/mcpp-api-skills/skills/integration/README.md new file mode 100644 index 000000000..95947d58e --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/README.md @@ -0,0 +1,10 @@ +# Program interfaces + +**English** | [简体中文](README.zh-CN.md) + +Drive mcpp from agents, editors or CI. Parse machine output, inspect launch descriptions and export the build database. + +| Skill | Topic | +| --- | --- | +| [mcpp-machine-interface](mcpp-machine-interface/SKILL.md) | JSON/NDJSON, launch records, exit codes, effects and cancellation | +| [mcpp-build-database](mcpp-build-database/SKILL.md) | S1, compile commands, watched inputs and configuration fingerprints | diff --git a/.agents/skills/mcpp-api-skills/skills/integration/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/integration/README.zh-CN.md new file mode 100644 index 000000000..193a45975 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/README.zh-CN.md @@ -0,0 +1,10 @@ +# 程序接口 + +[English](README.md) | **简体中文** + +从 agent、编辑器或 CI 调用 mcpp,解析机器输出、获取启动描述和导出构建数据库。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-machine-interface](mcpp-machine-interface/SKILL.md) | JSON/NDJSON、启动记录、退出码、副作用和取消 | +| [mcpp-build-database](mcpp-build-database/SKILL.md) | S1、编译命令、监测输入和配置指纹 | diff --git a/.agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/SKILL.md b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/SKILL.md new file mode 100644 index 000000000..c23517b28 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/SKILL.md @@ -0,0 +1,52 @@ +--- +name: mcpp-build-database +description: Export mcpp S1 build databases and compile commands for editors or tools, watch declared inputs and distinguish read-only export from configure-only project writes. +--- + +# Build Database Integration + +## Export a plan + +```sh +mcpp emit build-database --format json +``` + +Validate the `mcpp.build-database` envelope. Its data contains the S1 database, +watch inputs and `inputs-fingerprint`. Consume the actual schema version; do +not infer a compile command by joining human compiler output. + +The S1 description includes compilation and build-program information. Keep +host build programs distinct from target products when indexing sources. + +## Refresh deliberately + +Watch the declared files/environment inputs and compare the fingerprint when +deciding whether to re-query. A single root manifest mtime does not cover +dependency manifests, toolchain/configuration or build-program inputs. + +`mcpp build --configure-only` writes project compilation metadata and prepares +a build directory. Database export does not write project output by default; +an explicit output request has its own contract. Use command help and the local +reference for S1 versus compile-commands selection and output destination. + +## Side effects and failure + +Export can prepare dependencies, use global caches, access the network or run +build programs. 'Does not write the project' is not 'performs no writes'. Apply +the caller's effect constraints and interpret denied effect separately from +an invalid project. Return diagnostics and keep a previous good database only +as visibly stale state, not silently current truth. + +## Validate + +Check a nonempty database for known source files, correct host/target entries, +argv boundaries and input fingerprint. Compare the project tree before/after +the default export. An exit-zero response with an empty graph is insufficient. +Use the vendored S1 schema and existing database tests when extending integration. + +## References + +[Interface reference](references/interfaces.md). + +- [50-machine-output.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/50-machine-output.md) +- [specs/build-database.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/build-database.md) diff --git a/.agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/references/interfaces.md new file mode 100644 index 000000000..4fc58ac9c --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-build-database/references/interfaces.md @@ -0,0 +1,40 @@ +# Build Database Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp emit build-database` | command | Print the build plan as an S1 build database, without writing into the project | +| `mcpp emit build-database --accel` | value | Device backends and architectures (same axis as `mcpp build --accel`) | +| `mcpp emit build-database --cap` | value | Pin capability providers (e.g. blas=openblas,lapack=mkl) | +| `mcpp emit build-database --dev` | flag | Shorthand for --profile dev | +| `mcpp emit build-database --exclude` | value; repeatable | With --workspace (or at a virtual workspace root), leave the named member out; repeatable, refused with -p | +| `mcpp emit build-database --features` | value | Activate root-package features, and a dependency's as / (comma-separated) | +| `mcpp emit build-database --format` | value | Machine-readable output (enveloped; see docs/50-machine-output.md) | +| `mcpp emit build-database --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp emit build-database --no-accel` | flag | Describe the variant built for no accelerator | +| `mcpp emit build-database --output` (`-o`) | value | Write to file instead of stdout | +| `mcpp emit build-database --package` (`-p`) | value; repeatable | Describe the named workspace member (namespace.name or package name, then directory); repeat to describe several | +| `mcpp emit build-database --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp emit build-database --profile` | value | Build profile: dev (default) \| release \| dist \| <[profile.*] name> | +| `mcpp emit build-database --release` | flag | Shorthand for --profile release | +| `mcpp emit build-database --spec` | value | Document specification: s1 (default; the S1 IDE profile of P2977R2) \| compile-commands | +| `mcpp emit build-database --static` | flag | Describe the build with --static | +| `mcpp emit build-database --strict` | flag | Treat manifest schema warnings (unknown feature/platform) as errors | +| `mcpp emit build-database --sysroot` | value | The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none | +| `mcpp emit build-database --target` | value | Describe the build for (same axis as `mcpp build --target`) | +| `mcpp emit build-database --toolchain` | value | Describe the build with this toolchain, e.g. llvm@22.1.8 | +| `mcpp emit build-database --workspace` | flag | Describe all workspace members in one document | + +## Output kinds + +| Interface | Details | +| --- | --- | +| `mcpp.build-database` | data version=1 | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) +- [src/wire.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/wire.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/SKILL.md b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/SKILL.md new file mode 100644 index 000000000..b280d2fe3 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/SKILL.md @@ -0,0 +1,91 @@ +--- +name: mcpp-machine-interface +description: Drive mcpp from an agent or program with positive protocol detection, JSON/NDJSON, launch/result records, exit statuses, denied effects, locks and cancellation. +--- + +# Program and Agent Control + +## Detect positively + +```sh +mcpp --protocol-version +``` + +Parse stdout and require the expected `schemaVersion` and `kind`. An old binary +can print a human error on stdout; neither exit zero nor 'no error' proves a +protocol. Check envelope/kind versions and advertised features. At this baseline +features include target-sets, pkg-format-list and test-launch. Probe rather than +assuming the installed binary matches the suite's reviewed source. + +## Use the correct channel + +| Operation | Interface | +|---|---| +| self env, cache list, search, index list, toolchain list | `--format json` | +| Supported why topics | `--format json` | +| Build | `--message-format json`: event NDJSON, final `mcpp.build` | +| Tests | `--message-format json`: per-test NDJSON | +| Pack | `--message-format json`: `mcpp.pack` envelope | +| Run / one selected test launch | `--print-launch`: `mcpp.launch` | + +Do not parse the entire build stream as one JSON document. Keep stderr separate; +it carries human narration. Legacy `--json` on cache/xpkg is a different payload, +not a universal alias. `--pkg-format` selects a container, not output encoding. + +## Launch and persistent records + +Launch `argv` as an argument array, use its `cwd`, and overlay the reported +environment changes on the caller's environment. `env` is not a full snapshot. +Never reconstruct an unquoted shell command from the array. + +`target/.last-result.json` points to result records. Records distinguish running, +ok, failed and cancelled; multiple target legs can have an aggregate. A killed +process may leave a stale running record, so correlate process/liveness instead +of waiting forever. Launch description still builds first; it does not execute +the user program. + +## Constraints and statuses + +```sh +mcpp --deny network,exec-build-script build +mcpp --offline build +``` + +Static protocol effects state what may happen; result effects describe the run. +Query does not imply zero side effects: prepare can provision and execute build +programs. `read-project` is not denyable. Offline denies network; disabling auto +toolchain install is a narrower setting. + +Denying `write-global-cache` is special: the build uses project-local caching +instead of necessarily stopping with status 5. Interpret the actual denied +operation, not a universal rule that every deny must fail. + +For envelope fields, build/launch data and a minimal streaming consumer, read +[control records](references/control-records.md). + +Interpret statuses per command: ordinary failure 1, usage 2, offline missing +dependency 4, denied effect 5, internal error 70; run build failure 101, program +status passthrough and startup failures need separate handling. POSIX signal +statuses are platform-specific. Consult the exit-code specification for 125-127 +and special command paths rather than labeling every 127 'unknown command'. + +## Concurrency and compatibility + +Same-configuration builds serialize through a directory lock. `MCPP_CLIENT` +labels the caller. Run/test release build locks before executing the product. +Respect cancellation and read the resulting status; do not remove another +process's lock to make progress. + +Only implemented why topics expose stable JSON: toolchain/sysroot, sources/tool/ +payload, build-programs and compat. Do not fabricate shapes for runtime/deps/ +runners. Additional/optional fields and unavailable features need explicit +handling rather than guessed fallbacks to human log parsing. + +## References + +[Interface reference](references/interfaces.md). + +- [50-machine-output.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/50-machine-output.md) +- [52-driving-mcpp-from-a-program.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/52-driving-mcpp-from-a-program.md) +- [specs/exit-codes.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/exit-codes.md) +- [specs/concurrency.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/concurrency.md) diff --git a/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/control-records.md b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/control-records.md new file mode 100644 index 000000000..624389226 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/control-records.md @@ -0,0 +1,118 @@ +# Control Record Fields + +Baseline: mcpp 2026.10.31.3. Fields below are grounded in `wire::to_json`, +`result::to_json`, `result::render_last` and the result event writer. Paths and +values in examples are illustrative, not captured runtime output. + +## Envelope + +Ordinary machine documents contain: + +| Field | Meaning | +|---|---| +| schemaVersion | Envelope shape version; require a supported version | +| kind | Document identity, such as mcpp.build or mcpp.launch | +| kindVersion | Version of this kind's data | +| mcpp.version | Producing mcpp release | +| mcpp.protocol | Supported envelope min/max | +| mcpp.features | Capabilities available inside existing commands | +| effects | Effects observed/reported for this invocation | +| diagnostics | Envelope-level diagnostics | +| data | Kind-specific data; can be absent on failures with nothing to describe | + +The discovery document `mcpp.protocol` has its own top-level envelope/kinds/ +commands/features shape, not ordinary command data. An event is also a distinct +stream record, not a full envelope. A parser must branch by kind and version. + +Diagnostics can carry code, severity, source, message, optional path and range. +Ranges have start/end line and column; the serializer derives locations from +compiler messages when possible. Do not require a location on a global error. + +## Build NDJSON + +Read one JSON record per stdout line. Events have `kind = mcpp.event`, an event +name and event-specific fields. Multiple legs may add target context. The final +`mcpp.build` envelope has result data: + +| Data field | Meaning | +|---|---| +| command, client, pid | Invoking command, caller label and process | +| startedAt, finishedAt | Epoch milliseconds; finishedAt can be null | +| status | running / ok / failed / cancelled | +| configuration | triple, profile, fingerprint, outputDir, platform, hostPlatform | +| compileDatabase | Database path or null | +| artifacts | name, kind, path; optional launch and entry | +| diagnostics | Build diagnostics with optional path/range | + +Envelope diagnostics and data.diagnostics have different origins; preserve +both. A nonzero process status does not mean stdout cannot contain useful JSON. +Missing final output after cancellation/crash must not be labeled successful. + +Minimal consumer for a previously saved build stream: + +```python +import json + +final = None +with open("build.ndjson", encoding="utf-8") as stream: + for line in stream: + record = json.loads(line) + if record.get("schemaVersion") != 1: + raise ValueError("unsupported envelope/event version") + if record.get("kind") == "mcpp.event": + continue # update progress from this event if needed + if record.get("kind") == "mcpp.build": + if record.get("kindVersion") != 1: + raise ValueError("unsupported build data version") + final = record +if final is None: + raise RuntimeError("build did not report a final result") +data = final.get("data") +if not isinstance(data, dict) or data.get("status") != "ok": + raise RuntimeError({"diagnostics": final.get("diagnostics", []), "data": data}) +``` + +Also check the original process status. Keep stderr separate when capturing the +stream; never feed human narration to this parser. For test JSON use its per-test +records, not this final-build algorithm. + +## Launch + +Run and single-test launch share the `mcpp.launch` envelope. Its data is: + +```json +{ + "argv": ["/absolute/path/to/program", "--example"], + "cwd": "/absolute/path/to/project", + "env": {"EXAMPLE_INJECTED_VARIABLE": "value"}, + "via": null +} +``` + +via is null or the selected runner/run_under path classification. Overlay env +on the caller's environment. Spawn argv directly with cwd; do not join it into +a shell string. Inspecting launch builds first, but does not run the product. + +Test launch requires a single selected member, one matched test and one target +leg. --list, --archive, --no-run and --message-format json are incompatible. + +## Disk records and cancellation + +`target/.last-result.json` is `mcpp.last-result` with data.result pointing to a +configuration result.json, data.status and data.finishedAt. Multiple legs also +list their records under data.legs, with failed/cancelled/ok aggregate status. +Read the pointer instead of guessing a fingerprint directory. The record file +has a `mcpp.result` document whose data follows the result schema above. This +kind differs from the final stdout `mcpp.build` envelope. + +POSIX cancellation can write cancelled records. SIGKILL can leave running plus +a dead pid. Check liveness and freshness; do not assume running means a live +build or force-remove the build lock. + +## Denied effects + +Use the discovery command table before running to inspect possible effects. +An envelope's list is not a preflight approval. Denial usually stops before the +operation with status 5. Denying write-global-cache instead selects local +caching where applicable. Offline denies network, while MCPP_NO_AUTO_INSTALL +only prevents automatic toolchain installation. diff --git a/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/interfaces.md new file mode 100644 index 000000000..68e1ef671 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/integration/mcpp-machine-interface/references/interfaces.md @@ -0,0 +1,26 @@ +# Machine Interface Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Output kinds + +| Interface | Details | +| --- | --- | +| `mcpp.build` | data version=1 | +| `mcpp.cache` | data version=1 | +| `mcpp.env` | data version=1 | +| `mcpp.index` | data version=1 | +| `mcpp.launch` | data version=1 | +| `mcpp.pack` | data version=1 | +| `mcpp.pack.formats` | data version=1 | +| `mcpp.search` | data version=1 | +| `mcpp.toolchain.list` | data version=1 | +| `mcpp.why.build-programs` | data version=1 | +| `mcpp.why.compat` | data version=1 | +| `mcpp.why.sources` | data version=1 | +| `mcpp.why.toolchain` | data version=1 | +| `mcpp.xpkg` | data version=1 | + +## Source + +- [src/wire.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/wire.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/operations/README.md b/.agents/skills/mcpp-api-skills/skills/operations/README.md new file mode 100644 index 000000000..94f08474f --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/README.md @@ -0,0 +1,11 @@ +# Environment and troubleshooting + +**English** | [简体中文](README.zh-CN.md) + +Inspect homes and caches, explain build decisions and diagnose failures before changing the environment. + +| Skill | Topic | +| --- | --- | +| [mcpp-environment](mcpp-environment/SKILL.md) | Home selection, configuration, environment variables and self commands | +| [mcpp-cache](mcpp-cache/SKILL.md) | Project/global caches, stale outputs and cleanup commands | +| [mcpp-troubleshooting](mcpp-troubleshooting/SKILL.md) | why, doctor, explain and targeted reproduction | diff --git a/.agents/skills/mcpp-api-skills/skills/operations/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/operations/README.zh-CN.md new file mode 100644 index 000000000..f0cb78aa4 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/README.zh-CN.md @@ -0,0 +1,11 @@ +# 环境与排错 + +[English](README.md) | **简体中文** + +检查 home 和缓存、查看构建决策,并依据诊断信息定位故障。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-environment](mcpp-environment/SKILL.md) | home 选择、配置、环境变量和 self 命令 | +| [mcpp-cache](mcpp-cache/SKILL.md) | 工程与全局缓存、过期输出和清理命令 | +| [mcpp-troubleshooting](mcpp-troubleshooting/SKILL.md) | why、doctor、explain 和针对性复现 | diff --git a/.agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/SKILL.md b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/SKILL.md new file mode 100644 index 000000000..0689600fa --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/SKILL.md @@ -0,0 +1,53 @@ +--- +name: mcpp-cache +description: Inspect and clean mcpp project outputs and shared dependency/std/tool caches with explicit scope, stale previews, verification and size or age budgets. +--- + +# Cache Inspection and Cleanup + +## Inspect before deleting + +```sh +mcpp clean --report +mcpp clean --dry-run +mcpp cache dir +mcpp cache list --format json +mcpp cache verify +``` + +`clean --report` shows project bytes. `--dry-run` previews stale cleanup and +implies stale selection; it does not preview a full global cache deletion. +`clean --stale` removes state no recorded current configuration needs. + +## Project versus global + +Plain `clean` removes project target output. `clean --bmi-cache` additionally +affects the global build cache. Do not use it as the first response to any +compiler diagnostic. + +`cache clean` defaults to dependency entries. `--std`, `--tools`, `--all` and +`--legacy` select other explicit scopes. Shared cache cleanup affects other +projects; preserve the user's requested scope. + +Use `cache info @` for identity inputs and `cache verify` for +manifest/file integrity. Age/size maintenance uses `prune --older-than` or +`gc --max-size` / `--older-than`; read help for accepted units. + +## Build cache policy + +`build --cache global|local|off` changes use of dependency caching. The old +`--no-cache` spelling also clears the build directory; it is not an innocuous +synonym for ignoring one result. Do not mix this option with std BMI identity +or assume it clears every global entry. + +Compare fingerprint inputs when investigating stale-looking output. Different +standard, toolchain, runtime, target and configuration can legitimately coexist. +A cache hit is not evidence that a first-install/offline scenario was tested. +Legacy `cache list --json` lacks the modern envelope; select the intended format. + +## References + +[Interface reference](references/interfaces.md). + +- [09-commands-by-scenario.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/09-commands-by-scenario.md) +- [25-home-indices-and-store.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/25-home-indices-and-store.md) diff --git a/.agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/references/interfaces.md new file mode 100644 index 000000000..2d46c4b95 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-cache/references/interfaces.md @@ -0,0 +1,37 @@ +# Cache Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp cache` | command | Inspect and manage the global build cache | +| `mcpp cache clean` | command | Drop cache entries (default: package entries only) | +| `mcpp cache clean --all` | flag | Drop every kind of entry | +| `mcpp cache clean --deps` | flag | Drop package entries (default) | +| `mcpp cache clean --legacy` | flag | Remove the unused pre-v1 cache at $MCPP_HOME/bmi | +| `mcpp cache clean --std` | flag | Drop std module entries | +| `mcpp cache clean --tools` | flag | Drop host tool entries | +| `mcpp cache dir` | command | Print the cache root (and any pre-v1 cache) | +| `mcpp cache gc` | command | LRU-collect package and host tool entries to a size and/or age budget | +| `mcpp cache gc --max-size` | value | Keep the package cache under this size (e.g. 5GiB) | +| `mcpp cache gc --older-than` | value | Also drop entries unused for longer than this | +| `mcpp cache info` | command | Show details (incl. key inputs) for a cached package | +| `mcpp cache info ` | required argument | @ | +| `mcpp cache list` | command | List cache entries with size + last-use | +| `mcpp cache list --format` | value | Machine-readable output (enveloped; see docs/50-machine-output.md) | +| `mcpp cache list --json` | flag | Emit machine-readable JSON (legacy payload, kept for ever) | +| `mcpp cache prune` | command | Drop entries not used within a threshold | +| `mcpp cache prune --older-than` | value | Age threshold (e.g. 30d) | +| `mcpp cache verify` | command | Check every entry's manifest against the files on disk | +| `mcpp clean` | command | Remove target/, or with --stale only what no configuration still uses: fingerprint directories, generated sources, build-program groups | +| `mcpp clean --bmi-cache` | flag | Also wipe the global build cache (see `mcpp cache clean`) | +| `mcpp clean --dry-run` | flag | List what would be removed and delete nothing (implies --stale) | +| `mcpp clean --older-than` | value | Keep unrecorded directories written more recently than this, e.g. 12h, 3d (default 1d; 0 keeps none; implies --stale) | +| `mcpp clean --report` | flag | Show where target/ holds its bytes, per configuration and area; removes nothing | +| `mcpp clean --stale` | flag | Only remove target/// directories that no recorded build considers current | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/SKILL.md b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/SKILL.md new file mode 100644 index 000000000..d074ca2e3 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/SKILL.md @@ -0,0 +1,56 @@ +--- +name: mcpp-environment +description: Inspect mcpp home selection, configuration and environment, separate user and system maintenance, and avoid changing unrelated global installations. +--- + +# Homes and Environment + +## Inspect first + +```sh +mcpp self env +mcpp self env --format json +mcpp self doctor +``` + +Resolve the executable and effective home before changing configuration. A PATH +shim or another home can select a different installation from the expected one. + +`--home PATH` selects a home for one invocation. `MCPP_HOME` and configured/system +homes participate in selection; use the reported environment rather than +assuming `~/.mcpp` is always the active store. + +## Initialization and machine policy + +`self init` initializes/selects a remembered home; `--force` has a distinct +reset/overwrite meaning. Inspect existing state first. `self config` shows or +changes supported configuration such as mirror policy. Do not apply one mirror +to unrelated projects as a workaround without a demonstrated need. + +`--system` is for supported system-home maintenance commands, not ordinary +root builds. It is restricted to the allowed self/toolchain/index operations. +Build as the project user rather than leaving administrator-owned outputs. + +`self store dedupe` changes stored file representation; inspect its options and +scope before treating it as a read-only report. + +## Relevant environment families + +- Home/config: MCPP_HOME and explicit `--home`. +- Invocation constraints: MCPP_OFFLINE, MCPP_LOCKED, MCPP_DENY_EFFECTS. +- Configuration: toolchain/sysroot/platform and target-specific selectors. +- Observation: MCPP_CLIENT labels lock/result ownership. +- Build-program contract: resolved target/host, tool roles, dependency and + payload paths; these are supplied by mcpp, not user-authored substitute facts. + +See the local extracted reference for exact environment identifiers. Some are +internal/testing knobs; existence in source is not an instruction to set them. +Use the API helper when one exists and handle empty values on Windows. + +## References + +[Interface reference](references/interfaces.md). + +- [25-home-indices-and-store.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/25-home-indices-and-store.md) +- [23-the-project-environment.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/23-the-project-environment.md) +- [specs/home-initialization.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/home-initialization.md) diff --git a/.agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/references/interfaces.md new file mode 100644 index 000000000..32f9a9a7d --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-environment/references/interfaces.md @@ -0,0 +1,50 @@ +# Environment Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp self` | command | Inspect and manage mcpp itself | +| `mcpp self config` | command | Show or modify mcpp's configuration: the xlings mirror and the retention of build outputs | +| `mcpp self config --cache-unused-days` | value | Collect build-cache entries no build used for DAYS days (default 30; 0 keeps all) | +| `mcpp self config --keep-days` | value | Sweep a project's build directories no configuration used for DAYS days (default 3; 0 keeps all) | +| `mcpp self config --mirror` | value | Set xlings mirror for mcpp's private registry | +| `mcpp self doctor` | command | Diagnose mcpp environment health | +| `mcpp self env` | command | Print mcpp paths and configuration; with --target, one configuration: toolchain, platform, tools, runner | +| `mcpp self env --format` | value | Machine-readable output (enveloped; see docs/50-machine-output.md) | +| `mcpp self env --host` | flag | Report the host graph's configuration: what build programs and tools are built for | +| `mcpp self env --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp self env --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp self env --target` | value; repeatable | Report this target's configuration (prepared, not built; the project's when run in one); a target set or several reports each leg | +| `mcpp self explain` | command | Show extended description for an error code | +| `mcpp self explain ` | required argument | Error code such as E0001, or a refusal's reason token such as platform-version-group | +| `mcpp self init` | command | Initialize or repair mcpp sandbox | +| `mcpp self init --force` | flag | Rebuild registry/caches; with --home, replace the default without deleting data | +| `mcpp self init --home` | value | Initialize PATH and remember it from the original home (does not migrate data) | +| `mcpp self store` | command | Compare this home's payloads with its upstreams | +| `mcpp self store dedupe` | command | List payloads an upstream has the same of; --apply links them | +| `mcpp self store dedupe --apply` | flag | Replace each by a link to the upstream's | +| `mcpp self version` | command | Show mcpp version | + +## Environment variables + +| Interface | Details | +| --- | --- | +| `MCPP_DENY_EFFECTS` | See the environment and command instructions. | +| `MCPP_HOME` | See the environment and command instructions. | +| `MCPP_HOST_PLATFORM` | See the environment and command instructions. | +| `MCPP_LOCKED` | See the environment and command instructions. | +| `MCPP_OFFLINE` | See the environment and command instructions. | +| `MCPP_PLATFORM` | See the environment and command instructions. | +| `MCPP_SYSROOT` | See the environment and command instructions. | +| `MCPP_TOOLCHAIN` | See the environment and command instructions. | +| `MCPP_VERBOSE` | See the environment and command instructions. | + +## Source + +- [src/build/build_program.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/build/build_program.cppm) +- [src/build/hostprogram.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/build/hostprogram.cppm) +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) +- [src/config.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/config.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/SKILL.md b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/SKILL.md new file mode 100644 index 000000000..95ab29721 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/SKILL.md @@ -0,0 +1,61 @@ +--- +name: mcpp-troubleshooting +description: Diagnose mcpp failures through resolved decisions, structured diagnostics, environment checks and targeted reproduction instead of speculative cache deletion. +--- + +# Troubleshooting + +## Establish what failed + +Record mcpp version, resolved executable/home, host, requested target, command, +exit status and the first causal diagnostic. Separate package resolution, +toolchain preparation, C++ compilation, linking, deployment and program failure. + +```sh +mcpp self doctor +mcpp why toolchain +mcpp why sources +mcpp why build-programs +mcpp why compat +mcpp explain E_NOT_FOUND +``` + +Use the actual code from the diagnostic when requesting `explain`; not every +failure has the example code. `why` topics include runtime, deps and runners, +but not every topic has JSON output. The supported machine topics are listed +in `mcpp-machine-interface`. + +## Narrow the hypothesis + +| Observation | Next evidence | +|---|---| +| Package missing | Exact selector/version, configured indices, offline state | +| Wrong compiler/ABI | why toolchain, fingerprint, runtime/provider decisions | +| Compiler found but Ninja cannot start | Active home, installed Ninja executable and process PATH; see mcpp-toolchains | +| Generated source missing | Action inputs/outputs, generator status, role | +| Old configuration reused | Declared rerun files/env and graph fingerprint | +| Program cannot start | Launch argv/cwd/env, runner reachability, loader files | +| Feature appears absent | Effective feature requests and selected sources | +| Encoding/path failure | Actual platform/path code-page constraints | + +Do not immediately clean caches, reinstall global tools or migrate dependencies. +Those actions can destroy the evidence and exceed the user's task. Change one +relevant axis and rerun the smallest meaningful reproduction. + +## Report evidence accurately + +Distinguish static implementation findings, successful compile, actual execution +and unavailable capability. Capture the source commit and toolchain when filing +an implementation bug. An empty workspace, skipped test or cached tool install +must not be presented as successful coverage of the failed path. + +When modifying mcpp itself, read that checkout's contribution requirements; +this consumer-facing troubleshooting workflow does not replace them. + +## References + +[Interface reference](references/interfaces.md). + +- [09-commands-by-scenario.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/09-commands-by-scenario.md) +- [51-supported-versions.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/51-supported-versions.md) +- [52-driving-mcpp-from-a-program.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/52-driving-mcpp-from-a-program.md) diff --git a/.agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/references/interfaces.md new file mode 100644 index 000000000..5803fcd64 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/operations/mcpp-troubleshooting/references/interfaces.md @@ -0,0 +1,24 @@ +# Troubleshooting Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp explain` | command | Show extended description for an error code | +| `mcpp explain ` | required argument | Error code such as E0001, or a refusal's reason token such as platform-version-group | +| `mcpp why` | command | Explain how the toolchain / runtime / deps / runners / sources were resolved | +| `mcpp why --features` | value | Resolve with these features, as `build --features` does (root features and /) | +| `mcpp why --format` | value | Machine-readable output (enveloped; see docs/50-machine-output.md) | +| `mcpp why --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp why --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp why --sysroot` | value | The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none | +| `mcpp why --target` | value | Ask about this target instead of the project's default | +| `mcpp why --toolchain` | value | Ask about this toolchain, e.g. llvm@22.1.8 | +| `mcpp why ` | optional argument | for `tool` and `payload`: the name to look up | +| `mcpp why ` | optional argument | toolchain \| sysroot \| runtime \| deps \| runners \| sources \| tool \| payload \| build-programs \| compat (default: all) | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/packaging/README.md b/.agents/skills/mcpp-api-skills/skills/packaging/README.md new file mode 100644 index 000000000..6760268fa --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/packaging/README.md @@ -0,0 +1,10 @@ +# Packaging and publishing + +**English** | [简体中文](README.zh-CN.md) + +Create application bundles and library packages, then prepare the descriptors and index entries needed to distribute them. + +| Skill | Topic | +| --- | --- | +| [mcpp-packaging](mcpp-packaging/SKILL.md) | pack, linkage, runtime closure, package formats and debug symbols | +| [mcpp-publishing](mcpp-publishing/SKILL.md) | Library releases, source/prebuilt interfaces, xpkg and SBOM | diff --git a/.agents/skills/mcpp-api-skills/skills/packaging/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/packaging/README.zh-CN.md new file mode 100644 index 000000000..47e6fdbf2 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/packaging/README.zh-CN.md @@ -0,0 +1,10 @@ +# 打包与发布 + +[English](README.md) | **简体中文** + +制作应用包和库包,并准备分发所需的描述文件与索引条目。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-packaging](mcpp-packaging/SKILL.md) | pack、链接形态、运行时闭包、包格式和调试符号 | +| [mcpp-publishing](mcpp-publishing/SKILL.md) | 库发布、源码与预构建接口、xpkg 和 SBOM | diff --git a/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/SKILL.md b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/SKILL.md new file mode 100644 index 000000000..5d538f1fa --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/SKILL.md @@ -0,0 +1,60 @@ +--- +name: mcpp-packaging +description: Package mcpp applications and libraries with explicit linkage, closure, format, target legs, compression, debug symbols and machine-readable artifact results. +--- + +# Packaging Deliverables + +## Inspect and package + +```sh +mcpp pack --list-formats +mcpp pack --pkg-format dir +mcpp pack --pkg-format tar --message-format json +``` + +`pack ` selects a product, not a triple. A program becomes a bundle; +a library becomes interface plus prebuilt binaries. No product name is safe +only when the project has an unambiguous packable product. + +## Keep the axes independent + +| Axis | Selection | +|---|---| +| Libraries linked inside/beside the program | `--linkage static|shared` | +| What the receiving machine provides | `--mode system|vendored|self-contained` | +| Container | `--pkg-format` | +| Target legs | Repeated `--target`, otherwise pack/build target settings | +| Carrier systems | `--systems` | + +`--mode static` is shorthand for static linkage plus self-contained closure. +On Linux a static linkage selection uses the applicable musl row. A container +extension does not establish runtime independence. + +Built-in formats include tar/zip/dir and supported single-file/polyglot shapes; +resolved packages can add formats. Discover instead of hard-coding a universal +format list. Comma-separated containers can share one staged tree. Use an output +directory for a command producing several files. + +## Manifest and advanced options + +`[pack]` supplies defaults and bundle policy. CLI options include compression, +debug-symbol extraction, strip policy and merging packages the command wrote. +Use `--pkg-format`; the earlier `--format` spelling is retained with compatibility +handling. `--message-format json` is unrelated to the container choice. + +## Verify what ships + +Read the `mcpp.pack` result's artifacts and staged tree; do not infer filenames +from an old naming convention. Run from the package on the intended receiving +system, and check for build-machine paths and missing dynamic libraries. +Validate each target leg and carrier system separately. A successful development +`mcpp run` is not a deployment test. + +## References + +[Interface reference](references/interfaces.md). + +- [10-pack-and-release.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/10-pack-and-release.md) +- [12-binary-distribution.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/12-binary-distribution.md) +- [specs/packaging.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/packaging.md) diff --git a/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/references/interfaces.md new file mode 100644 index 000000000..c79e04a4c --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-packaging/references/interfaces.md @@ -0,0 +1,59 @@ +# Packaging Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp pack` | command | Build + package: a program becomes a self-contained bundle, a library an interface + prebuilt binaries | +| `mcpp pack --compress` | value | The container's compression: gzip (tar default) \| zstd \| xz \| none; a zip deflates unless none | +| `mcpp pack --debug-symbols` | value | Write the separated *.debug files here (default: discard) | +| `mcpp pack --dev` | flag | Shorthand for --profile dev | +| `mcpp pack --exclude` | value; repeatable | With --workspace, leave the named member out; repeatable, refused with -p | +| `mcpp pack --features` | value | Activate root-package features, and a dependency's as /, for every build pass of the pack (comma-separated) | +| `mcpp pack --format` | value | Earlier spelling of --pkg-format | +| `mcpp pack --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp pack --linkage` | value | The program's libraries in it (static) or beside it (shared); rebuilds with [build] dependency_linkage (default: as the project builds) | +| `mcpp pack --list-formats` | flag | Print the formats --format accepts here, the engine's and those the resolved graph provides, as the mcpp.pack.formats envelope | +| `mcpp pack --merge` | value; repeatable | Merge packages this command wrote (legs, systems) into one; repeatable, nothing is built | +| `mcpp pack --message-format` | value | Output format: human (default) \| json (one mcpp.pack envelope on stdout; narration on stderr) | +| `mcpp pack --mode` | value | What the machine that runs it provides: system \| vendored (default) \| self-contained \| static (= --linkage static --mode self-contained) | +| `mcpp pack --no-strip` | flag | Ship the artifacts as built (default: strip debug info) | +| `mcpp pack --no-universal` | flag | Deprecated: a pack of one target packs that target alone | +| `mcpp pack --output` (`-o`) | value | Override output path; a directory (ending in /) when the pack writes several files | +| `mcpp pack --package` (`-p`) | value; repeatable | Pack the named workspace member (namespace.name or package name, then directory), as if run in its directory; repeat to pack several, planned and built once | +| `mcpp pack --pkg-format` | value | The package format: tar \| zip \| dir \| single-file \| polyglot \| any format the resolved graph provides (e.g. appimage, msi, okb), or a list of containers of one tree (tar,okb); default: zip for a Windows program, tar elsewhere | +| `mcpp pack --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp pack --profile` | value | Build profile (default: [build] default-profile, else release) | +| `mcpp pack --release` | flag | Shorthand for --profile release | +| `mcpp pack --sysroot` | value | The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none | +| `mcpp pack --systems` | value; repeatable | The runners a self-contained package carries, or the systems single files are made for: , -, all (default: this machine's) | +| `mcpp pack --target` | value; repeatable | A target (x86_64-linux-gnu) or a target set (openkal, linux-musl); repeatable: the legs | +| `mcpp pack --toolchain` | value | Build with this toolchain for one invocation, e.g. llvm@22.1.8 | +| `mcpp pack --workspace` | flag | Pack every workspace member that has a program target, planned and built once | +| `mcpp pack ` | optional argument | Target name from [targets.*] (optional) | + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `pack.bundle-project.also_skip` | Array of strings. | +| `pack.bundle-project.force_bundle` | Array of strings. | +| `pack.compress` | String. | +| `pack.debug_symbols` | String. | +| `pack.default_mode` | String. | +| `pack.exclude` | Array of strings. | +| `pack.format` | Array of strings. String. | +| `pack.include` | Array of strings. | +| `pack.linkage` | String. | +| `pack.sign` | Array of strings. | +| `pack.strip` | Boolean. | +| `pack.systems` | Array of strings. String. | +| `pack.targets` | Array of strings. String. | +| `pack.universal` | Boolean. | + +## Source + +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/SKILL.md b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/SKILL.md new file mode 100644 index 000000000..52f795510 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/SKILL.md @@ -0,0 +1,57 @@ +--- +name: mcpp-publishing +description: Prepare mcpp library releases and index descriptors, inspect xpkg and SBOM output, and validate source/prebuilt consumer interfaces before publication. +--- + +# Publishing Packages + +## Prepare without publishing + +```sh +mcpp publish --dry-run +mcpp emit xpkg -o xpkg.lua +mcpp xpkg parse xpkg.lua --format json +mcpp emit sbom +``` + +Dry-run and emit are review steps; `publish` performs an external publication +workflow. Confirm the requested repository/index and release intent before +performing that external action. Do not bypass a dirty-tree check to hide +uncommitted sources. + +## Public library surface + +Declare the package identity, version, license and repository. State exported +modules and the required source interface closure, including partitions and +implementation dependencies. Inspect feature gates in both default and explicit +forms. Publishing every source file is not a substitute for a valid interface. + +## Source and prebuilt forms + +`pack` for a library includes the public interface and compiled products. Check +the ABI tag and target/runtime/dialect requirements. Prebuilt objects do not +make BMIs interchangeable across compiler releases or language modes. + +Test another package importing the released interface, once from source and +once from the intended prebuilt form. Do not validate solely by rebuilding the +publisher's workspace where private paths remain accessible. + +## Descriptor and index + +Inspect generated xpkg rather than hand-inventing its resolver grammar. The +legacy `xpkg parse --json` payload is distinct from `--format json`'s envelope. +Use an exact source revision and correct namespace/registry identity. SBOM +describes resolved components; verify the supported format in command help. + +This skill covers user packages, not releasing the mcpp executable itself. +mcpp's own contribution/release procedures remain in the repository's existing +maintenance skills and apply when changing that project. + +## References + +[Interface reference](references/interfaces.md). + +- [11-publishing-a-library.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/11-publishing-a-library.md) +- [12-binary-distribution.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/12-binary-distribution.md) +- [specs/package-identity.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/package-identity.md) +- [specs/library-interface.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/library-interface.md) diff --git a/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/references/interfaces.md new file mode 100644 index 000000000..b1eb125aa --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/packaging/mcpp-publishing/references/interfaces.md @@ -0,0 +1,31 @@ +# Publishing Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp emit` | command | Generate a document describing this project (xpkg, sbom, build-database) | +| `mcpp emit sbom` | command | Write a CycloneDX bill of materials for the recorded resolution | +| `mcpp emit sbom --output` (`-o`) | value | Write to file instead of stdout | +| `mcpp emit xpkg` | command | Generate xpkg Lua entry | +| `mcpp emit xpkg --namespace` | value | Package namespace for the emitted descriptor (overrides [package] namespace). Emits both `namespace` and the fully-qualified `name` | +| `mcpp emit xpkg --output` (`-o`) | value | Write to file instead of stdout | +| `mcpp emit xpkg --package` | value; repeatable | Describe packages `mcpp pack` wrote (repeatable): an xim-pkgindex entry of the program, from their mcpp-package.json | +| `mcpp emit xpkg --url` | value | With --package: where the packages are published (/) | +| `mcpp emit xpkg --version` (`-V`) | value | Override package version | +| `mcpp publish` | command | Publish package to default registry | +| `mcpp publish --allow-dirty` | flag | Allow uncommitted changes | +| `mcpp publish --dry-run` | flag | Print xpkg.lua without uploading | +| `mcpp xpkg` | command | Inspect / validate xpkg descriptors | +| `mcpp xpkg parse` | command | Parse a descriptor's mcpp segment exactly as the resolver would (strict: unknown keys are errors) | +| `mcpp xpkg parse --all-os` | flag | Validate every per-OS section (linux/macosx/windows), not just the running host's | +| `mcpp xpkg parse --allow-split-name` | flag | OBSOLETE (kept accepted so 0.0.105-era index CI keeps working): skip the package.name form check. Since 0.0.106 the canonical form IS the short name, so xlings-native descriptors pass without this flag | +| `mcpp xpkg parse --allow-unknown` | flag | Downgrade unknown mcpp-segment keys from error to warning | +| `mcpp xpkg parse --format` | value | Machine-readable output (enveloped; see docs/50-machine-output.md) | +| `mcpp xpkg parse --json` | flag | Emit machine-readable JSON (legacy payload, kept for ever) | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/README.md b/.agents/skills/mcpp-api-skills/skills/project-config/README.md new file mode 100644 index 000000000..0b710b18c --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/README.md @@ -0,0 +1,14 @@ +# Project configuration + +**English** | [简体中文](README.zh-CN.md) + +The tables that make up mcpp.toml: package identity, product targets, modules, build options, features and workspaces. + +| Skill | Topic | +| --- | --- | +| [mcpp-manifest](mcpp-manifest/SKILL.md) | Package identity, language standard, metadata and version requirements | +| [mcpp-targets](mcpp-targets/SKILL.md) | bin/lib/shared/app/entry targets, resources and exports | +| [mcpp-cxx-modules](mcpp-cxx-modules/SKILL.md) | Module sources, public interfaces and generated modules | +| [mcpp-build-options](mcpp-build-options/SKILL.md) | Compiler/linker flags, profiles, scope and inheritance | +| [mcpp-features](mcpp-features/SKILL.md) | Optional dependencies, feature forwarding and capability selection | +| [mcpp-workspaces](mcpp-workspaces/SKILL.md) | Members, shared configuration and member selection | diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/project-config/README.zh-CN.md new file mode 100644 index 000000000..c69a62869 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/README.zh-CN.md @@ -0,0 +1,14 @@ +# 工程配置 + +[English](README.md) | **简体中文** + +mcpp.toml 的主要配置:包信息、产品目标、模块、编译选项、特性和工作空间。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-manifest](mcpp-manifest/SKILL.md) | 包信息、语言标准、元数据和版本要求 | +| [mcpp-targets](mcpp-targets/SKILL.md) | bin/lib/shared/app/entry 目标、资源和导出 | +| [mcpp-cxx-modules](mcpp-cxx-modules/SKILL.md) | 模块源文件、公开接口和生成模块 | +| [mcpp-build-options](mcpp-build-options/SKILL.md) | 编译与链接参数、profile、作用域和继承 | +| [mcpp-features](mcpp-features/SKILL.md) | 可选依赖、特性传播和能力选择 | +| [mcpp-workspaces](mcpp-workspaces/SKILL.md) | 成员组织、共享配置和成员选择 | diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/SKILL.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/SKILL.md new file mode 100644 index 000000000..42fbc4031 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/SKILL.md @@ -0,0 +1,70 @@ +--- +name: mcpp-build-options +description: Set mcpp build and profile options with correct package, usage, and graph scope, including dialect flags and workspace merge behavior. +--- + +# Build Options and Profiles + +## Select a profile + +```sh +mcpp build --profile release +mcpp run --release +``` + +Ordinary builds default to `dev` unless `[build] default-profile` says otherwise; +pack has its own release-oriented default. Read the root manifest before +claiming what an unqualified command does. + +```toml +[build] +default-profile = "dev" +jobs = "auto" +cxxflags = ["-Wall"] +defines = ["APP_MODE=1"] +include_dirs = ["src/detail"] +private_include_dirs = ["src/detail"] + +[profile.release] +cxxflags = ["-O2"] +``` + +Preserve argv token boundaries. An option requiring two tokens needs two array +entries. Compiler-specific flags need matching target/toolchain conditions; +do not unconditionally send GCC flags to an MSVC-family driver. + +## Scope is part of the option + +- Package inputs affect this package's units. +- Usage inputs propagate from a dependency to consumers. +- Configuration inputs are graph-wide and read from the build root. +- Metadata does not enter compiler commands. + +`include_dirs` adds header search paths for this package and its consumers. +`private_include_dirs` selects entries of `include_dirs` that stop at this +package's boundary. It does not add search paths: a private header directory +must appear in both lists, as in the example above. Matching is performed after +glob expansion. A private entry absent from `include_dirs` withholds nothing. + +The local reference describes which inputs can be shared or conditional. +Only supported keys participate in `[workspace.build]`; member scalars, +lists and defines follow their respective merge rules. + +## Dialect and standard library BMIs + +Use `[package] standard`, not a `-std=` flag. Use `dialect_cxxflags` for flags +that alter the graph's language/library dialect, including `-fno-exceptions` +when importing `std`. Ordinary `cxxflags` cannot safely change a std BMI's +dialect. Effective profile and conditional flags are checked too. + +`dialect_cxxflags` comes from the root/shared/conditional configuration, not a +dependency's opinion. `bmi_schedule`, cache policy and runtime linkage are +configuration decisions; read their target constraints before changing them. +Prefer defaults until a measured task requires an override. + +## References + +[Interface reference](references/interfaces.md). + +- [04-mcpp-toml.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/04-mcpp-toml.md) +- [specs/manifest-semantics.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/manifest-semantics.md) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/references/interfaces.md new file mode 100644 index 000000000..7775d6e22 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-build-options/references/interfaces.md @@ -0,0 +1,45 @@ +# Build Options Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `build` | Table. | +| `build.accel` | String. One value for the build graph. A member declaration overrides the shared value. | +| `build.allow_host_libs` | Boolean. Applies to this package's inputs. A member declaration overrides the shared value. | +| `build.bmi_schedule` | String. One value for the build graph. A member declaration overrides the shared value. | +| `build.build_program_timeout` | Applies to this package's inputs. A member declaration overrides the shared value. | +| `build.c_standard` | String. Applies to this package's inputs. A member declaration overrides the shared value. May be shared through the workspace. | +| `build.cache` | String. One value for the build graph. A member declaration overrides the shared value. | +| `build.cflags` | Array of strings. Applies to this package's inputs. Workspace entries precede member entries. May be shared through the workspace. Supports conditional target settings. | +| `build.compile_commands` | String. Describes the package. A member declaration overrides the shared value. | +| `build.cxx_runtime` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. | +| `build.cxxflags` | Array of strings. Applies to this package's inputs. Workspace entries precede member entries. May be shared through the workspace. Supports conditional target settings. | +| `build.default-profile` | String. One value for the build graph. A member declaration overrides the shared value. | +| `build.defines` | Array of strings. Applies to this package's inputs. Member macros override the same names. May be shared through the workspace. Supports conditional target settings. | +| `build.dependency_linkage` | String. One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. | +| `build.dialect_cxxflags` | Array of strings. One value for the build graph. Workspace entries precede member entries. May be shared through the workspace. Supports conditional target settings. | +| `build.flags` | Applies to this package's inputs. Workspace entries precede member entries. Supports conditional target settings. | +| `build.include_dirs` | Array of strings. Propagates to consumers. Workspace entries precede member entries. May be shared through the workspace. Supports conditional target settings. | +| `build.include_dirs_after` | Array of strings. Propagates to consumers. Workspace entries precede member entries. May be shared through the workspace. Supports conditional target settings. | +| `build.ios_deployment_target` | String. One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. | +| `build.jobs` | String. Integer. One value for the build graph. A member declaration overrides the shared value. | +| `build.ldflags` | Array of strings. Propagates to consumers. Workspace entries precede member entries. May be shared through the workspace. Supports conditional target settings. | +| `build.macos_deployment_target` | String. One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. | +| `build.platform-dependencies` | String. One value for the build graph. A member declaration overrides the shared value. | +| `build.private_include_dirs` | Array of strings selecting entries of `include_dirs` that are not propagated to consumers; does not add header search paths. Matching follows glob expansion. May be shared or conditional. | +| `build.profile` | String. One value for the build graph. A member declaration overrides the shared value. | +| `build.static_stdlib` | Boolean. One value for the build graph. A member declaration overrides the shared value. | +| `build.std-compat-module` | String. Applies to this package's inputs. A member declaration overrides the shared value. | +| `build.std-module` | String. Applies to this package's inputs. A member declaration overrides the shared value. | +| `build.std-module-flags` | Array of strings. Applies to this package's inputs. Workspace entries precede member entries. Supports conditional target settings. | +| `build.target` | String. One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. | +| `profile` | Table. | +| `profile.` | One value for the build graph. Merged by key. May be shared through the workspace. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/SKILL.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/SKILL.md new file mode 100644 index 000000000..278e7d039 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/SKILL.md @@ -0,0 +1,63 @@ +--- +name: mcpp-cxx-modules +description: Configure module source discovery, public exports, scan overrides, generated interfaces, and imports of wrapped C/C++ libraries in mcpp. +--- + +# C++ Modules and Source Discovery + +## A minimal module project + +```cpp +// src/greeting.cppm +export module greeting; +export int answer() { return 42; } +``` + +```cpp +// src/main.cpp +import greeting; +int main() { return answer() == 42 ? 0 : 1; } +``` + +Run `mcpp build` and `mcpp run`. Avoid manually ordering compiler invocations; +mcpp derives module dependencies and BMI edges from the graph. + +## Configure discovery deliberately + +`[build] sources` chooses source paths. `[build] module_extensions` extends +module-interface suffixes; it does not register a foreign-language compiler. +`[modules] sources`, `exports`, `strict` and scan overrides have separate roles; +consult the local field reference before using them to narrow an interface. + +Use source-set exclusions to remove foreign platform implementations. Do not +list an unknown extension and expect it to disappear: unclassified sources +are refused. A rule feature can add device extensions, but cannot take over +an extension already owned by the engine. + +## Generated modules + +Declare generated module names and imports during planning with an action's +`provides()` and `imports()`. The source need not exist yet, but the graph must +know its interface identity. Use `mcpp-build-actions` for the complete workflow. + +## Library boundaries + +Distinguish public modules from implementation units and partitions. A BMI is +not a portable replacement for the source interface: compiler, dialect, flags +and runtime identity matter. Do not copy arbitrary BMIs across toolchains. + +For traditional libraries, a published mwrap package can provide imports while +retaining the upstream C++ namespace. Confirm actual package versions and +features in the index. Module imports do not export preprocessor macros; a +`.macros` module can only map constructs whose meaning can be preserved. + +If scanning assertions are added, check both a build and an importing consumer. +Static source inspection alone does not establish that the module builds. + +## References + +[Interface reference](references/interfaces.md). + +- [04-mcpp-toml.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/04-mcpp-toml.md) +- [11-publishing-a-library.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/11-publishing-a-library.md) +- [specs/library-interface.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/library-interface.md) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/references/interfaces.md new file mode 100644 index 000000000..234aa97d3 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-cxx-modules/references/interfaces.md @@ -0,0 +1,67 @@ +# Cxx Modules Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `build.module_extensions` | Array of strings. Applies to this package's inputs. Workspace entries precede member entries. | +| `build.sources` | Applies to this package's inputs. Workspace entries precede member entries. Supports conditional target settings. | +| `language` | Table. | +| `language.import_std` | Boolean. | +| `language.modules` | Boolean. | +| `language.standard` | String. | +| `modules.exports` | Array of strings. | +| `modules.sources` | Array of strings. | +| `modules.strict` | Boolean. | + +## Source extensions + +| Interface | Details | +| --- | --- | +| `.S` | Gas | +| `.asc` | Device | +| `.asm` | Nasm | +| `.c` | C | +| `.cc` | Cxx | +| `.cce` | Device | +| `.cl` | Device | +| `.comp` | Device | +| `.cpp` | Cxx | +| `.cppm` | ModuleInterface | +| `.cu` | Device | +| `.cuh` | DeviceHeader | +| `.cxx` | Cxx | +| `.frag` | Device | +| `.geom` | Device | +| `.glsl` | Device | +| `.h` | Header | +| `.hh` | Header | +| `.hip` | Device | +| `.hiph` | DeviceHeader | +| `.hlsl` | Device | +| `.hpp` | Header | +| `.hxx` | Header | +| `.m` | C | +| `.mesh` | Device | +| `.metal` | Device | +| `.mm` | Cxx | +| `.rahit` | Device | +| `.rcall` | Device | +| `.rchit` | Device | +| `.rgen` | Device | +| `.rint` | Device | +| `.rmiss` | Device | +| `.s` | Gas | +| `.sycl` | Device | +| `.task` | Device | +| `.tesc` | Device | +| `.tese` | Device | +| `.vert` | Device | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) +- [modules/source-kind/src/source_kind.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/source-kind/src/source_kind.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/SKILL.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/SKILL.md new file mode 100644 index 000000000..0dd8af907 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/SKILL.md @@ -0,0 +1,70 @@ +--- +name: mcpp-features +description: Define and activate mcpp features, optional dependencies, feature forwarding and capability gates without confusing union semantics with backend selection. +--- + +# Features and Capabilities + +## Define a small feature + +```toml +[features] +default = [] +logging = { defines = ["APP_LOGGING=1"] } +``` + +```sh +mcpp build --features logging +mcpp test --features logging +``` + +Features add sources, flags, defines and dependencies. A product's +`required_features` checks activation; it does not ordinarily turn features on. + +## Dependency requests accumulate + +A dependency table can request `features = [...]` and +`default-features = false`. The latter disables that edge's default request; +another edge may still request those features. Explicit features are not +subtracted. Do not invent a root `--no-default-features` switch. + +`--features dependency/feature` targets a dependency feature. Resolve ambiguous +package identities before writing selectors. Gate an actual local package as follows: + +```toml +[features] +default = [] +image = [] + +[feature-deps.image] +codec = { path = "../codec" } +``` + +The codec directory must be a real package. `optional = true` is not an mcpp +dependency option. A feature table's `deps` key is reserved but not implemented; +use `feature-deps` rather than treating that retained spelling as functional. +The dependency graph stays declarative; a build program cannot mutate it. + +## Rules and capability choices + +Feature tables can declare `rule_module` and `device_extensions` for rules; +feature tool payloads belong to the associated feature-xlings declarations. +Keep expensive vendor dependencies behind the capability that needs them. + +`provides`, `requires` and `exclusive` describe capabilities/constraints; +`--cap key=provider` selects providers where supported. A feature name and an +accelerator selection are different axes: `--accel` / `--no-accel` belong to +heterogeneous builds. + +## Validate both branches + +Test the default graph and the explicit feature graph. Verify selected sources +and dependency resolution, not just a macro spelling. Successfully importing +a module does not prove a window, inference backend or device path is enabled. + +## References + +[Interface reference](references/interfaces.md). + +- [06-features-and-capabilities.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/06-features-and-capabilities.md) +- [05-dependencies.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/05-dependencies.md) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/references/interfaces.md new file mode 100644 index 000000000..23331ac80 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-features/references/interfaces.md @@ -0,0 +1,26 @@ +# Features Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `feature-deps` | Table. | +| `features` | Table. Applies to this package's inputs. Merged by key. | +| `features..defines` | See the configuration examples in SKILL.md. | +| `features..device_extensions` | See the configuration examples in SKILL.md. | +| `features..flags` | See the configuration examples in SKILL.md. | +| `features..forward` | See the configuration examples in SKILL.md. | +| `features..implies` | See the configuration examples in SKILL.md. | +| `features..provides` | See the configuration examples in SKILL.md. | +| `features..requires` | See the configuration examples in SKILL.md. | +| `features..requires_abi` | See the configuration examples in SKILL.md. | +| `features..rule_module` | See the configuration examples in SKILL.md. | +| `features..sources` | See the configuration examples in SKILL.md. | +| `features..tools` | See the configuration examples in SKILL.md. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/SKILL.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/SKILL.md new file mode 100644 index 000000000..5f06a5072 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/SKILL.md @@ -0,0 +1,71 @@ +--- +name: mcpp-manifest +description: Write and inspect mcpp.toml package identity, language standard, metadata, version floors, and configuration table ownership. +--- + +# The mcpp.toml Manifest + +## Start with conventions + +```toml +[package] +name = "hello" +version = "0.1.0" +standard = "c++23" +license = "Apache-2.0" +mcpp = ">=2026.10.31.3" +``` + +The floor above deliberately selects this suite's reviewed baseline; it is not +the historical introduction version of every feature. `mcpp` accepts a release +floor (`>=release`), not an exact pin or an arbitrary upper-bounded range. +Select a lower floor only after checking that every used capability exists. + +`src/main.cpp` gives an inferred binary. Use explicit targets only for a needed +product shape. A package name is separate from its optional namespace; use full +dependency selectors when identities might collide. + +## Standard and metadata + +Use `[package] standard`, not the retained `[language] standard` spelling. +The root's standard applies to the module graph; dependency standards are not +independent compilation dialects. `c++latest` and `c++fly` depend on the actual +toolchain and are unsuitable as reproducible release requirements. + +```toml +[package.metadata.mytool] +assets = "res" +``` + +Metadata is preserved for tools, not interpreted as an engine option. A reader +of a relative metadata path resolves it against that package's manifest root. + +## Table ownership + +| Table | Skill | +|---|---| +| `targets`, `lib`, `resources` | mcpp-targets | +| `modules` | mcpp-cxx-modules | +| `build`, `profile` | mcpp-build-options | +| dependency tables | mcpp-dependencies | +| `features`, `feature-deps` | mcpp-features | +| `workspace` and shared tables | mcpp-workspaces | +| `target`, `toolchain`, `platform`, `host` | toolchain/cross/platform skills | +| `test`, `runtime`, `pack`, `xlings` | corresponding task skill | + +The local interface reference inventories parser readers and known-key tables. +It is not a claim that every accepted spelling is recommended or meaningful in +every context. Check scope and the consumer before moving a key between tables. + +## Validate + +Run the intended build/test with `--strict` when investigating schema warnings. +Unknown compatibility keys can warn; type errors and closed-set validation may +fail immediately. Do not silently remove unknown keys from published packages. + +## References + +[Interface reference](references/interfaces.md). + +- [04-mcpp-toml.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/04-mcpp-toml.md) +- [specs/manifest-semantics.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/manifest-semantics.md) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/references/interfaces.md new file mode 100644 index 000000000..861cc4897 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-manifest/references/interfaces.md @@ -0,0 +1,36 @@ +# Manifest Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `capabilities` | Table. | +| `feature-xlings` | Table. | +| `generated_files` | Table. | +| `hooks` | Table. Applies to this package's inputs. Merged by key. | +| `package` | Table. Describes the package. Merged by key. May be shared through the workspace. | +| `package.accelerators` | Array of strings. | +| `package.authors` | Array of strings. | +| `package.description` | String. | +| `package.license` | String. | +| `package.mcpp` | String. | +| `package.metadata` | Table. | +| `package.name` | String. | +| `package.namespace` | String. | +| `package.platforms` | Array of strings. | +| `package.repo` | String. | +| `package.standard` | String. Integer. | +| `package.std-compat-module` | String. | +| `package.std-module` | String. | +| `package.std-module-flags` | Array of strings. | +| `package.version` | String. | +| `scan_overrides` | Table. | +| `target` | Table. | +| `tools.overrides` | Table. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/SKILL.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/SKILL.md new file mode 100644 index 000000000..b4fb7f0e6 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/SKILL.md @@ -0,0 +1,66 @@ +--- +name: mcpp-targets +description: Configure mcpp product targets, library interfaces, executable entries, resources, exports, and platform-specific product properties. +--- + +# Product Targets + +## Declare only the products needed + +```toml +[targets.server] +kind = "bin" +main = "src/server.cpp" + +[targets.client] +kind = "bin" +main = "src/client.cpp" +required_features = ["client"] +``` + +`required_features` gates a product; it does not activate those features in an +ordinary build. Explicitly activate them when the product is requested. + +## Kinds and entries + +| Kind | Use | +|---|---| +| `bin` | Executable product | +| `lib` | Static library product | +| `shared` | Shared library product | +| `app` | User-launchable product; Android uses a shared-library shape | +| `entry` | Reusable entry translation unit, selected through `main-from` | + +`[targets.]` names a product. `[target.]` conditions machine +configuration; these singular/plural tables are different axes. + +For reusable libraries, declare the public module surface with `[lib]` and +`[modules]` rather than exposing every implementation file. Packaging must +preserve the interface closure in source and prebuilt forms. + +## Platform-specific settings + +Use target keys rather than graph-wide linker flags for executable-only +properties: `windows_subsystem`, `windows_entry`, `windows_code_page`, +`windows_long_paths`. Library/executable applicability is validated. +`soname` names an ELF shared-library ABI file, not an arbitrary path. +Use `exports` / `windows_auto_export` according to the target's export contract. +`start` is the freestanding image entry symbol; it is not the C++ function `main`. + +For multiple products, entry-specific `defines`, `cxxflags` and `cflags` do not +replace package-wide inputs. Put resource scripts in `[resources] files`; test +code-page settings belong under `[test]`. + +## Validate the actual consumer + +Build every gated product you changed. For shared libraries, test a separate +consumer package that loads or links the library; an executable in the same +package does not prove that it consumes that package's shared artifact. + +## References + +[Interface reference](references/interfaces.md). + +- [04-mcpp-toml.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/04-mcpp-toml.md) +- [12-binary-distribution.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/12-binary-distribution.md) +- [specs/library-interface.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/library-interface.md) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/references/interfaces.md new file mode 100644 index 000000000..5dae1f8b6 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-targets/references/interfaces.md @@ -0,0 +1,42 @@ +# Targets Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `lib` | Table. | +| `lib.path` | String. | +| `resources` | Table. Applies to this package's inputs. Merged by key. | +| `resources.extra-inputs` | Array of strings. | +| `resources.files` | Array of strings. | +| `resources.icon` | String. | +| `resources.version-info` | See the configuration examples in SKILL.md. | +| `resources.version-info.company` | See the configuration examples in SKILL.md. | +| `resources.version-info.copyright` | See the configuration examples in SKILL.md. | +| `resources.version-info.description` | See the configuration examples in SKILL.md. | +| `resources.version-info.internal-name` | See the configuration examples in SKILL.md. | +| `resources.version-info.original-filename` | See the configuration examples in SKILL.md. | +| `resources.version-info.product` | See the configuration examples in SKILL.md. | +| `targets` | Table. Applies to this package's inputs. Merged by key. | +| `targets..cflags` | See the configuration examples in SKILL.md. | +| `targets..cxxflags` | See the configuration examples in SKILL.md. | +| `targets..defines` | See the configuration examples in SKILL.md. | +| `targets..exports` | See the configuration examples in SKILL.md. | +| `targets..kind` | See the configuration examples in SKILL.md. | +| `targets..linkage` | See the configuration examples in SKILL.md. | +| `targets..main` | See the configuration examples in SKILL.md. | +| `targets..required_features` | See the configuration examples in SKILL.md. | +| `targets..soname` | See the configuration examples in SKILL.md. | +| `targets..start` | See the configuration examples in SKILL.md. | +| `targets..windows_auto_export` | See the configuration examples in SKILL.md. | +| `targets..windows_code_page` | See the configuration examples in SKILL.md. | +| `targets..windows_entry` | See the configuration examples in SKILL.md. | +| `targets..windows_long_paths` | See the configuration examples in SKILL.md. | +| `targets..windows_subsystem` | See the configuration examples in SKILL.md. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/SKILL.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/SKILL.md new file mode 100644 index 000000000..d9eeceea6 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/SKILL.md @@ -0,0 +1,77 @@ +--- +name: mcpp-workspaces +description: Configure mcpp workspace members, virtual roots, shared package/build/dependency layers, and member selection without leaking root-only settings. +--- + +# Workspaces + +## Define members and shared metadata + +```toml +[workspace] +members = ["libs/*", "apps/*"] +exclude = ["apps/experimental"] + +[workspace.package] +version = "0.1.0" +license = "Apache-2.0" + +[workspace.build] +defines = ["WORKSPACE_BUILD=1"] +``` + +```sh +mcpp build -p app +mcpp test --workspace +``` + +Member selectors resolve full identity, package name and directory according +to the command's rules. Disambiguate duplicate names with namespace.name or +directory. `run` requires a single member; build/test can select several. + +## Root is not a shared layer + +A root with `[package]` is itself a package. Its ordinary `[build]` does not +automatically become every member's configuration. Put supported common inputs +under `[workspace.build]`; declare common dependency specs under +`[workspace.dependencies]` and opt into inheritance on the member edge. + +Shared scalars, lists, defines and tables do not merge identically: lists append +workspace entries first, member defines replace the same macro name, and member +scalar declarations win. The registry determines which keys can be shared. +Workspace toolchain/indices/profile/target/xlings layers need their respective +shared forms, not arbitrary nesting under build. + +A shared local dependency has two declarations. At the workspace root: + +```toml +[workspace.dependencies] +math = { path = "libs/math" } +``` + +In the consuming member's manifest: + +```toml +[dependencies] +math = { workspace = true } +``` + +Paths in the shared declaration are anchored at the workspace root. The member +opts into the shared spec; simply writing a root dependency does not add it to +every member's graph. + +## Selection and validation + +Use `--workspace --exclude member` to omit members; do not combine exclusion +with `-p` selection. A virtual root has no product of its own. + +Check an individual member in the graph it actually declares, then a workspace +selection. A no-test member can return success: assert that the expected tests +were discovered. An empty selection is not behavioral coverage. + +## References + +[Interface reference](references/interfaces.md). + +- [07-workspace.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/07-workspace.md) +- [specs/manifest-semantics.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/manifest-semantics.md) diff --git a/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/references/interfaces.md new file mode 100644 index 000000000..f1dd907c7 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/project-config/mcpp-workspaces/references/interfaces.md @@ -0,0 +1,25 @@ +# Workspaces Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `workspace` | Table. | +| `workspace.build` | Table. | +| `workspace.dependencies` | Table. | +| `workspace.exclude` | Array of strings. | +| `workspace.members` | Array of strings. | +| `workspace.package` | Table. | +| `workspace.package.authors` | Array of strings. | +| `workspace.package.description` | String. | +| `workspace.package.license` | String. | +| `workspace.package.mcpp` | String. | +| `workspace.package.repo` | String. | +| `workspace.package.standard` | String. Integer. | +| `workspace.package.version` | String. | + +## Source + +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/README.md b/.agents/skills/mcpp-api-skills/skills/toolchains/README.md new file mode 100644 index 000000000..76131bf52 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/README.md @@ -0,0 +1,12 @@ +# Toolchains and runtimes + +**English** | [简体中文](README.zh-CN.md) + +Compiler selection, cross-compilation, runtime linkage and external tools. These skills cover which compiler, target and environment a build uses. + +| Skill | Topic | +| --- | --- | +| [mcpp-toolchains](mcpp-toolchains/SKILL.md) | Installing and selecting compilers, local toolchains and ABI compatibility | +| [mcpp-cross-compilation](mcpp-cross-compilation/SKILL.md) | Target triples, host/target graphs, sysroots and conditional settings | +| [mcpp-runtime](mcpp-runtime/SKILL.md) | C/C++ runtimes, shared libraries, search paths and deployment | +| [mcpp-external-tools](mcpp-external-tools/SKILL.md) | xlings tools, local overrides and on-request provisioning | diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/toolchains/README.zh-CN.md new file mode 100644 index 000000000..61f239553 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/README.zh-CN.md @@ -0,0 +1,12 @@ +# 工具链与运行时 + +[English](README.md) | **简体中文** + +编译器选择、交叉编译、运行时链接和外部工具,用于配置构建所需的编译器、目标平台和工具环境。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-toolchains](mcpp-toolchains/SKILL.md) | 编译器安装与选择、本地工具链和 ABI 兼容性 | +| [mcpp-cross-compilation](mcpp-cross-compilation/SKILL.md) | 目标 triple、host/target 构建图、sysroot 和条件配置 | +| [mcpp-runtime](mcpp-runtime/SKILL.md) | C/C++ 运行时、动态库、搜索路径和部署 | +| [mcpp-external-tools](mcpp-external-tools/SKILL.md) | xlings 工具、本地覆盖和按需获取 | diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/SKILL.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/SKILL.md new file mode 100644 index 000000000..3190f5a78 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/SKILL.md @@ -0,0 +1,58 @@ +--- +name: mcpp-cross-compilation +description: Build mcpp projects for another target triple or target set with correct host/target graphs, sysroot, conditional settings and execution expectations. +--- + +# Cross-Compilation + +## State the target explicitly + +```sh +mcpp build --target x86_64-linux-musl +mcpp why toolchain --target x86_64-linux-musl +``` + +A target row is more than an ISA. The OS/environment, ABI, runtime layers, +toolchain and platform determine what is built. Normalize through mcpp's target +model rather than hand-splitting triples into presumed positions. + +```toml +[target.x86_64-linux-musl] +linkage = "static" + +[target.windows.build] +defines = ["APP_WINDOWS=1"] +``` + +Use recognized selectors and `cfg(...)` predicates. Conditions involving a +resolved layer cannot decide the dependencies or library form that creates that +layer; such circular placement is not a useful gate. + +## Keep host work native + +Code generators, rule modules and tools run on the host. Product objects and +libraries target the selected machine. Use build-dependencies/tools and the +host graph; do not compile a generator for the target and then execute it here. + +`MCPP_TARGET` is resolved. `MCPP_TARGET_REQUESTED` can be empty for a native +request; use the resolved target helpers in build programs. + +## Platform and base + +`--sysroot` / `MCPP_SYSROOT` select a target base (package, `path:...`, `none`, +or supported system form). `--platform` and `--host-platform` select different +graphs. Use `mcpp-platform-packages` for layers, tools and carriers. + +Target sets expand into legs. Verify each build leg; a run picks a reachable +leg, while tests may build all and run only where reachable. For compile-only +verification use `mcpp test --target ... --no-run`. Executing a foreign artifact +requires an actual runner or target machine. + +## References + +[Interface reference](references/interfaces.md). + +- [21-the-target-triple.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/21-the-target-triple.md) +- [22-target-side.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/22-target-side.md) +- [24-openkal-cross.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/24-openkal-cross.md) +- [specs/target-side.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/target-side.md) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/references/interfaces.md new file mode 100644 index 000000000..ab9277dc1 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-cross-compilation/references/interfaces.md @@ -0,0 +1,31 @@ +# Cross Compilation Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `host` | Table. One value for the build graph. Merged by key. | +| `platform` | Table. Applies to this package's inputs. Merged by key. | +| `target..abi` | One value for the build graph. Merged by key. May be shared through the workspace. Supports conditional target settings. | +| `target..carrier` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..cxx_runtime` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..dependencies` | Applies to this package's inputs. Merged by key. Supports conditional target settings. | +| `target..layers` | One value for the build graph. Merged by key. May be shared through the workspace. Supports conditional target settings. | +| `target..link` | One value for the build graph. Merged by key. May be shared through the workspace. Supports conditional target settings. | +| `target..linkage` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..min_api_level` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..platform` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..run_under` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..runner` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..runtime` | Propagates to consumers. Merged by key. May be shared through the workspace. Supports conditional target settings. | +| `target..sysroot` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..targets` | Applies to this package's inputs. Merged by key. Supports conditional target settings. | +| `target..toolchain` | One value for the build graph. A member declaration overrides the shared value. May be shared through the workspace. Supports conditional target settings. | +| `target..tools` | One value for the build graph. Merged by key. May be shared through the workspace. Supports conditional target settings. | +| `target..xlings` | One value for the build graph. Merged by key. May be shared through the workspace. Supports conditional target settings. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/SKILL.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/SKILL.md new file mode 100644 index 000000000..3511f6f67 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/SKILL.md @@ -0,0 +1,57 @@ +--- +name: mcpp-external-tools +description: Declare xlings tools and payloads for mcpp, apply local overrides, and resolve on-request tools without confusing installed payloads with host-built binaries. +--- + +# External Tools and Payloads + +## Declare tools with the graph + +```toml +[xlings.workspace] +python = "3.12.12" +``` + +Choose an actually published version for the host. Package-provided tool +requirements can be gated under `[feature-xlings.]`; root tools and +dependency tools participate in the prepared environment. + +Use `[xlings.overrides]` for a local development substitution rather than +rewriting every rule that consumes the tool. Check the exact accepted override +shape in the local reference before editing it. + +## Ask through the public API + +```cpp +import mcpp.core; +int main() { + const char* program = mcpp::xpkg_program("python"); + if (!program[0]) { + mcpp::warning("python payload has no registered program"); + return 1; + } + mcpp::rerun_if_env_changed("APP_CODEGEN_MODE"); +} +``` + +`xpkg_dir`, `xpkg_source` and `xpkg_program` answer different questions. Empty +answers must be handled. `dep_bin` reaches a tool compiled from a source edge; +it is not a synonym for a prebuilt xpkg program. + +## On-request provisioning + +With `provision = "on-request"`, declare payloads first, request needed ones with +the public request API, and end the requesting invocation when pending. mcpp +provisions the batch and reruns the program; the requesting run's configuration +is discarded. Do not submit actions and expect them to survive that run. + +An action must declare the tool binary among its inputs so tool changes cause +rebuilds. Passing a program name through a guessed global PATH can select another +home's shim; use the actual public resolver for the workflow. + +## References + +[Interface reference](references/interfaces.md). + +- [23-the-project-environment.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/23-the-project-environment.md) +- [32-authoring-a-payload.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/32-authoring-a-payload.md) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/references/interfaces.md new file mode 100644 index 000000000..f0241e4b8 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-external-tools/references/interfaces.md @@ -0,0 +1,17 @@ +# External Tools Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `xlings` | Table. One value for the build graph. Merged by key. May be shared through the workspace. | +| `xlings.overrides` | Table. | +| `xlings.subos` | String. | +| `xlings.workspace` | Table. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/SKILL.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/SKILL.md new file mode 100644 index 000000000..032327e35 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/SKILL.md @@ -0,0 +1,56 @@ +--- +name: mcpp-runtime +description: Configure C/C++ runtime and dependency linkage in mcpp, deploy dynamic libraries, and distinguish loader search paths from public link requirements. +--- + +# Runtime and Linkage + +## Choose the contract before a flag + +`[build] cxx_runtime`, target-row `cxx_runtime` and `linkage`, dependency linkage +and profile settings affect different scopes. Resolve the effective toolchain +and runtime with `mcpp why toolchain` / `mcpp why runtime` before adding linker +escape flags. A static C++ library is not the same as a fully static application. + +Use the field reference for accepted values. The C++ ABI/library model must match +prebuilt dependencies; do not substitute a libc++ package into a libstdc++ graph +just because symbol names look similar. + +## Link-time and run-time paths differ + +```cpp +// Inside build.mcpp +import mcpp.core; +int main() { + mcpp::runtime_search_dir("vendor/runtime"); + mcpp::deploy("assets/config.json", "config.json"); +} +``` + +Declare real directories and files in the user's project. `runtime_search_dir` +affects runtime lookup/staging; `link_search` affects the linker's search. +`deploy` places runtime files and does not register a C++ source. + +For constructed payload directories, declare a prepare action rather than +performing installation inside the planning program. Its output directory is +read by the declared runtime/include/link consumers. + +## Deployment validation + +Run the artifact from the packaged or intended deployment tree, outside the +build directory. A program finding a DLL through the developer's PATH does not +prove a relocatable bundle. Inspect loader requirements and actual staged files. + +`[runtime]` also models requirements, provided libraries/frameworks and adapter +contracts. Retained `library_dirs` parsing is not a reason to use it in new +examples. Prefer the current runtime search API and the field's documented +replacement for the task. `why runtime` is human output; do not invent a JSON +shape for a topic that has none. + +## References + +[Interface reference](references/interfaces.md). + +- [04-mcpp-toml.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/04-mcpp-toml.md) +- [33-authoring-an-adapter.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/33-authoring-an-adapter.md) +- [specs/target-side.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/target-side.md) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/references/interfaces.md new file mode 100644 index 000000000..de10d8c3f --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-runtime/references/interfaces.md @@ -0,0 +1,40 @@ +# Runtime Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `c-abi` | Table. | +| `c-abi.builtins` | See the configuration examples in SKILL.md. | +| `c-abi.data-model` | See the configuration examples in SKILL.md. | +| `c-abi.presents` | See the configuration examples in SKILL.md. | +| `c-abi.wchar` | See the configuration examples in SKILL.md. | +| `kernel-abi` | Table. | +| `kernel-abi.provides-interfaces` | Array of strings. | +| `kernel-abi.requires-interfaces` | Array of strings. | +| `package.c-environment` | String. | +| `package.exclusive` | Array of strings. | +| `package.provides` | Array of strings. | +| `package.requires` | See the configuration examples in SKILL.md. | +| `package.requires_abi` | See the configuration examples in SKILL.md. | +| `runtime` | Table. Applies to this package's inputs. Merged by key. | +| `runtime.artifacts` | See the configuration examples in SKILL.md. | +| `runtime.capabilities` | Array of strings. | +| `runtime.deploy` | See the configuration examples in SKILL.md. | +| `runtime.deploy_files` | See the configuration examples in SKILL.md. | +| `runtime.dlopen_libs` | Array of strings. | +| `runtime.frameworks` | Array of strings. | +| `runtime.libraries` | Array of strings. | +| `runtime.library_dirs` | Array of strings. | +| `runtime.link_library_dirs` | See the configuration examples in SKILL.md. | +| `runtime.provides` | Array of strings. | +| `runtime.requirements` | See the configuration examples in SKILL.md. | +| `runtime.runtime_search_dirs` | See the configuration examples in SKILL.md. | +| `runtime.transitive_needed_dirs` | See the configuration examples in SKILL.md. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/SKILL.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/SKILL.md new file mode 100644 index 000000000..e36331161 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/SKILL.md @@ -0,0 +1,79 @@ +--- +name: mcpp-toolchains +description: Inspect, install and choose mcpp toolchains with per-host and target overrides, local compiler paths, runtime constraints and provider diagnostics. +--- + +# Toolchain Selection + +## Inspect and select + +```sh +mcpp toolchain list +mcpp toolchain list --format json +mcpp toolchain install llvm 23.1.3 +mcpp build --toolchain llvm@23.1.3 +``` + +These are reviewed selector examples, not a promise of payload availability on +every host. Consult the installed toolchain/target status and resolved decision +before picking a version. Use `toolchain default SPEC` for a persistent default, +and `--toolchain` for one invocation. + +```toml +[toolchain] +default = "gcc@16.1.0" +windows = "llvm@23.1.3" +macos = "llvm@23.1.3" + +[target.x86_64-linux-musl] +linkage = "static" +``` + +Do not infer host availability from this illustrative cross-platform table. +Native Windows LLVM may require an MSVC installation; a MinGW ABI is a different +configuration, not a substitute flag for the same binary interface. + +## Diagnose the resolved configuration + +```sh +mcpp why toolchain +mcpp why toolchain --format json +mcpp build --print-fingerprint +``` + +Compiler family/version, sysroot, C++ library, ABI and target all matter to BMI +identity. Do not reuse cached interfaces merely because both drivers are Clang. +Version selection is not sufficient evidence that headers, linker and runtime +form a compatible target toolchain. + +A local installation is a table-valued selector, for example +`default = { path = "/opt/gcc", family = "gcc" }` under `[toolchain]`. +Use the actual installation root. For a machine-local override, pass +`--toolchain "path:"` for one invocation or set `MCPP_TOOLCHAIN` in +the current process rather than committing that machine's path to the project. + +A computed selection uses `default = { configure = "build.mcpp" }` and runs in +the toolchain phase. Use `mcpp-toolchain-providers` for bootstrap and tool roles. + +## Build-tool discovery + +The compiler and Ninja must both be reachable. If compiler detection succeeds +but the build reports `cannot start 'ninja'`, inspect the active home with +`mcpp self env`, locate its installed Ninja and run that executable's +`--version` by absolute path. Check whether the invoking process can resolve it. + +With a local compiler outside the provider store, mcpp 2026.10.31.3 can fall +back to the bare `ninja` command instead of the installed home tool. If Ninja +exists but is absent from PATH, prepend its containing directory to PATH for +the current process and retry. Preserve the existing PATH; do not copy Ninja +into the compiler tree or change the persistent user/system PATH. + +Removal changes toolchain state. Prefer a per-invocation selection when only +one project needs a different compiler; do not globally switch unrelated work. + +## References + +[Interface reference](references/interfaces.md). + +- [20-toolchains.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/20-toolchains.md) +- [specs/toolchain-management.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/toolchain-management.md) diff --git a/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/references/interfaces.md new file mode 100644 index 000000000..aca5036eb --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/toolchains/mcpp-toolchains/references/interfaces.md @@ -0,0 +1,35 @@ +# Toolchains Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp toolchain` | command | Install / list / select / remove C++ toolchains | +| `mcpp toolchain default` | command | Set the default toolchain (and optionally the default target) | +| `mcpp toolchain default --target` | value | Default build target (omit = host) | +| `mcpp toolchain default ` | required argument | [@] (version may be partial) | +| `mcpp toolchain default ` | optional argument | (optional, alternative to @-form) | +| `mcpp toolchain install` | command | Install a toolchain via mcpp's xlings | +| `mcpp toolchain install --platform` | value | With --target: the target's platform for this invocation (= MCPP_PLATFORM) | +| `mcpp toolchain install --target` | value | Install the toolchain payload for (e.g. x86_64-windows-gnu) | +| `mcpp toolchain install ` | optional argument | gcc \| llvm \| msvc \| emsdk \| android-ndk (or gcc@16.1.0; legacy aliases accepted) | +| `mcpp toolchain install ` | optional argument | e.g. 16.1.0, 15, 15.1 | +| `mcpp toolchain list` | command | List installed toolchains | +| `mcpp toolchain list --format` | value | Machine-readable output (enveloped; see docs/50-machine-output.md) | +| `mcpp toolchain remove` | command | Uninstall a toolchain | +| `mcpp toolchain remove --target` | value | Remove the payload for instead of the host one | +| `mcpp toolchain remove ` | required argument | [@] (exact version) | +| `mcpp toolchain remove ` | optional argument | (optional, alternative to @-form) | + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `toolchain` | Table. One value for the build graph. Merged by key. May be shared through the workspace. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/README.md b/.agents/skills/mcpp-api-skills/skills/workflow/README.md new file mode 100644 index 000000000..3e1c9ec37 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/README.md @@ -0,0 +1,12 @@ +# Building and testing + +**English** | [简体中文](README.zh-CN.md) + +Build and run programs, select tests, and manage the dependencies and indices used by a project. + +| Skill | Topic | +| --- | --- | +| [mcpp-build-and-run](mcpp-build-and-run/SKILL.md) | build/run, profiles, targets, jobs and runners | +| [mcpp-tests](mcpp-tests/SKILL.md) | Test discovery, filters, timeouts, archives and launch descriptions | +| [mcpp-dependencies](mcpp-dependencies/SKILL.md) | Dependency sources, versions, lockfiles and build dependencies | +| [mcpp-indices](mcpp-indices/SKILL.md) | Custom indices, updates, status and revision pins | diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/README.zh-CN.md b/.agents/skills/mcpp-api-skills/skills/workflow/README.zh-CN.md new file mode 100644 index 000000000..55cce0942 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/README.zh-CN.md @@ -0,0 +1,12 @@ +# 构建与测试 + +[English](README.md) | **简体中文** + +构建和运行程序、选择测试,以及管理工程使用的依赖和包索引。 + +| Skill | 内容 | +| --- | --- | +| [mcpp-build-and-run](mcpp-build-and-run/SKILL.md) | build/run、profile、目标、并行度和 runner | +| [mcpp-tests](mcpp-tests/SKILL.md) | 测试发现、过滤、超时、归档和启动描述 | +| [mcpp-dependencies](mcpp-dependencies/SKILL.md) | 依赖来源、版本、锁文件和构建依赖 | +| [mcpp-indices](mcpp-indices/SKILL.md) | 自定义索引、更新、状态和版本固定 | diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/SKILL.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/SKILL.md new file mode 100644 index 000000000..db00cafd4 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/SKILL.md @@ -0,0 +1,73 @@ +--- +name: mcpp-build-and-run +description: Build and run mcpp products with profiles, package and target selection, cache modes, runner options and argument forwarding. +--- + +# Build and Run + +## Build before executing + +```sh +mcpp build +mcpp run +mcpp run server --release -- --port 8080 +``` + +`server` selects a product. `--target` selects a triple or target set. `-p` +selects a workspace member. Do not rewrite one axis to solve an error on another. + +## Common variations + +| Task | Invocation | +|---|---| +| Select profile | `mcpp build --profile release` | +| Activate feature | `mcpp run --features logging` | +| Select member | `mcpp build -p app` | +| Select machine | `mcpp build --target x86_64-linux-gnu` | +| Bound compile concurrency | `mcpp build --jobs auto` | +| Inspect configuration identity | `mcpp build --print-fingerprint` | +| Prepare compiler database | `mcpp build --configure-only` | +| Stream machine result | `mcpp build --message-format json` | +| Describe execution | `mcpp run --print-launch` | + +`--configure-only` does prepare work and writes project output; it is not the +same interface as `emit build-database`, nor a guarantee of zero side effects. + +## Lifecycle hooks + +`[hooks]` can configure build_start, build_failed, build_finished and +during_build. A self-closing hook accepts a command string or a table with cmd +and timeout_seconds; during_build is spanning and can declare loop instead of +its own timeout. The table also controls enabled, side_effect and the positive +default timeout_seconds. Hooks execute user commands; they are different from +incremental actions and should not generate undeclared compiler inputs. + +## Cache and reproducibility + +`--cache global|local|off` controls dependency caching. The deprecated +`--no-cache` also clears the build directory; do not describe it as harmless +performance tuning. Use `--locked` to reject lock resolution changes and +`--offline` to deny network access; these constraints have different meanings. + +## Running a non-native artifact + +Use a supplied runner or named `--runner`; inspect `--list-runners` first. +`--no-runner` explicitly asks the host to execute the artifact directly and +does not make an incompatible architecture executable. Target sets build their +legs; run selects a reachable one rather than executing all of them. + +For distributable execution use `--pkg-format`; that selection is distinct +from machine-output formatting and cannot be combined freely with no-runner. + +## Result handling + +`run` passes through program/runner status. Build failure before launch is 101; +startup failures and signals need their own interpretation. Use +`mcpp-machine-interface` for protocol/record parsing and launch environment. + +## References + +[Interface reference](references/interfaces.md). + +- [01-getting-started.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/01-getting-started.md) +- [52-driving-mcpp-from-a-program.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/52-driving-mcpp-from-a-program.md) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/references/interfaces.md new file mode 100644 index 000000000..e6b4f67b9 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-build-and-run/references/interfaces.md @@ -0,0 +1,61 @@ +# Build And Run Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp build` | command | Build the current package | +| `mcpp build --accel` | value | Device backends and architectures, e.g. 'cuda12.8+{sm_89}'; overrides [build] accel | +| `mcpp build --cache` | value | Global dependency cache: global (default) \| local \| off | +| `mcpp build --cap` | value | Pin capability providers (e.g. blas=openblas,lapack=mkl) | +| `mcpp build --configure-only` | flag | Generate compile_commands.json without compiling or linking | +| `mcpp build --dev` | flag | Shorthand for --profile dev (-O0 -g) | +| `mcpp build --exclude` | value; repeatable | With --workspace (or at a virtual workspace root), leave the named member out; repeatable, refused with -p | +| `mcpp build --features` | value | Activate root-package features, and a dependency's as / (comma-separated) | +| `mcpp build --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp build --jobs` (`-j`) | value | Concurrent compiles: a number, or 'auto' to size from cores + free RAM | +| `mcpp build --message-format` | value | human (default) \| json: NDJSON events on stdout, then the mcpp.build envelope | +| `mcpp build --no-accel` | flag | Target no accelerator, ignoring [build] accel | +| `mcpp build --no-cache` | flag | Deprecated alias for --cache=off (also clears the build dir) | +| `mcpp build --package` (`-p`) | value; repeatable | Build the named workspace member (namespace.name or package name, then directory); repeat to build several | +| `mcpp build --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp build --play-game` | flag | Play a game in the status row while it builds: --play-game=snake\|stack\|runner, or one at random | +| `mcpp build --print-fingerprint` | flag | Show toolchain fingerprint and 11 inputs | +| `mcpp build --profile` | value | Build profile: dev (default) \| release \| dist \| <[profile.*] name> | +| `mcpp build --release` | flag | Shorthand for --profile release | +| `mcpp build --static` | flag | Force static linking (-static). On Linux, prefer pairing with --target -linux-musl | +| `mcpp build --strict` | flag | Treat manifest schema warnings (unknown feature/platform) as errors | +| `mcpp build --sysroot` | value | The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none | +| `mcpp build --target` | value; repeatable | Build for (e.g. x86_64-linux-musl), or for a target set (e.g. openkal, linux-musl); repeatable: one leg per target | +| `mcpp build --toolchain` | value | Build with this toolchain for one build, e.g. llvm@22.1.8 | +| `mcpp build --workspace` | flag | Build all workspace members | +| `mcpp run` | command | Build + run a binary target (after `--`, args are passed to it) | +| `mcpp run --accel` | value | Device backends and architectures (same axis as `mcpp build --accel`) | +| `mcpp run --cache` | value | Global dependency cache: global (default) \| local \| off | +| `mcpp run --dev` | flag | Shorthand for --profile dev | +| `mcpp run --features` | value | Activate features (comma/space separated), same axis as `mcpp build --features` | +| `mcpp run --format` | value | Earlier spelling of --pkg-format | +| `mcpp run --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp run --list-runners` | flag | List the named runners this project supplies, and exit | +| `mcpp run --no-accel` | flag | Run the variant built for no accelerator (same as `mcpp build --no-accel`) | +| `mcpp run --no-cache` | flag | Deprecated alias for --cache=off (also clears the build dir) | +| `mcpp run --no-runner` | flag | Execute the artifact directly, ignoring any [target.].runner (a host that runs it natively) | +| `mcpp run --package` (`-p`) | value; repeatable | Run only the named workspace member (namespace.name or package name, then directory; one member: a second -p is refused) | +| `mcpp run --pkg-format` | value | Run the distributable a `--pkg-format ` pack would produce (same values as `mcpp pack --pkg-format`); refused together with --no-runner | +| `mcpp run --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp run --play-game` | flag | Play a game in the status row while it builds: --play-game=snake\|stack\|runner, or one at random | +| `mcpp run --print-launch` | flag | Build, then print how the program would be started (argv, the environment mcpp adds, cwd, runner) as the mcpp.launch envelope, instead of starting it | +| `mcpp run --profile` | value | Build profile to run (dev \| release \| ) | +| `mcpp run --release` | flag | Shorthand for --profile release | +| `mcpp run --runner` | value | Reach the artifact by a named runner a package supplied; see --list-runners | +| `mcpp run --sysroot` | value | The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none | +| `mcpp run --target` | value; repeatable | Cross target triple or target set (same axis as `mcpp build --target`); of several, the first this host reaches, its own architecture first | +| `mcpp run --target-triple` | value | Alias for --target | +| `mcpp run --toolchain` | value | Build with this toolchain for one invocation, e.g. llvm@22.1.8 | +| `mcpp run ` | optional argument | Binary name (optional) | + +## Source + +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/SKILL.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/SKILL.md new file mode 100644 index 000000000..39f1a991e --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/SKILL.md @@ -0,0 +1,62 @@ +--- +name: mcpp-dependencies +description: Manage mcpp source dependencies, exact selectors and version requirements, lockfiles, path/git sources, and runtime versus dev/build edges. +--- + +# Dependencies and Resolution + +## Find the exact identity + +```sh +mcpp search gtest +mcpp add compat.gtest@1.15.2 --dev +mcpp update +``` + +Confirm the version exists in the configured index before copying a package +example. `add` and `remove` use exact selectors `[namespace.]name`; search is +the substring operation. Keep a fully qualified dependency key as one key. + +## Declarative sources + +```toml +[dependencies] +math = { path = "../math" } +util = { git = "https://example.org/team/util.git", rev = "" } + +[dev-dependencies] +"compat.gtest" = "1.15.2" +``` + +Replace the example git URL and commit with the actual repository. Published +version requirements and exact release keys have distinct grammars. Do not +invent wildcard forms such as `1.2.x`; check the accepted version parser. + +## Three graphs + +| Edge | Purpose | +|---|---| +| dependencies | Product code and usage requirements | +| dev-dependencies | Tests | +| build-dependencies | Programs/modules used on the build host | + +Build tools declared with `tools` and host modules are host artifacts. `tools`, +`artifacts`, `host-module`, `reexport`, linkage and feature options each affect +a specific edge contract; do not treat them as ordinary link libraries. +Use `mcpp-rule-packages` for build-program libraries and reexports. + +## Lock and constraints + +`mcpp update [pkg]` deliberately re-resolves and writes the lock. `--locked` +(`--frozen`, `MCPP_LOCKED=1`) rejects differences; `--offline` denies network. +Do not promise that a lock alone makes every tool and payload available offline. + +`default-features = false` applies to one edge; feature requests elsewhere +remain active. Public usage propagation is not the same as build-time reexport. + +## References + +[Interface reference](references/interfaces.md). + +- [05-dependencies.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/05-dependencies.md) +- [specs/package-identity.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/specs/package-identity.md) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/references/interfaces.md new file mode 100644 index 000000000..d77e6a4b0 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-dependencies/references/interfaces.md @@ -0,0 +1,34 @@ +# Dependencies Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp add` | command | Add a dependency to mcpp.toml | +| `mcpp add --dev` | flag | Add to [dev-dependencies] (test-only, e.g. compat.gtest) | +| `mcpp add ` | required argument | Exact package spec, e.g. foo@1.0.0 or compat.gtest@1.15.2 | +| `mcpp remove` | command | Remove a dependency from mcpp.toml | +| `mcpp remove ` | required argument | Exact package selector [ns.]name | +| `mcpp resolve` | command | Re-resolve the build plan and explain it | +| `mcpp resolve --explain` | flag | Print resolved toolchain / runtime / deps / runners | +| `mcpp search` | command | Search packages in configured registries | +| `mcpp search --all-versions` | flag | List every published version instead of the latest few | +| `mcpp search --format` | value | json: the mcpp.search envelope (every version, licenses, repo) | +| `mcpp search ` | optional argument | Search keyword (substring match); optional with --format json, which then lists every package | +| `mcpp update` | command | Re-resolve dependencies and rewrite mcpp.lock | +| `mcpp update ` | optional argument | If given, update only that package | + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `build-dependencies` | Applies to this package's inputs. Merged by key. | +| `dependencies` | Applies to this package's inputs. Merged by key. | +| `dev-dependencies` | Applies to this package's inputs. Merged by key. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/SKILL.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/SKILL.md new file mode 100644 index 000000000..e51455513 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/SKILL.md @@ -0,0 +1,59 @@ +--- +name: mcpp-indices +description: Configure, inspect, update and pin mcpp package indices, distinguishing project registries from globally synchronized repositories. +--- + +# Package Indices + +## Inspect before modifying + +```sh +mcpp index list +mcpp index status +mcpp index list --format json +``` + +Use the enveloped list for program consumers. `status` inspects local freshness +offline; an update is a network operation. + +## Project configuration + +```toml +[indices] +team = "https://example.org/team/index.git" +local = { path = "../index" } + +[dependencies.team] +internal = "1.0.0" +``` + +Use real URLs and available package versions. A project index and a package +namespace are related through identity rules, not interchangeable strings. + +```sh +mcpp index add team https://example.org/team/index.git +mcpp index update team +mcpp index pin team +mcpp index unpin team +``` + +`pin` records a custom index revision in the manifest, defaulting to the current +locked revision when no revision is supplied. `remove` edits configuration; it +does not mean the same thing as uninstalling all packages from that index. + +## Boundaries + +The optional name on `index update` limits project custom indices only. Global +repositories still synchronize as a whole. Do not promise a single global +repository refresh if the provider cannot perform one. + +Use `mcpp-environment` for home-level index configuration and `mcpp-dependencies` +for selector and lock semantics. Check offline failure instead of silently +dropping a registry or substituting a similarly named package. + +## References + +[Interface reference](references/interfaces.md). + +- [25-home-indices-and-store.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/25-home-indices-and-store.md) +- [05-dependencies.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/05-dependencies.md) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/references/interfaces.md new file mode 100644 index 000000000..00984b184 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-indices/references/interfaces.md @@ -0,0 +1,35 @@ +# Indices Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp index` | command | Manage configured package registries | +| `mcpp index add` | command | Add a custom registry | +| `mcpp index add ` | required argument | Registry name | +| `mcpp index add ` | required argument | Registry URL | +| `mcpp index list` | command | List configured registries | +| `mcpp index list --format` | value | json: the mcpp.index envelope | +| `mcpp index pin` | command | Pin a custom index to a commit rev in mcpp.toml | +| `mcpp index pin ` | required argument | Index name | +| `mcpp index pin ` | optional argument | Commit sha (defaults to current lock rev) | +| `mcpp index remove` | command | Remove a registry | +| `mcpp index remove ` | required argument | Registry name | +| `mcpp index status` | command | Show local index presence/freshness (offline) | +| `mcpp index unpin` | command | Remove rev pin from a custom index in mcpp.toml | +| `mcpp index unpin ` | required argument | Index name | +| `mcpp index update` | command | Refresh local registry clones (global repos always sync in full) | +| `mcpp index update ` | optional argument | Update only this PROJECT-level custom index (the global repos sync regardless) | + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `indices` | Table. One value for the build graph. Merged by key. May be shared through the workspace. | + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/SKILL.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/SKILL.md new file mode 100644 index 000000000..908e358e5 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/SKILL.md @@ -0,0 +1,102 @@ +--- +name: mcpp-tests +description: Discover, select, build and run mcpp tests, configure test policy, export test launches or archives, and interpret failures and skipped capabilities. +--- + +# Testing a Project + +## Test programs and discovery + +mcpp compiles every discovered file into a separate test program. Each program +normally defines its own `main` and passes by exiting zero. Test-only packages +belong in `[dev-dependencies]`. + +The default discovery pattern is `tests/**/*.cpp`. For an existing project with +benchmarks, support sources or vendored code under `tests/`, select the actual +test entry files explicitly: + +```toml +[test] +discover = ["tests/test_*.cpp"] +``` + +For a recursive suite, exclusions remove matching files regardless of which +positive glob found them: + +```toml +[test] +discover = ["tests/**/*.cpp", "!tests/support/**", "!tests/third_party/**"] +``` + +`discover = []` disables discovery. A test's name is its path relative to the +fixed prefix of the first matching glob, without the extension; duplicate names +are refused. Discovery does not inspect whether a matching source defines main. +Keep non-entry support files out of the discovered set. A multi-source suite +can be a workspace member with its own sources and test entry. + +```sh +mcpp test --list +mcpp test smoke +mcpp test smoke -- --framework-argument +mcpp test --no-run +``` + +Check the list against the intended test entries before running it. Success +with no discovered tests does not establish coverage. + +When a framework provides the entry point, `[test] main` selects its declared +entry target as `{ from = "dependency/entry" }`; the discovered files then do +not define their own main. The local reference lists this and the per-test +Windows settings. + +## Select and bound + +- The positional pattern is a name filter, not an arbitrary shell glob. +- `-p` / `--workspace` select member graphs; inspect expected discovery counts. +- `--timeout` bounds an executing test (default 300 seconds; zero disables it). +- `--build-timeout` bounds the compiler/link drive (POSIX only; default zero). +- `--workspace-timeout` stops starting further members after the budget. +- `--features`, `--profile`, `--cap` and `--target` select the tested variant. + +When a target cannot execute here, `--no-run` verifies compilation only. A +runner can make a target reachable; `--no-runner` does not emulate it. +Record unavailable capability providers and distinguish skips from passes. + +## Program integration + +`--message-format json` is per-test NDJSON; it is not the final-build-envelope +format. `test --print-launch` builds one selected test and emits +`mcpp.launch` without running it. It requires one member and exactly one match; +do not combine it with `--no-run`, `--list`, `--archive` or JSON test reporting. +It also requires a single target leg, not an expanded multi-target selection. + +With `--no-run --archive FILE`, archive the built tests. With `--archive FILE` +alone, run archived tests without building, in a checkout of the same project. + +## Expected termination + +Native test registration has no `should_fail` option: a nonzero test exit is a +failure. For death tests, use a framework that runs the case in a child process, +or an external harness that validates the expected termination status. + +An external harness can obtain argv, cwd and environment changes through +`mcpp test --print-launch`, then spawn argv directly with that cwd +and an environment overlay. Establish the expected status for the actual +platform, CRT and runner. Check normal execution and argument handling as +controls; startup errors, timeouts and unrelated nonzero exits are not expected +termination. Report native test results separately from external harness cases. + +## Validate changes + +Assert discovery, process exit, expected output and relevant failure behavior. +A failing test maps to mcpp test failure, rather than exposing an arbitrary +framework exit code as the mcpp contract. Windows code-page test settings are +distinct from executable target settings. Use `[test] windows_code_page` where +the test itself must run under that declared policy. + +## References + +[Interface reference](references/interfaces.md). + +- [08-testing.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/08-testing.md) +- [50-machine-output.md](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/docs/50-machine-output.md) diff --git a/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/references/interfaces.md b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/references/interfaces.md new file mode 100644 index 000000000..e73c45aff --- /dev/null +++ b/.agents/skills/mcpp-api-skills/skills/workflow/mcpp-tests/references/interfaces.md @@ -0,0 +1,66 @@ +# Tests Reference + +Interface names and declarations for mcpp 2026.10.31.3. + +## Commands and options + +| Interface | Form | Description | +| --- | --- | --- | +| `mcpp test` | command | Build + run all tests/**/*.cpp (after `--`, args go to each test binary) | +| `mcpp test --accel` | value | Device backends and architectures (same axis as `mcpp build --accel`) | +| `mcpp test --archive` | value | With --no-run: write the built tests to FILE. Without: run the tests FILE holds, building nothing (in a checkout of the same project) | +| `mcpp test --build-timeout` | value | Kill a compile/link drive still running after SECS seconds (default 0 = no limit; POSIX only) | +| `mcpp test --cache` | value | Global dependency cache: global (default) \| local \| off | +| `mcpp test --cap` | value | Pin capability providers (e.g. blas=openblas,lapack=mkl) | +| `mcpp test --exclude` | value; repeatable | With --workspace (or at a virtual workspace root), leave the named member out; repeatable, refused with -p | +| `mcpp test --features` | value | Activate root-package features, and a dependency's as /, for the test build (comma-separated) | +| `mcpp test --host-platform` | value | The host graph's platform for this invocation (= MCPP_HOST_PLATFORM) | +| `mcpp test --list` | flag | List (filtered) tests without building or running them | +| `mcpp test --message-format` | value | Output format: human (default) \| json (NDJSON, one record per test) | +| `mcpp test --no-accel` | flag | Test the variant built for no accelerator (same as `mcpp build --no-accel`) | +| `mcpp test --no-cache` | flag | Deprecated alias for --cache=off (also clears the build dir) | +| `mcpp test --no-run` | flag | Build the tests for --target and stop; a build that succeeds is the result (for a target this host cannot execute) | +| `mcpp test --no-runner` | flag | Run test binaries directly, ignoring any [target.].runner (a host that runs them natively) | +| `mcpp test --package` (`-p`) | value; repeatable | Run the tests of the named workspace member (namespace.name or package name, then directory); repeat to test several | +| `mcpp test --platform` | value | The target's platform for this invocation (= MCPP_PLATFORM): @, path:, none | +| `mcpp test --play-game` | flag | Play a game in the status row while it builds: --play-game=snake\|stack\|runner, or one at random | +| `mcpp test --print-launch` | flag | Build the one test PATTERN names, then print how it would be started (the mcpp.launch envelope, as `mcpp run --print-launch` prints) instead of running it; arguments after `--` are in its argv | +| `mcpp test --profile` | value | Build profile for the test build: dev (default) \| release \| dist \| <[profile.*] name> | +| `mcpp test --strict` | flag | Treat manifest schema warnings (unknown feature/platform) as errors | +| `mcpp test --sysroot` | value | The target's base for this invocation (= MCPP_SYSROOT): a package, glibc@system, path:, none | +| `mcpp test --target` | value; repeatable | Cross target triple or target set (same axis as `mcpp build --target`); repeatable: every leg is built, and run where this host reaches it | +| `mcpp test --timeout` | value | Kill a test still RUNNING after SECS seconds (default 300; 0 = no limit) | +| `mcpp test --toolchain` | value | Build the tests with this toolchain for one invocation, e.g. llvm@22.1.8 | +| `mcpp test --workspace` | flag | Run tests for all workspace members | +| `mcpp test --workspace-timeout` | value | Start no further member's tests after SECS seconds since the command began, and report what did not run (default 0 = no limit); the build is bounded by --build-timeout | +| `mcpp test ` | optional argument | Run only tests whose name contains PATTERN (optional) | + +## Manifest fields + +| Interface | Details | +| --- | --- | +| `test` | Settings applied to every discovered test program in this package. | +| `test.discover` | Array of nonempty glob strings. Default: `["tests/**/*.cpp"]`. A leading `!` excludes matching files; `[]` discovers none. Each matched file is one test program. | +| `test.main` | Table containing only `from = "dependency/entry"`; selects an entry target for every test. Discovered files become ordinary sources and do not define their own main. | +| `test.start` | String naming the image entry symbol for each test on a freestanding target. | +| `test.windows_code_page` | String selecting the Windows executable code page, using target-setting values such as `"utf-8"`. Unset uses the system code-page policy. | +| `test.windows_long_paths` | Boolean selecting the long-path declaration for each test executable on Windows. | + +## Discovery rules + +Patterns are resolved from the package root. Exclusions remove matches from the +whole selected set, not only an adjacent include pattern. Names are relative +to the fixed prefix of the first matching include pattern, without extensions. +Two files producing the same name are refused. + +A support translation unit without a main is not an independent test entry +unless `[test] main` supplies one. Use a narrower discovery pattern rather than +removing that source from the project. Native tests have no `should_fail` +registration; external termination checks are separate harness results. + +## Source + +- [modules/manifest/src/key_registry.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/key_registry.cppm) +- [src/cli.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/src/cli.cppm) + +- [modules/manifest/src/toml.cppm](https://github.com/mcpp-community/mcpp/blob/ce4dd4b001161f6635bec2a901b18381d6c6548c/modules/manifest/src/toml.cppm) diff --git a/.agents/skills/mcpp-api-skills/tests/test_check_skills.py b/.agents/skills/mcpp-api-skills/tests/test_check_skills.py new file mode 100644 index 000000000..a9edc9644 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/tests/test_check_skills.py @@ -0,0 +1,114 @@ +"""Observable structural defects, detached-copy behavior and extractor fixtures.""" +from __future__ import annotations + +import json +from pathlib import Path +import shutil +import sys +import tempfile +import unittest + +SUITE = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(SUITE / 'tools')) +from check_skills import check, inside +from inventory import cli_entries, closing, uncomment + + +class SuiteChecks(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory() + self.root = Path(self.temp.name) / 'detached-suite' + shutil.copytree(SUITE, self.root, ignore=shutil.ignore_patterns('__pycache__', '.validation')) + self.data = json.loads((self.root / 'catalog.json').read_text(encoding='utf-8')) + + def tearDown(self): + self.temp.cleanup() + + def write_catalog(self): + (self.root / 'catalog.json').write_text(json.dumps(self.data), encoding='utf-8') + + def test_detached_copy_needs_no_checkout(self): + self.assertEqual(check(self.root)[0], []) + + def test_duplicate_names_are_rejected(self): + self.data['skills'].append(self.data['skills'][0].copy()) + self.write_catalog() + self.assertTrue(any('duplicate skill' in e for e in check(self.root)[0])) + + def test_missing_reference_is_rejected(self): + (self.root / self.data['interfaces'][0]['reference']).unlink() + self.assertTrue(any('missing interface reference' in e for e in check(self.root)[0])) + + def test_unknown_owner_is_rejected(self): + self.data['interfaces'][0]['owner'] = 'mcpp-does-not-exist' + self.write_catalog() + self.assertTrue(any('unknown interface owner' in e for e in check(self.root)[0])) + + def test_unregistered_leaf_is_rejected(self): + path = self.root / 'skills/basics/mcpp-extra/SKILL.md' + path.parent.mkdir() + path.write_text('---\nname: mcpp-extra\ndescription: Extra\n---\n', encoding='utf-8') + self.assertTrue(any('catalog/files mismatch' in e for e in check(self.root)[0])) + + def test_missing_chinese_category_index_is_rejected(self): + (self.root / 'skills/basics/README.zh-CN.md').unlink() + self.assertTrue(any('missing index' in e for e in check(self.root)[0])) + + def test_leaf_external_relative_dependency_is_rejected(self): + path = self.root / self.data['skills'][0]['path'] + path.write_text(path.read_text(encoding='utf-8') + '\n[dependency](../../../README.md)\n', encoding='utf-8') + self.assertTrue(any('leaves skill' in e for e in check(self.root)[0])) + + def test_catalog_path_escape_is_rejected(self): + self.data['skills'][0]['path'] = '../outside/SKILL.md' + self.write_catalog() + self.assertTrue(any('leaves suite' in e for e in check(self.root)[0])) + + def test_empty_catalog_is_not_success(self): + self.data['interfaces'] = [] + self.write_catalog() + self.assertTrue(check(self.root)[0]) + + def test_broken_link_is_rejected(self): + path = self.root / 'README.md' + path.write_text(path.read_text(encoding='utf-8') + '\n[missing](missing.md)\n', encoding='utf-8') + self.assertTrue(any('broken link' in e for e in check(self.root)[0])) + + +class ExtractionChecks(unittest.TestCase): + def test_nested_options_stay_with_their_command(self): + source = '''app.subcommand(cl::App("build").option(cl::Option("profile").takes_value()) + .subcommand(cl::App("nested").option(cl::Option("output").takes_value())))''' + rows = {r['id']: r for r in cli_entries(source)} + self.assertIn('cli:build nested/--output', rows) + self.assertNotIn('cli:build/--output', rows) + self.assertTrue(rows['cli:build/--profile']['takes_value']) + + def test_comments_do_not_add_options(self): + source = '''// .subcommand(cl::App("fake")) + app.subcommand(cl::App("build").option(cl::Option("profile").takes_value()))''' + self.assertFalse(any('fake' in row['id'] for row in cli_entries(source))) + + def test_positionals_and_aliases_preserve_call_shape(self): + source = '''app.subcommand(cl::App("build") + .arg(cl::Arg("product").required()) + .option(cl::Option("profile").short_name('p').takes_value().multiple()))''' + rows = {r['id']: r for r in cli_entries(source)} + self.assertTrue(rows['cli:build/arg:product']['required']) + self.assertEqual(rows['cli:build/--profile']['short'], 'p') + self.assertTrue(rows['cli:build/--profile']['repeatable']) + + def test_delimiters_in_strings_are_ignored(self): + self.assertEqual(closing('( "(" )', 0), 6) + + def test_empty_recognition_fails(self): + with self.assertRaises(ValueError): + cli_entries('// no declarations') + + def test_unbalanced_recognition_fails(self): + with self.assertRaises(ValueError): + closing('(broken', 0) + + +if __name__ == '__main__': + unittest.main() diff --git a/.agents/skills/mcpp-api-skills/tools/check_skills.py b/.agents/skills/mcpp-api-skills/tools/check_skills.py new file mode 100644 index 000000000..bfcb1ce61 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/tools/check_skills.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python3 +"""Check suite structure; optionally compare declarations in an mcpp checkout. + +Run without mcpp for an independently copied suite. --mcpp-root checks source +existence and declaration drift; it does not build or prove runtime semantics. +""" +from __future__ import annotations + +import argparse +import hashlib +import json +import re +import sys +from pathlib import Path +from urllib.parse import unquote + +from inventory import extract + + +def inside(root: Path, relative: str) -> Path: + path = (root / relative).resolve() + if not path.is_relative_to(root.resolve()): + raise ValueError('path leaves suite: ' + relative) + return path + + +def check_indexes(root: Path, skill_path: Path, name: str, relative: str, + errors: list[str]) -> None: + """Append bilingual suite and category index diagnostics for one skill.""" + for directory in (root, root / 'skills', skill_path.parent.parent): + for filename in ('README.md', 'README.zh-CN.md'): + if not (directory / filename).is_file(): + errors.append('missing index: ' + str(directory / filename)) + for filename in ('README.md', 'README.zh-CN.md'): + index = skill_path.parent.parent / filename + if index.is_file() and f'({name}/SKILL.md)' not in index.read_text(encoding='utf-8'): + errors.append('unindexed skill: ' + relative + ' in ' + filename) + + +def check(root: Path, mcpp: Path | None = None) -> tuple[list[str], list[str]]: + errors, notices = [], [] + try: + catalog = json.loads((root / 'catalog.json').read_text(encoding='utf-8')) + skills = catalog['skills'] + entries = catalog['interfaces'] + if catalog['schema_version'] != 1 or not skills or not entries: + raise ValueError('unsupported or empty catalog') + except (OSError, ValueError, KeyError, TypeError) as exc: + return ['catalog: ' + str(exc)], notices + names, expected_paths = set(), set() + for skill in skills: + try: + name, relative = skill['name'], skill['path'] + path = inside(root, relative) + body = path.read_text(encoding='utf-8') + if name in names: + errors.append('duplicate skill: ' + name) + names.add(name) + expected_paths.add(path.resolve()) + if not re.fullmatch(r'mcpp-[a-z0-9]+(?:-[a-z0-9]+)*', name) or len(name) > 64: + errors.append('invalid name: ' + name) + if path.name != 'SKILL.md' or path.parent.name != name: + errors.append('directory/name mismatch: ' + name) + front = re.match(r'\A---\nname: ([^\n]+)\ndescription: ([^\n]+)\n---\n', body) + if not front or front[1] != name or not front[2].strip(): + errors.append('invalid frontmatter: ' + relative) + if re.search(r'\b(?:TODO|FIXME|TBD)\b|\[INSERT[^\]]*\]', body): + errors.append('unfinished scaffold: ' + relative) + if re.search(r'[\u4e00-\u9fff]', body): + errors.append('non-English skill body: ' + relative) + if name in {'mcpp-usage', 'mcpp-contributing', 'mcpp-docs-style', 'mcpp-release'}: + errors.append('name collides with existing skill: ' + name) + check_indexes(root, path, name, relative, errors) + except (OSError, KeyError, ValueError, TypeError) as exc: + errors.append('skill entry: ' + str(exc)) + actual = {p.resolve() for p in (root / 'skills').rglob('SKILL.md')} + if actual != expected_paths: + errors.append('catalog/files mismatch: ' + str(sorted(str(x) for x in actual ^ expected_paths))) + if (root / 'SKILL.md').exists(): + errors.append('suite root must not register a giant skill') + ids = set() + for entry in entries: + try: + if entry['id'] in ids: + errors.append('duplicate interface: ' + entry['id']) + ids.add(entry['id']) + if entry['owner'] not in names: + errors.append('unknown interface owner: ' + entry['id']) + if entry['status'] == 'internal' and not entry.get('reason'): + errors.append('internal interface lacks disposition: ' + entry['id']) + target = inside(root, entry['reference']) + if not target.is_file(): + errors.append('missing interface reference: ' + entry['id']) + except (OSError, KeyError, ValueError, TypeError) as exc: + errors.append('interface entry: ' + str(exc)) + # File links are essential to a copied leaf; root provenance links are HTTPS. + for path in root.rglob('*.md'): + body = path.read_text(encoding='utf-8') + for link in re.findall(r'\]\(([^\s)]+)\)', body): + if link.startswith(('https://', 'http://', 'mailto:', '#')): + continue + try: + target = inside(root, str(path.parent.relative_to(root) / unquote(link.split('#')[0]))) + if not target.exists(): + errors.append(f'{path.relative_to(root)}: broken link {link}') + if path.is_relative_to(root / 'skills') and path.name != 'README.md' and path.name != 'README.zh-CN.md': + leaf = next((p for p in path.parents if (p / 'SKILL.md').is_file()), None) + if leaf and not target.is_relative_to(leaf): + errors.append(f'{path.relative_to(root)}: required local link leaves skill {link}') + except ValueError as exc: + errors.append(str(exc)) + if mcpp: + try: + current = {x['id']: x for x in extract(mcpp)} + recorded = {x['id']: x for x in entries if x.get('extracted')} + for missing in sorted(current.keys() - recorded.keys()): + errors.append('new declaration needs owner/review: ' + missing) + for removed in sorted(recorded.keys() - current.keys()): + errors.append('removed declaration needs review: ' + removed) + for key in current.keys() & recorded.keys(): + fields = ('detail', 'status', 'key', 'signature', 'takes_value', + 'repeatable', 'short', 'required') + if any(current[key].get(f) != recorded[key].get(f) for f in fields): + errors.append('changed declaration needs review: ' + key) + for source in catalog['sources']: + path = (mcpp / source['path']).resolve() + if not path.is_relative_to(mcpp.resolve()) or not path.is_file(): + errors.append('missing/escaping source: ' + source['path']) + continue + digest = hashlib.sha256(path.read_bytes().replace(b'\r\n', b'\n')).hexdigest() + if digest != source['sha256']: + notices.append('source changed; semantic review required: ' + source['path']) + except (OSError, ValueError, KeyError) as exc: + errors.append('source extraction failed: ' + str(exc)) + return errors, notices + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--suite-root', type=Path, default=Path(__file__).resolve().parents[1]) + parser.add_argument('--mcpp-root', type=Path) + args = parser.parse_args() + errors, notices = check(args.suite_root.resolve(), args.mcpp_root.resolve() if args.mcpp_root else None) + for item in notices: + print('REVIEW: ' + item) + for item in errors: + print('FAIL: ' + item) + if not errors: + print('OK: structure' + (' and source declaration inventory' if args.mcpp_root else '') + ' checked; runtime semantics require execution') + return int(bool(errors)) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/.agents/skills/mcpp-api-skills/tools/inventory.py b/.agents/skills/mcpp-api-skills/tools/inventory.py new file mode 100644 index 000000000..a0cb7f328 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/tools/inventory.py @@ -0,0 +1,221 @@ +"""Extract review candidates from mcpp's declarations, not from its manuals. + +This is deliberately a bounded recognizer, not a C++ parser. An unrecognized +required table fails closed. Parser-reader candidates still require human +scope/type/consumer review; extraction does not establish effective behavior. +""" +from __future__ import annotations + +import json +import re +from pathlib import Path + +TOKEN = re.compile(r'//[^\n]*|/\*[\s\S]*?\*/|"(?:\\.|[^"\\])*"|\'(?:\\.|[^\'\\])*\'') + + +def uncomment(text: str) -> str: + return TOKEN.sub(lambda m: ' ' * len(m[0]) if m[0].startswith(('//', '/*')) else m[0], text) + + +def closing(text: str, start: int, left: str = '(', right: str = ')') -> int: + """Find a balanced expression while ignoring delimiters in string literals.""" + depth, i = 0, start + while i < len(text): + if text[i] in ('"', "'"): + quote = text[i] + i += 1 + while i < len(text): + if text[i] == '\\': + i += 2 + continue + if text[i] == quote: + break + i += 1 + elif text[i] == left: + depth += 1 + elif text[i] == right: + depth -= 1 + if depth == 0: + return i + i += 1 + raise ValueError('unbalanced source expression') + + +def literal(text: str, method: str) -> str: + match = re.search(r'\.' + method + r'\(\s*((?:"(?:\\.|[^"\\])*"\s*)+)', text) + if not match: + return '' + return ''.join(json.loads(s) for s in re.findall(r'"(?:\\.|[^"\\])*"', match[1])) + + +def cli_entries(text: str) -> list[dict]: + text = uncomment(text) + pattern = re.compile(r'\.subcommand\(cl::App\("([^"]+)"\)') + internal = {'dyndep', 'link-output', 'platform-step', 'place-dlls', 'coff-def', + 'bmi-equal', 'bmi-compile', 'bmi-supervise', 'bmi-await'} + result = [] + + def walk(fragment: str, parent: str = '') -> str: + cursor, pieces = 0, [] + while match := pattern.search(fragment, cursor): + end = closing(fragment, fragment.index('(', match.start())) + name = (parent + ' ' + match[1]).strip() + child = fragment[match.end():end] + own = walk(child, name) + status = 'internal' if name.split()[0] in internal else 'public' + if name == 'stage': + status = 'action-helper' + result.append(dict(id='cli:' + name, family='cli', key=name, status=status, + source='src/cli.cppm', detail=literal(own, 'description'))) + for opt in re.finditer(r'\.option\(cl::Option\("([^"]+)"\)', own): + opt_end = closing(own, own.index('(', opt.start())) + declaration = own[opt.start():opt_end + 1] + short = re.search(r"\.short_name\('([^']+)'\)", declaration) + result.append(dict(id='cli:' + name + '/--' + opt[1], family='cli', + key=name + ' --' + opt[1], status=status, + source='src/cli.cppm', detail=literal(declaration, 'help'), + takes_value='.takes_value()' in declaration, + repeatable='.multiple()' in declaration, + short=short[1] if short else '')) + for arg in re.finditer(r'\.arg\(cl::Arg\("([^"]+)"\)', own): + arg_end = closing(own, own.index('(', arg.start())) + declaration = own[arg.start():arg_end + 1] + result.append(dict(id='cli:' + name + '/arg:' + arg[1], family='cli', + key=name + ' <' + arg[1] + '>', status=status, + source='src/cli.cppm', detail=literal(declaration, 'help'), + required='.required()' in declaration)) + pieces.extend([fragment[cursor:match.start()], ' ' * (end + 1 - match.start())]) + cursor = end + 1 + pieces.append(fragment[cursor:]) + return ''.join(pieces) + + top = walk(text) + # Global registered flags occur outside child App expressions. Preparse-only + # switches are also explicitly inventoried below by the reviewer. + for match in re.finditer(r'\.option\(cl::Option\("([^"]+)"\)', top): + end = closing(top, top.index('(', match.start())) + declaration = top[match.start():end + 1] + result.append(dict(id='cli:global/--' + match[1], family='cli', + key='global --' + match[1], status='public', source='src/cli.cppm', + detail=literal(declaration, 'help'), takes_value='.takes_value()' in declaration)) + if not any(x['id'] == 'cli:build/--profile' for x in result): + raise ValueError('CLI recognizer did not find build/profile') + return result + + +def extract(root: Path) -> list[dict]: + def read(path): + return (root / path).read_text(encoding='utf-8') + + rows = cli_entries(read('src/cli.cppm')) + path = 'modules/manifest/src/key_registry.cppm' + registry = re.findall(r'\{"([^"]+)",\s*"([^"]*)",\s*KeyScope::(\w+),\s*KeyMerge::(\w+),\s*(true|false),\s*(true|false)\s*\}', uncomment(read(path))) + if not registry: + raise ValueError('empty manifest key registry extraction') + for table, key, scope, merge, shared, conditional in registry: + full = table + ('.' + key if key else '') + rows.append(dict(id='manifest:' + full, family='manifest', key=full, source=path, + detail=f'scope={scope}; merge={merge}; shared={shared}; conditional={conditional}', + status='review-candidate')) + path = 'modules/manifest/src/toml.cppm' + parser = uncomment(read(path)) + for kind, key in re.findall(r'->get_(string_array|string|bool|int|table)\("([^"]+)"\)', parser): + rows.append(dict(id='manifest:' + key, family='manifest', key=key, source=path, + detail='parser reader: ' + kind, status='review-candidate')) + scopes = {'Feature': 'features.', 'CAbi': 'c-abi', 'KernelAbi': 'kernel-abi', + 'Package': 'package', 'Target': 'targets.', 'Runtime': 'runtime', + 'Resource': 'resources', 'VersionInfo': 'resources.version-info', + 'Profile': 'profile.', 'Pack': 'pack', 'Toolchain': 'toolchain'} + for group, body in re.findall(r'kKnown(\w+)Keys\[\]\s*=\s*\{([^}]+)\}', parser): + scope = scopes.get(group, 'parser.' + group) + for key in re.findall(r'"([^"]+)"', body): + full = scope + '.' + key + rows.append(dict(id='manifest:' + full, family='manifest', key=full, source=path, + detail='accepted-key table: ' + group, status='review-candidate')) + # Platform reader dispatch is function-scoped. These are reader fields, not + # a flattened claim that every key is valid directly in [platform]. + path = 'modules/manifest/src/platform_toml.cppm' + platform = uncomment(read(path)) + funcs = list(re.finditer(r'\bReader::(\w+)\([^;]*?\)\s*const\s*\{', platform)) + for func in funcs: + begin = func.end() - 1 + body = platform[begin:closing(platform, begin, '{', '}')] + for key in sorted(set(re.findall(r'\bk\s*==\s*"([^"]+)"', body))): + full = 'platform-reader.' + func[1] + '.' + key + rows.append(dict(id='manifest:' + full, family='manifest', key=full, source=path, + detail='Reader::' + func[1] + '; context-sensitive field', status='review-candidate')) + if not any(x['key'].startswith('platform-reader.statement.') for x in rows): + raise ValueError('platform statement recognition failed') + path = 'src/build/hostprogram.cppm' + host = read(path) + start = host.index('kMcppModuleSource = R"CPP(') + len('kMcppModuleSource = R"CPP(') + embedded = uncomment(host[start:host.index(')CPP"', start)]) + for match in re.finditer(r'\binline\s+([^;{}\n]+?\([^\n{}]*\))\s*\{', embedded): + signature = match[1].strip() + name = re.search(r'(\w+)\s*\(', signature)[1] + rows.append(dict(id='api:' + signature, family='api', key='mcpp::' + name, + signature=signature, source=path, + status='internal' if name.endswith('_') or name == 'env_or' else 'public', + detail='bundled public module; wrapper signature, not an internal engine export')) + action = embedded[embedded.index('struct action {'):] + action = action[:action.index('private:')] + for match in re.finditer(r'(action&|void)\s+(\w+)\(([^)]*)\)\s*(?:const\s*)?\{', action): + signature = match[1] + ' ' + match[2] + '(' + match[3] + ')' + rows.append(dict(id='api:action::' + signature, family='api', key='mcpp::action::' + match[2], + signature=signature, source=path, status='public', detail='action public method')) + for key in ('action', 'diagnostic', 'roles::source', 'roles::check', 'roles::object', 'roles::artifact', 'roles::prepare'): + rows.append(dict(id='api:type:' + key, family='api', key='mcpp::' + key, + source=path, status='public', detail='public type or role constant')) + for typename in ('action', 'diagnostic'): + section = embedded[embedded.index('struct ' + typename + ' {'):] + section = section[:section.index('private:')] if typename == 'action' else section[:section.index('};')] + for field_type, name, value in re.findall(r'^\s*(const char\*|bool)\s+(\w+)\s*=\s*([^;\n]+);', section, re.M): + rows.append(dict(id='api:field:' + typename + '::' + name, family='api', + key='mcpp::' + typename + '::' + name, source=path, + status='public', detail=f'{field_type}; default={value.strip()}')) + path = 'modules/buildmcpp/src/directives.cppm' + directives = uncomment(read(path)) + pattern = r'\{"([^"]+)",\s*"([^"]*)",\s*Slot::(\w+),\s*Scope::(\w+),\s*Transform::(\w+),\s*(true|false),\s*"([^"]*)",\s*"([^"]*)",\s*(\d+)\}' + defs = re.findall(pattern, directives) + declared = re.search(r'std::array\s+kTable', directives) + if not declared or len(defs) != int(declared[1]): + raise ValueError('directive table recognition is incomplete') + for wire, tag, slot, scope, transform, required, prefix, suffix, since in defs: + rows.append(dict(id='directive:' + wire, family='directive', key='mcpp:' + wire, + source=path, status='public', detail=f'scope={scope}; transform={transform}; since protocol={since}; requires output={required}')) + path = 'src/wire.cppm' + wire = uncomment(read(path)) + kinds = re.findall(r'\{"(mcpp\.[^"]+)",\s*(\d+)\}', wire) + declared = re.search(r'std::array\s+kKinds', wire) + if not declared or len(kinds) != int(declared[1]): + raise ValueError('wire kind table recognition is incomplete') + for kind, version in kinds: + rows.append(dict(id='wire:' + kind, family='wire', key=kind, source=path, + status='public', detail='data version=' + version)) + path = 'modules/source-kind/src/source_kind.cppm' + source = uncomment(read(path)) + sets = re.findall(r'k(Cxx|C|Gas|Nasm|Header|Device|DeviceHeader)Extensions\[\]\s*=\s*\{([^}]+)\}', source) + if len(sets) != 7 or '.moduleInterface = { ".cppm" }' not in source: + raise ValueError('source role table recognition is incomplete') + for kind, values in sets + [('ModuleInterface', '".cppm"')]: + for ext in re.findall(r'"(\.[^"]+)"', values): + rows.append(dict(id='source-kind:' + ext, family='source-kind', key=ext, + source=path, status='public', detail='source role=' + kind)) + # Environment identifiers are an audit/navigation surface, not a promise + # that internal knobs should be set by consumers. + env_sources = ('src/cli.cppm', 'src/config.cppm', 'src/effects.cppm', 'src/build/build_program.cppm', 'src/build/hostprogram.cppm') + for path in env_sources: + for name in sorted(set(re.findall(r'"(MCPP_[A-Z0-9_]+)"', uncomment(read(path))))): + rows.append(dict(id='env:' + name, family='env', key=name, source=path, + status='review-candidate', detail='source identifier; inspect caller before setting')) + unique = {} + for row in rows: + if row['id'] in unique: + old = unique[row['id']] + old['detail'] += ' / ' + row['detail'] if row['detail'] not in old['detail'] else '' + old['sources'] = sorted(set(old.get('sources', [old['source']]) + [row['source']])) + else: + unique[row['id']] = row + if not any(x['family'] == 'api' for x in unique.values()): + raise ValueError('empty API extraction') + return sorted(unique.values(), key=lambda row: row['id']) diff --git a/.agents/skills/mcpp-api-skills/tools/validate_runtime.py b/.agents/skills/mcpp-api-skills/tools/validate_runtime.py new file mode 100644 index 000000000..51f575107 --- /dev/null +++ b/.agents/skills/mcpp-api-skills/tools/validate_runtime.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Exercise real CLI behavior in temporary projects; never publish or use devices.""" +from __future__ import annotations + +import argparse +import json +import os +import subprocess +import tempfile +from pathlib import Path + + +def validate(binary: Path, build: bool = False, build_home: Path | None = None) -> dict: + results = [] + with tempfile.TemporaryDirectory(prefix='mcpp-api-skills-') as directory: + root = Path(directory) + env = os.environ.copy() + # Caller constraints must not change between probes. Toolchain and cache + # locations remain isolated; no global install or repository edit occurs. + env['MCPP_HOME'] = str(build_home if build_home else root / 'home') + env['MCPP_CLIENT'] = 'mcpp-api-skills-validation' + + def run(name, args, predicate, cwd=root): + try: + proc = subprocess.run([str(binary), *args], cwd=cwd, env=env, + capture_output=True, text=True, encoding='utf-8', + errors='replace', timeout=120 if build else 30) + try: + passed = bool(predicate(proc)) + except (ValueError, KeyError, TypeError): + passed = False + row = dict(name=name, args=args, returncode=proc.returncode, passed=passed, + stdout=proc.stdout[-12000:], stderr=proc.stderr[-12000:]) + except (OSError, subprocess.TimeoutExpired) as exc: + row = dict(name=name, args=args, passed=False, error=str(exc)) + results.append(row) + return row + + run('version', ['--version'], lambda p: p.returncode == 0 and '2026.' in p.stdout) + run('protocol-detection', ['--protocol-version'], lambda p: + p.returncode == 0 and json.loads(p.stdout)['kind'] == 'mcpp.protocol' + and json.loads(p.stdout)['schemaVersion'] == 1 + and 'test-launch' in json.loads(p.stdout)['features']) + run('env-envelope', ['self', 'env', '--format', 'json'], lambda p: + p.returncode == 0 and json.loads(p.stdout)['kind'] == 'mcpp.env') + run('cache-envelope', ['cache', 'list', '--format', 'json'], lambda p: + p.returncode == 0 and json.loads(p.stdout)['kind'] == 'mcpp.cache') + run('usage-error', ['build', '--not-a-real-option'], lambda p: + p.returncode == 2 and bool(p.stderr.strip())) + run('unknown-command', ['not-a-real-command'], lambda p: + p.returncode != 0 and bool(p.stderr.strip())) + run('deny-unknown-effect', ['--deny', 'not-an-effect', 'build'], lambda p: + p.returncode == 2 and bool(p.stderr.strip())) + run('new-project', ['new', 'hello'], lambda p: + p.returncode == 0 and (root / 'hello/mcpp.toml').is_file() + and (root / 'hello/src/main.cpp').is_file() + and bool(list((root / 'hello/tests').glob('*.cpp')))) + project = root / 'hello' + if project.is_dir(): + run('test-discovery', ['test', '--list'], lambda p: + p.returncode == 0 and 'smoke' in p.stdout.lower(), project) + run('no-overwrite', ['new', 'hello'], lambda p: + p.returncode != 0 and bool(p.stderr.strip())) + if build: + # Offline deliberately avoids silently downloading a toolchain. + # A missing prerequisite is reported as a failed execution, never + # accepted as compile coverage. + row = run('compile-project-offline', ['--offline', 'build'], + lambda p: p.returncode == 0, project) + if row['passed']: + run('run-project-offline', ['--offline', 'run'], lambda p: p.returncode == 0, project) + run('test-project-offline', ['--offline', 'test'], lambda p: p.returncode == 0, project) + run('build-ndjson', ['--offline', 'build', '--message-format', 'json'], lambda p: + p.returncode == 0 and json.loads(p.stdout.splitlines()[-1])['kind'] == 'mcpp.build', project) + run('launch-envelope', ['--offline', 'run', '--print-launch'], lambda p: + p.returncode == 0 and json.loads(p.stdout)['kind'] == 'mcpp.launch', project) + return dict(binary=str(binary), provenance='caller-selected binary; not assumed fresh', + build_requested=build, checks=results, + passed=all(row['passed'] for row in results)) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--mcpp', type=Path, required=True) + parser.add_argument('--output', type=Path, required=True) + parser.add_argument('--build', action='store_true') + parser.add_argument('--build-home', type=Path, + help='Prepared, isolated mcpp home with provider/toolchain already initialized; required for --build') + args = parser.parse_args() + if args.build and (args.build_home is None or not args.build_home.is_dir()): + parser.error('--build needs --build-home pointing to a prepared isolated home; compilation stays offline') + report = validate(args.mcpp.resolve(), args.build, + args.build_home.resolve() if args.build_home else None) + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(report, indent=2) + '\n', encoding='utf-8') + for check in report['checks']: + print(('PASS' if check['passed'] else 'FAIL') + ': ' + check['name']) + return int(not report['passed']) + + +if __name__ == '__main__': + raise SystemExit(main()) diff --git a/.agents/skills/mcpp-contributing/SKILL.md b/.agents/skills/mcpp-contributing/SKILL.md index 019ac5d0c..23863fcab 100644 --- a/.agents/skills/mcpp-contributing/SKILL.md +++ b/.agents/skills/mcpp-contributing/SKILL.md @@ -118,6 +118,7 @@ git checkout -b / ### 3. 实现改动 **开发要求** + - 遵循现有代码风格(查看相邻代码) - 模块导入用 `import std;` 和 `import mcpp.xxx;` - 只改需要改的,不顺手重构不相关代码 @@ -125,6 +126,23 @@ git checkout -b / `recursive_directory_iterator`)或先收集再处理;确有必要保留三层时,在该处注释写明理由 - 平台相关代码放在 `src/platform/` 目录下 +**同步更新接口 skills** + +新增、修改或弃用公开功能或接口时,必须在同一 PR 中同步更新受影响的使用 skill。 +命令参数、配置语法、API、输出协议、默认值、错误处理和平台限制的变化都属于此范围。 + +1. 实现前,从 [mcpp API skills 分类索引](../mcpp-api-skills/skills/README.md) + 找到相关 skill,阅读其 `SKILL.md` 和本次任务需要的参考资料。 +2. 根据改动后的源码更新用法和示例,核对参数、配置作用域、返回结果及限制条件。 + 只描述已实现的行为;涉及可运行示例时执行相关验证,并如实记录未运行的部分。 +3. 新能力优先补充到已有主题;确实没有合适主题时,再新增聚焦该任务的 skill。 + Skill 正文和参考资料使用英文;分类或导航变化时,同时更新中英文 README。 +4. 纯内部重构如果不影响使用方式,无需改写 skill 正文;源码文件或符号移动后, + 更新相关引用。在 PR 中说明更新了哪些 skill,或说明本次变更为何无需更新。 + +提交前重新核对相关 skill 与本次实现是否一致。不能只修改版本标记, +也不能用链接检查或静态源码核对代替实际运行验证。 + **构建验证** ```bash