- adapt meta-/code-/obs- rules to the local Python benchmark pipeline - replace db-sql-ddl, code-config-env-scope, test-e2e-pytest with pipeline equivalents - add code-python-style, data-determinism, data-naming-units, bench-methodology, build-pipeline-tasks - normalize specs and README typography to ASCII per code-data-formatting - rewrite root CLAUDE.md trigger table; add .cursorrules and .gitignore - specs: pipeline plan and task specs 00-11 - rules: 19 binding rule files adapted for this project - docs: CLAUDE.md rule-trigger table - config: .cursorrules commit convention, .gitignore excluding out/ and .venv/ - docs: rewrite README.md with pipeline diagrams, setup guide, result placeholders - config: requirements.txt for the closed dependency list - datagen: make_lab_config.py writes out/config/lab_config.yaml and .done marker
2.9 KiB
Meta / Cursor rule artifact - commit-message generation
Binding for keeping Cursor's commit-message generation aligned with this project's commit convention.
The development environment is the Cursor IDE with the Claude Code extension.
Claude Code reads the root CLAUDE.md and docs/rules/ directly and needs no
.cursorrules. Cursor's OWN built-in AI (Chat/Composer and the SCM "sparkle"
commit-message generator) does not read those files - it reads .cursorrules.
Since the user creates all commits themselves (see
meta-git-commits.md) and may use the one-click SCM
generator to draft the message, .cursorrules must exist and must encode the
commit convention.
This project ships a SINGLE Cursor rules file: the root
.cursorrules. There is no .cursor/rules/*.mdc
directory here, and none should be added. All Cursor rule content lives in
.cursorrules.
1. The requirement
.cursorrules MUST encode this project's commit-message convention so that
Cursor's generator emits conforming messages. The authoritative convention
lives in meta-git-commits.md; .cursorrules mirrors
it as plain-text instructions to the generator.
The failure mode this rule prevents: a missing or stale .cursorrules, so the
one-click SCM generator falls back to Cursor defaults and emits unprefixed junk
(Update files, Improve project).
2. What .cursorrules must encode
- First-line format -
type(scope): description, lowercase imperative summary in English, under 72 chars, no trailing period. - Allowed types (closed list) -
feat fix perf refactor security docs ci chore test. - Allowed scopes (closed list) -
specs rules docs config datagen convert bench report tools all, with the area mapping frommeta-git-commits.md. - Coverage rule - the subject is only a title; multi-area diffs need a
blank line and a 2-6 bullet body covering every meaningful changed area; use
allwhen no narrower scope honestly fits; split unrelated work. - Anti-examples - forbid vague/unprefixed lines (
Update files,Improve project,clarify rules). - Allowed special forms -
Merge ...commits are allowed as-is;release(scope): vX.Y.Zis allowed for releases.
3. Keeping the mirror in sync
No commit-msg hook is installed in this repository; the convention is enforced
by review. .cursorrules and meta-git-commits.md
must agree: same type list, same scope list, same first-line format. If the
convention changes, update both files in the same change set.
4. Scope boundary
This rule governs the commit-message convention materialization - not who may
create commits. Commit authorship is governed by
meta-git-commits.md: rules files describe the
convention; only the user creates actual commits.