Require PR and issue titles that name the problem in plain words - #45
leaf-agent wants to merge 1 commit into
Conversation
|
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 |
|
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 #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. |
Problem
The bot's titles here have drifted into a register only their author can read. Two landed on
mainthis 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 scanningmainnothing 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-ciskill 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 pinsmax-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.yamland deliberately excludes markdown, so the only hooks reaching this file are whitespace andtypos; 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
mainnow and stay as they are.