Skip to content

Require PR and issue titles that name the problem in plain words - #45

Closed
leaf-agent wants to merge 1 commit into
mainfrom
skills/plain-titles-32954487598
Closed

leaf-agent wants to merge 1 commit into
mainfrom
skills/plain-titles-32954487598

Conversation

@leaf-agent

@leaf-agent leaf-agent commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Problem

The bot's titles here have drifted into a register only their author can read. Two landed on main this morning: "Press again for the tab the driver lost, not the one Chromium never made" (#40) and "Sort a red suite by what the failure is, not by how steady it looks" (#42). Neither names its subject — a flaky Playwright test and the red-suite triage list respectively — so the merge commit tells someone scanning main nothing about what changed. @max-sixty asked for the fix: a title has to leave a normal reader with some idea of the problem.

The trap is a real one rather than carelessness. Leaf's own commit titles are imperative and elliptical — "Read a cut ring through the layer's own band", "Excuse a ring only where the control itself will not fit" — and they work because their subjects are things a reader of this repo already knows. Matching that register on machinery nobody has met yet produces a riddle instead.

Fix

One section at the top of .claude/skills/running-tend/SKILL.md, 22 lines: keep the repo's imperative voice and drop its ellipsis, name the concrete test or widget or command rather than a figure standing in for it, skip an "X rather than Y" contrast whose Y only means something after reading the body, and re-read the finished title as someone holding only the notification. Two before/after pairs, both taken from the bot's own titles, carry what the prose can't.

It sits above Landing rather than in a corner, because it applies to every PR and issue the bot opens here, not to one workflow.

Relationship to the bundled rule

tend-agent noted that tend's bundled running-in-ci skill has required plain titles since max-sixty/tend#1022 (merged 2026-08-20). That rule has not reached this repo: tend's latest release is 0.1.18 from 2026-08-16, every workflow here pins max-sixty/tend/claude@0.1.18, and grepping the bundled skills this session loaded finds no title rule. So the overlay is the only thing enforcing this at the current pin, and it should land on its own terms.

What the overlay carries that the bundled rule can't is the repo-specific half — that leaf's own elliptical commit register is what pulls a title into the riddle, and the before/after pairs drawn from titles this bot actually wrote. When the pin advances past a release carrying #1022 and #1060 (open, which sharpens the bundled rule with a reader test and extends it to issue titles), the generic prose in this section can be trimmed back to that repo-specific half rather than kept in two places.

Verification

Documentation only. Prettier is scoped to [javascript, html] in .pre-commit-config.yaml and deliberately excludes markdown, so the only hooks reaching this file are whitespace and typos; the file has no trailing whitespace, ends in a single newline, and adds no unusual words.

I also retitled the one open bot PR, #44, to "Replace a 250ms sleep in the work-line test with a real control" as the first application. The two merged titles are commits on main now and stay as they are.

@max-sixty

Copy link
Copy Markdown
Owner

this is an upstream issue; why are you making a local change

@leaf-agent this probably needs a clear split in our guidance; to prioritize upstream for issues that are shared across all consuming repos

@leaf-agent

Copy link
Copy Markdown
Collaborator Author

You're right, and the split you're asking for is itself upstream guidance, so that's where I've put it rather than adding a section here that says "prefer upstream" — which would be the same mistake one level up.

Closing this PR. Its content is already in tend twice over: max-sixty/tend#1022 merged the plain-title rule on 2026-08-20, and #1060 sharpened it with a reader test and extended it to issue titles about two minutes before your comment. What kept it from reaching this repo is the release lag — 0.1.18 is from 2026-08-16 and every workflow here pins it — and a lag is a reason to cut a release, not a reason to fork the rule into an overlay that then has to be found and deleted.

Filed upstream: max-sixty/tend#1061. Three concrete things send a generic correction to the overlay today — Learning from Feedback names the consumer overlay in its first sentence and the upstream route only two levels down in a reference file; the upstream signal is conditioned on the corrected behaviour "coming from bundled skill text", so a bundled skill's silence reads as not-upstream; and nothing says an unreleased upstream fix isn't grounds for a local copy. That last one is what I reasoned my way into in this PR body.

The rest of this repo's overlay looks like it's on the right side of the line — landing via PR because of the Merge access ruleset, ci-fix as the primary gate because nothing lands through a PR here, the browser-suite failure classes, the two vendored bundles dependabot can't watch. All facts about leaf, none of them portable. This section was the outlier.

#44 keeps its retitle ("Replace a 250ms sleep in the work-line test with a real control") — that was applying the rule, not adding it.

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.

2 participants