mcpbeat

Update Docs For Release

streamlit/update-docs-for-release

Update the streamlit/docs repo for a new Streamlit release. Covers branch setup, release notes, API docstring generation, and API tiles/pages. Use when the user asks to update docs for a new Streamlit release, add release notes, generate docstrings, or add API tiles for new commands.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
176
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/streamlit/docs --skill update-docs-for-release

The instruction itself

5 sections, as written by the author

Streamlit release docs update

Follow these steps in order for each new Streamlit release (x.y.0).

1. Branch setup

Pull the latest main and create a release branch:

git checkout main && git pull origin main
git checkout -b docs/streamlit-x.y-release

2. Release notes

You need the release notes text. If the user hasn't provided them, ask them to run the generating-changelog skill in the streamlit/streamlit repo and paste the output here.

Two files to update:

content/develop/quick-references/release-notes/_index.md

  • Replace the current ## Version x.x.0 (latest) section with the new release
  • Keep the "Older versions" links section at the bottom unchanged

content/develop/quick-references/release-notes/<year>.md

  • Prepend the new version section above the previous latest release

Format each section as:

## **Version x.y.0**

_Release date: Month D, YYYY_

**Highlights**
...

**Notable Changes**
...

**Other Changes**
...

Remove any duplicate bullets from the provided notes before adding them.

3. Docstring generation

Run python/generate.py in a clean virtualenv with the correct Streamlit version.

cd python
python3 -m venv .venv-generate
.venv-generate/bin/pip install -q streamlit docstring-parser docutils numpydoc
.venv-generate/bin/python -c "import streamlit; print(streamlit.__version__)"
.venv-generate/bin/python generate.py

Important:

  • Always target the x.y.0 release key in streamlit.json, not patch releases (e.g. 1.59.0 not 1.59.2). After running, rename the key if pip installed a patch release: sed -i '' 's/"x.y.z":/"x.y.0":/' python/streamlit.json and do the same for GitHub source URLs in the blob links.
  • If the script errors on a removed API (e.g. a deleted connection type), remove that entry from the obj_key dict in generate.py and re-run.
  • Format streamlit.json with Prettier after generating: npx prettier --write python/streamlit.json
  • Verify the diff: only a new "x.y.0" top-level key should appear — no existing version keys should be modified or removed. Check with: git diff python/streamlit.json | grep "^@@"— there should be exactly one hunk at the end of the file.

4. API tiles and pages

For each new command introduced in the release (not new parameters on existing commands), add a tile and detail page.

Detail page — create content/develop/api-reference/<section>/st.<command>.md:

---
title: st.<command>
slug: /develop/api-reference/<section>/st.<command>
description: <one-line description>
keywords: st.<command>, ...
---

<Autofunction function="streamlit.<command>" />

For column config types, use content/develop/api-reference/data/column_config/<name>.md with:

<Autofunction function="streamlit.column_config.<TypeName>" />

Tile — add to both:

  • The section's _index.md (e.g. content/develop/api-reference/status/_index.md)
  • The main content/develop/api-reference/_index.md

Tile format:

<RefCard href="/develop/api-reference/<section>/st.<command>">

<Image pure alt="screenshot" src="/images/api/<command>.jpg" />

<h4>Title</h4>

One-line description.

st.<command>(...)

</RefCard>


**Menu** — add an entry in `content/menu.md` in the correct position.

**Images** — do not generate images. Ask the user to provide one, and point them to the Figma template file for reference:
https://www.figma.com/design/MOGYWhaoD7OON4HsnbAT1z/API-illustrations?node-id=0-1&t=bs0XekxOUD8pO0to-1

Tell them the required format:

- **Format:** JPG
- **Size:** 862×862px for data/widget elements, 862×816px for status/layout elements (match the dimensions of a similar existing image in `public/images/api/`)
- They can also provide a PNG and you will convert it with: `sips -s format jpeg input.png --out public/images/api/<name>.jpg`

Place images at `public/images/api/<name>.jpg`.

## 5. Example apps

For each new command, check `python/streamlit.json` under the `x.y.0` key for embedded `<Cloud name="...">` elements in the `examples` field. These are interactive apps that need to be deployed to Community Cloud.

For each Cloud embed found:

1. Extract the `name` attribute (e.g. `doc-mermaid-chart`) — this is the required subdomain.
2. Extract the code from the adjacent `<pre>` block (strip HTML tags and unescape HTML entities).
3. Save the code to `python/api-examples-source/<section>.<command_or_variant>.py` following the existing naming convention (e.g. `charts.mermaid_chart.py`, `status.skeleton_standalone.py`).

After adding all files, present a table to the user:

| App             | Deploy link                                                                                                                                                  | GitHub file                                                                                           | Subdomain      |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------- | -------------- |
| `<description>` | [Deploy](https://share.streamlit.io/deploy?repository=streamlit/docs&branch=main&mainModule=python/api-examples-source/<filename>.py&subdomain=<cloud-name>) | [<filename>.py](https://github.com/streamlit/docs/blob/main/python/api-examples-source/<filename>.py) | `<cloud-name>` |

The user will handle deploying the apps to Community Cloud.

## 6. Commit and push

Make focused commits per logical unit of work (release notes, docstrings, API tiles, images, example apps). Push to the branch and open a PR against `main`.

How to use it

Copy the folder

Take streamlit/update-docs-for-release from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip, npx. Without those the skill loads but fails at the first command.