Approved posts now get a shared subject headline
Approved top-level posts now carry a short subject headline, and posts about the same thing share one. An AI reads the text, reuses an existing name when it matches, and writes a new one when it doesn't.

You approve a post about your new Laravel package and the page looks exactly as it did before. There is no tag and no extra row. Behind it, the post now carries a subject headline. Run php artisan commits:link-headlines and the console works through approved posts twenty at a time, finishing one batch before loading the next, while the log reports how many joined an existing headline and how many got a fresh one.
Credit goes to paulinevos, who taught the site to read a post and name what it is about. A hosted decision API scores each post for suitability and keeps anything at 60 percent or better, folding in the text of an approved quoted post when there is one. Replies are skipped. The site shortlists at most 20 existing headlines per post by embedding similarity, reuses one on a 70 percent match, and otherwise asks a separate model, through an open coding tool, to write a name. Similar new names collapse into the first at 70 percent.
One catch. Every generated name must fit 80 characters and carry no links, @handles or control characters, and the check covers the whole batch. One bad name fails all twenty posts, which get retried twice more before the batch gives up.
Key files · #1355
- app/
Jobs/ ProcessCommitHeadlines.php - app/
Services/ OpenAIHeadlineProvider.phpHeadlineProviders/ - app/
Actions/ UpdateCommitHeadlines.php - app/
Models/ Headline.php - app/
Models/ Commit.php - app/
Console/ LinkCommitHeadlinesCommand.phpCommands/ - app/
Ai/ CommitHeadlineWriter.phpAgents/ - database/
migrations/ 2026_10_31_105514_create_headlines_table.php