Repository navigation
chore: agent guide, release notes and pr skill - #115
Merged
Merged
Conversation
The agent guide told agents to replace em dashes with hyphens or sentence breaks, which is not the rule: a spaced hyphen is the same dash in another character. `AGENTS.md` rule 10 and the code style section of `docs/agent/dev.md` now say to use a comma, colon, period or parentheses. `.gitignore` meant to keep stray local agent guides out of git but ignored `AGENT.md` and re-included a root `/AGENT.md` that does not exist. It now ignores `AGENTS.md` and `AGENT.md` anywhere except the root guide, the root `CLAUDE.md` and the family agent's workspace guide under `stacklets/agent/workspace/`, which the agent stacklet ships.
Commit subjects and bodies are quoted verbatim into the release notes, which use no em dashes. `tools/commit-lint` now refuses an em dash (U+2014) in a commit message, a PR title and a PR description, and says to use a comma, colon, period or parentheses instead. It runs wherever the attribution check runs: the `commit-msg` hook, the range CI and the release gate check, and the PR title and body. An en dash in a range and a plain hyphen still pass. Commits already on main are not affected: CI only checks the commits of a pull request.
The GitHub release body was written by hand, although `docs/agent/dev.md` already specifies how commit messages become release notes. `script/release-notes` now prints them as markdown, with git-cliff run through `uvx`, so there is nothing to install: - Action required first: any `!`, `Upgrade:` or `BREAKING CHANGE:` commit, whatever its type, with the footer quoted. - Then Security, Added, Fixed, Performance and Documentation, grouped by the rendered scope label. Internal types and merges are left out, and a subject that does not parse shows under Unclassified. - No argument prints what the next tag will ship, `--latest` what the newest tag shipped, and a range works too. With nothing to announce it says so. It runs from any directory, so a release workflow outside the repo can call it. It refuses a shallow clone, where git-cliff silently finds no commits. `cliff.toml` repeats commit-lint's types and scopes, and a unit test fails and names the difference when the two disagree. Releases can still be written by hand; nothing else changes.
Every pull request needs a title that is its changelog line and a description by the rules in `docs/agent/dev.md`, and agents had to be told the convention each time. The `pr` skill in `.claude/skills/pr/` reads the branch, says when it holds two changelog entries and should be split, writes the title and description, and checks both and the branch's commits with `tools/commit-lint` before showing them. It asks for Arthur's go before pushing or opening anything, and never merges. `.gitignore` re-includes the skill, as it does the LSP plugin, so every clone gets it.
arthware-dev
marked this pull request as ready for review
September 23, 2026 11:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
AGENTS.mdrule 10 and the dev.md code style now say to replace an em dash with a comma, colon, period or parentheses, not a hyphen..gitignoreignores strayAGENTS.mdandAGENT.mdfiles but keeps the root guide, the rootCLAUDE.mdand the agent stacklet's workspace guide tracked.tools/commit-lintrejects em dashes in commit messages, PR titles and PR descriptions (the hook,--range,--titleand--body). En dashes and hyphens still pass.script/release-notesgenerates the release notes with git-cliff (cliff.toml): Action required first with the footer quoted, then the sections from dev.md, grouped by scope label. It runs from any directory and refuses a shallow clone. A unit test keepscliff.tomlin step with commit-lint's types and scopes.prskill writes the PR title and description by the rules in dev.md and checks them with commit-lint before showing them.Merge with rebase, not squash: each commit is its own changelog entry.