Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
5ec9e7d
test(filesystem): give the real HFS+ volume test an explicit timeout
cliffhall Oct 28, 2026
13c781a
chore(filesystem): remove the unused glob dependency
cliffhall Oct 28, 2026
cec069b
test(everything): check every registered tool carries all four annota…
cliffhall Oct 28, 2026
d7ebd6f
feat(memory): declare idempotentHint on the three create/add tools
cliffhall Oct 28, 2026
4b54ad6
fix(everything): name resource-prompt's allowed argument values
cliffhall Oct 28, 2026
59b7f9d
chore(sequentialthinking): remove the unused yargs dependency
cliffhall Oct 28, 2026
1a7b9f9
feat(filesystem): set idempotentHint and destructiveHint on the read-…
cliffhall Oct 28, 2026
9863a10
docs(git): document setting the commit identity via env vars or gitco…
cliffhall Oct 28, 2026
e885c38
docs(sequentialthinking): name the tool sequentialthinking in the README
cliffhall Oct 28, 2026
22ce3e5
fix(filesystem): do not trim an allowed directory's name after realpath
cliffhall Oct 28, 2026
01062fc
fix(memory): store an observation repeated in one add_observations ca…
cliffhall Oct 28, 2026
fbddfb0
fix(filesystem): return no lines for read_text_file head/tail 0
cliffhall Oct 28, 2026
9192ea3
fix(filesystem): show an unstattable entry's size as unknown
cliffhall Oct 28, 2026
e8138f9
fix(fetch): reject an invalid prompt URL with -32602
cliffhall Oct 28, 2026
4441e23
fix(filesystem): say search_files matches names, not contents
cliffhall Oct 28, 2026
ea2997b
feat(filesystem): add a --read-only mode that serves only read tools
cliffhall Oct 28, 2026
9b46a58
fix(git): accept revision ranges in git_diff
cliffhall Oct 28, 2026
6575d87
feat(filesystem): show the closest file lines when an edit has no match
cliffhall Oct 28, 2026
d665e43
fix(filesystem): report a dangling symlink as broken, not as a missin…
cliffhall Oct 28, 2026
9a1cdf3
fix(sequentialthinking): draw a multi-line thought one row per line
cliffhall Oct 28, 2026
3a412f5
feat(memory): warn when the memory file is inside node_modules
cliffhall Oct 28, 2026
98845dc
feat(git): add git_merge tool
cliffhall Oct 28, 2026
bd3d538
feat(time): default omitted timezone arguments to the local timezone
cliffhall Oct 28, 2026
3f867a0
feat(everything): add a resource collection example
cliffhall Oct 28, 2026
e05bef2
fix(time): report the second occurrence of an ambiguous fall-back time
cliffhall Oct 28, 2026
eed581e
fix(filesystem): expand ~\ to the home directory on Windows
cliffhall Oct 28, 2026
f5eeb83
fix(everything): build the Docker image from the workspace lockfile, …
cliffhall Oct 28, 2026
3f173d6
feat(filesystem): expose files as resources through a file:// template
cliffhall Oct 28, 2026
65e68d3
feat(filesystem): add a copy_file tool
cliffhall Oct 28, 2026
d980938
docs(memory): state the search_nodes query length limit in the README
cliffhall Oct 28, 2026
2eb63af
feat(fetch): ask for native markdown through Accept content negotiation
cliffhall Oct 28, 2026
eced757
feat(git): add prompts that embed the repository's changes
cliffhall Oct 28, 2026
25b4a5d
fix(everything): stop a cancelled long-running operation
cliffhall Oct 28, 2026
942d8f1
feat(memory): say when to use search_nodes and open_nodes
cliffhall Oct 28, 2026
3a2e1fd
feat(filesystem): add an optional depth to directory_tree
cliffhall Oct 28, 2026
135a925
fix(filesystem): name the subdirectories search_files could not read
cliffhall Oct 28, 2026
35bed66
feat(everything): light and dark themed icons on every primitive
cliffhall Oct 28, 2026
93f89b1
fix(sequentialthinking): cap the thought history each connection keeps
cliffhall Oct 28, 2026
27148ef
feat(memory): add lightweight read modes to the read tools
cliffhall Oct 28, 2026
fed94f8
feat(fetch): make the HTTP request timeout configurable
cliffhall Oct 28, 2026
baf1306
fix(fetch): run Readability.js under the server's own bounded subprocess
cliffhall Oct 28, 2026
c4d0cc4
feat(sequentialthinking): trim the tool description to fit 1024 chara…
cliffhall Oct 28, 2026
533b9a3
feat(fetch): add an operator host allowlist, --allowed-hosts
cliffhall Oct 28, 2026
d148379
feat(git): add a read-only git_remote tool that lists remotes
cliffhall Oct 28, 2026
a41492e
test(memory): check the graph around each repeated write call
cliffhall Oct 28, 2026
af8a01b
feat(filesystem): add an append_file tool
cliffhall Oct 28, 2026
c9e110b
test(filesystem): count the spaces in the no-match regex
cliffhall Oct 28, 2026
331a6c0
docs(filesystem): qualify the two-server read-only workaround for Roo…
cliffhall Oct 28, 2026
44d3659
feat(time): add get_time_ago for past times
cliffhall Oct 28, 2026
886c2f8
fix(git): pin git_merge's outcome against config and ignored files
cliffhall Oct 28, 2026
956e7f9
fix(filesystem): report a missing path found by validatePath as resou…
cliffhall Oct 28, 2026
cb01940
fix(time): make get_time_ago's offsets strict integers
cliffhall Oct 28, 2026
2af0580
docs(fetch): move the allowed_hosts docstring entry clear of use_read…
cliffhall Oct 28, 2026
3892d33
test(fetch): keep the timeout tests from leaking FETCH_TIMEOUT_MS
cliffhall Oct 28, 2026
9a8da68
fix(git): redact remote-helper URLs and keep U+2028 inside a URL
cliffhall Oct 28, 2026
2c2be3e
fix(filesystem): open append_file's new-file write with O_APPEND
cliffhall Oct 28, 2026
bf689d7
fix(filesystem): budget the closest-text search and score windows at EOF
cliffhall Oct 28, 2026
6d4fa8e
fix(git): merge only the validated commit; name conflicts as written
cliffhall Oct 28, 2026
c5fda36
fix(filesystem): remove copy_file's copy when closing the source fails
cliffhall Oct 28, 2026
be1350b
fix(git): summarize a working tree whose only change is an untracked …
cliffhall Oct 28, 2026
6ca876f
docs(fetch): say a raw fetch gets the site's default representation
cliffhall Oct 28, 2026
8993c7b
Merge remote-tracking branch 'origin/v2/feat/3130-everything-resource…
cliffhall Oct 28, 2026
c6ca8c6
feat(everything): themed icons on the resource collections
cliffhall Oct 28, 2026
ab56c39
test(fetch): look for node and npm only in the fake bin directory
cliffhall Oct 29, 2026
df1dd3f
fix(filesystem): report a filesystem failure while resolving a resour…
cliffhall Oct 29, 2026
d2dfef3
fix(git): parse a partial clone's fetch line in git_remote
cliffhall Oct 29, 2026
be9d4b6
docs(filesystem): state the read-only rule instead of listing the wri…
cliffhall Oct 29, 2026
6017ed3
feat(filesystem): log the effective allowed directories and their source
cliffhall Oct 28, 2026
99ba0c6
feat(filesystem): add --confine-roots to keep client Roots inside the…
cliffhall Oct 28, 2026
7768af5
fix(filesystem): let append_file append to a write-only file
cliffhall Oct 29, 2026
97e9fe3
fix(filesystem): cut long lines in the no-match error; number an EOF …
cliffhall Oct 29, 2026
a80becd
fix(git): find the prompt fence's length in one pass
cliffhall Oct 29, 2026
9b1570a
feat(fetch): open the simplified result with the page title
cliffhall Oct 28, 2026
8b912e1
fix(fetch): match the page title by visible whole words, off the loop
cliffhall Oct 29, 2026
e4ce738
fix(fetch): bound the cleanup after a Readability.js timeout
cliffhall Oct 29, 2026
20a1775
fix(git): refuse to list remotes when a URL holds a newline
cliffhall Oct 29, 2026
0c79e06
fix(filesystem): start the closest-text search only at real file lines
cliffhall Oct 29, 2026
3abe875
Merge pull request #5352 from modelcontextprotocol/v2/chore/5206-sequ…
cliffhall Oct 29, 2026
e69358e
Merge pull request #5356 from modelcontextprotocol/v2/docs/5204-seque…
cliffhall Oct 29, 2026
5f834be
Merge pull request #5361 from modelcontextprotocol/v2/fix/5205-sequen…
cliffhall Oct 29, 2026
76fe953
Merge pull request #5374 from modelcontextprotocol/v2/feat/4507-seque…
cliffhall Oct 29, 2026
593cb09
Merge pull request #5397 from modelcontextprotocol/v2/fix/2912-sequen…
cliffhall Oct 29, 2026
91f1ab7
Merge pull request #5364 from modelcontextprotocol/v2/feat/2853-time-…
cliffhall Oct 29, 2026
8d6ea2f
Merge pull request #5366 from modelcontextprotocol/v2/fix/5196-time-a…
cliffhall Oct 29, 2026
718e8d1
Merge pull request #5369 from modelcontextprotocol/v2/feat/2710-time-…
cliffhall Oct 29, 2026
eabad3f
fix(fetch): scan the first line in linear time and escape the heading
cliffhall Oct 29, 2026
46d5905
Merge pull request #5347 from modelcontextprotocol/v2/chore/5156-ever…
cliffhall Oct 29, 2026
b8d667c
Merge pull request #5350 from modelcontextprotocol/v2/fix/3985-everyt…
cliffhall Oct 29, 2026
5e46f89
Merge pull request #5382 from modelcontextprotocol/v2/chore/3309-ever…
cliffhall Oct 29, 2026
5db6d39
Merge pull request #5365 from modelcontextprotocol/v2/feat/3130-every…
cliffhall Oct 29, 2026
059fa34
Merge pull request #5396 from modelcontextprotocol/v2/fix/4846-everyt…
cliffhall Oct 29, 2026
9195809
Merge pull request #5389 from modelcontextprotocol/v2/feat/3131-every…
cliffhall Oct 29, 2026
02aa885
Merge pull request #5381 from modelcontextprotocol/v2/docs/5200-memor…
cliffhall Oct 29, 2026
1af506e
Merge pull request #5393 from modelcontextprotocol/v2/feat/5202-memor…
cliffhall Oct 29, 2026
555b25a
Merge pull request #5394 from modelcontextprotocol/v2/feat/3953-memor…
cliffhall Oct 29, 2026
163be11
Merge pull request #5357 from modelcontextprotocol/v2/fix/5201-memory…
cliffhall Oct 29, 2026
3f5a1ff
Merge pull request #5349 from modelcontextprotocol/v2/feat/5153-memor…
cliffhall Oct 29, 2026
847f58b
Merge pull request #5362 from modelcontextprotocol/v2/feat/4117-memor…
cliffhall Oct 29, 2026
8b836f7
fix(fetch): keep literal and escaped angle brackets as visible text
cliffhall Oct 29, 2026
e769048
Merge pull request #5360 from modelcontextprotocol/v2/fix/5194-git-di…
cliffhall Oct 29, 2026
39af108
Merge pull request #5354 from modelcontextprotocol/v2/docs/619-git-co…
cliffhall Oct 29, 2026
f5286e2
Merge pull request #5363 from modelcontextprotocol/v2/feat/659-git-me…
cliffhall Oct 29, 2026
1b3aebd
Merge pull request #5373 from modelcontextprotocol/v2/feat/1611-git-r…
cliffhall Oct 29, 2026
d03dce4
Merge pull request #5386 from modelcontextprotocol/v2/feat/5195-git-p…
cliffhall Oct 29, 2026
36feb67
Merge pull request #5344 from modelcontextprotocol/v2/fix/5314-filesy…
cliffhall Oct 29, 2026
ef9b0e4
Merge pull request #5351 from modelcontextprotocol/v2/chore/5186-file…
cliffhall Oct 29, 2026
3bd1337
Merge pull request #5353 from modelcontextprotocol/v2/feat/3402-files…
cliffhall Oct 29, 2026
0dce8bd
Merge pull request #5377 from modelcontextprotocol/v2/fix/5184-filesy…
cliffhall Oct 29, 2026
d4e94ad
Merge pull request #5378 from modelcontextprotocol/v2/fix/5190-filesy…
cliffhall Oct 29, 2026
1a8c65d
Merge pull request #5355 from modelcontextprotocol/v2/fix/5189-search…
cliffhall Oct 29, 2026
84a4ee5
Merge pull request #5367 from modelcontextprotocol/v2/fix/896-search-…
cliffhall Oct 29, 2026
fd4fa4f
Merge pull request #5380 from modelcontextprotocol/v2/fix/5191-filesy…
cliffhall Oct 29, 2026
006632f
Merge pull request #5383 from modelcontextprotocol/v2/fix/5320-filesy…
cliffhall Oct 29, 2026
256bd69
Merge pull request #5384 from modelcontextprotocol/v2/fix/5180-filesy…
cliffhall Oct 29, 2026
4c3337e
Merge pull request #5376 from modelcontextprotocol/v2/feat/1208-files…
cliffhall Oct 29, 2026
4a0db4f
Merge pull request #5385 from modelcontextprotocol/v2/feat/519-filesy…
cliffhall Oct 29, 2026
170cf42
Merge pull request #5388 from modelcontextprotocol/v2/feat/1077-files…
cliffhall Oct 29, 2026
bde561b
Merge pull request #5368 from modelcontextprotocol/v2/feat/297-filesy…
cliffhall Oct 29, 2026
76ff516
Merge pull request #5379 from modelcontextprotocol/v2/feat/2034-edit-…
cliffhall Oct 29, 2026
086e847
Merge pull request #5359 from modelcontextprotocol/v2/feat/632-filesy…
cliffhall Oct 29, 2026
e3f49f0
Merge pull request #5390 from modelcontextprotocol/v2/feat/4912-files…
cliffhall Oct 29, 2026
00389e1
Merge pull request #5395 from modelcontextprotocol/v2/feat/3133-files…
cliffhall Oct 29, 2026
4aac5e4
Merge pull request #5391 from modelcontextprotocol/v2/fix/5306-fetch-…
cliffhall Oct 29, 2026
b6bb2f6
Merge pull request #5398 from modelcontextprotocol/v2/feat/2472-fetch…
cliffhall Oct 29, 2026
24a6484
Merge pull request #5392 from modelcontextprotocol/v2/feat/2317-fetch…
cliffhall Oct 29, 2026
0b7fb52
Merge pull request #5372 from modelcontextprotocol/v2/feat/4448-fetch…
cliffhall Oct 29, 2026
b7df1ce
Merge pull request #5387 from modelcontextprotocol/v2/feat/5198-fetch…
cliffhall Oct 29, 2026
2016f16
Merge pull request #5358 from modelcontextprotocol/v2/fix/4914-fetch-…
cliffhall Oct 29, 2026
79fe953
Remove the @claude mention workflow (claude.yml)
cliffhall Oct 29, 2026
4227c3e
docs(release): link the Prepare Python Release PR with addCloseIssueR…
cliffhall Oct 29, 2026
f2d3477
docs(release): document the ledger's title, layout and required sections
cliffhall Oct 29, 2026
e6f2240
fix(scripts): read gh replies over 1 MiB in release:notes and the sweeps
cliffhall Oct 29, 2026
8c7af45
docs(security-advisory): bring the fix to v2/main through an opaque p…
cliffhall Oct 29, 2026
7a47f45
Merge pull request #5407 from modelcontextprotocol/v2/chore/5337-remo…
cliffhall Oct 29, 2026
f18f7c8
Merge pull request #5408 from modelcontextprotocol/v2/docs/5335-relea…
cliffhall Oct 29, 2026
6051046
Merge pull request #5409 from modelcontextprotocol/v2/docs/5343-relea…
cliffhall Oct 29, 2026
7e12ca3
Merge pull request #5410 from modelcontextprotocol/v2/fix/5339-releas…
cliffhall Oct 29, 2026
11f64f9
docs(security-advisory): pass --head when opening the public PR from …
cliffhall Oct 29, 2026
72ad22c
Merge pull request #5411 from modelcontextprotocol/v2/docs/5334-advis…
cliffhall Oct 29, 2026
f20ce8e
fix(deps): raise the qs override to >=6.16.1 for GHSA-6pq8-jhm2-2vcw
cliffhall Nov 4, 2026
81ca196
fix(filesystem): move minimatch to ^11.0.4 for GHSA-g3hv-75wg-m249
cliffhall Nov 4, 2026
b87bc73
Merge pull request #5426 from modelcontextprotocol/v2/fix/5420-filesy…
cliffhall Nov 4, 2026
b992756
Merge pull request #5427 from modelcontextprotocol/v2/chore/5425-rele…
cliffhall Nov 4, 2026
2f882b1
chore: version packages
github-actions[bot] Nov 4, 2026
77507b5
chore: stamp Python CalVer versions for 2026.11.4
github-actions[bot] Nov 4, 2026
991a02a
Merge pull request #5401 from modelcontextprotocol/changeset-release/…
cliffhall Nov 4, 2026
cc60278
Merge pull request #5429 from modelcontextprotocol/v2/chore/5425-pyth…
cliffhall Nov 4, 2026
8da06bc
fix(sequentialthinking): bound the stderr thought box
cliffhall Nov 4, 2026
ee12fb1
fix(everything): give gzip-file-as-resource's resource the resource i…
cliffhall Nov 4, 2026
43d93af
fix(sequentialthinking): size the thought box after its summary row
cliffhall Nov 4, 2026
f4f9928
Merge pull request #5436 from modelcontextprotocol/v2/fix/5434-everyt…
cliffhall Nov 4, 2026
c583da0
docs(sequentialthinking): state the thought box's limits exactly
cliffhall Nov 4, 2026
3fd9419
Merge pull request #5435 from modelcontextprotocol/v2/fix/5433-sequen…
cliffhall Nov 4, 2026
4c28a7e
chore: version packages
github-actions[bot] Nov 4, 2026
281b167
Merge pull request #5437 from modelcontextprotocol/changeset-release/…
cliffhall Nov 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .claude/skills/board-ops/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -299,8 +299,10 @@ fi
# Then the two chained item-edit calls from "Add a card and set its fields".
```

**Convert** it to an issue only after the advisory is **published**. The web UI
has "Convert to issue" on the card; the API equivalent is:
**Convert** it to an issue when its fix is ready to merge, keeping its opaque
title; a follow-up card converts only after the advisory is **published**. When
each happens, and what the issue gets, is the `/security-advisory` flow. The web
UI has "Convert to issue" on the card; the API equivalent is:

```sh
REPO_ID=$(gh api repos/modelcontextprotocol/servers --jq .node_id) || REPO_ID=
Expand Down
82 changes: 71 additions & 11 deletions .claude/skills/release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,11 +256,25 @@ gh workflow run prepare-python-release.yml --repo modelcontextprotocol/servers \
It opens a PR that starts with `Closes #N`, on a branch named
`v2/chore/<N>-python-calver-<date>`, labeled `v2`, and dispatches the
TypeScript, Python and DCO workflows on that branch, as the Version Packages
workflow does (not the Everything diff, whose paths it never touches). Wait
for its three `(dispatched)` statuses to pass, check that each stamped package really
changed, and a maintainer merges it.
workflow does (not the Everything diff, whose paths it never touches).
No PR means no Python server has a shipped change since its last stamp.

