addressing-pr-review-c…
Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review…
Triages failed CI runs for a commit merged into develop and resolves them. Reruns the failed jobs when the failure is transient (flaky test, network or runner hiccup), fixes a real breakage on develop and opens a PR, or reports failures that need a maintainer, such as missing
Claude Code
$ npx -y skills add streamlit/streamlit --skill fixing-develop-ci --agent claude-code
Codex
$ npx skills add streamlit/streamlit --skill fixing-develop-ci -a codex -y
Cursor
$ npx skills add streamlit/streamlit --skill fixing-develop-ci -a cursor -y
Gemini CLI
$ npx skills add streamlit/streamlit --skill fixing-develop-ci -a gemini-cli -y
GitHub Copilot
$ npx skills add streamlit/streamlit --skill fixing-develop-ci -a github-copilot -y
OpenCode
$ npx skills add streamlit/streamlit --skill fixing-develop-ci -a opencode -y
Windsurf
$ npx skills add streamlit/streamlit --skill fixing-develop-ci -a windsurf -y
name: fixing-develop-ci description: Triages failed CI runs for a commit merged into develop and resolves them. Reruns the failed jobs when the failure is transient (flaky test, network or runner hiccup), fixes a real breakage on develop and opens a PR, or reports failures that need a maintainer, such as missing secrets or an external outage. Use when push CI on develop fails, when asked to investigate or fix a red develop commit, or when the ai-fix-develop-ci workflow runs.
Pushes to `develop` run the PR CI workflows, plus Performance Suite and Load Testing, which PRs run only with a label. A merged PR can still turn `develop` red. Most failures are transient: outages, network errors, and flaky tests. Real breakages usually come from a PR whose last CI run predates a change on `develop`, such as a new lint rule, a theme change that invalidates new snapshots, or a file length limit. Others come from a workflow the PR did not run, or from a runner image or external service change.
Most workflows cancel the run for an older commit when a newer one lands, so the newest run of each workflow decides whether `develop` is green. PR wheel-size and coverage comments compare against the latest green `develop` run, so while `develop` is red they compare against an older commit.
The goal is a green `develop` with the least work: rerun what was transient, fix what is broken, and hand the rest to a maintainer.
A commit SHA on `develop`, or the URL of one of its failed runs. Without one, use the newest `develop` commit with a failed push run.
- [ ] Collect the failed runs, jobs, and first errors - [ ] Compare against the merged PR and history - [ ] Classify: rerun, fix, or report - [ ] Act on the decision - [ ] Write the summary
| Decision | Signals | |----------|---------| | **rerun** (transient) | Network or registry errors, including in `Set up job` or `Setup virtual env` (yarn, uv, pip, apt, a `curl` 5xx while downloading tools, GitHub API 5xx, `ECONNRESET`). A runner that was lost, shut down, or never acquired. Artifact upload or download errors, including a 403 on finalize. Job timeouts with no test failure. A brief outage of an external service such as CodeQL ("No server is currently available"), Snowflake, or S3. A single test failing on one browser or Python version that passes elsewhere in the run and in other recent runs. | | **fix** (real breakage) | The same failure across browsers, Python versions, matrix jobs, or attempts. Lint, format, type, pre-commit, or build errors, including `uv lock --check`, Node version, or protobuf errors in `Setup virtual env`. Snapshot mismatches in every browser, or on files touched by a visual or theme PR merged shortly before. A flaky test that also failed on the previous non-cancelled runs. Many tests failing with OS-level errors (time zones, missing shared libraries) after a runner image update. The failure reproduces on current `develop`. Tests that depend on the current date and break on a specific day also count. | | **report** (needs a maintainer) | Missing or invalid secrets (for example, a Snowflake login error), missing permissions, or rate limits on the bot account. An external outage that will not clear soon. A fix that needs a `.github/workflows/` change. The rerun limit is reached and no clear fix exists. A newer `develop` run of the same workflow passed or is still running, or `develop` or an open PR already fixes the failure. Only reverting the introducing PR would fix it. |
Keep these in mind:
Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review…
Assesses whether branch or PR changes are high-risk for externally hosted or embedded Streamlit usage and recommends whether…
Validates all code changes before committing by running format, lint, type, and unit test checks. Use after making backend…
Creates a draft pull request on GitHub with proper labels, branch naming, and description formatting. Use when changes are ready…
Debug Streamlit frontend and backend changes using make debug with hot-reload. Use when testing code changes, investigating bugs,…
Lists available make commands for Streamlit development. Use for build, test, lint, or format tasks.
Performs AI-powered code review on Git changes using the `ocr` CLI from alibaba/open-code-review. Use when the user asks to…
Build or update the code review knowledge graph. Run this first to initialise, or let hooks keep it updated automatically.
Maps the `hunkdiff/extension` authoring surface for Hunk, the terminal diff viewer — hiding or reordering reviewed files, docked…