assessing-external-tes…
Assesses whether branch or PR changes are high-risk for externally hosted or embedded Streamlit usage and recommends whether external e2e coverage with…
Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.
$ npx -y skills add streamlit/streamlit --skill addressing-pr-review-comments --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/addressing-pr-review-commentsContext preview
The summary Claude sees to decide when to auto-load this skill.
Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.
name: addressing-pr-review-comments description: Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.
Address actionable review comments on the PR for the current branch using `gh` CLI.
Copy and track progress:
- [ ] 1. Verify auth: gh auth status - [ ] 2. Fetch PR data and comments - [ ] 3. Analyze and categorize comments - [ ] 4. Present options to user - [ ] 5. Apply selected fixes - [ ] 6. Show summary, next steps, and offer to post replies
gh auth status
If auth fails, prompt user to run `gh auth login`.
You must fetch both inline review comments and general PR (issue) comments. Use both when building the list of feedback to address. General comments have no file or line. Treat them as PR-level feedback.
# PR details for current branch (extract PR number from here)
gh pr view --json number,title,url,state,author,headRefName,baseRefName,reviewDecision,reviews,comments
# Inline review comments with file/line info (--paginate fetches all pages)
gh api --paginate repos/streamlit/streamlit/pulls/{PR_NUMBER}/comments
# General PR discussion comments (--paginate fetches all pages)
gh api --paginate repos/streamlit/streamlit/issues/{PR_NUMBER}/commentsGet unresolved review threads via GraphQL (inline only; used for file/path/line). The query returns the first comment of each thread for display when listing threads; full comment bodies are already fetched via the REST `pulls/{PR_NUMBER}/comments` and `issues/{PR_NUMBER}/comments` APIs above. Note: `reviewThreads(first: 100)` returns at most 100 threads; for PRs with more unresolved threads, use cursor-based pagination (`pageInfo.hasNextPage` / `endCursor`) or rely on the REST comments list.
gh api graphql -f query="
{
repository(owner: \"streamlit\", name: \"streamlit\") {
pullRequest(number: {PR_NUMBER}) {
reviewThreads(first: 100) {
nodes {
id
isResolved
path
line
comments(first: 1) {
nodes { author { login } body }
}
}
}
}
}
}" --jq '[.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false)]'Issue comments (from `issues/{PR_NUMBER}/comments`) do not have a "resolved" flag. Consider all issue comments when building the actionable list, including the PR author's. Author comments can add useful context.
**Tip:** Save outputs for later reference if the data falls out of context: `work-tmp/reviews/pr-{PR_NUMBER}-review-threads.json` for inline threads, and `work-tmp/reviews/pr-{PR_NUMBER}-issue-comments.json` for general PR comments.
**Include:** Unresolved threads (inline), general PR comments from `issues/{PR}/comments`, `issue`/`todo`/`chore` comments, maintainer feedback, `CHANGES_REQUESTED` reviews. Include the PR author's comments when present. They can help clarify the problem space.
**Exclude:** Resolved threads, `praise`/`thought`/`note` comments (unless the caller explicitly requests responding to ALL comments, in which case acknowledge these with a brief reply)
**Skip status-only automated comments.** Ignore comments that are only status or check notifications with no actionable feedback. Examples: Snyk ("Snyk checks have passed. No issues have been found so far.") and comments from `.github/workflows/pr-preview.yml` that only say the PR is building or the preview is ready.
**Include substantive bot feedback.** Include automated comments that contain actual review feedback. For example, AI review comments from the `github-actions` bot. Treat them like other review comments and validate before acting. Bot suggestions can be false positives.
**General PR comments:** Analyze general PR comments (from `issues/{PR}/comments`) the same way as inline comments. Same include/exclude rules and conventional-comment types (`issue` / `todo` / `chore` / `suggestion` / etc.).
**Critical analysis:** Before categorizing a comment or suggesting a response, thoroughly investigate the code and context:
**Action types** (per [conventional comments](https://conventionalcomments.org)): `issue` / `todo` / `chore` (must fix) · `suggestion` (consider) · `nitpick` (optional) · `question` (clarify) · `praise` / `thought` / `note` (skip)
The list below combines actionable inline comments and general PR comments. For general comments use "(general)" or "PR-level" instead of `{file_path}:{line}`.
Found {N} actionable comments ({X} inline, {Y} general) on PR #{NUMBER}: {TITLE}
Review Decision: {APPROVED|CHANGES_REQUESTED|REVIEW_REQUIRED}
Actionable Items:
─────────────────────────────────────────────────────────
1. [issue] {file_path}:{line}
@{reviewer}: "{comment text}"
Action: {what will be done}
2. [todo] (general)
@{reviewer}: "{comment text}"
Action: {what will be done}
3. [chore] (general)
@{reviewer}: "{commeRepo: streamlit/streamlit
Assesses whether branch or PR changes are high-risk for externally hosted or embedded Streamlit usage and recommends whether external e2e coverage with…
Validates all code changes before committing by running format, lint, type, and unit test checks. Use after making backend (Python) or frontend (TypeScript)…
Creates a draft pull request on GitHub with proper labels, branch naming, and description formatting. Use when changes are ready to be submitted as a PR to the…
Debug Streamlit frontend and backend changes using make debug with hot-reload. Use when testing code changes, investigating bugs, checking UI behavior, or…
Lists available make commands for Streamlit development. Use for build, test, lint, or format tasks.
Finalizes branch changes for merging by simplifying code, running checks, reviewing changes, and creating a PR if needed. Use when ready to merge changes into…