with one click
positron-pr-helper
// Generates well-structured PR bodies with dynamically fetched e2e test tags
// Generates well-structured PR bodies with dynamically fetched e2e test tags
Grade whether a Positron PR has adequate test coverage. Evaluates new tests in the PR, checks existing coverage for changed source, and suggests concrete additions when coverage is insufficient. Used by the pr-test-checker GitHub Action.
Analyze e2e test failures from a GitHub Actions run. Provide a run ID or URL to download reports, extract traces/screenshots/logs, identify root causes, and get suggested actions. Works with both posit-dev/positron and posit-dev/positron-builds repos.
Use when writing, generating, or adding Vitest tests for Positron source code in src/vs/. Load this skill when analyzing a branch or PR for test coverage gaps, when the user asks to write tests using createTestContainer(), or when testing React components with RTL.
Use when reviewing Vitest test files for quality, maintainability, and adherence to Positron's testing patterns. Load this skill when test files need a quality check against the builder pattern, RTL patterns, and project conventions. Not for e2e or Playwright tests.
Use when pulling changes from rstudio/vscode-server into Positron — fetching upstream, triaging commits, and applying diffs
Use when building any list, table, grid, or virtualized scrolling UI in Positron, or whenever you encounter `DataGridInstance`, `PositronDataGrid`, or files importing them. Critical for avoiding a common architectural mistake (wrapping the grid in a React component that mediates props into the instance via useEffect).
| name | positron-pr-helper |
| description | Generates well-structured PR bodies with dynamically fetched e2e test tags |
This skill helps you create comprehensive PR bodies for the posit-dev/positron repository with up-to-date e2e test tags fetched directly from the source of truth.
Use this skill when:
gh) installed and authenticatedI'll guide you through creating a comprehensive PR body:
First, I'll ask you:
If you provide an issue number, I'll use gh issue view to fetch details and understand the context better.
I'll dynamically fetch the current e2e test tags from test/e2e/infra/test-runner/test-tags.ts using our extraction script. This ensures we always have the complete, up-to-date list of tags including:
Based on the PR type and context, I'll create a structured PR body with:
Opening Line
Fixes, Closes, Resolves) so the issue auto-closes when the PR is mergedDescription/Summary
Screenshots (for UI changes only)
Release Notes
Validation Steps
Once the PR body is ready, you can choose:
pbcopygh pr editThis script extracts and categorizes all test tags from the TypeScript enum:
# Usage:
./scripts/fetch-test-tags.sh [format]
# format: markdown (default), json, or list
The script:
test-tags.ts without needing TypeScript compilationI use different templates based on PR type:
Fixes #[issue]
[2-3 sentences explaining the fix]
### Release Notes
#### New Features
- N/A
#### Bug Fixes
- [User-facing description] (#[issue])
### Validation Steps
[relevant tags]
[Simple test instructions]
Fixes #[issue]
### Summary
[1-2 paragraphs explaining the feature]
[Technical implementation notes if relevant]
[Related PRs if applicable]
### Release Notes
#### New Features
- [User-facing description] (#[issue])
#### Bug Fixes
- N/A
### Validation Steps
[relevant tags]
[Detailed test steps with code examples]
Fixes #8930
This PR fixes the Data Explorer scrollbars snapping back to 0 on Safari. The issue was caused by incorrect event handling in the virtual scrolling implementation.
### Release Notes
#### New Features
- N/A
#### Bug Fixes
- Fix Data Explorer scrollbars snapping back to 0 on Safari (#8930)
### Validation Steps
@:data-explorer
Open a large data frame in Data Explorer on Safari and verify scrollbars can be dragged without snapping back.
Fixes #8484
### Summary
Adds support for native DuckDB connections in the Connections Pane. Users can now inspect DuckDB databases directly without needing external tools. This implementation uses the native DuckDB Python API for better performance.
Related PR: posit-dev/ark#456 (adds DuckDB kernel support)
### Release Notes
#### New Features
- Added support for inspecting native DuckDB connections in the Connections Pane (#8484)
#### Bug Fixes
- N/A
### Validation Steps
@:connections @:duck-db
1. Install DuckDB: `pip install duckdb`
2. Create a new DuckDB connection using the modal
3. Run the following to create test data:
```python
conn.execute("""
CREATE TABLE employees (
id INTEGER,
name VARCHAR,
salary INTEGER
)
""")
conn.execute("INSERT INTO employees VALUES (1, 'Alice', 75000)")
## Tips
- Be concise but complete - no flowery language
- Use present tense ("fixes", "adds", "enables")
- Include issue references in parentheses in release notes
- Always include at least one e2e test tag in validation steps
- For complex changes, numbered test steps are better
- Keep release notes user-facing (avoid implementation details)