Skip to content

docs(repo): record that the merged subject must be the validated one - #69

Merged
justinmerrell merged 2 commits into
mainfrom
docs/squash-title-invariant
Aug 25, 2026
Merged

docs(repo): record that the merged subject must be the validated one#69
justinmerrell merged 2 commits into
mainfrom
docs/squash-title-invariant

Conversation

@justinmerrell

@justinmerrell justinmerrell commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

The setting change is already applied; this records it where a reader will find
it. This one touches .github/rulesets/, an owned path — but you own it, so
authorship waives the requirement and the notice workflow posted the sticky
comment instead. Both halves of ADR 0015 behaving as designed.

What was wrong

squash_merge_commit_title was GitHub's default, COMMIT_OR_PR_TITLE. Under
that, a pull request with exactly one commit lands that commit's subject
rather than the title Conventional PR title validated. Normalising the PR
title does nothing about Dependabot's commit message, which stays capitalised.

#67 is the proof, already on main:

validated: build(deps-dev): bump the tooling group across 1 directory with 5 updates
landed:    build(deps-dev): Bump the tooling group across 1 directory with 5 updates (#67)

ADR 0016 decision 3 was therefore true of every pull request and false of every
merge.

It was never only the bot's problem. Any single-commit pull request landed a
subject that only the local commit-msg hook had seen, and that hook checks
the type, not the case — so feat(component): Add restartPolicy would sail
through from a human too.

What changed

squash_merge_commit_title is now PR_TITLE, so the string CI validates and
the string that reaches main are the same string, for everyone.

$ gh api repos/musher-dev/spec --jq .squash_merge_commit_title
PR_TITLE

Being a repository setting rather than a ruleset field, nothing in
.github/rulesets/ can carry it — so it joins invariants 5 and 6 as one that
is only visible against live GitHub state, with the command to verify it.
ADR 0016 gains it as decision 4.

Checklist

  • Commits are DCO signed off (git commit -s)
  • Commit messages are Conventional and correctly scoped
  • task ci:lint passes locally
  • No specification prose, schema, or conformance fixture is touched

@github-actions

Copy link
Copy Markdown

You own some of the paths this pull request changes

@justinmerrell, this pull request touches paths you are a code owner for. Your authorship waives the code-owner review requirement — GitHub cannot request a review from a pull request's author — so nobody is automatically notified about these changes:

  • .github/rulesets/RULESETS.md — you are the sole owner; no review will be requested

Double-check they are intentional. If you want a second pair of eyes, request a review manually. (Automated notice from the codeowners-notice workflow — ADR 0015.)

`squash_merge_commit_title` was GitHub's default, `COMMIT_OR_PR_TITLE`, under
which a pull request with exactly one commit lands that commit's subject rather
than the title `Conventional PR title` validated. Normalising the title did
nothing about Dependabot's commit message, so #67 landed on main as
`build(deps-dev): Bump the tooling group across 1 directory with 5 updates`
after being validated as `bump` — ADR 0016 decision 3 was true of every pull
request and false of every merge.

It was never only the bot's problem. Any single-commit pull request landed a
subject that only the local commit-msg hook had seen, and that hook checks the
type, not the case.

The setting is now PR_TITLE. Being a repository setting rather than a ruleset
field, nothing in .github/rulesets/ can carry it, so it is recorded as
invariant 7 in RULESETS.md — with the command to verify it, alongside the two
other invariants that are only visible against live GitHub state.

Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
@justinmerrell
justinmerrell force-pushed the docs/squash-title-invariant branch from df25a28 to a117779 Compare August 25, 2026 17:17
@justinmerrell
justinmerrell merged commit 8208d3d into main Aug 25, 2026
7 checks passed
@justinmerrell
justinmerrell deleted the docs/squash-title-invariant branch August 25, 2026 17:20
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