Skip to content

Commit 48edecd

Browse files
mschmickingclaude
andcommitted
docs: record the closed scope list for PR titles
`feat(doctor)` failed the PR-title check: the scope allowlist in .github/workflows/pr-title.yml is closed, and a new component does not earn a new scope. Nothing in AGENTS.md said so, and the workflow is not somewhere you look before naming a branch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent c68a7e5 commit 48edecd

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,27 @@ infinite-loops on connection errors against this server.
116116
- No new npm dependencies without a good reason. Current set: `ws`, `commander`,
117117
`chokidar`, `diff`.
118118

119+
### Commit and PR titles
120+
121+
Conventional commits, enforced on the **PR title** by `.github/workflows/pr-title.yml`
122+
— the title becomes the squashed commit message and release-please derives the next
123+
version from it, so a title that does not parse is a release that silently never
124+
happens.
125+
126+
Type is one of `feat`, `fix`, `perf`, `refactor`, `docs`, `test`, `build`, `ci`,
127+
`chore`, `revert`. A scope is optional, **but any scope used must be one of**:
128+
129+
```
130+
sync auth watch logs json types cli deps docs release main
131+
```
132+
133+
That list is closed on purpose, to keep the vocabulary small enough to mean something.
134+
A new component does **not** earn a new scope — `feat(doctor)` fails the check, and a
135+
new CLI command belongs under `cli`. If a scope genuinely has to be added, add it to
136+
the workflow in the same PR. (`main` is not a component: it is the branch name in
137+
release-please's own `chore(main): release x.y.z` title, and without it the release PR
138+
cannot merge.) Subjects must not end with a full stop.
139+
119140
## Commands
120141

121142
```bash

0 commit comments

Comments
 (0)