diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 458e8d8a..53302745 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -57,7 +57,8 @@ # 且"显式设置就必须有效、不静默回退"的语义不变。 # # 🔴 gitlint 属 commit-msg stage,`--all-files` **永远跑不到它**(2026-10-11 审计): -# `.pre-commit-config.yaml` 定义 18 个钩子,CI 只报 17 个(`passed=16 skipped=1`)—— +# `.pre-commit-config.yaml` 里 gitlint 那一条**永远不进 CI 报告**(报告数 = 定义数 − 1; +# 2026-10-12 实测 `master` 18 定义 / 17 报告、`v2-on-ui` 26 定义 / 25 报告)—— # 缺的正是 gitlint:`stages: [commit-msg]` 写在 **gitlint 上游的 .pre-commit-hooks.yaml** # 里(项目配置里 grep 不到这一行),而 `pre-commit run --all-files` 只跑 pre-commit stage。 # 即 AGENTS.md 的"单行中文标题 ≤100 字符"门禁**本地有、CI 无**, @@ -212,7 +213,9 @@ jobs: # WHY THIS STEP EXISTS: gitlint is a `commit-msg` stage hook, and # `pre-commit run --all-files` only runs the `pre-commit` stage -- so # the commit-message rule was enforced locally and NEVER here, while - # the job still reported green (17 hooks defined, 16 reported). + # the job still reported green: the reported hook count is always + # (defined count - 1), so a silently missing hook is invisible. + # Recount that difference whenever hooks are added or removed. # pre-commit has no notion of "the commits of this push", so the # script feeds each commit message to the hook one at a time. #