Skip to content
cccskills
FreePublished on GitHub

clang-tidy

对指定文件或全仓库运行 clang-tidy(WarningsAsErrors='*')。用户要求 "跑 clang-tidy"、"tidy 检查某文件"、排查 CI tidy 门禁失败时使用。

The English summary is being prepared. Showing the original description.

thun-res/vlink115 stars(GitHub 115 + cccskills 0)

Run score Not tested

See how to install

Files included (2)

  • SKILL.md3.8 KB
  • agents/openai.yaml199 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

clang-tidy 静态检查

仓库根 .clang-tidy 已配置检查集(google-/readability-/performance-/ modernize- 等,豁免项集中管理)且 WarningsAsErrors: '*' —— 任何告警即 失败。头文件过滤:HeaderFilterRegex 只覆盖 include/vlink|src|modules|cli|proxy。

先从仓库任意子目录解析根目录:

REPO_ROOT="$(git rev-parse --show-toplevel)"
PHYSICAL_CORES=
case "$(uname -s 2>/dev/null)" in
  Linux)
    PHYSICAL_CORES="$(
      LC_ALL=C lscpu -p=CORE,SOCKET 2>/dev/null |
        awk -F, '
          $1 !~ /^#/ && $1 ~ /^[0-9]+$/ && $2 ~ /^[0-9]+$/ {
            cores[$2 SUBSEP $1] = 1
          }
          END {
            for (core in cores) {
              count++
            }
            if (count > 0) {
              print count
            }
          }'
    )" || PHYSICAL_CORES=
    ;;
  Darwin)
    PHYSICAL_CORES="$(sysctl -n hw.physicalcpu 2>/dev/null)" || PHYSICAL_CORES=
    ;;
esac
case "$PHYSICAL_CORES" in
  '' | *[!0-9]* | 0) PHYSICAL_CORES=1 ;;
esac
if [ "$PHYSICAL_CORES" -gt 1 ]; then
  BUILD_JOBS=$((PHYSICAL_CORES - 1))
else
  BUILD_JOBS=1
fi

AI 创建的 clang-tidy 构建目录必须位于 build-ai/ 下并使用 skill_clang_tidy 前缀;不得复用、覆盖或清理维护者、IDE、CI 的其他 构建目录。默认目录正被其他任务使用时改用 skill_clang_tidy_<task_name> 或 skill_clang_tidy_file_<task_name>。 执行以下任一路径前设置 PYTHONPYCACHEPREFIX="$BUILD_DIR/__pycache__"。

1. 检查指定文件

需要 compile_commands.json。使用独立目录生成(仅 configure,不编译), 避免改写维护者日常构建配置:

BUILD_DIR="$REPO_ROOT/build-ai/skill_clang_tidy_file"
export PYTHONPYCACHEPREFIX="$BUILD_DIR/__pycache__"
cmake -S "$REPO_ROOT" -B "$BUILD_DIR" \
  -DENABLE_CXX_STD_20=OFF \
  -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

然后对改动过的 .cc 文件运行:

clang-tidy -p "$BUILD_DIR" <file1.cc> <file2.cc>

纯头文件改动:找到包含它的某个 .cc 作为入口来跑。

2. 检查全仓库

以下只展示 clang-tidy 随编译执行的机制,不是 CI 参数的完整复现。 完整门禁参数以 .github/scripts/ci-tidy.sh 和 workflow 提供的 VLINK_CI_CMAKE_ARGS 为准;该 CI 脚本使用 CI 自己的构建目录,AI 在 当前工作区不得直接执行,必须把所需参数用于以下 skill 专属目录:

BUILD_DIR="$REPO_ROOT/build-ai/skill_clang_tidy"
export PYTHONPYCACHEPREFIX="$BUILD_DIR/__pycache__"
cmake -S "$REPO_ROOT" -B "$BUILD_DIR" \
  -DENABLE_CXX_STD_20=OFF \
  -DCMAKE_CXX_CLANG_TIDY=clang-tidy
cmake --build "$BUILD_DIR" --parallel "$BUILD_JOBS"

耗时长(CI 限时 120 分钟),仅在需要完整复现 CI 门禁时使用。 BUILD_JOBS 必须严格等于 max(真实物理核心数 - 1, 1)。禁止改用逻辑 CPU 数、裸 --parallel/-j 或固定高并行度;无法可靠获取时固定单核, 且同一时刻只运行一个本地构建,防止 clang-tidy 随编译并发卡死或耗尽 内存。

3. 结果处理

  • 有告警时先报告;用户同时要求修复时优先修复源码。确属误报或有意 写法时优先在目标行前使用 // NOLINTNEXTLINE(<检查名>);只有不适合放在前一行时才使用同行 // NOLINT(<检查名>)。必须带具体检查名并保持最小范围,见 .agents/languages/CPP.md §11。 禁止修改 .clang-tidy 配置——检查集由维护者统一治理。
  • test/**/*.cc 已整体 // NOLINTBEGIN/// NOLINTEND 包裹,tidy 告警 不适用于 test 目录。
  • 修复方式须符合 .agents/languages/CPP.md(如 modernize 类告警按仓库惯用 写法修,而非教科书写法)。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

asan

Free

以 AddressSanitizer(ENABLE_TEST_SANITIZE=ON)构建并运行 vlink-test 单元测试,复现 CI 的 ASan 门禁。用户要求"跑 asan"、"内存检测测试"、 排查 ci-test 的 sanitize 失败时使用。

The English summary is being prepared. Showing the original description.

thun-res/vlink115Updated Oct 15, 2026

bench

Free

构建并运行 vlink-bench 性能基准(showcase/quick/full 预设),生成 HTML/JSON 报告。用户要求"跑 bench"、"性能测试"、对比后端吞吐/延迟、 验证性能回归时使用。

The English summary is being prepared. Showing the original description.

thun-res/vlink115Updated Oct 15, 2026

check

Free

运行 tools/check.sh 对整个仓库执行 cpplint 静态检查(120 列,项目定制 过滤集)。用户要求"跑 check"、"cpplint 检查"、排查 CI lint 门禁失败 时使用。

The English summary is being prepared. Showing the original description.

thun-res/vlink115Updated Oct 15, 2026

cicd

Free

用 gh CLI 触发/查看 GitHub CI/CD:手动 dispatch 工作流 (release/coverage/docker)、查看运行状态与失败日志、重跑失败 job. 用户要求"触发 CI"、"看流水线"、"重跑失败的 job"时使用;创建 dev 到 master 的 PR 使用 /pr,正式发版使用 /release.

The English summary is being prepared. Showing the original description.

thun-res/vlink115Updated Oct 15, 2026

commit

Free

提交前强制执行 VLink 的 format 与 check skill,再分析当前工作树的全部 staged、unstaged 与 untracked 改动,按模块、功能和依赖关系拆分为可独立 评审的 Conventional Commits,生成简洁且覆盖重要行为的英文 commit message 并逐组提交。用户要求“提交当前改动”、“按功能拆 commit”、 “自动写 commit msg”或“整理提交历史”时使用。

The English summary is being prepared. Showing the original description.

thun-res/vlink115Updated Oct 15, 2026

以 ENABLE_TEST_COVERAGE=ON 构建、运行测试并生成 lcov 代码覆盖率报告, 复现 CI 的 coverage 流水线。用户要求"跑覆盖率"、"生成 coverage 报告"、查某模块覆盖情况时使用。

The English summary is being prepared. Showing the original description.

thun-res/vlink115Updated Oct 15, 2026

See all skills by thun-res

Report a problem with this skill