Then, on the PR:

1. **Link it to the release issue.** Its `Closes #N` is only a
cross-reference on `v2/main`, and the workflow makes no API call, so link
it with the `addCloseIssueReferences` mutation from `/pr-flow` (step 6)
and read it back: `closingIssuesReferences` must list `#N`. On `v2/main`
it closes nothing at merge. Find the PR by its branch:

```sh
gh pr list --repo modelcontextprotocol/servers --base v2/main \
--json number,headRefName,url \
| jq --arg p "v2/chore/$N-python-calver-" '.[] | select(.headRefName | startswith($p))'
```
2. **Wait for its three `(dispatched)` statuses to pass**, check that each
stamped package really changed, and a maintainer merges it.

⚠️ GitHub only dispatches a workflow that exists on the default branch. Until
the first milestone merge carries this one to `main`, do it by hand, which is
the same script:
Expand All @@ -274,7 +288,9 @@ node scripts/prepare-python-release.mjs # prints "name: old -> new" per stam
git commit -s -am "chore: stamp Python CalVer versions for $(date -u +%Y.%-m.%-d)"
```

then open the PR through `/pr-flow`, body starting `Closes #N`.
then open the PR through `/pr-flow`, body starting `Closes #N`. Its step 6
links the PR to the release issue and reads the link back, as step 1 above
does for the workflow's PR: do not skip it.

