Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Extract and analyze writing improvements from GitHub PR review comments. Use when asked to show review feedback, style changes, or editorial improvements from a GitHub pull request URL. Handles both explicit suggestions and plain text feedback. Produces structured output comparing original phrasing with reviewer suggestions to help refine future writing.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 0% | 0% |
Extract editorial feedback from GitHub PRs to learn from review improvements.
gh installedgh session: gh auth status should show you’re logged inrepo).| Tool | Responsibility | | ----------------- | ----------------------------------------------------------------------- | | Python script | API calls, parsing, file tracking across renames, structured extraction | | LLM analysis | Pattern recognition, paragraph comparison, style lesson synthesis |
bash> **All paths are relative to the directory containing this SKILL.md file.** > Before running any script, first `cd` to that directory or use the full path. # Get suggestions and feedback uv run scripts/extract_pr_reviews.py <pr_url> # Get full first→final comparison for deep analysis uv run scripts/extract_pr_reviews.py <pr_url> --diff # Same as above, but cap each FIRST/FINAL dump to 2k chars for LLM prompting uv run scripts/extract_pr_reviews.py <pr_url> --diff --max-file-chars 2000
--diffbashuv run scripts/extract_pr_reviews.py https://github.com/org/repo/pull/123 --diff
This outputs:
suggestion blocks (supports multiple suggestion blocks per comment)> Tip: add --max-file-chars 2000 to keep each FIRST/FINAL dump lightweight, or pair --diff with --no-files if you only need the suggestion/feedback summaries.
With the script output, perform this analysis:
Create a table of mechanical fixes:
| Pattern | Original | Fixed | | -------------- | ------------------ | ------------------ | | Grammar | "Its easier" | "It's easier" | | Filler removal | "using this way" | "this way" | | Capitalization | "Image Generation" | "image generation" |
For each reviewer feedback comment:
Example:
> Feedback: "would be nice to end more enthusiastically" > > First draft: "...it's simple to add new tools to Claude and use them straight away." > > Final: "...Let us know what you find and create in the comments below!" > > Lesson: End blog posts with a call-to-action
Compare FIRST DRAFT to FINAL VERSION section by section:
Group findings into categories:
| Category | Patterns Found | | ------------- | ------------------------------------------------ | | Clarity | Passive→active, shorter sentences, remove filler | | Precision | Vague→specific, "Create"→"Generate" | | Tone | Added enthusiasm, call-to-action endings | | Structure | Added transitions, better section flow | | Grammar | its/it's, subject-verb agreement | | Content | Added links, examples, context |
> 📁 All paths are relative to the directory containing this SKILL.md file.
| Flag | Output | Use Case | | -------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------- | | _(none)_ | Suggestions + feedback | Quick review of what reviewers said | | --diff | Adds FIRST/FINAL file dumps to the default output | Deep analysis of how the author responded | | --max-file-chars N | Truncates each FIRST/FINAL block to _N_ chars (appends ...[truncated X chars]) | Keep prompts within LLM token limits | | --no-files | Suppresses FIRST/FINAL dumps even when --diff is set | When you only need explicit suggestions + reviewer feedback | | --json | Raw JSON (includes file_evolutions when --diff without --no-files) | Programmatic processing |
> Input formats: pass either a full PR URL, owner/repo PR_NUMBER, or owner repo PR_NUMBER.
--diff.md/.txt/.rst/.mdx file; add --max-file-chars to truncate each block with a visible ...[truncated X chars] indicatorThe script traces files through renames by:
claudeimages.md → claude-images.md → claude-and-mcp.md)After running the script and performing LLM analysis, produce a summary like:
markdown## Style Lessons from PR #123 ### Mechanical Fixes - Fix grammar: "Its" → "It's" (contraction) - Lowercase generic terms: "Image Generation" → "image generation" - Remove filler: "the output quality of" → "the quality of" ### Reviewer-Driven Changes - **"end more enthusiastically"** → Added call-to-action in conclusion - **"emphasize these are SoTA"** → Changed "latest" to "state-of-the-art" - **"add blurb about MCP Server"** → Added explanatory paragraph ### Structural Improvements - Added transition sentence between sections - Simplified setup instructions (3 sentences → 1) - Added new bullet point for model flexibility
--max-file-chars or pass --no-files to keep outputs prompt-friendly{{currentDate}} {{env}}
Other measured skills in the registry, with their headline benchmark lift.