| name | asco-build |
| description | 为 ASCO 项目进行配置、构建和测试。用于本仓库的本地开发构建流程、测试执行、构建失败排查、以及新增测试后的接入检查。优先使用 VS Code 的 CMake Tools 扩展;只有用户明确说明不使用该扩展时,才回退到终端命令。 |
| argument-hint | 说明要做配置、构建、测试中的哪些步骤,是否使用 VS Code CMake Tools 扩展,以及是否需要实际执行命令 |
配置、构建和测试 ASCO 项目
何时使用
- 需要为本项目配置本地构建环境。
- 需要构建当前仓库或排查构建失败。
- 需要运行测试,或确认新增测试是否已正确接入。
- 需要回答“本项目应如何在本地配置、构建、测试”。
目标产出
- 一套与当前仓库一致的配置、构建和测试步骤。
- 在用户要求实际执行时,完成对应的配置、构建或测试动作。
- 在用户没有要求执行时,只给出准确步骤和决策建议,不主动运行命令。
- 若本次改动新增了测试文件,确认
tests/CMakeLists.txt 已同步更新。
输入信息
开始前先确认这些信息;若对当前任务有影响但信息缺失,先向用户确认:
- 用户是要“解释流程”,还是要“实际执行配置、构建、测试”。
- 用户是否使用 VS Code 的 CMake Tools 扩展。
- 本次只需要配置、只需要构建、只需要测试,还是需要完整流程。
- 是否新增了测试源文件。
决策规则
1. 先判断是否实际执行
- 如果用户是在问流程、约定或排查思路,只说明步骤,不主动运行配置、构建或测试。
- 如果用户明确要求执行配置、构建或测试,再进入执行阶段。
2. 优先使用 VS Code 的 CMake Tools 扩展
- 对于本地开发,默认优先使用 VS Code 的 CMake Tools 扩展进行配置、构建和测试。
- 如果用户明确说明自己不使用 CMake Tools 扩展,才改用终端命令。
- 不要把终端命令当成默认首选方案;它是明确的回退路径。
3. 配置、构建和测试是三个独立步骤
- 配置:确保从仓库根目录生成或更新
build/ 下的构建目录。
- 构建:编译当前仓库,不修改
build/ 下的生成文件。
- 测试:运行当前仓库注册的
tests CTest 目标,或用户明确指定的测试范围。
执行流程
1. 读取当前约定
先以这些项目事实为准:
- 本项目要求 C++23。
- 当前仓库使用 CMake,测试通过 CTest 运行。
- 当前只注册了一个名为
tests 的 CTest 目标。
- 新增测试文件时,通常需要同步更新
tests/CMakeLists.txt。
- 不要手工编辑
build/ 下的生成文件。
2. 使用 CMake Tools 扩展时
- 优先通过 VS Code 的 CMake Tools 扩展执行 configure、build 和 test。
- 如果用户只要求其中一步,只执行对应一步,不隐式补跑其他高成本步骤。
- 如果用户要求排查构建或测试失败,先读取失败信息,再基于报错定位源码或配置问题。
3. 用户明确不使用 CMake Tools 扩展时
使用终端命令时遵循当前仓库推荐流程:
cmake -B build -G Ninja
cmake --build build
ctest --test-dir build --output-on-failure
执行规则:
- 配置只需要运行第一条命令。
- 构建需要在已配置的前提下运行第二条命令。
- 测试需要在已有可用构建产物的前提下运行第三条命令。
- 若用户只要求测试,不要无条件先重配或全量重建,除非当前状态已不足以运行测试。
4. 新增测试时的额外检查
如果这次改动新增了测试源文件,结束前必须检查:
- 新文件是否已加入
tests/CMakeLists.txt。
- 测试是否仍归入统一的
tests 目标。
- 若用户还新增了文档,不要忘记对应文档导航维护,但这不属于本 skill 的核心产出。
5. 失败时的处理顺序
- 先区分失败发生在配置、构建还是测试阶段。
- 优先根据错误输出定位到具体文件、目标或缺失接入项。
- 如果失败与
asco/core、并发、取消、生命周期或资源释放路径相关,必须提醒用户不要盲目相信生成的修改,并由用户自行核对语义、边界条件和失败路径。
- 不要顺手修 unrelated 的错误;只处理与当前任务直接相关的问题。
完成标准
满足以下条件才算完成:
- 给出的流程与当前仓库约定一致。
- 本地开发场景下,把 VS Code 的 CMake Tools 扩展作为默认推荐方案。
- 只有在用户明确说明不使用 CMake Tools 扩展时,才给出或执行终端配置与构建命令。
- 若涉及新增测试文件,已检查
tests/CMakeLists.txt 的接入。
- 已明确提醒用户不要盲目相信修改结果,尤其是运行时语义相关改动。
常见分支
用户只问“怎么做”
- 提供步骤和注意事项。
- 不主动执行配置、构建或测试。
用户要求“帮我构建/跑测试”
- 直接执行用户要求的步骤。
- 优先走 VS Code 的 CMake Tools 扩展流程。
用户新增了测试但测试没跑到
- 先检查
tests/CMakeLists.txt 是否遗漏新文件。
- 再检查测试代码是否正确注册进统一
tests 可执行文件。
用户说自己不用 CMake Tools 扩展
- 直接切换到终端命令流程。
- 默认使用
cmake -B build -G Ninja、cmake --build build、ctest --test-dir build --output-on-failure。
推荐提示词
- 为这个仓库配置并构建项目,优先使用 VS Code 的 CMake Tools 扩展。
- 我不用 CMake Tools 扩展,告诉我这个仓库如何在终端里配置、构建和测试。
- 帮我检查新加的测试为什么没有被当前仓库的
tests 目标跑到。
- 只告诉我本项目的本地构建与测试流程,不要实际执行命令。