## 3. The merge PR: `v2/main` → `main`

Expand Down Expand Up @@ -453,12 +469,35 @@ gh issue list --repo modelcontextprotocol/servers --milestone "$MILESTONE" \
before and after.

**4d. The ledger.** Write the results up as a published artifact (a private
page, shared with the maintainers) and link it from the merge PR's body. It
holds:
page, shared with the maintainers) and link it from the merge PR's body.

**Title it `Servers vX.Y.Z Release Ledger`**, the milestone's version, in both
the page's `<title>` and its `<h1>`.

**Start from the previous release's ledger**, so every ledger reads as one
series. It is linked from the latest published Release's notes, on the
`Release ledger:` line (5a):

```sh
gh release view --repo modelcontextprotocol/servers --json tagName,body \
--jq '.tagName, (.body | split("\n")[] | select(startswith("Release ledger:")))'
```

Read that page (the artifact tool's read action), and build the new one on its
stylesheet and section structure, changing the content only. This skill
deliberately names no ledger URL: the latest Release always points at the
current one, and a URL written here would go stale with the next release.

It holds, in this order:

- **Masthead**: repository, the merge PR and its commit, the milestone, the
date, and a line saying what tree was tested and that its hash matches
`origin/v2/main`.
`origin/v2/main`. Two more lines:
- **SDKs**: the MCP SDK versions the lockfiles hold (each
`@modelcontextprotocol/*` SDK package, and Python `mcp`).
- **Toolchain**: the versions used to verify: Node (with OS and
architecture), uv, the Inspector CLI and web UI, Playwright, Docker and
Claude Code.
- **Verdict**: `local:gate` and `pack:verify` results, milestone issues
verified as `N / N`, findings.
- **The gate**: one cell per stage, with its numbers.
Expand All @@ -469,13 +508,34 @@ holds:
(`node scripts/npm-publish-guard.mjs src/<server>` for npm; for PyPI,
`curl -s -o /dev/null -w '%{http_code}' https://pypi.org/pypi/<name>/<version>/json`,
where 404 means it will publish).
- **One table per theme**: *Issue · What was driven · Observed · Status*. One
row per closed issue, linked, with the actual output in the Observed cell.
- **One table per theme** (a server, a group of servers, or the tooling),
with the columns *Issue · Title · What was driven · Observed · Status*. One
row per closed issue. The Issue cell links it and is tagged with how it was
exercised: `client` (the Inspector CLI or an SDK client), `web UI` (the
Inspector web UI through Playwright) or `probe`. The Observed cell holds the
actual output. Status is a pill: `PASS`, or a named exception.
- **Preparation PRs**: the audit PR (or, when the audit forced no fix, its
report), Version Packages and Prepare Python Release, each with what was
checked on it.
- **Tool schemas against the previous release**: each TypeScript server's
`tools/list` (input and output schemas, annotations and descriptions)
compared with the version the previous release published, in both eras.
- **LLM client**: one headless Claude Code run (`--strict-mcp-config`)
calling one tool on each of the seven release-candidate builds, with what
each returned (`/client-smoke`).
- **Also shipping: advisory fixes**: each fix that shipped through a security
advisory rather than a milestone issue.
- **Findings**: anything that is a caveat rather than a pass, stated on its
own.

A row that says "verified" without saying what was run is not a ledger entry.

**A second merge PR.** When a fix lands after the first merge PR merged (4e;
in v2.2.0, #5342 followed #5338 for a `certifi` lockfile bump), the masthead
names both merge PRs with their heads, and the page says which checks ran on
which head and what differs between the two trees
(`git diff --stat <first head> <second head>`).

**4e. When verification finds something, the fix goes on `v2/main`, never on
the merge branch.** File the issue (`/issue-create`), fix it through an
ordinary PR, then fast-forward the merge branch to the new `origin/v2/main`,
Expand Down Expand Up @@ -539,8 +599,8 @@ added to the draft by hand:

- **Every advisory this release fixes**, as `--advisory GHSA-xxxx-yyyy-zzzz`,
once each: the `[GHSA-…]` cards on the board for the milestone's work
(`security-advisory`). Its fix shipped from a private fork with no public
issue, so its reporters are no issue's author. A draft advisory works.
(`security-advisory`). Its issue is converted from the card by a
maintainer, so its reporters are no issue's author. A draft advisory works.
- **Every outside contributor credited on one of the milestone's issues**, as
`--thank "@login (#PR), <what it prototyped>, for #ISSUE"`, once per line
of the prototype paragraph. The preview lists each candidate (below).
Expand Down
Loading
Loading