Skip to content

The 72-Character Subject Rule Cannot Survive the (#N) Suffix a Squash Merge Appends #1154

Description

@ptr727

comment-and-doc-style's "PR titles and commit messages" states one shared contract:

an imperative subject, 72 characters or fewer, no trailing period

The fleet squash-merges, and GitHub appends (#N) to the merged subject. So a PR title that satisfies the rule at authoring time becomes a commit subject that violates it, and the rule gives no budget for the suffix.

Measured on this repository's own recent develop history:

Merged subject Length
Review Hub Canonical Content Here, Before a Carrier Is the One to Read It (#1148) 81
Migrate the Hub's Unit-Test Step to Native Microsoft.Testing.Platform (#1107) 77

Both came from titles under 72. An agent writing a 70-character title satisfies the rule and ships a subject that does not.

What Settling It Needs

A decision rather than an edit, which is why this is filed rather than patched:

  1. The 72 applies to the authored title, and the suffix is outside it. Then the rule says so, and a reader stops measuring merged history against it.
  2. The 72 applies to the merged subject. Then the authoring budget is about 65 for a four-digit issue number, and the rule states that number rather than leaving each author to derive it.
  3. The two surfaces get separate limits, since a PR title and a commit subject are different artifacts with different renderers.

Option 1 looks likeliest, since the suffix is GitHub's and not the author's, but the rule as written does not say it and the fleet's own history reads as a standing violation either way.

Provenance

Canonical-content review pass over .agents/skills/comment-and-doc-style/SKILL.md "PR titles and commit messages", run on the branch for #1078 and its sibling carried-text fixes. The two subjects above are from this repository's develop log.

Not This Issue

  • #1078 is also against this unit, on the title-case example leaving devcontainer lowercase, fixed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    decisionA question waiting on the maintainer, alone or beside whatever else the issue carries

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions