From 99ce0cdd63a0ce2319c2226afe6da5437e62d97f Mon Sep 17 00:00:00 2001 From: HIsheR Date: Fri, 23 Oct 2026 18:48:34 +0800 Subject: [PATCH] =?UTF-8?q?iter(f04):=20commit-lint=20=E6=94=B6=E4=B8=A5?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- COMMITTING.md | 1 + packages/tools/cli/bin/ua.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/COMMITTING.md b/COMMITTING.md index bbbc4d4..e406d9c 100644 --- a/COMMITTING.md +++ b/COMMITTING.md @@ -31,6 +31,7 @@ - 应用:`demo` / `docs` - 元数据:`backlog` / `repo` / `protocol` - `iter` 提交的 scope 固定为条目 id:`b02`、`c01`、`d29` … +- **scope 强制**:除 Merge/Revert 自动信息外,所有 type 必须带 scope;`ua commit-lint` 已机器校验,裸 type(`chore:` / `docs:`)一律拒绝 ## subject 规则 diff --git a/packages/tools/cli/bin/ua.js b/packages/tools/cli/bin/ua.js index ff28511..eb85cb5 100644 --- a/packages/tools/cli/bin/ua.js +++ b/packages/tools/cli/bin/ua.js @@ -680,7 +680,8 @@ function cmdCommitLint(args) { if (!TYPES.includes(type)) problems.push(`type「${type}」不在枚举:${TYPES.join('/')}`); // iter 提交 scope 必须是 backlog 条目 id if (type === 'iter' && !/^[a-z]\d{2,}$/.test(scope ?? '')) problems.push('iter 提交的 scope 必须是 backlog 条目 id(如 b02/e03)'); - // 非 iter 提交 scope 仅允许小写字母与连字符 + // 非 iter 提交 scope 必填(杜绝 chore:/docs: 裸 type 放行),且仅允许小写字母与连字符 + if (type !== 'iter' && !scope) problems.push(`type「${type}」必须带 scope,如 chore(backlog):`); if (type !== 'iter' && scope && !/^[a-z][a-z-]*$/.test(scope)) problems.push(`scope「${scope}」仅允许小写字母与连字符`); // subject 长度与标点 if ([...subject].length > 50) problems.push(`subject 超过 50 字符(当前 ${[...subject].length})`);