
astro-pr-writer
Write and update Astro pull requests with reviewer-friendly titles and high-signal bodies. Trigger whenever the user asks to create a PR, open a PR, draft a PR, update PR title/body, or write PR notes/summary/description.
- Installs
- 341
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/withastro/astro --skill astro-pr-writer- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads astro-pr-writer automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Astro PR Writer
Write Astro pull request descriptions that help reviewers quickly understand intent, behavior changes, and validation.
Use this skill whenever the user asks for any PR-writing task, including:
- create/open a pull request
- create/open a draft pull request
- update a PR title
- update a PR body/description
- write PR notes/summary
Core Principle
Describe the change, how it works, and why it matters.
Changesexplains what the fix/feature does.Testinglists what test code was added or changed.Docsexplains whether user-facing docs changes are needed.
Do not use PR sections as a task log.
PR Title Rules
Use a human, reviewer-friendly title.
- Describe the outcome in plain language.
- Keep it concise and specific.
- Prefer phrasing a person would naturally write in a review queue.
Do not use:
- conventional commit prefixes in PR titles (
fix:,feat:,docs:, etc.) - scoped commit-style titles (
fix(cloudflare): ...)
Body Rules
Use this structure:
## Changes
- <Behavior change and why it matters>
- <Implementation detail and impact>
## Testing
- <New or changed test and what it covers>
- <Why an existing assertion changed>
## Docs
- <No docs update needed, because ...>
Changes
Focus on behavior, implementation approach, and impact.
Include:
- what now works that did not work before
- how the fix/feature works (reviewer-useful level)
- user-facing reliability/compatibility/perf behavior changes
Do not include:
- "added test" or "updated fixture" (belongs in
Testing) - "added changeset"
- internal process notes with no behavior impact
Testing
List what test code was added or changed, and why. Reviewers read this section to understand test coverage changes — not to hear that you ran a test suite.
Include:
- new test files or test cases added, with a short description of what they cover
- existing tests that were updated, and why the assertion changed
Do not include:
- that tests pass (CI shows this; it's noise)
- which commands you ran
- how many tests passed
Docs
Explain docs impact clearly.
- If docs are not needed, say why in one sentence.
- If docs are needed, link the docs PR.
Brevity Guidance
Default to short. 1-2 bullets per section is normal — add more only when the change is genuinely complex. A reviewer scanning a PR queue should be able to read the whole body in under 30 seconds for a typical patch.
Too verbose:
- Moves
.optional().prefault({})outsidez.preprocess()for theserverconfig property in bothbase.tsandrelative.ts, matching theintegrationsfix from #16531. Zod 4.4.0 rejects missing properties wrapped inz.preprocess()before the preprocessor or inner defaults can execute — moving.optional().prefault({})outside the preprocess call resolves this. Fixes theserverproperty issue reported there by @rururux.- Adds
invalid_key,invalid_element, and discriminated unionoptionshandlers to both Astro and DB error maps for Zod 4.4.0 compatibility. Zod 4.4.0 surfaces record key refinement failures (e.g. env schema variable names) as structuredinvalid_keyissues with nested errors instead of a flat message. The handlers extract the actual refinement message for clear user-facing errors.- All changes are backward-compatible with Zod 4.3.x. New error map branches only activate on issue codes that 4.4.0 starts emitting.
Better:
- Moves
.optional().prefault({})outsidez.preprocess()for theserverconfig, matching theintegrationsfix from #16531. Fixes the issue reported there by @rururux.- Adds
invalid_key,invalid_element, and discriminated unionoptionshandlers to both error maps for Zod 4.4.0 compat.- Backward-compatible with Zod 4.3.x.
Changesets
Every PR that modifies a package requires a changeset. Only examples/* changes are exempt.
Load the changeset skill to create the changeset file and write the message. It covers file creation, format, bump types, and message conventions.
When writing the PR body:
- Before posting, check whether a changeset exists. If the PR modifies a package and none exists, create it now using the
changesetskill — do not post the PR without one. - Do not mention "added changeset" in the
Changessection — it is process noise, not a behavior change
Self-Check Before Posting
- Title is reviewer-friendly (not commit-style)
Changesbullets describe behavior/implementation/impactTestinglists test code added/changed, not test run resultsDocsdecision is explicit- Changeset file exists in
.changeset/for any package-modifying PR — if missing, create it before posting
FAQ
What does the astro-pr-writer skill do?
Write and update Astro pull requests with reviewer-friendly titles and high-signal bodies. Trigger whenever the user asks to create a PR, open a PR, draft a PR, update PR title/body, or write PR notes/summary/description.
How do I install astro-pr-writer?
Run npx skills add https://github.com/withastro/astro --skill astro-pr-writer in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/astro-pr-writer/ (personal) or .claude/skills/astro-pr-writer/ (project).
Which AI agents can use astro-pr-writer?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is astro-pr-writer safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains astro-pr-writer?
It is published by withastro in withastro/astro. It has 341 recorded installs.
More from withastro/astro
astro-developer
withastro/astro
Comprehensive guide for developing in the Astro monorepo. Covers architecture, debugging, testing, and critical constraints. Use when working on features, fixes, tests, or understanding the codebase structure.
analyze-github-action-logs
withastro/astro
Open the skill to read its SKILL.md instructions.
triage
withastro/astro
Triage a bug report. Reproduces the bug, diagnoses the root cause, verifies whether the behavior is intentional, and attempts a fix. Use when asked to "triage issue
astro-code-review
withastro/astro
Open the skill to read its SKILL.md instructions.
changeset
withastro/astro
Create a changeset for the Astro monorepo. Use this skill whenever you need to add a changeset file to a PR, write a changelog entry, or document a package version bump. Also trigger when the user says "add a changeset", "write a changeset", "create a changeset", or when another skill instructs you to create a changeset.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.