Commit Graph
3 Commits
Author SHA1 Message Date
cshandClaude Fable 5 7408c532f0 🐛 fix(commit-message): enforce one rule owner across skill and CI
CI ran .gitea/ci/commit_message_lint.py, an independent reimplementation
that parsed the type/emoji mapping out of docs/common/commit_message.md.
Its scope pattern accepted fix(-a), fix(a-), fix(a--b) and fix(_), and it
had no subject length check, so the gate that actually blocks merges
enforced weaker rules than the Validation this skill reports.

The CI entry is now a wrapper that locates the skill validator and
delegates to it with no arguments; commit_policy.json becomes the only
rule source and explanatory docs stop being a machine policy input.

The validator also learns the workflow_run event, whose payload carries
neither a PR title nor a before/after range. An upstream pull_request now
validates <integration-branch>..head_sha instead of HEAD alone, taking
the branch name from COMMIT_LINT_MAIN_BRANCH, and degrades to the
upstream head commit with a WARN rather than guessing a base.

Alongside: --help now documents the no-argument CI mode it had always
supported silently, CI wiring detail moves to references/ci-wiring.md,
and the description gains negative boundaries.

test/test_commit_message_policy.py asserts policy/spec-table equality and
uses ast to assert the CI entry imports no regex and reads no file, so a
second implementation cannot reappear unnoticed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 15:21:37 +08:00
cshandClaude Fable 5 265c891e19 🐛 fix(ci): allow kebab-case commit scopes
The scope regex only accepted [a-z0-9_], rejecting hyphenated scopes
like tsl-syntax that dominate the history (12x vs 4x underscore form).
Align both linter copies and the spec doc to accept lower-kebab-case.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 11:22:50 +08:00
csh cc340f1944 🔧 chore(ci): align standards-check workflow template 2026-01-13 13:14:58 +08:00