Skip to content

Adopt Conventional Commits and make the rules binding - #985

Merged
TheGreatAxios merged 3 commits into
mainfrom
cl-7880-adopt-conventional-commits-and-make-the-contribution-rules
Sep 13, 2026
Merged

Adopt Conventional Commits and make the rules binding#985
TheGreatAxios merged 3 commits into
mainfrom
cl-7880-adopt-conventional-commits-and-make-the-contribution-rules

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Closes CL-7880.

Summary

CONTRIBUTING.md banned Conventional Commits. This reverses that, and says so in the file rather than quietly flipping it.

The banned-prefix list named every type, and a dedicated section argued the case. Its first and load-bearing argument was:

Release notes are hand-written in CHANGELOG.md and deliberately strip ticket and PR IDs from public notes.

That premise is what #984 removes. Once notes are generated from merged pull requests, "we generate nothing from commit types" stops being true here.

What changed

Subjects become <type>(<scope>): <description>, with the component as the scope — executor: add retry becomes feat(executor): add retry. Types, breaking-change forms, and the release/release-note forms are spelled out.

The bans that were right are kept verbatim: ticket IDs, status tags, filenames in subjects, abbreviations. The old rule's other arguments were answered rather than ignored — a scoped subject still stands alone years later, which was the real requirement.

Co-Authored-By is now banned explicitly, on any artifact, whoever or whatever wrote the change.

Enforcement

AGENTS.md previously said "MUST follow CONTRIBUTING.md" with no consequence attached. It now states the rules bind humans and agents equally and that a violating pull request is declined, not fixed in review.

Its inline copy of the prefix rules is deleted rather than updated. That copy is exactly how the two files could disagree, and it would have been stale the moment this landed.

Two things for the reviewer

A decision is still open. Whether "declined" is a review norm or a CI check on the PR title. Left as an explicit Outcome item on the issue — a norm nobody enforces is how the current rule ended up contradicted in practice.

The open branches were rewritten to comply with the rule as it stands. #979, #980, #981, #986, #987, #988 and this PR all originally carried Conventional Commits subjects, against CONTRIBUTING.md as written today. Rather than merge them under a rule they broke, all eight commits were rewritten to plain imperative subjects and the PR titles with them — trees verified byte-identical to before the rewrite.

So nothing is blocked on merge order, and git log stays consistent either way. Once this lands, new work uses the scoped form; everything before it reads as it always did.

Testing

Docs only. bun run lint and tsc --noEmit clean via the pre-commit gate.

@linear-code

linear-code Bot commented Sep 13, 2026

Copy link
Copy Markdown

CL-7880

CONTRIBUTING.md banned Conventional Commits outright. Its load-bearing
argument was that nothing here generates from commit types, because
release notes were hand-written in CHANGELOG.md. Notes are moving to
generated, so that premise goes.

Subjects become <type>(<scope>): <description>, keeping the component as
the scope. The bans that were right are kept verbatim: ticket IDs, status
tags, filenames in subjects. A short note records that the policy changed
so it is not re-litigated from older git log entries.

Co-Authored-By is now banned explicitly, on any artifact, whoever wrote
the change.

AGENTS.md states that the rules bind humans and agents equally and that a
violating pull request is declined rather than fixed in review. Its inline
copy of the prefix rules is gone — a second copy is one that goes stale.

CL-7880
@TheGreatAxios
TheGreatAxios force-pushed the cl-7880-adopt-conventional-commits-and-make-the-contribution-rules branch from 5b7eb8b to 9f35b5d Compare September 13, 2026 18:02
@TheGreatAxios TheGreatAxios changed the title docs(contributing): adopt Conventional Commits and make the rules binding Adopt Conventional Commits and make the rules binding Sep 13, 2026
Flipping CONTRIBUTING.md alone would have left the repo fighting itself.
The style skill — loaded by builder and other agents — banned subject
prefixes outright and listed `feat: add retry logic` as a bad example, so
agents would keep writing subjects the new rule declines. The review
skill would then flag the compliant ones as prefix violations.

Updated together: the style skill now specifies the type/scope form and
keeps the ticket-ID, status-tag and filename bans; the review skill flags
a missing or unrecognized type instead of flagging types themselves; the
implement skill and the builder director prompt stop telling workers the
title is a plain-English sentence; the PR template matches.

CONTRIBUTING.md also states the consequence directly, so the README can
point at it rather than making a claim the source of truth does not.

CL-7880
@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Audit: Needs-work, with the three should-fix items addressed on this branch where they belong.

Fit: making Conventional Commits binding is sound now that its premise holds — #986 (merged) generates release notes from merged PRs, so commit types finally drive something. Rule keeps the good parts of the old style (imperative subject, ticket/filename bans) and only adds type+scope.

Fix notes (c7ceaa2): (1) the release forms said chore(release): perfi X.Y.Z / docs(release): add perfi X.Y.Z release notesperfi is not this repo's product (binary corbits, package @corbits/code); now chore(release): corbits X.Y.Z. (2) The docs(release): add … release notes form prescribed hand-written notes commits, a workflow #986 deleted — dropped that form and reframed it (notes are generated, so no hand-written notes commits). (3) The release.sh commit-message / PR-title strings (Release $FORMULA $VERSIONchore(release): form) went onto #986's branch instead, since #986 was still unmerged — same fix, exactly one place.

@TheGreatAxios
TheGreatAxios merged commit a76f1c6 into main Sep 13, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant